gnu: emacs-vterm: Update to 0.0.2.
[jackhill/guix/guix.git] / gnu / packages / emacs-xyz.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
3 ;;; Copyright © 2013-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>
122 ;;;
123 ;;; This file is part of GNU Guix.
124 ;;;
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.
129 ;;;
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.
134 ;;;
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/>.
137
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))
256
257 ;;;
258 ;;; Emacs hacking.
259 ;;;
260
261 (define-public emacs-geiser
262 (package
263 (name "emacs-geiser")
264 (version "0.28.2")
265 (source
266 (origin
267 (method git-fetch)
268 (uri (git-reference
269 (url "https://gitlab.com/emacs-geiser/geiser")
270 (commit version)))
271 (file-name (git-file-name name version))
272 (sha256
273 (base32 "01sif1pw3shhdzcg9vidc2j5cqmrgjh5kynicf5mh3kmlvvsg9k6"))))
274 (build-system emacs-build-system)
275 (arguments
276 '(#:phases
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
281 (lambda _
282 (let ((el-files (find-files "./elisp" ".*\\.el$")))
283 (for-each (lambda (f)
284 (rename-file f (basename f)))
285 el-files))))
286 (add-before 'install 'make-info
287 (lambda _
288 (with-directory-excursion "doc"
289 (invoke "makeinfo" "--no-split"
290 "-o" "geiser.info" "geiser.texi")))))))
291 (native-inputs
292 (list texinfo))
293 (home-page "https://www.nongnu.org/geiser/")
294 (synopsis "Collection of Emacs modes for Scheme hacking")
295 (description
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
301 metadata.
302
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)))
307
308 (define-public emacs-geiser-guile
309 (package
310 (name "emacs-geiser-guile")
311 (version "0.28.1")
312 (source
313 (origin
314 (method git-fetch)
315 (uri (git-reference
316 (url "https://gitlab.com/emacs-geiser/guile")
317 (commit version)))
318 (file-name (git-file-name name version))
319 (sha256
320 (base32 "0gp8xbfm7y2gabjyys8jylfy1pkkglqas32xxrbqxfh1hv0cfh2f"))))
321 (build-system emacs-build-system)
322 (arguments
323 (list
324 #:include #~(cons "^src/" %default-include)
325 #:phases
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"
330 (("\\(t \"guile\")")
331 (format #f "(t ~s)"
332 (search-input-file inputs "bin/guile"))))))
333 (add-after 'make-autoloads 'patch-autoloads
334 (lambda _
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)
340 (string-append
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")
346 (description
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)))
350
351 (define-public emacs-ac-geiser
352 (let ((commit "93818c936ee7e2f1ba1b315578bde363a7d43d05")
353 (revision "0"))
354 (package
355 (name "emacs-ac-geiser")
356 (version (git-version "0.1" revision commit))
357 (source
358 (origin
359 (uri (git-reference
360 (url "https://github.com/xiaohanyu/ac-geiser")
361 (commit commit)))
362 (method git-fetch)
363 (sha256
364 (base32 "00n2qa26yilaj837n1yp6lbqa4gf30nkkbvanl7m9ih7k48ssqmw"))
365 (file-name (git-file-name name version))))
366 (build-system emacs-build-system)
367 (propagated-inputs
368 (list emacs-geiser emacs-auto-complete))
369 (synopsis "Auto-complete backend for geiser")
370 (description
371 "This package provides an auto-complete source for Scheme projects
372 using geiser.")
373 (license license:bsd-3)
374 (home-page "https://github.com/xiaohanyu/ac-geiser"))))
375
376 (define-public emacs-geiser-gauche
377 ;; The latest 0.14 release has an unbound variable (geiser-scheme-dir).
378 (let ((commit "96fa06aaeef18cc1b3b519e83dbb7be09eeb0d07")
379 (revision "0"))
380 (package
381 (name "emacs-geiser-gauche")
382 (version (git-version "0.14" revision commit))
383 (source
384 (origin
385 (method git-fetch)
386 (uri (git-reference
387 (url "https://gitlab.com/emacs-geiser/gauche.git")
388 (commit commit)))
389 (file-name (git-file-name name version))
390 (sha256
391 (base32 "1ppracwfl1snq0ifdlyxpdlv7fbn3pbxm1hd1ihgqivii5nbya9r"))))
392 (build-system emacs-build-system)
393 (arguments
394 (list
395 #:include '(cons "^geiser-gauche\\.scm$" %default-include)
396 #:phases
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
404 (lambda _
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)
410 (string-append
411 "(eval-after-load 'geiser-impl '" all ")"))
412 (("\\(geiser-implementation-extension .*\\)" all)
413 (string-append
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")
419 (description
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))))
423
424 (define-public emacs-geiser-racket
425 (package
426 (name "emacs-geiser-racket")
427 (version "1.0")
428 (source
429 (origin
430 (method git-fetch)
431 (uri (git-reference
432 (url "https://gitlab.com/emacs-geiser/racket")
433 (commit version)))
434 (file-name (git-file-name name version))
435 (sha256
436 (base32 "04gwd9qa0785zfr6m9a5443ilgvyz05l06cb1waicf83sgp8xl32"))))
437 (build-system emacs-build-system)
438 (arguments
439 (list
440 #:include #~(cons "^src/" %default-include)
441 #:phases
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\")")
447 (format #f "(t ~s)"
448 (search-input-file inputs "bin/racket"))))))
449 (add-after 'make-autoloads 'patch-autoloads
450 (lambda _
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)
456 (string-append
457 "(eval-after-load 'geiser-impl '" all ")"))
458 (("\\(geiser-implementation-extension .*\\)" all)
459 (string-append
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")
465 (description
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)))
469
470 (define-public emacs-geiser-chez
471 (package
472 (name "emacs-geiser-chez")
473 (version "0.17")
474 (source
475 (origin
476 (method git-fetch)
477 (uri (git-reference
478 (url "https://gitlab.com/emacs-geiser/chez")
479 (commit version)))
480 (file-name (git-file-name name version))
481 (sha256
482 (base32 "03fc9ahb0pmznkcnxzgpni4clj1zgky6vaqkc94nf8b8swniwkm9"))))
483 (build-system emacs-build-system)
484 (arguments
485 '(#:include (cons "^src/" %default-include)
486 #:phases
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)
497 (string-append
498 "(eval-after-load 'geiser-impl '" all ")"))
499 (("\\(geiser-implementation-extension .*\\)" all)
500 (string-append
501 "(eval-after-load 'geiser-impl '" all ")"))))))))
502 (inputs
503 (list (chez-scheme-for-system)))
504 (propagated-inputs
505 (list emacs-geiser))
506 (home-page "https://nongnu.org/geiser/")
507 (synopsis "Support for Chez Scheme in Geiser")
508 (description
509 "This package adds support for using Chez Scheme in Emacs with Geiser.")
510 (license license:bsd-3)))
511
512 (define-public emacs-vc-hgcmd
513 (package
514 (name "emacs-vc-hgcmd")
515 (version "1.14.1")
516 (source
517 (origin
518 (method git-fetch)
519 (uri (git-reference
520 (url "https://github.com/muffinmad/emacs-vc-hgcmd")
521 (commit (string-append "v" version))))
522 (file-name (git-file-name name version))
523 (sha256
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")
528 (description
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+)))
534
535 (define-public emacs-telephone-line
536 (let ((commit "6f3455a365912e8f0c45a2240ea79507dee45ade")
537 (revision "0"))
538 (package
539 (name "emacs-telephone-line")
540 (version (git-version "0.5" revision commit))
541 (source
542 (origin
543 (method git-fetch)
544 (uri
545 (git-reference
546 (url "https://github.com/dbordak/telephone-line")
547 (commit commit)))
548 (file-name (git-file-name name version))
549 (sha256
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")
554 (description
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+))))
559
560 (define-public emacs-inspector
561 (let ((commit "0e89d28558f57db4519f154bb72ce617a8c6265d")
562 (revision "0"))
563 (package
564 (name "emacs-inspector")
565 (version (git-version "0.8" revision commit))
566 (source
567 (origin
568 (uri (git-reference
569 (url "https://github.com/mmontone/emacs-inspector")
570 (commit commit)))
571 (method git-fetch)
572 (sha256
573 (base32 "0n72sqn29b5sya686cicgp40mkk5x5821b7bw4zs6dcl82cyij5n"))
574 (file-name (git-file-name name version))))
575 (build-system emacs-build-system)
576 (arguments
577 (list
578 #:tests? #t
579 #:test-command #~(list "emacs" "-Q" "--batch"
580 "-L" "."
581 "-l" "inspector-tests.el"
582 "-l" "tree-inspector-tests.el"
583 "-f" "ert-run-tests-batch-and-exit")
584 #:phases
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.
589 (lambda _
590 (substitute* "tree-inspector.el"
591 (("cl-constantly") "lambda (_)"))))
592 (add-before 'check 'skip-failing-test
593 (lambda _
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")
601 (description
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+))))
605
606 (define-public emacs-terminal-here
607 (package
608 (name "emacs-terminal-here")
609 (version "2.0")
610 (source
611 (origin
612 (method git-fetch)
613 (uri (git-reference
614 (url "https://github.com/davidshepherd7/terminal-here")
615 (commit version)))
616 (file-name (git-file-name name version))
617 (sha256
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")
622 (description
623 "This package provides commands to open external terminal emulators from
624 Emacs, whose initial working directories are determined in relation to the
625 current buffer.")
626 (license license:gpl3+)))
627
628 (define-public emacs-treeview
629 (let ((commit "d9c10feddf3b959e7b33ce83103e1f0a61162723")
630 (revision "0"))
631 (package
632 (name "emacs-treeview")
633 (version (git-version "1.1.1" revision commit))
634 (source
635 (origin
636 (uri (git-reference
637 (url "https://github.com/tilmanrassy/emacs-treeview")
638 (commit commit)))
639 (method git-fetch)
640 (sha256
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")
646 (description
647 "Abstract Emacs Lisp framework for tree navigation.")
648 (license license:gpl3+))))
649
650 (define-public emacs-hide-lines
651 (package
652 (name "emacs-hide-lines")
653 (version "20210513.1636")
654 (source (origin
655 (method git-fetch)
656 (uri (git-reference
657 (url "https://github.com/vapniks/hide-lines.git")
658 (commit "f0828c15e50db5eddb905de783e7683b04d1eca3")))
659 (sha256
660 (base32
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")
665 (description
666 "This package provides commands to hide lines based on a regular
667 expression.")
668 (license license:gpl3+)))
669
670 (define-public emacs-hgignore-mode
671 ;; From 2021-03-14.
672 ;; No releases available.
673 (let ((commit "2c5aa4c238848f5b4f2955afcfb5f21ea513653b")
674 (revision "0"))
675 (package
676 (name "emacs-hgignore-mode")
677 ;; `Version:' header says 0.1.20150329
678 (version (git-version "0.1" revision commit))
679 (source (origin
680 (method git-fetch)
681 (uri (git-reference
682 (url "https://github.com/omajid/hgignore-mode")
683 (commit commit)))
684 (file-name (git-file-name name version))
685 (sha256
686 (base32
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
693 system.")
694 (license license:gpl3+))))
695
696 (define-public emacs-hsluv
697 (package
698 (name "emacs-hsluv")
699 (version "20181127.1206")
700 (source (origin
701 (method git-fetch)
702 (uri (git-reference
703 (url "https://github.com/hsluv/hsluv-emacs.git")
704 (commit "c3bc5228e30d66e7dee9ff1a0694c2b976862fc0")))
705 (sha256
706 (base32
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")
712 (description
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
720 a neat percentage.")
721 (license license:expat)))
722
723 (define-public emacs-platformio-mode
724 (package
725 (name "emacs-platformio-mode")
726 (version "0.3.0")
727 (source (origin
728 (method git-fetch)
729 (uri (git-reference
730 (url "https://github.com/ZachMassia/PlatformIO-Mode")
731 (commit (string-append "v" version))))
732 (file-name (git-file-name name version))
733 (sha256
734 (base32
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+)))
743
744 (define-public emacs-hyperbole
745 (package
746 (name "emacs-hyperbole")
747 (version "8.0.0")
748 (source
749 (origin
750 (method url-fetch)
751 (uri (string-append "https://elpa.gnu.org/packages/"
752 "hyperbole-" version ".tar"))
753 (sha256
754 (base32 "171x7jad62xd0n3xgs32dksyhn5abxj1kna0qgm65mm0v73hrv8d"))))
755 (build-system emacs-build-system)
756 (arguments
757 (list #:include #~(cons* "DEMO"
758 "DEMO-ROLO.otl"
759 "HY-ABOUT"
760 "man/hkey-help.txt"
761 "man/hyberbole.info"
762 "kotl/.*"
763 "\\.kotl$"
764 %default-include)
765 #:phases
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"
773 (("/bin/domainname")
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
780 (lambda _
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
787 (lambda _
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$"))))))))
792 (inputs
793 (list inetutils))
794 (home-page "https://www.gnu.org/software/hyperbole/")
795 (synopsis "The Everyday Hypertextual Information Manager")
796 (description
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+)))
804
805 (define-public emacs-vlf
806 (package
807 (name "emacs-vlf")
808 (version "1.7.2")
809 (source
810 (origin
811 (method url-fetch)
812 (uri (string-append "https://elpa.gnu.org/packages/"
813 "vlf-" version ".tar"))
814 (sha256
815 (base32 "0hpri19z6b7dqmrj5ckp8sf0m0l72lkgahqzvfmwhgpgv2p81bny"))))
816 (build-system emacs-build-system)
817 (home-page "https://github.com/m00natic/vlfi/")
818 (synopsis "View large files in Emacs")
819 (description
820 "Vlf is an Emacs minor mode that allows viewing, editing, searching and
821 comparing large files in batches.")
822 (license license:gpl2+)))
823
824 (define-public emacs-hg-histedit
825 ;; From 2021-03-02.
826 ;; No releases available.
827 (let ((commit "a05149483b9c5f7848ece0ba6028c900595a6a25")
828 (revision "0"))
829 (package
830 (name "emacs-hg-histedit")
831 (version (git-version "0.0.0" revision commit))
832 (source (origin
833 (method git-fetch)
834 (uri (git-reference
835 (url "https://github.com/jojojames/hg-histedit")
836 (commit commit)))
837 (file-name (git-file-name name version))
838 (sha256
839 (base32
840 "04zps0d4s99f5a8ahrpyf8b6qw0c1y7rd1bsaq9nc6m4qblsvwc8"))))
841 (build-system emacs-build-system)
842 (propagated-inputs
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+))))
849
850 (define-public emacs-package-build
851 (package
852 (name "emacs-package-build")
853 (version "4.0.0")
854 (source (origin
855 (method git-fetch)
856 (uri (git-reference
857 (url "https://github.com/melpa/package-build")
858 (commit version)))
859 (file-name (git-file-name name version))
860 (sha256
861 (base32
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+)))
869
870 (define-public emacs-paredit
871 (package
872 (name "emacs-paredit")
873 (version "26")
874 (source (origin
875 (method git-fetch)
876 (uri (git-reference
877 (url "https://mumble.net/~campbell/git/paredit.git")
878 (commit (string-append "v" version))))
879 (file-name (git-file-name name version))
880 (sha256
881 (base32
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")
886 (description
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
889 source code.
890
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+)))
896
897 (define-public emacs-puni
898 ;; No tagged release upstream
899 (let ((commit "28836e98d5566172b1a94d7b38290d07b49201b2")
900 (revision "1"))
901 (package
902 (name "emacs-puni")
903 (version (git-version "0" revision commit))
904 (source (origin
905 (method git-fetch)
906 (uri (git-reference
907 (url "https://github.com/AmaiKinono/puni")
908 (commit commit)))
909 (file-name (git-file-name name version))
910 (sha256
911 (base32
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")
917 (description
918 "Puni is an Emacs minor mode for structured editing: soft deletion,
919 expression navigating and manipulating. It supports many major modes
920 out of the box.")
921 (license license:gpl3+))))
922
923 (define-public emacs-spaceline-all-the-icons
924 (package
925 (name "emacs-spaceline-all-the-icons")
926 (version "1.4.0")
927 (source (origin
928 (method git-fetch)
929 (uri (git-reference
930 (url "https://github.com/domtronn/spaceline-all-the-icons.el")
931 (commit version)))
932 (file-name (git-file-name name version))
933 (sha256
934 (base32
935 "186v71d8n1iy73drayyf57pyzlz973q74mazkyvb8w3fj8bb3llm"))))
936 (build-system emacs-build-system)
937 (propagated-inputs
938 (list emacs-all-the-icons
939 emacs-memoize
940 emacs-spaceline))
941 (home-page "https://github.com/domtronn/spaceline-all-the-icons.el")
942 (synopsis
943 "Theme for @code{emacs-spaceline} using @code{emacs-all-the-icons}")
944 (description
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)))
950
951 (define-public emacs-snow
952 (let ((commit "35ea06f19047ac99eaff9663cb035491c4a13e07")
953 (revision "0"))
954 (package
955 (name "emacs-snow")
956 (version (git-version "0" revision commit))
957 (source
958 (origin
959 (method git-fetch)
960 (uri (git-reference
961 (url "https://github.com/alphapapa/snow.el")
962 (commit commit)))
963 (file-name (git-file-name name version))
964 (sha256
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+))))
973
974 (define-public emacs-spongebob
975 (let ((commit "ae8ae6ba0dc57b7357ba87ff0609d27c4a0a5f51")
976 (revision "0"))
977 (package
978 (name "emacs-spongebob")
979 (version (git-version "0" revision commit))
980 (source
981 (origin
982 (method git-fetch)
983 (uri (git-reference
984 (url "https://gitlab.com/dustyweb/spongebob.el")
985 (commit commit)))
986 (file-name (git-file-name name version))
987 (sha256
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
994 buffer.")
995 (license license:gpl3+))))
996
997 (define-public emacs-project
998 (package
999 (name "emacs-project")
1000 (version "0.9.3")
1001 (source
1002 (origin
1003 (method url-fetch)
1004 (uri (string-append "https://elpa.gnu.org/packages/project-" version ".tar"))
1005 (sha256
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")
1011 (description
1012 "This library contains generic infrastructure for dealing with projects,
1013 some utility functions, and commands using that infrastructure.")
1014 (license license:gpl3+)))
1015
1016 (define-public git-modes
1017 (package
1018 (name "emacs-git-modes")
1019 (version "1.4.0")
1020 (source
1021 (origin
1022 (method git-fetch)
1023 (uri (git-reference
1024 (url "https://github.com/magit/git-modes")
1025 (commit version)))
1026 (file-name (git-file-name name version))
1027 (sha256
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")
1032 (description
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+)))
1037
1038 (define-public emacs-with-editor
1039 (package
1040 (name "emacs-with-editor")
1041 (version "3.2.0")
1042 (source
1043 (origin
1044 (method git-fetch)
1045 (uri (git-reference
1046 (url "https://github.com/magit/with-editor")
1047 (commit (string-append "v" version))))
1048 (file-name (git-file-name name version))
1049 (sha256
1050 (base32 "1d98hagpm6h5vgx80qlh3zrfcb6z000rfc707w9zzmh634dkg3xx"))))
1051 (build-system emacs-build-system)
1052 (arguments
1053 (list
1054 #:phases
1055 #~(modify-phases %standard-phases
1056 (add-before 'install 'enter-lisp-directory
1057 (lambda _
1058 (chdir "lisp")))
1059 (add-before 'install 'make-info
1060 (lambda _
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")))))))
1065 (native-inputs
1066 (list texinfo))
1067 (propagated-inputs
1068 (list emacs-async))
1069 (home-page "https://github.com/magit/with-editor")
1070 (synopsis "Emacs library for using Emacsclient as EDITOR")
1071 (description
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+)))
1077
1078 (define-public emacs-libgit
1079 (let ((commit "0ef8b13aef011a98b7da756e4f1ce3bb18e4d55a")
1080 (revision "1"))
1081 (package
1082 (name "emacs-libgit")
1083 (version (git-version "20200515" revision commit))
1084 (source (origin
1085 (method git-fetch)
1086 (uri (git-reference
1087 (url "https://github.com/magit/libegit2")
1088 (commit commit)))
1089 (file-name (git-file-name name version))
1090 (sha256
1091 (base32
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"))
1097 (snippet
1098 #~(begin
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)
1103 (arguments
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)
1112 (guix build utils))
1113 #:phases
1114 (modify-phases %standard-phases
1115 (add-after 'unpack 'patch-source
1116 (lambda _
1117 ;; Use Emacs 28 unibyte strings.
1118 ;; XXX: This now breaks if linked against Emacs <= 26, probably
1119 ;; also 27.
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
1130 (lambda _
1131 (let ((s "../source"))
1132 (copy-file "libegit2.so" (string-append s "/libegit2.so"))
1133 (chdir s))))
1134 (replace 'install
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)))))
1152 (native-inputs
1153 (list pkg-config emacs-no-x git-minimal))
1154 (inputs
1155 (list libgit2))
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+))))
1162
1163 (define-public emacs-magit
1164 (let ((commit "36059e0b881cb1465cb5ad0099e55e00845a8222")
1165 (revision "0"))
1166 (package
1167 (name "emacs-magit")
1168 (version (git-version "3.3.0" revision commit))
1169 (source
1170 (origin
1171 (method git-fetch)
1172 (uri (git-reference
1173 (url "https://github.com/magit/magit")
1174 (commit commit)))
1175 (file-name (git-file-name name version))
1176 (sha256
1177 (base32 "12r5z7jbqh74rb9763smh4sblswzwi41wybzcvsy0zhw2r8lpmzv"))))
1178 (build-system emacs-build-system)
1179 (arguments
1180 (list
1181 #:tests? #t
1182 #:test-command #~(list "make" "test")
1183 #:exclude #~(cons* "magit-libgit.el"
1184 "magit-libgit-pkg.el"
1185 %default-exclude)
1186 #:phases
1187 #~(modify-phases %standard-phases
1188 (add-after 'unpack 'build-info-manual
1189 (lambda _
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
1197 (lambda _
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
1212 (lambda _
1213 ;; Otherwise some tests fail with error "unable to auto-detect
1214 ;; email address".
1215 (setenv "HOME" (getcwd))
1216 (invoke "git" "config" "--global" "user.name" "toto")
1217 (invoke "git" "config" "--global" "user.email"
1218 "toto@toto.com")))
1219 (replace 'expand-load-path
1220 (lambda args
1221 (with-directory-excursion "lisp"
1222 (apply (assoc-ref %standard-phases 'expand-load-path) args))))
1223 (replace 'install
1224 (lambda args
1225 (with-directory-excursion "lisp"
1226 (apply (assoc-ref %standard-phases 'install) args)))))))
1227 (native-inputs
1228 (list texinfo))
1229 (inputs
1230 (list git perl))
1231 (propagated-inputs
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")
1235 (description
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+))))
1242
1243 (define-public emacs-magit-svn
1244 (package
1245 (name "emacs-magit-svn")
1246 (version "2.2.3")
1247 (source (origin
1248 (method git-fetch)
1249 (uri (git-reference
1250 (url "https://github.com/magit/magit-svn")
1251 (commit version)))
1252 (file-name (git-file-name name version))
1253 (sha256
1254 (base32
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")
1260 (description
1261 "This package is an extension to Magit, the Git Emacs mode, providing
1262 support for Git-SVN.")
1263 (license license:gpl3+)))
1264
1265 (define-public emacs-magit-popup
1266 (package
1267 (name "emacs-magit-popup")
1268 (version "2.13.3")
1269 (source
1270 (origin
1271 (method git-fetch)
1272 (uri (git-reference
1273 (url "https://github.com/magit/magit-popup")
1274 (commit (string-append "v" version))))
1275 (file-name (git-file-name name version))
1276 (sha256
1277 (base32 "0znp6gx6vpcsybg774ab06mdgxb7sfk3gki1yp2qhkanav13i6q1"))))
1278 (build-system emacs-build-system)
1279 (arguments
1280 `(#:phases
1281 (modify-phases %standard-phases
1282 (add-before 'install 'make-info
1283 (lambda _
1284 (invoke "make" "info"))))))
1285 (native-inputs
1286 (list texinfo))
1287 (propagated-inputs
1288 (list emacs-dash))
1289 (home-page "https://github.com/magit/magit-popup")
1290 (synopsis "Define prefix-infix-suffix command combos")
1291 (description
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+)))
1297
1298 (define-public emacs-magit-annex
1299 (package
1300 (name "emacs-magit-annex")
1301 (version "1.8.1")
1302 (source
1303 (origin
1304 (method git-fetch)
1305 (uri (git-reference
1306 (url "https://github.com/magit/magit-annex")
1307 (commit (string-append "v" version))))
1308 (file-name (git-file-name name version))
1309 (sha256
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")
1315 (description
1316 "Magit-annex adds a few git-annex operations to the Magit interface.")
1317 (license license:gpl3+)))
1318
1319 (define-public emacs-mct
1320 (package
1321 (name "emacs-mct")
1322 (version "0.5.1")
1323 (source (origin
1324 (method git-fetch)
1325 (uri (git-reference
1326 (url "https://gitlab.com/protesilaos/mct")
1327 (commit version)))
1328 (sha256
1329 (base32 "0vmlss546z0x8y26cxb1iis926pwjfv466gwm0clb8jfqkvr0qmh"))
1330 (file-name (git-file-name name version))))
1331 (native-inputs (list texinfo))
1332 (build-system emacs-build-system)
1333 (arguments
1334 (list
1335 #:phases
1336 #~(modify-phases %standard-phases
1337 (add-after 'install 'makeinfo
1338 (lambda _
1339 (invoke "emacs"
1340 "--batch"
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
1355
1356 (define-public emacs-fzf
1357 (let ((commit "21912ebc7e1084aa88c9d8b7715e782a3978ed23")
1358 (revision "0"))
1359 (package
1360 (name "emacs-fzf")
1361 (version (git-version "0.2" revision commit))
1362 (source (origin
1363 (method git-fetch)
1364 (uri (git-reference
1365 (url "https://github.com/bling/fzf.el")
1366 (commit commit)))
1367 (file-name (git-file-name name version))
1368 (sha256
1369 (base32
1370 "0gdqjh8996hb06bnnyhi94k69mjfrzyfgq00a9s4wwagv28sqmkj"))))
1371 (build-system emacs-build-system)
1372 (arguments
1373 (list
1374 #:tests? #f ;no tests
1375 #:phases
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"))))))))
1381 (inputs (list 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
1385 purpose finder.")
1386 (license license:gpl3+))))
1387
1388 (define-public emacs-minions
1389 (package
1390 (name "emacs-minions")
1391 (version "0.3.7")
1392 (source
1393 (origin
1394 (method git-fetch)
1395 (uri (git-reference
1396 (url "https://github.com/tarsius/minions")
1397 (commit (string-append "v" version))))
1398 (file-name (git-file-name name version))
1399 (sha256
1400 (base32 "1bzxxs8mxaihpjkbxgynhsi39lbbnij28grdc3sk9sq09j9752vw"))))
1401 (build-system emacs-build-system)
1402 (propagated-inputs
1403 (list emacs-dash))
1404 (home-page "https://github.com/tarsius/minions")
1405 (synopsis "Minor-mode menu for the mode line")
1406 (description
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
1410 about modes.
1411
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.
1415
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+)))
1419
1420 (define-public emacs-nano-modeline
1421 ;; No tagged release upstream. The commit below matches latest version
1422 ;; bump.
1423 (let ((commit "61f62aa4716eae4fa89961955323d146e9791fca"))
1424 (package
1425 (name "emacs-nano-modeline")
1426 (version "0.7.2")
1427 (source (origin
1428 (method git-fetch)
1429 (uri (git-reference
1430 (url "https://github.com/rougier/nano-modeline")
1431 (commit commit)))
1432 (file-name (git-file-name name version))
1433 (sha256
1434 (base32
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+))))
1443
1444 (define-public emacs-moody
1445 (package
1446 (name "emacs-moody")
1447 (version "0.7.1")
1448 (source
1449 (origin
1450 (method git-fetch)
1451 (uri (git-reference
1452 (url "https://github.com/tarsius/moody")
1453 (commit (string-append "v" version))))
1454 (file-name (git-file-name name version))
1455 (sha256
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")
1460 (description
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+)))
1467
1468 (define-public emacs-acme-theme
1469 (let ((commit "7c408d111c5e451ecb8fdd5f76cf7d8074aec793")
1470 (revision "0"))
1471 (package
1472 (name "emacs-acme-theme")
1473 (version (git-version "1.0.0" revision commit))
1474 (source
1475 (origin
1476 (method git-fetch)
1477 (uri
1478 (git-reference
1479 (url "https://github.com/ianyepan/acme-emacs-theme")
1480 (commit commit)))
1481 (file-name (git-file-name name version))
1482 (sha256
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+))))
1490
1491 (define-public emacs-theme-magic
1492 ;; No tagged release upstream, but the commit below correspond to the 0.2.3
1493 ;; release.
1494 (let ((commit "844c4311bd26ebafd4b6a1d72ddcc65d87f074e3")
1495 (revision "0"))
1496 (package
1497 (name "emacs-theme-magic")
1498 (version "0.2.3")
1499 (source
1500 (origin
1501 (method git-fetch)
1502 (uri (git-reference
1503 (url "https://github.com/jcaw/theme-magic")
1504 (commit commit)))
1505 (file-name (git-file-name name version))
1506 (sha256
1507 (base32 "10gkg7jh1s1484gm66a87zr7x8vmv00s7gfd0w2pj47nqf98g8hz"))))
1508 (build-system emacs-build-system)
1509 (arguments
1510 (list
1511 ;; Include Pywal interaction scripts.
1512 #:include #~(cons "^python/" %default-include)
1513 #:phases
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")
1518 (("\"python\"")
1519 (string-append "\""
1520 (search-input-file inputs "/bin/python3")
1521 "\""))
1522 (("\"wal\"")
1523 (string-append "\""
1524 (search-input-file inputs "/bin/wal")
1525 "\""))))))))
1526 (inputs
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")
1530 (description
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+))))
1535
1536 (define-public emacs-vscode-dark-plus
1537 (package
1538 (name "emacs-vscode-dark-plus")
1539 (version "2.0.0")
1540 (source
1541 (origin
1542 (method git-fetch)
1543 (uri (git-reference
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))
1547 (sha256
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")
1552 (description
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+)))
1556
1557 (define-public emacs-theme-sorcery
1558 (let ((revision "0")
1559 (commit "5a1c4445b9e6e09589a299a9962a6973272a0c2f"))
1560 (package
1561 (name "emacs-theme-sorcery")
1562 (version "1.0")
1563 (source
1564 (origin
1565 (method git-fetch)
1566 (uri (git-reference
1567 (url "https://github.com/mtreca/emacs-theme-sorcery")
1568 (commit commit)))
1569 (file-name (git-file-name name version))
1570 (sha256
1571 (base32 "1b858049n6nw4qf60fmszjrhl80x7ssh32f7glj722kwy7404kdh"))))
1572 (build-system emacs-build-system)
1573 (propagated-inputs
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+))))
1580
1581 (define-public emacs-suneater-theme
1582 (package
1583 (name "emacs-suneater-theme")
1584 (version "2.0.0")
1585 (source
1586 (origin
1587 (method git-fetch)
1588 (uri (git-reference
1589 (url "https://git.sr.ht/~plattfot/suneater-theme")
1590 (commit version)))
1591 (sha256
1592 (base32
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")
1598 (description
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+)))
1602
1603 (define-public emacs-treepy
1604 (package
1605 (name "emacs-treepy")
1606 (version "0.1.2")
1607 (source (origin
1608 (method git-fetch)
1609 (uri (git-reference
1610 (url "https://github.com/volrath/treepy.el")
1611 (commit version)))
1612 (file-name (git-file-name name version))
1613 (sha256
1614 (base32
1615 "0pmrpij80m5kgcr8bw36r8wllgppasw08vn3ghwvis9srpaq75cn"))))
1616 (build-system emacs-build-system)
1617 (home-page
1618 "https://github.com/volrath/treepy.el")
1619 (synopsis "Tree traversal tools")
1620 (description
1621 "Generic tools for recursive and iterative tree traversal based on
1622 clojure.walk and clojure.zip respectively.")
1623 (license license:gpl3+)))
1624
1625 (define-public emacs-typing
1626 (let ((commit "a2ef25dde2d8eb91bd9c0c6164cb5208208647fa")
1627 (revision "0"))
1628 (package
1629 (name "emacs-typing")
1630 (version (git-version "1.1.4" revision commit))
1631 (source
1632 (origin
1633 (method git-fetch)
1634 (uri (git-reference
1635 (url "https://github.com/kensanata/typing")
1636 (commit commit)))
1637 (file-name (git-file-name name version))
1638 (sha256
1639 (base32
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+))))
1648
1649 (define-public emacs-graphql
1650 (let ((commit "b57b5ca5d2d0837e1fb4a4f30c051d5f3e643f0f")) ;version bump
1651 (package
1652 (name "emacs-graphql")
1653 (version "0.1.2")
1654 (source (origin
1655 (method git-fetch)
1656 (uri (git-reference
1657 (url "https://github.com/vermiculus/graphql.el")
1658 (commit commit)))
1659 (file-name (git-file-name name version))
1660 (sha256
1661 (base32
1662 "18k2c2b7y5qgc7qpkqjmz1nv61w470ja3vwprmy5dlkzficzqsvf"))))
1663 (build-system emacs-build-system)
1664 (arguments
1665 (list
1666 #:tests? #true
1667 #:test-command #~(list "ert-runner")
1668 #:phases
1669 #~(modify-phases %standard-phases
1670 (add-after 'unpack 'skip-failing-test
1671 (lambda _
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")
1679 (description
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+))))
1685
1686 (define-public emacs-graphql-mode
1687 ;; No tagged commit. No "Version" keyword either.
1688 (let ((commit "9bed568ec86242dbe30bdbab324aa0eb2cd9bf08")
1689 (revision "1"))
1690 (package
1691 (name "emacs-graphql-mode")
1692 (version (git-version "0" revision commit))
1693 (source
1694 (origin
1695 (method git-fetch)
1696 (uri (git-reference
1697 (url "https://github.com/davazp/graphql-mode")
1698 (commit commit)))
1699 (file-name (git-file-name name version))
1700 (sha256
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")
1705 (description
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.
1709
1710 Files with the @file{.graphql} and @file{.gql} extensions are
1711 automatically opened with this mode.")
1712 (license license:gpl3+))))
1713
1714 (define-public emacs-ghq
1715 (package
1716 (name "emacs-ghq")
1717 (version "0.1.2")
1718 (source
1719 (origin
1720 (method git-fetch)
1721 (uri (git-reference
1722 (url "https://github.com/rcoedo/emacs-ghq")
1723 (commit (string-append "v" version))))
1724 (file-name (git-file-name name version))
1725 (sha256
1726 (base32 "0rh2k93c3a0vl073a3s3a3h6gkw454v1lyd7y8l3pd24vw9hc628"))))
1727 (build-system emacs-build-system)
1728 (propagated-inputs
1729 (list ghq))
1730 (home-page "https://github.com/rcoedo/emacs-ghq")
1731 (synopsis "Emacs interface for @code{ghq} tool")
1732 (description
1733 "This package provides a set of functions wrapping @code{ghq}, a tool for
1734 organizing remote Go repository clones.")
1735 (license license:gpl3+)))
1736
1737 (define-public emacs-ghub
1738 (package
1739 (name "emacs-ghub")
1740 (version "3.5.6")
1741 (source
1742 (origin
1743 (method git-fetch)
1744 (uri (git-reference
1745 (url "https://github.com/magit/ghub")
1746 (commit (string-append "v" version))))
1747 (file-name (git-file-name name version))
1748 (sha256
1749 (base32 "1pw1rjrvvanlcxv3rb64s2p646zfaipp7h7v8djlrrnlgy6mwbqd"))))
1750 (build-system emacs-build-system)
1751 (arguments
1752 (list
1753 #:phases
1754 #~(modify-phases %standard-phases
1755 (add-before 'install 'make-info
1756 (lambda _
1757 (invoke "make" "info")))
1758 (add-after 'make-info 'enter-lisp-directory
1759 (lambda _
1760 (chdir "lisp")))
1761 (add-after 'expand-load-path 'add-el-dir-to-emacs-load-path
1762 (lambda _
1763 (setenv "EMACSLOADPATH"
1764 (string-append (getcwd)
1765 "/lisp:"
1766 (getenv "EMACSLOADPATH")))))
1767 (add-after 'install 'install-info
1768 (lambda _
1769 (let ((info (string-append #$output "/share/info")))
1770 (install-file "../docs/ghub.info" info)))))))
1771 (native-inputs
1772 (list texinfo))
1773 (propagated-inputs
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")
1777 (description
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+)))
1783
1784 (define-public emacs-typit
1785 (package
1786 (name "emacs-typit")
1787 (version "0.3.0")
1788 (source
1789 (origin
1790 (method git-fetch)
1791 (uri (git-reference
1792 (url "https://github.com/mrkkrp/typit")
1793 (commit version)))
1794 (file-name (git-file-name name version))
1795 (sha256
1796 (base32 "0djxmni5mfc9wzm0zg7fsd7138ic5qznbmqd5jyrk4mpf0li8nhy"))))
1797 (build-system emacs-build-system)
1798 (arguments
1799 '(#:include (cons "^dict/" %default-include)))
1800 (propagated-inputs
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,
1806 until time is up.")
1807 (license license:gpl3+)))
1808
1809 (define-public emacs-scribble-mode
1810 (let ((commit "217945d54de5e4bb207033f2116baa28f5c5ecf2")
1811 (revision "2"))
1812 (package
1813 (name "emacs-scribble-mode")
1814 (version (git-version "0.1" revision commit))
1815 (source (origin
1816 (method git-fetch)
1817 (uri (git-reference
1818 (url "https://github.com/emacs-pe/scribble-mode")
1819 (commit commit)))
1820 (file-name (git-file-name name version))
1821 (sha256
1822 (base32
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")
1827 (description
1828 "This package provides basic syntax highlighting and editing support
1829 for editing Racket's Scribble documentation syntax in Emacs.")
1830 (license license:gpl3+))))
1831
1832 (define-public emacs-shroud
1833 (package
1834 (name "emacs-shroud")
1835 (version "1.105")
1836 (source
1837 (origin
1838 (method git-fetch)
1839 (uri (git-reference
1840 (url "https://git.savannah.gnu.org/git/emacs-shroud.git")
1841 (commit version)))
1842 (file-name (git-file-name name version))
1843 (sha256
1844 (base32 "0q2pb3w8s833fjhkzicciw2php4lsnismad1dnwgp2lcway757ra"))))
1845 (build-system gnu-build-system)
1846 (arguments
1847 `(#:modules ((guix build gnu-build-system)
1848 ((guix build emacs-build-system) #:prefix emacs:)
1849 (guix build utils))
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)))
1855 #:phases
1856 (modify-phases %standard-phases
1857 (add-after 'unpack 'expand-load-path
1858 (assoc-ref emacs:%standard-phases 'expand-load-path)))))
1859 (native-inputs
1860 (list autoconf automake texinfo perl emacs-minimal))
1861 (propagated-inputs
1862 (list emacs-bui
1863 emacs-dash
1864 emacs-f
1865 emacs-s
1866 gnupg
1867 shroud))
1868 (home-page "https://www.nongnu.org/emacs-shroud")
1869 (synopsis "Emacs interface to the Shroud password manager")
1870 (description
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+)))
1875
1876 (define-public emacs-solidity
1877 ;; This commit fixes a spacing issue and adds new keywords.
1878 (let ((commit "d166a86b83907e0cfd64c191e9dfce4b44a9843e")
1879 (revision "0"))
1880 (package
1881 (name "emacs-solidity")
1882 (version (git-version "0.1.10" revision commit))
1883 (source
1884 (origin
1885 (method git-fetch)
1886 (uri (git-reference
1887 (url "https://github.com/ethereum/emacs-solidity")
1888 (commit commit)))
1889 (file-name (git-file-name name version))
1890 (sha256
1891 (base32 "19hgvsrqch2vp49ag6m76bi5qxd20v95z0ib838rib9as15b17wq"))))
1892 (build-system emacs-build-system)
1893 (propagated-inputs
1894 (list emacs-company emacs-flycheck))
1895 (home-page "https://github.com/ethereum/emacs-solidity")
1896 (synopsis "Major mode for writing Solidity code")
1897 (description
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+))))
1901
1902 (define-public emacs-unpackaged-el
1903 (let ((commit "746801a677ada6cd6fa076e423aa0953779f3fad")
1904 (revision "3"))
1905 (package
1906 (name "emacs-unpackaged-el")
1907 (version (git-version "0" revision commit))
1908 (source
1909 (origin
1910 (method git-fetch)
1911 (uri (git-reference
1912 (url "https://github.com/alphapapa/unpackaged.el")
1913 (commit commit)))
1914 (file-name (git-file-name name version))
1915 (sha256
1916 (base32
1917 "0jvb2ci0h0lj368qhbff3pzkxj3nhlligpbkjzi525k9rkjgm7l8"))))
1918 (build-system emacs-build-system)
1919 (propagated-inputs
1920 (list emacs-dash emacs-org emacs-s emacs-hydra emacs-use-package))
1921 (arguments
1922 (list
1923 #:phases
1924 #~(modify-phases %standard-phases
1925 (add-after 'unpack 'require-hydra
1926 (lambda _
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
1933 replacement.")
1934 (license license:gpl3+))))
1935
1936 (define-public emacs-haskell-mode
1937 (let ((revision "0")
1938 (commit "5a9f8072c7b9168f0a8409adf9d62a3e4ad4ea3d"))
1939 (package
1940 (name "emacs-haskell-mode")
1941 (version (git-version "17.2" revision commit))
1942 (source
1943 (origin
1944 (method git-fetch)
1945 (uri (git-reference
1946 (url "https://github.com/haskell/haskell-mode")
1947 (commit commit)))
1948 (file-name (git-file-name name version))
1949 (sha256
1950 (base32 "0np1wrwdq7b9hpqpl9liampacnkx6diphyk8h2sbz2mfn9qr7pxs"))))
1951 (propagated-inputs
1952 (list emacs-dash))
1953 (native-inputs
1954 (list emacs-minimal emacs-el-search emacs-stream texinfo))
1955 (build-system gnu-build-system)
1956 (arguments
1957 (list
1958 #:make-flags #~(list
1959 (string-append "EMACS=" #$emacs-minimal "/bin/emacs"))
1960 #:modules `((ice-9 match)
1961 (srfi srfi-26)
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))
1967 #:phases
1968 #~(modify-phases %standard-phases
1969 (delete 'configure)
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))
1975 (_ "")))
1976
1977 (let ((sh (search-input-file inputs "/bin/sh")))
1978 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
1979
1980 (setenv "SHELL" "sh")
1981 (setenv "EMACSLOADPATH"
1982 (string-concatenate
1983 (map (match-lambda
1984 (((? emacs-prefix? name) . dir)
1985 (string-append (el-dir dir) ":"))
1986 (_ ""))
1987 inputs)))
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
1991 ;; native input.
1992 (lambda _
1993 (with-directory-excursion "tests"
1994 ;; File `haskell-indent-tests.el' fails with
1995 ;; `haskell-indent-put-region-in-literate-2'
1996 ;; on Emacs 27.1+
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"))
2002
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)"))))))
2007 (replace 'install
2008 (lambda* (#:key outputs #:allow-other-keys)
2009 (let* ((out (assoc-ref outputs "out"))
2010 (el-dir (emacs:elpa-directory out))
2011 (doc (string-append
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))
2017 files))
2018
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")
2026 (description
2027 "This is an Emacs mode for editing, debugging and developing Haskell
2028 programs.")
2029 (license license:gpl3+))))
2030
2031 (define-public emacs-dante
2032 (package
2033 (name "emacs-dante")
2034 (version "1.7")
2035 (source (origin
2036 (method git-fetch)
2037 (uri (git-reference
2038 (url "https://github.com/jyp/dante")
2039 (commit version)))
2040 (sha256
2041 (base32
2042 "0q7hackvaplh1f645ngd76f2ls5mvg93xicr3rkxr07hd36yihag"))
2043 (file-name (git-file-name name version))))
2044 (build-system emacs-build-system)
2045 (propagated-inputs
2046 (list emacs-company
2047 emacs-dash
2048 emacs-f
2049 emacs-flycheck
2050 emacs-haskell-mode
2051 emacs-lcr
2052 emacs-s))
2053 (home-page "https://github.com/jyp/dante")
2054 (synopsis "Minor mode for interactive Haskell")
2055 (description
2056 "This package provides a minor mode for Haskell development that
2057 supports type hints, definition-jumping, completion, and more.")
2058 (license license:gpl3+)))
2059
2060 (define-public emacs-flycheck
2061 (package
2062 (name "emacs-flycheck")
2063 (version "32")
2064 (source
2065 (origin
2066 (method git-fetch)
2067 (uri (git-reference
2068 (url "https://github.com/flycheck/flycheck/")
2069 (commit version)))
2070 (sha256
2071 (base32 "0dx6wqxz1yfp4shas4yn6abqc8bz21ks3glcyzznm3xspjdaq21s"))
2072 (file-name (git-file-name name version))))
2073 (build-system emacs-build-system)
2074 (propagated-inputs
2075 (list emacs-dash))
2076 (native-inputs
2077 (list emacs-shut-up))
2078 (arguments
2079 (list
2080 #:phases
2081 #~(modify-phases %standard-phases
2082 (add-after 'unpack 'change-flycheck-version
2083 (lambda _
2084 (substitute* "flycheck.el"
2085 (("\\(pkg-info-version-info 'flycheck\\)")
2086 (string-append "\"" #$version "\""))))))
2087 ;; TODO: many failing tests
2088 #:tests? #f
2089 #:test-command
2090 #~(list "emacs" "-Q" "--batch"
2091 "-L" "."
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")
2097 (description
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.
2101
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
2107
2108 (define-public emacs-flymake-collection
2109 (package
2110 (name "emacs-flymake-collection")
2111 (version "1.0.1")
2112 (source
2113 (origin
2114 (method git-fetch)
2115 (uri (git-reference
2116 (url "https://github.com/mohkale/flymake-collection")
2117 (commit (string-append "v" version))))
2118 (file-name (git-file-name name version))
2119 (sha256
2120 (base32
2121 "1dxy1bljvd8rar0pivdrfahmgnnjlxm0mlks8mzw3l7k7b7jar6k"))))
2122 (build-system emacs-build-system)
2123 (arguments
2124 (list
2125 #:phases
2126 #~(modify-phases %standard-phases
2127 (add-after 'unpack 'chdir
2128 (lambda _
2129 (chdir "src")))
2130 (add-after 'chdir 'move-checkers
2131 (lambda _
2132 ;; Move checkers to the top level, which is in the
2133 ;; EMACSLOADPATH.
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")
2139 (description
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
2143 modes.")
2144 (license license:expat)))
2145
2146 (define-public emacs-flymake-flycheck
2147 (package
2148 (name "emacs-flymake-flycheck")
2149 (version "20210404.2128")
2150 (source
2151 (origin
2152 (method url-fetch)
2153 (uri (string-append "https://melpa.org/packages/flymake-flycheck-"
2154 version ".el"))
2155 (sha256
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")
2161 (description
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+)))
2166
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")
2170 (revision "0")
2171 (commit "150c5839768a3d32f988f9dc08052978a68f2ad7"))
2172 (package
2173 (name "emacs-flymake-quickdef")
2174 (version (git-version version revision commit))
2175 (source
2176 (origin
2177 (method git-fetch)
2178 (uri (git-reference
2179 (url "https://github.com/karlotness/flymake-quickdef")
2180 (commit commit)))
2181 (file-name (git-file-name name version))
2182 (sha256
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")
2187 (description
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+))))
2191
2192 (define-public emacs-flymake-kondor
2193 (package
2194 (name "emacs-flymake-kondor")
2195 (version "0.1.3")
2196 (source
2197 (origin
2198 (method git-fetch)
2199 (uri (git-reference
2200 (url "https://github.com/turbo-cafe/flymake-kondor")
2201 (commit version)))
2202 (file-name (git-file-name name version))
2203 (sha256
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+)))
2210
2211 (define-public emacs-flymake-shellcheck
2212 ;; No tag, version grabbed from source .el file.
2213 (let ((commit "ac534e9ef15c82ac86ae65fe5004d29dbc8c92c7")
2214 (revision "1"))
2215 (package
2216 (name "emacs-flymake-shellcheck")
2217 (version (git-version "0.1" revision commit))
2218 (source
2219 (origin
2220 (method git-fetch)
2221 (uri (git-reference
2222 (url "https://github.com/federicotdn/flymake-shellcheck")
2223 (commit commit)))
2224 (file-name (git-file-name name version))
2225 (sha256
2226 (base32 "04yfb4sy41spjzk9mhm4gy0h8vnjx09p2g6nm1yzgd9a5ph9sqgl"))))
2227 (build-system emacs-build-system)
2228 (arguments
2229 '(#:phases
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")))))))))
2239 (inputs
2240 (list shellcheck))
2241 (home-page "https://github.com/federicotdn/flymake-shellcheck")
2242 (synopsis "Flymake backend for Bash/Sh powered by ShellCheck")
2243 (description
2244 "This package provides a backend for Flymake to use the
2245 tool ShellCheck for static analyzing @command{bash} and @command{sh}
2246 scripts.")
2247 (license license:gpl3+))))
2248
2249 (define-public emacs-a
2250 (package
2251 (name "emacs-a")
2252 (version "1.0.0")
2253 (source (origin
2254 (method git-fetch)
2255 (uri (git-reference
2256 (url "https://github.com/plexus/a.el")
2257 (commit (string-append "v" version))))
2258 (file-name (git-file-name name version))
2259 (sha256
2260 (base32 "0zkv4xvw1jdsfxqqkxskl2l380gfs13n86hj4hhzrqf0sb6aymws"))))
2261 (build-system emacs-build-system)
2262 (home-page "https://github.com/plexus/a.el/")
2263 (synopsis
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+)))
2270
2271 (define-public emacs-ace-jump-mode
2272 (package
2273 (name "emacs-ace-jump-mode")
2274 (version "2.0")
2275 (home-page "https://github.com/winterTTr/ace-jump-mode")
2276 (source (origin
2277 (method git-fetch)
2278 (uri (git-reference
2279 (url home-page)
2280 (commit (string-append "v" version))))
2281 (sha256
2282 (base32
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
2291 directly.")
2292 (license license:gpl3+)))
2293
2294 (define-public emacs-ahg
2295 ;; No tags; commit from 2021-04-12.
2296 (let ((commit "77bc2a628df006dcd2dc359ac12acdf8091a1356")
2297 (revision "0"))
2298 (package
2299 (name "emacs-ahg")
2300 (version (git-version "1.0.0" revision commit))
2301 (source (origin
2302 (method git-fetch)
2303 (uri (git-reference
2304 (url "https://bitbucket.org/agriggio/ahg")
2305 (commit commit)))
2306 (file-name (git-file-name name version))
2307 (sha256
2308 (base32
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")
2313 (description
2314 "This package provides a simple Emacs front-end for the Mercurial
2315 Distributed @acronym{Source Control Management, SCM} system.")
2316 (license license:gpl3+))))
2317
2318 (define-public emacs-alarm-clock
2319 (package
2320 (name "emacs-alarm-clock")
2321 (version "1.0.3")
2322 (source (origin
2323 (method git-fetch)
2324 (uri (git-reference
2325 (url "https://github.com/wlemuel/alarm-clock")
2326 (commit (string-append "v" version))))
2327 (file-name (git-file-name name version))
2328 (sha256
2329 (base32
2330 "02gr5scf50js00xa1chvd0j7agr8bys5madzk96fwg0s4gfdmyqa"))))
2331 (build-system emacs-build-system)
2332 (arguments
2333 (list #:include #~(cons "alarm.mp3" %default-include)
2334 #:phases
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"))
2339 (notify-send
2340 (search-input-file inputs "/bin/notify-send")))
2341 (substitute* "alarm-clock.el"
2342 (("\"mpg123\"") (string-append "\"" mpg123 "\""))
2343 (("notify-send") notify-send))))))))
2344 (inputs
2345 (list libnotify mpg123))
2346 (propagated-inputs
2347 (list emacs-f))
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+)))
2352
2353 (define-public emacs-anaphora
2354 (package
2355 (name "emacs-anaphora")
2356 (version "1.0.4")
2357 (source
2358 (origin
2359 (method git-fetch)
2360 (uri (git-reference
2361 (url "https://github.com/rolandwalker/anaphora")
2362 (commit (string-append "v" version))))
2363 (file-name (git-file-name name version))
2364 (sha256
2365 (base32
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
2371 Emacs Lisp.
2372
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)))
2377
2378 (define-public emacs-xah-fly-keys
2379 (package
2380 (name "emacs-xah-fly-keys")
2381 (version "17.13.20220526011611")
2382 (source (origin
2383 (method git-fetch)
2384 (uri (git-reference
2385 (url "https://github.com/xahlee/xah-fly-keys")
2386 (commit "b1b1ea62c3f1a329376d9125592175cf2027ebc7")))
2387 (file-name (git-file-name name version))
2388 (sha256
2389 (base32
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
2394 ergonomics")
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)))
2399
2400 (define-public emacs-xr
2401 (package
2402 (name "emacs-xr")
2403 (version "1.23")
2404 (source
2405 (origin
2406 (method url-fetch)
2407 (uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar"))
2408 (sha256
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")
2413 (description
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:
2416
2417 @itemize
2418 @item Migrating existing code to @code{rx} form, for better readability and
2419 maintainability
2420 @item Understanding complex regexp strings and finding errors in them
2421 @end itemize
2422
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+)))
2427
2428 (define-public emacs-ample-regexps
2429 (let ((commit "153969ce547afe410b8986f01c9ed4087c9cd20b")
2430 (revision "2"))
2431 (package
2432 (name "emacs-ample-regexps")
2433 (version (git-version "0.1" revision commit))
2434 (source
2435 (origin
2436 (method git-fetch)
2437 (uri (git-reference
2438 (url "https://github.com/immerrr/ample-regexps.el")
2439 (commit commit)))
2440 (file-name (git-file-name name version))
2441 (sha256
2442 (base32
2443 "0dkp7bcd7h2ds40wyszy11nmh7c2jxrwy04ayz7pbxh53ir7s2k0"))))
2444 (build-system emacs-build-system)
2445 (native-inputs
2446 (list emacs-ert-runner))
2447 (arguments
2448 `(#:tests? #t
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")
2452 (description
2453 "This package allows common parts of regexps to be easily picked out
2454 and reused.")
2455 (license license:gpl3+))))
2456
2457 (define-public emacs-airline-themes
2458 (package
2459 (name "emacs-airline-themes")
2460 (version "1.8")
2461 (source
2462 (origin
2463 (method git-fetch)
2464 (uri (git-reference
2465 (url "https://github.com/AnthonyDiGirolamo/airline-themes")
2466 (commit version)))
2467 (file-name (git-file-name name version))
2468 (sha256
2469 (base32 "1jx17g8a6pxkw4zlx3fwhqgxfzcf3019k8fklykamfrkharzsc2l"))))
2470 (build-system emacs-build-system)
2471 (propagated-inputs
2472 (list emacs-powerline))
2473 (home-page "https://github.com/AnthonyDiGirolamo/airline-themes")
2474 (synopsis "Vim-airline themes for Emacs Powerline")
2475 (description
2476 "This is a port of the themes in Vim-airline to Emacs Powerline.")
2477 (license license:expat)))
2478
2479 (define-public emacs-ample-theme
2480 (let ((commit "536966adf882446165a1f756830028faa792c7a9")
2481 (revision "1"))
2482 (package
2483 (name "emacs-ample-theme")
2484 (version (git-version "0.0.0" revision commit))
2485 (source (origin
2486 (method git-fetch)
2487 (uri (git-reference
2488 (url "https://github.com/jordonbiondo/ample-theme")
2489 (commit commit)))
2490 (file-name (git-file-name name version))
2491 (sha256
2492 (base32
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
2500 terminals.")
2501 (license license:gpl3+))))
2502
2503 (define-public emacs-reformatter
2504 (package
2505 (name "emacs-reformatter")
2506 (version "0.6")
2507 (source
2508 (origin
2509 (method git-fetch)
2510 (uri (git-reference
2511 (url "https://github.com/purcell/reformatter.el")
2512 (commit version)))
2513 (file-name (git-file-name name version))
2514 (sha256
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")
2519 (description
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+)))
2524
2525 (define-public emacs-relative-buffers
2526 (let ((release "0.0.1")
2527 (revision "0")
2528 (commit "9762fe268e9ff150dcec2e2e45d862d82d5c4008"))
2529 (package
2530 (name "emacs-relative-buffers")
2531 (version (git-version release revision commit))
2532 (source
2533 (origin
2534 (method git-fetch)
2535 (uri (git-reference
2536 (url "https://github.com/emacsattic/relative-buffers")
2537 (commit commit)))
2538 (file-name (git-file-name name version))
2539 (sha256
2540 (base32 "0fzhwbpyndwrmxip9zlcwkrr675l5pzwcygi45hv7w1hn39w0hxp"))
2541 (snippet
2542 '(begin
2543 ;; Delete the Cask test runners.
2544 (for-each delete-file '("Cask" "test/test-helper.el"))))))
2545 (build-system emacs-build-system)
2546 (arguments
2547 (list
2548 #:tests? #t
2549 #:test-command #~(list "ert-runner")))
2550 (native-inputs
2551 (list emacs-ert-runner))
2552 (propagated-inputs
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")
2556 (description
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
2560 project root.")
2561 (license license:gpl3+))))
2562
2563 (define-public emacs-relint
2564 (package
2565 (name "emacs-relint")
2566 (version "1.20")
2567 (source
2568 (origin
2569 (method url-fetch)
2570 (uri (string-append "https://elpa.gnu.org/packages/"
2571 "relint-" version ".tar"))
2572 (sha256
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")
2578 (description
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+)))
2584
2585 (define-public emacs-bug-hunter
2586 (let ((commit "b88d981afa9154b236c5a3a83b50d5889d46c6a7")
2587 (revision "1"))
2588 (package
2589 (name "emacs-bug-hunter")
2590 (version (git-version "1.3.1" revision commit))
2591 (source
2592 (origin
2593 (method git-fetch)
2594 (uri (git-reference
2595 (url "https://github.com/Malabarba/elisp-bug-hunter")
2596 (commit commit)))
2597 (file-name (git-file-name name commit))
2598 (sha256
2599 (base32
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")
2604 (description
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+))))
2609
2610 \f
2611 ;;;
2612 ;;; Web browsing.
2613 ;;;
2614
2615 (define-public emacs-w3m
2616 ;; Emacs-w3m follows a "rolling release" model.
2617 (package
2618 (name "emacs-w3m")
2619 (version "20220508.2259")
2620 (source (origin
2621 ;; "Officially" this is still on cvs.namazu.org, but that repo
2622 ;; seems to be unreachable.
2623 (method git-fetch)
2624 (uri (git-reference
2625 (url "https://github.com/emacs-w3m/emacs-w3m.git")
2626 (commit "bbcebbe20ebfa807a3e4beaadf40ce6f4be213e7")))
2627 (file-name (git-file-name name version))
2628 (sha256
2629 (base32
2630 "0y892n8jaxzyxi1fgyklc7zfh57ibp4yyywmif69dm28hykj6lmz"))))
2631 (build-system gnu-build-system)
2632 (native-inputs (list autoconf texinfo emacs-minimal))
2633 (inputs (list w3m imagemagick))
2634 (arguments
2635 (list
2636 #:modules '((guix build gnu-build-system)
2637 ((guix build emacs-build-system) #:prefix emacs:)
2638 (guix build utils)
2639 (guix build emacs-utils))
2640 #:imported-modules `(,@%gnu-build-system-modules
2641 (guix build emacs-build-system)
2642 (guix build emacs-utils))
2643 #:configure-flags
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
2652 #:phases
2653 #~(modify-phases %standard-phases
2654 (add-after 'unpack 'autoconf
2655 (lambda _
2656 (invoke "autoconf")))
2657 (add-before 'configure 'support-emacs!
2658 (lambda _
2659 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
2660 ;; unsupported.
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"))))))
2678 (replace 'install
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")
2687 (description
2688 "Emacs-w3m is an emacs interface for the w3m web browser.")
2689 (license license:gpl2+)))
2690
2691 (define-public emacs-wget
2692 (package
2693 (name "emacs-wget")
2694 (version "0.5.0")
2695 (source
2696 (origin
2697 (method url-fetch)
2698 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
2699 version ".orig.tar.gz"))
2700 (sha256
2701 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
2702 (build-system emacs-build-system)
2703 (inputs (list wget))
2704 (native-inputs
2705 (list emacs-minimal))
2706 (arguments
2707 `(#:tests? #f ;no check target
2708 #:phases
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")
2716 (description
2717 "Emacs-wget is an emacs interface for the wget file downloader.")
2718 (license license:gpl2+)))
2719
2720 (define-public emacs-eww-lnum
2721 (package
2722 (name "emacs-eww-lnum")
2723 (version "1.1")
2724 (source (origin
2725 (method git-fetch)
2726 (uri (git-reference
2727 (url "https://github.com/m00natic/eww-lnum")
2728 (commit version)))
2729 (file-name (git-file-name name version))
2730 (sha256
2731 (base32
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+)))
2742
2743
2744 \f
2745 ;;;
2746 ;;; Multimedia.
2747 ;;;
2748
2749 (define emacs-emms-print-metadata
2750 (package
2751 (name "emacs-emms-print-metadata")
2752 (version "12")
2753 (source
2754 (origin
2755 (method url-fetch)
2756 (uri (string-append "https://elpa.gnu.org/packages/"
2757 "emms-" version ".tar"))
2758 (sha256
2759 (base32 "048ijrpw6s4k7zr78fzc3ksjjri6mnyp6c47h5lp5nw5gvm4np7a"))))
2760 (build-system gnu-build-system)
2761 (arguments
2762 (list
2763 #:make-flags #~(list "emms-print-metadata")
2764 #:tests? #f ; No tests.
2765 #:phases
2766 #~(modify-phases %standard-phases
2767 (delete 'configure)
2768 (replace 'install
2769 (lambda _
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")))))))
2774 (inputs
2775 (list taglib))
2776 (home-page "https://www.gnu.org/software/emms/")
2777 (synopsis "The Emacs Multimedia System")
2778 (description
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+)))
2785
2786 (define-public emacs-emms
2787 (package
2788 (inherit emacs-emms-print-metadata)
2789 (name "emacs-emms")
2790 (build-system emacs-build-system)
2791 (arguments
2792 `(#:phases
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 "\"")))))))))
2837 (inputs
2838 (list emacs-emms-print-metadata
2839 alsa-utils
2840 flac ;for metaflac
2841 vorbis-tools
2842 mpg321
2843 mp3info
2844 python-mutagen
2845 perl-image-exiftool
2846 opus-tools))))
2847
2848 (define-public emacs-emms-mode-line-cycle
2849 (package
2850 (name "emacs-emms-mode-line-cycle")
2851 (version "0.2.5")
2852 (source
2853 (origin
2854 (method git-fetch)
2855 (uri (git-reference
2856 (url "https://github.com/momomo5717/emms-mode-line-cycle")
2857 (commit version)))
2858 (file-name (git-file-name name version))
2859 (sha256
2860 (base32
2861 "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp"))))
2862 (build-system emacs-build-system)
2863 (propagated-inputs
2864 (list emacs-emms))
2865 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
2866 (synopsis "Display the EMMS mode line as a ticker")
2867 (description
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+)))
2871
2872 (define-public emacs-emprise
2873 (package
2874 (name "emacs-emprise")
2875 (version "0.3.0")
2876 (source
2877 (origin
2878 (method git-fetch)
2879 (uri (git-reference
2880 (url "https://git.sr.ht/~plattfot/emprise")
2881 (commit (string-append "v" version))))
2882 (sha256
2883 (base32
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
2893 Selectrum.")
2894 (license license:gpl3+)))
2895
2896 (define-public emacs-marginalia-emprise
2897 (package
2898 (name "emacs-marginalia-emprise")
2899 (version "0.2.0")
2900 (source
2901 (origin
2902 (method git-fetch)
2903 (uri (git-reference
2904 (url "https://git.sr.ht/~plattfot/marginalia-emprise")
2905 (commit (string-append "v" version))))
2906 (sha256
2907 (base32
2908 "1kbk3kgvv1k5zdysvpgcsbxiwn4la3vvnmv3sbzxq7q5v5cr4a54"))
2909 (file-name (git-file-name name version))))
2910 (build-system emacs-build-system)
2911 (propagated-inputs
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+)))
2918
2919 \f
2920 ;;;
2921 ;;; Miscellaneous.
2922 ;;;
2923
2924 (define-public emacs-ace-link
2925 (package
2926 (name "emacs-ace-link")
2927 (version "0.5.0")
2928 (source
2929 (origin
2930 (method git-fetch)
2931 (uri (git-reference
2932 (url "https://github.com/abo-abo/ace-link")
2933 (commit version)))
2934 (file-name (git-file-name name version))
2935 (sha256
2936 (base32
2937 "147dz79vg4ym5wg3d544bw2khdb2j3hr73rw4qfm64wf0q2dj0vk"))))
2938 (build-system emacs-build-system)
2939 (propagated-inputs
2940 (list emacs-avy))
2941 (home-page "https://github.com/abo-abo/ace-link")
2942 (synopsis "Quickly follow links in Emacs")
2943 (description
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+)))
2951
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")
2956 (revision "0"))
2957 (package
2958 (name "emacs-app-launcher")
2959 (version (git-version "0.1" revision commit))
2960 (source
2961 (origin
2962 (method git-fetch)
2963 (uri (git-reference
2964 (url "https://github.com/SebastienWae/app-launcher")
2965 (commit commit)))
2966 (file-name (git-file-name name version))
2967 (sha256
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+))))
2976
2977 (define-public emacs-alchemist
2978 (package
2979 (name "emacs-alchemist")
2980 (version "1.8.2")
2981 (source
2982 (origin
2983 (method url-fetch)
2984 (uri (string-append "https://stable.melpa.org/packages/"
2985 "alchemist-" version ".tar"))
2986 (sha256
2987 (base32 "0ygwf9d739zqc8dcckw0j0bqkipw7cmxbrx3l281x237a3d384yw"))))
2988 (build-system emacs-build-system)
2989 (propagated-inputs
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")
2993 (description
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+)))
2999
3000 (define-public emacs-auto-sudoedit
3001 (package
3002 (name "emacs-auto-sudoedit")
3003 (version "1.1.0")
3004 (source
3005 (origin
3006 (method git-fetch)
3007 (uri (git-reference
3008 (url "https://github.com/ncaq/auto-sudoedit")
3009 (commit (string-append "v" version))))
3010 (file-name (git-file-name name version))
3011 (sha256
3012 (base32 "1rhdvrj2rjbvl7vkb0wcp6krqxcaigl7jk9z8yvhx6s4cm2qli6q"))))
3013 (propagated-inputs
3014 (list emacs-f))
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")
3018 (description
3019 "This package automatically reopens a file or directory with
3020 @command{sudo} if it cannot write to it.")
3021 (license license:expat)))
3022
3023 (define-public emacs-read-only-cfg
3024 ;; XXX: Upstream has no tagged release. Version is extracted from keyword
3025 ;; in main file.
3026 (let ((commit "c128c9412f768adf89ff5c4ad433cf0beab6656a")
3027 (revision "0"))
3028 (package
3029 (name "emacs-read-only-cfg")
3030 (version (git-version "0.1.0" revision commit))
3031 (source
3032 (origin
3033 (method git-fetch)
3034 (uri (git-reference
3035 (url "https://github.com/pfchen/read-only-cfg")
3036 (commit commit)))
3037 (file-name (git-file-name name version))
3038 (sha256
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")
3043 (description
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+))))
3048
3049 (define-public emacs-bbdb
3050 (package
3051 (name "emacs-bbdb")
3052 (version "3.2.2.2")
3053 (source
3054 (origin
3055 (method url-fetch)
3056 (uri (string-append "https://elpa.gnu.org/packages/"
3057 "bbdb-" version ".tar"))
3058 (sha256
3059 (base32 "0bf20r5xhxln6z4qp8zrlln0303dkci2ydsr74pxcj08aqgk5xxf"))))
3060 (build-system emacs-build-system)
3061 (arguments
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")
3068 (description
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+)))
3074
3075 (define-public emacs-bbdb-vcard
3076 ;; No release since Dec 1, 2013.
3077 (let ((version "0.4.1") ;3d79fdb4200a64a043e203a3baac95c936095b52, not tagged
3078 (revision "88")
3079 (commit "113c66115ce68316e209f51ebce56de8dded3606"))
3080 (package
3081 (name "emacs-bbdb-vcard")
3082 (version (git-version version revision commit))
3083 (source (origin
3084 (method git-fetch)
3085 (uri (git-reference
3086 (url "https://github.com/tohojo/bbdb-vcard")
3087 (commit commit)))
3088 (file-name (git-file-name name version))
3089 (sha256
3090 (base32
3091 "1sr5kd2gvw1b4hl147yb60cgx6j730vdnpyr09p7vmpw65hzwlwm"))))
3092 (build-system emacs-build-system)
3093 (propagated-inputs (list emacs-bbdb))
3094 (home-page "https://github.com/tohojo/bbdb-vcard")
3095 (synopsis
3096 "vCard Import and Export for The Insidious Big Brother Database (BBDB)")
3097 (description
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+))))
3102
3103 (define-public emacs-beacon
3104 (package
3105 (name "emacs-beacon")
3106 (version "1.3.4")
3107 (source
3108 (origin
3109 (method git-fetch)
3110 (uri (git-reference
3111 (url "https://github.com/Malabarba/beacon")
3112 (commit version)))
3113 (file-name (git-file-name name version))
3114 (sha256
3115 (base32
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")
3120 (description
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+)))
3124
3125 (define-public emacs-carp
3126 (let ((commit "17d3d84963434233997626850195f205882bf0df")
3127 (revision "0"))
3128 (package
3129 (name "emacs-carp")
3130 (version (git-version "0" revision commit))
3131 (source
3132 (origin
3133 (uri (git-reference
3134 (url "https://github.com/carp-lang/carp-emacs")
3135 (commit commit)))
3136 (method git-fetch)
3137 (sha256
3138 (base32 "0mn4mg94hzzwb54kikg4c6hvf9ka15f2nz95g0clmn8r0mvkj4d5"))
3139 (file-name (git-file-name name version))))
3140 (build-system emacs-build-system)
3141 (propagated-inputs
3142 (list emacs-clojure-mode emacs-flycheck))
3143 (home-page "https://github.com/carp-lang/carp-emacs")
3144 (synopsis "Emacs support for Carp")
3145 (description
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))))
3149
3150 (define-public emacs-counsel-bbdb
3151 (package
3152 (name "emacs-counsel-bbdb")
3153 (version "0.0.5")
3154 (source
3155 (origin
3156 (method git-fetch)
3157 (uri (git-reference
3158 (url "https://github.com/redguardtoo/counsel-bbdb")
3159 (commit version)))
3160 (file-name (git-file-name name version))
3161 (sha256
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:
3169 @table @code
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.
3173 @end table
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+)))
3178
3179 (define-public emacs-bluetooth
3180 (package
3181 (name "emacs-bluetooth")
3182 (version "0.3.1")
3183 (source
3184 (origin
3185 (method url-fetch)
3186 (uri (string-append "https://elpa.gnu.org/packages/"
3187 "bluetooth-" version ".tar"))
3188 (sha256
3189 (base32 "1p10kcim5wqnbj2kiqv6hgjkzznaa48qysnnf8ym90mylsczr70z"))))
3190 (build-system emacs-build-system)
3191 (inputs
3192 (list bluez dbus))
3193 (propagated-inputs
3194 (list emacs-dash))
3195 (home-page "https://gitlab.com/rstocker/emacs-bluetooth")
3196 (synopsis "Manage Bluetooth devices using Emacs")
3197 (description
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+)))
3203
3204 (define-public emacs-aggressive-indent
3205 (package
3206 (name "emacs-aggressive-indent")
3207 (version "1.10.0")
3208 (source (origin
3209 (method url-fetch)
3210 (uri (string-append "https://elpa.gnu.org/packages/"
3211 "aggressive-indent-" version ".tar"))
3212 (sha256
3213 (base32
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")
3218 (description
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+)))
3223
3224 (define-public emacs-gcmh
3225 ;; No tagged release upstream, but the commit below correspond to the 0.2.1
3226 ;; release.
3227 (let ((commit "0089f9c3a6d4e9a310d0791cf6fa8f35642ecfd9"))
3228 (package
3229 (name "emacs-gcmh")
3230 (version "0.2.1")
3231 (source
3232 (origin
3233 (method git-fetch)
3234 (uri (git-reference
3235 (url "https://gitlab.com/koral/gcmh")
3236 (commit commit)))
3237 (sha256
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")
3243 (description
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
3247 is set.")
3248 (license license:gpl3+))))
3249
3250 (define-public emacs-ctrlf
3251 (package
3252 (name "emacs-ctrlf")
3253 (version "1.6")
3254 (source
3255 (origin
3256 (method git-fetch)
3257 (uri (git-reference
3258 (url "https://github.com/raxod502/ctrlf")
3259 (commit (string-append "v" version))))
3260 (file-name (git-file-name name version))
3261 (sha256
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)))
3272
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"))
3278 (package
3279 (name "emacs-dhall-mode")
3280 (version (git-version "0.1.3" revision commit))
3281 (source
3282 (origin
3283 (method git-fetch)
3284 (uri
3285 (git-reference
3286 (url "https://github.com/psibi/dhall-mode")
3287 (commit commit)))
3288 (file-name (git-file-name name version))
3289 (sha256
3290 (base32 "1wggg8jlzg9rph4jhxp6yiri178rnasbv38838i973kjgqjxrl76"))))
3291 (build-system emacs-build-system)
3292 (propagated-inputs
3293 (list emacs-reformatter))
3294 (home-page "https://github.com/psibi/dhall-mode")
3295 (synopsis "Major mode for working with Dhall configuration language")
3296 (description
3297 "Dhall-mode provides an Emacs Major mode for working with the Dhall
3298 configuration language. It features:
3299
3300 @itemize
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.
3306 @end itemize")
3307 (license license:gpl3+))))
3308
3309 (define-public emacs-link-hint
3310 ;; Last release was in 2015.
3311 (let ((commit "83cd0489b16f013647d0507ef20905a0a91db433")
3312 (revision "4"))
3313 (package
3314 (name "emacs-link-hint")
3315 (version (git-version "0.1" revision commit))
3316 (source
3317 (origin
3318 (method git-fetch)
3319 (uri (git-reference
3320 (url "https://github.com/noctuid/link-hint.el")
3321 (commit commit)))
3322 (file-name (git-file-name name version))
3323 (sha256
3324 (base32
3325 "0kwaia6i0asr7yqcw1anzq6lf93357cc1fphkvp0llbmxizmkzb3"))))
3326 (build-system emacs-build-system)
3327 (propagated-inputs
3328 (list emacs-avy))
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
3332 links.")
3333 (license license:gpl3+))))
3334
3335 (define-public emacs-ag
3336 (package
3337 (name "emacs-ag")
3338 (version "0.48")
3339 (source
3340 (origin
3341 (method git-fetch)
3342 (uri (git-reference
3343 (url "https://github.com/Wilfred/ag.el")
3344 (commit version)))
3345 (file-name (git-file-name name version))
3346 (sha256
3347 (base32 "1p918y24vcn2pdliaymd210xp9fvhd4a1srqbv2lfiqrh59yjidx"))))
3348 (build-system emacs-build-system)
3349 (arguments
3350 (list
3351 #:phases
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
3359 (lambda _
3360 (with-directory-excursion "docs"
3361 (invoke "make" "info"))))
3362 (add-after 'install 'install-info
3363 (lambda _
3364 (install-file "docs/_build/texinfo/agel.info"
3365 (string-append #$output "/share/info")))))))
3366 (inputs (list the-silver-searcher)) ; 'ag' executable
3367 (native-inputs
3368 (list python-sphinx texinfo))
3369 (propagated-inputs
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+)))
3379
3380 (define-public emacs-aio
3381 (package
3382 (name "emacs-aio")
3383 (version "1.0")
3384 (source (origin
3385 (method git-fetch)
3386 (uri (git-reference
3387 (url "https://github.com/skeeto/emacs-aio")
3388 (commit version)))
3389 (file-name (git-file-name name version))
3390 (sha256
3391 (base32
3392 "1y7j10j74r3fy0rcb8g3cm9nlls34qb0pz9xkia7psp77syrlz54"))))
3393 (build-system emacs-build-system)
3394 (arguments
3395 `(#:tests? #t
3396 #:test-command '("emacs" "--batch"
3397 "-l" "aio-test.el"
3398 "-f" "ert-run-tests-batch-and-exit")))
3399 (propagated-inputs
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
3406 while paused.")
3407 (license license:unlicense)))
3408
3409 (define-public emacs-async
3410 (package
3411 (name "emacs-async")
3412 (home-page "https://github.com/jwiegley/emacs-async")
3413 (version "1.9.7")
3414 (source (origin
3415 (method git-fetch)
3416 (uri (git-reference
3417 (url home-page)
3418 (commit (string-append "v" version))))
3419 (file-name (git-file-name name version))
3420 (sha256
3421 (base32
3422 "18pysi1pf6hbv6w0nq50j5xclvgd006iqqijh44wck9hxhdwyfr1"))))
3423 (build-system emacs-build-system)
3424 (synopsis "Asynchronous processing in Emacs")
3425 (description
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+)))
3431
3432 (define-public emacs-auctex
3433 (package
3434 (name "emacs-auctex")
3435 (version "13.1.6")
3436 (source
3437 (origin
3438 (method url-fetch)
3439 (uri (string-append "https://elpa.gnu.org/packages/"
3440 "auctex-" version ".tar"))
3441 (sha256
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).
3446 (arguments
3447 `(#:emacs ,emacs
3448 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
3449 #:exclude '("^tests/" "^latex/README")
3450 #:phases
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"
3458 (("\"dvipng ")
3459 (let ((dvipng (search-input-file inputs "/bin/dvipng")))
3460 (string-append "\"" dvipng " ")))
3461 (("\"dvips ")
3462 (let ((dvips (search-input-file inputs "/bin/dvips")))
3463 (string-append "\"" dvips " ")))
3464 (("\"pdf2dsc ")
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 "/"
3471 ,version "/etc")))
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")))))))))
3477 (native-inputs
3478 (list perl))
3479 (inputs
3480 (list ghostscript
3481 (texlive-updmap.cfg (list texlive-amsfonts))))
3482 (home-page "https://www.gnu.org/software/auctex/")
3483 (synopsis "Integrated environment for TeX")
3484 (description
3485 "AUCTeX is a comprehensive customizable integrated environment for
3486 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
3487 or XEmacs.")
3488 (license license:gpl3+)))
3489
3490 (define-public emacs-autothemer
3491 (package
3492 (name "emacs-autothemer")
3493 (version "0.2.14")
3494 (source
3495 (origin
3496 (method git-fetch)
3497 (uri (git-reference
3498 (url "https://github.com/sebastiansturm/autothemer")
3499 (commit version)))
3500 (file-name (git-file-name name version))
3501 (sha256
3502 (base32
3503 "0jxlfwcfqdjr3da2xzjnigmckarhjbn6b1i1x4pdzb5djjcz00qc"))))
3504 (build-system emacs-build-system)
3505 (propagated-inputs
3506 (list emacs-dash))
3507 (home-page "https://github.com/sebastiansturm/autothemer")
3508 (synopsis "Conveniently create Emacs themes")
3509 (description
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+)))
3514
3515 (define-public emacs-howm
3516 (package
3517 (name "emacs-howm")
3518 (version "1.4.8")
3519 (source
3520 (origin
3521 (method url-fetch)
3522 (uri (string-append "https://howm.sourceforge.jp/a/"
3523 "howm-" version ".tar.gz"))
3524 (sha256
3525 (base32 "0i5pfnvy130fzk8w62301vgsqf1y22chwhjgnm5hjxr9y0kw5ii4"))))
3526 (build-system gnu-build-system)
3527 (native-inputs
3528 (list emacs-minimal))
3529 (arguments
3530 `(#:configure-flags
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:)
3534 (guix build utils))
3535 #:imported-modules (,@%gnu-build-system-modules
3536 (guix build emacs-build-system)
3537 (guix build emacs-utils))
3538 #:phases
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+)))
3548
3549 (define-public emacs-bm
3550 (package
3551 (name "emacs-bm")
3552 (version "201905")
3553 (source
3554 (origin
3555 (method git-fetch)
3556 (uri (git-reference
3557 (url "https://github.com/joodland/bm")
3558 (commit version)))
3559 (file-name (git-file-name name version))
3560 (sha256
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+)))
3568
3569 (define-public emacs-calfw
3570 (package
3571 (name "emacs-calfw")
3572 (version "1.6")
3573 (source
3574 (origin
3575 (method git-fetch)
3576 (uri (git-reference
3577 (url "https://github.com/kiwanami/emacs-calfw")
3578 (commit (string-append "v" version))))
3579 (file-name (git-file-name name version))
3580 (sha256
3581 (base32
3582 "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"))))
3583 (build-system emacs-build-system)
3584 (propagated-inputs
3585 (list emacs-howm))
3586 (home-page "https://github.com/kiwanami/emacs-calfw/")
3587 (synopsis "Calendar framework for Emacs")
3588 (description
3589 "This package displays a calendar view with various schedule data in the
3590 Emacs buffer.")
3591 (license license:gpl3+)))
3592
3593 (define-public emacs-caml
3594 (package
3595 (name "emacs-caml")
3596 (version "4.9")
3597 (source
3598 (origin
3599 (method url-fetch)
3600 (uri (string-append "https://elpa.nongnu.org/nongnu/caml-"
3601 version ".tar"))
3602 (sha256
3603 (base32
3604 "00ldvz6r10vwwmk6f3az534p0340ywn7knsg2bmvbvh3q51vyl9i"))))
3605 (build-system emacs-build-system)
3606 (home-page "https://github.com/ocaml/caml-mode")
3607 (synopsis "Caml mode for GNU Emacs")
3608 (description
3609 "This package provides a major mode for editing OCaml code in Emacs.
3610 Some of its major features include:
3611
3612 @itemize
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.
3618 @end itemize")
3619 (license license:gpl2+)))
3620
3621 (define-public emacs-caps-lock
3622 (package
3623 (name "emacs-caps-lock")
3624 (version "1.0")
3625 (source
3626 (origin
3627 (method url-fetch)
3628 (uri (string-append "https://elpa.gnu.org/packages/"
3629 "caps-lock-" version ".el"))
3630 (sha256
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")
3635 (description
3636 "This package provides a minor mode to emulate the behavior of a Caps
3637 Lock key.")
3638 (license license:gpl3+)))
3639
3640 (define-public emacs-chronometrist
3641 (package
3642 (name "emacs-chronometrist")
3643 (version "0.10.0")
3644 (source
3645 (origin
3646 (method git-fetch)
3647 (uri (git-reference
3648 (url "https://tildegit.org/contrapunctus/chronometrist")
3649 (commit (string-append "v" version))))
3650 (file-name (git-file-name name version))
3651 (sha256
3652 (base32 "0qpkpkipmac24m3ng4ahsml3vi15qcvmid3g02pbpgbpc113zfpl"))))
3653 (build-system emacs-build-system)
3654 (arguments
3655 (list
3656 #:phases
3657 #~(modify-phases %standard-phases
3658 (add-after 'unpack 'chdir-elisp
3659 ;; Elisp directory is not in root of the source.
3660 (lambda _
3661 (chdir "elisp")))
3662 (add-after 'install 'install-doc
3663 ;; Documentation consists of several Markdown files.
3664 (lambda _
3665 (let ((doc (string-append #$output
3666 "/share/doc/emacs-chronometrist-"
3667 #$version)))
3668 (with-directory-excursion "../doc"
3669 (for-each (lambda (f) (install-file f doc))
3670 (cons* "../UNLICENSE"
3671 "../WTFPL"
3672 (find-files "." "\\.md$"))))))))))
3673 (propagated-inputs
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}.
3679
3680 Its features are:
3681 @itemize
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.
3687 @end itemize")
3688 ;; Software is dual-licensed.
3689 (license (list license:unlicense license:wtfpl2))))
3690
3691 (define-public emacs-citeproc-el
3692 (package
3693 (name "emacs-citeproc-el")
3694 (version "0.9.2")
3695 (source
3696 (origin
3697 (method git-fetch)
3698 (uri (git-reference
3699 (url "https://github.com/andras-simonyi/citeproc-el")
3700 (commit version)))
3701 (file-name (git-file-name name version))
3702 (sha256
3703 (base32 "0p9gch5iijia5pm9rzlv50xcad2g9mis9mc90nvh31in9xjcccpz"))))
3704 (build-system emacs-build-system)
3705 (arguments
3706 `(#:emacs ,emacs)) ;need libxml support
3707 (propagated-inputs
3708 (list emacs-dash
3709 emacs-f
3710 emacs-parsebib
3711 emacs-queue
3712 emacs-s
3713 emacs-string-inflection))
3714 (home-page "https://github.com/andras-simonyi/citeproc-el")
3715 (synopsis "Citation Style Language (CSL) processor for Emacs")
3716 (description
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+)))
3722
3723 (define-public emacs-corfu
3724 (package
3725 (name "emacs-corfu")
3726 (version "0.34")
3727 (source
3728 (origin
3729 (method git-fetch)
3730 (uri (git-reference
3731 (url "https://github.com/minad/corfu")
3732 (commit version)))
3733 (file-name (git-file-name name version))
3734 (sha256
3735 (base32 "0cv0hcgsw4l8lk3gqwqlw91m4kc2dd80ndx06rg6czd22qdrd68m"))))
3736 (build-system emacs-build-system)
3737 (arguments
3738 `(#:phases
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
3743 (lambda _
3744 (let ((el-files (find-files "./extensions" ".*\\.el$")))
3745 (for-each (lambda (f)
3746 (rename-file f (basename f)))
3747 el-files)))))))
3748 (home-page "https://github.com/minad/corfu")
3749 (synopsis "Completion overlay region function")
3750 (description
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+)))
3756
3757 (define-public emacs-corfu-doc
3758 (package
3759 (name "emacs-corfu-doc")
3760 (version "0.6.3")
3761 (source
3762 (origin
3763 (method git-fetch)
3764 (uri (git-reference
3765 (url "https://github.com/galeo/corfu-doc")
3766 (commit "f9566cf13f6730a45b2f3c12e491a3fa2097e5d5")))
3767 (file-name (git-file-name name version))
3768 (sha256
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")
3774 (description
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+)))
3779
3780 (define-public emacs-cape
3781 (package
3782 (name "emacs-cape")
3783 (version "0.12")
3784 (source
3785 (origin
3786 (method git-fetch)
3787 (uri (git-reference
3788 (url "https://github.com/minad/cape")
3789 (commit version)))
3790 (file-name (git-file-name name version))
3791 (sha256
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")
3796 (description
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+)))
3803
3804 (define-public emacs-direnv
3805 (package
3806 (name "emacs-direnv")
3807 (version "2.2.0")
3808 (source
3809 (origin
3810 (method git-fetch)
3811 (uri (git-reference
3812 (url "https://github.com/wbolster/emacs-direnv")
3813 (commit version)))
3814 (file-name (git-file-name name version))
3815 (sha256
3816 (base32 "0cf5npgksl9a03mnfdhfdhlf46gr9qz9adjxz3dbckq9b1vl0dfc"))))
3817 (build-system emacs-build-system)
3818 (arguments
3819 `(#:phases
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 "\"")))))))))
3826 (inputs
3827 (list direnv))
3828 (propagated-inputs
3829 (list emacs-dash emacs-with-editor))
3830 (home-page "https://github.com/wbolster/emacs-direnv")
3831 (synopsis "Direnv integration for Emacs")
3832 (description
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.
3835
3836 Direnv can be invoked manually, and a global minor mode is included that will
3837 update the environment when the active buffer changes.
3838
3839 Using emacs-direnv means that programs started from Emacs will use the
3840 environment set through Direnv.")
3841 (license license:gpl3+)))
3842
3843 (define-public emacs-elf-mode
3844 (package
3845 (name "emacs-elf-mode")
3846 (version "0.1.0")
3847 (source
3848 (origin
3849 (method git-fetch)
3850 (uri
3851 (git-reference
3852 (url "https://github.com/abo-abo/elf-mode")
3853 (commit version)))
3854 (file-name (git-file-name name version))
3855 (sha256
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+)))
3863
3864 (define-public emacs-org-fc
3865 (let ((commit "f64b5336485a42be91cfe77850c02a41575f5984")
3866 (revision "0"))
3867 (package
3868 (name "emacs-org-fc")
3869 (version (git-version "0.1.0" revision commit))
3870 (source
3871 (origin
3872 (method git-fetch)
3873 (uri (git-reference
3874 (url "https://git.sr.ht/~l3kn/org-fc")
3875 (commit commit)))
3876 (file-name (git-file-name name version))
3877 (sha256
3878 (base32 "1d0a3vr09zkplclypcgpfbfd6r0h0i3g3zsqb4pcz6x239d59gd5"))))
3879 (build-system emacs-build-system)
3880 (arguments
3881 (list
3882 #:include #~(cons* "\\.awk$" "\\.org$" %default-include)
3883 #:exclude #~(cons "^tests/" %default-exclude)
3884 #:tests? #t
3885 #:test-command #~(list "emacs" "--batch"
3886 "-L" "."
3887 "-L" "tests/"
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")
3892 #:phases
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")
3907 (description
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+))))
3914
3915 (define-public emacs-font-lock-studio
3916 (let ((commit "12c35967b31233e06946c70627aa3152dacfe261")
3917 (revision "1"))
3918 (package
3919 (name "emacs-font-lock-studio")
3920 (version (git-version "0.0.7" revision commit))
3921 (source
3922 (origin
3923 (method git-fetch)
3924 (uri (git-reference
3925 (url "https://github.com/Lindydancer/font-lock-studio")
3926 (commit "12c35967b31233e06946c70627aa3152dacfe261")))
3927 (file-name (git-file-name name version))
3928 (sha256
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")
3933 (description
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+))))
3943
3944 (define-public emacs-form-feed
3945 (package
3946 (name "emacs-form-feed")
3947 (version "0.2.3")
3948 (source
3949 (origin
3950 (method git-fetch)
3951 (uri (git-reference
3952 (url "https://depp.brause.cc/form-feed.git")
3953 (commit version)))
3954 (file-name (git-file-name name version))
3955 (sha256
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")
3960 (description
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+)))
3966
3967 (define-public emacs-ggtags
3968 (package
3969 (name "emacs-ggtags")
3970 (version "0.9.0")
3971 (source
3972 (origin
3973 (method url-fetch)
3974 (uri (string-append "https://elpa.gnu.org/packages/ggtags-"
3975 version ".tar"))
3976 (sha256
3977 (base32
3978 "0p79x9g94jynl83ndvqp9349vhgkzxzhnc517r8hn44iqxqf6ghg"))))
3979 (build-system emacs-build-system)
3980 (inputs
3981 (list global))
3982 (arguments
3983 `(#:phases
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.
3995
3996 Features:
3997
3998 @itemize
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
4001 large source trees.
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},
4016 @code{cscope} etc.
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.
4020 @end itemize\n")
4021 (license license:gpl3+)))
4022
4023 (define-public emacs-go-mode
4024 ;; XXX: Upstream did not tag last release. The commit below matches version
4025 ;; bump.
4026 (let ((commit "3273fcece5d9ab7edd4f15b2d6bce61f4e5a0666"))
4027 (package
4028 (name "emacs-go-mode")
4029 (version "1.6.0")
4030 (source (origin
4031 (method git-fetch)
4032 (uri (git-reference
4033 (url "https://github.com/dominikh/go-mode.el")
4034 (commit commit)))
4035 (file-name (git-file-name name version))
4036 (sha256
4037 (base32
4038 "00qzn136d8cl3szbi44xf3iiv75r6n1m7wwgldmzn4i5mpz8dbq7"))))
4039 (arguments
4040 (list
4041 #:tests? #t
4042 #:test-command #~(list "ert-runner")
4043 #:phases
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.
4048 (lambda _
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")
4058 (description
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))))
4062
4063 (define-public emacs-google-maps
4064 ;; There has been no new release tag since 2013.
4065 (let ((commit "2eb16ff609f5a9f8d02c15238a111fbb7db6c146")
4066 (revision "1"))
4067 (package
4068 (name "emacs-google-maps")
4069 (version (git-version "1.0.0" revision commit))
4070 (source
4071 (origin
4072 (method git-fetch)
4073 (uri (git-reference
4074 (url "https://github.com/jd/google-maps.el")
4075 (commit commit)))
4076 (file-name (git-file-name name version))
4077 (sha256
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+))))
4085
4086 (define-public emacs-graphviz-dot-mode
4087 (package
4088 (name "emacs-graphviz-dot-mode")
4089 (version "0.4.2")
4090 (source
4091 (origin
4092 (method git-fetch)
4093 (uri (git-reference
4094 (url "https://github.com/ppareit/graphviz-dot-mode")
4095 (commit (string-append "v" version))))
4096 (file-name (git-file-name name version))
4097 (sha256
4098 (base32 "1v1p85wk73nfsvv66qf90flgf9dqhmv15z1r7q4zmc4ifklqn08m"))))
4099 (build-system emacs-build-system)
4100 (arguments
4101 (list
4102 #:phases
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")))
4110 (invoke "make"
4111 "clean"
4112 "info"
4113 (string-append "TEXINFODIR="
4114 #$(this-package-native-input "texinfo")
4115 "/bin")))))
4116 (add-after 'install 'install-info
4117 (lambda _
4118 (let ((info (string-append #$output "/share/info")))
4119 (install-file "texinfo/graphviz-dot-mode.info.gz" info)))))))
4120 (native-inputs
4121 (list gzip texinfo))
4122 (propagated-inputs
4123 (list emacs-company))
4124 (home-page "http://ppareit.github.com/graphviz-dot-mode")
4125 (synopsis "Major mode for editing Graphviz DOT files")
4126 (description
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+)))
4130
4131 (define-public emacs-imenu-list
4132 (let ((commit "b50222378412fbe321622a84cb2b036e084c697a")
4133 (revision "1")
4134 (version "0.9"))
4135 (package
4136 (name "emacs-imenu-list")
4137 (version (git-version version revision commit))
4138 (source
4139 (origin
4140 (method git-fetch)
4141 (uri
4142 (git-reference
4143 (url "https://github.com/bmag/imenu-list")
4144 (commit commit)))
4145 (file-name (git-file-name name version))
4146 (sha256
4147 (base32 "1936dd41fa05ndzf2bwhllvjz97iz0rflkazjipr7dvz5q072wj2"))))
4148 (build-system emacs-build-system)
4149 (home-page "https://github.com/bmag/imenu-list")
4150 (synopsis
4151 "Automatically tracks the current buffer's imenu entries")
4152 (description
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
4156 window).")
4157 (license license:gpl3+))))
4158
4159 (define-public emacs-mmm-mode
4160 (package
4161 (name "emacs-mmm-mode")
4162 (version "0.5.9")
4163 (source
4164 (origin
4165 (method url-fetch)
4166 (uri (string-append "https://elpa.gnu.org/packages/"
4167 "mmm-mode-" version ".tar"))
4168 (sha256
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")
4173 (description
4174 "MMM Mode is a minor mode that allows multiple major modes to coexist in
4175 a single buffer.")
4176 (license license:gpl3+)))
4177
4178 (define-public emacs-mmt
4179 (package
4180 (name "emacs-mmt")
4181 (version "0.2.0")
4182 (source
4183 (origin
4184 (method git-fetch)
4185 (uri (git-reference
4186 (url "https://github.com/mrkkrp/mmt")
4187 (commit version)))
4188 (file-name (git-file-name name version))
4189 (sha256
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+)))
4197
4198 (define-public emacs-tablist
4199 (package
4200 (name "emacs-tablist")
4201 (version "1.0")
4202 (source (origin
4203 (method git-fetch)
4204 (uri (git-reference
4205 (url "https://github.com/politza/tablist")
4206 (commit (string-append "v" version))))
4207 (file-name (git-file-name name version))
4208 (sha256
4209 (base32
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+)))
4219
4220 (define-public emacs-djvu
4221 (package
4222 (name "emacs-djvu")
4223 (version "1.1.2")
4224 (source
4225 (origin
4226 (method url-fetch)
4227 (uri (string-append "https://elpa.gnu.org/packages/"
4228 "djvu-" version ".tar"))
4229 (sha256
4230 (base32 "0i7xwgg2fxndy81lnng6fh9iknals8xvx4f1nmxq7c099bzwb57c"))))
4231 (build-system emacs-build-system)
4232 (inputs (list djview djvulibre))
4233 (arguments
4234 (list
4235 #:phases
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)
4242 (substitute* file
4243 (("\"djvused\"")
4244 (string-append "\""
4245 (search-input-file inputs "/bin/djvused")
4246 "\""))
4247 (("\"djvm\"")
4248 (string-append "\""
4249 (search-input-file inputs "/bin/djvm")
4250 "\""))
4251 (("\"ddjvu\"")
4252 (string-append "\""
4253 (search-input-file inputs "/bin/ddjvu")
4254 "\"")))
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")
4260 (description
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+)))
4264
4265 (define-public emacs-djvu3
4266 ;; Commit from 2021-06-03.
4267 (let ((commit "37b675be1d4d436cdd0c3b5d3f13e88b59a7bf18")
4268 (revision "0"))
4269 (package
4270 (name "emacs-djvu3")
4271 ;; `Version:' header says 1.0
4272 (version (git-version "1.0" revision commit))
4273 (source
4274 (origin
4275 (method git-fetch)
4276 (uri (git-reference
4277 (url "https://github.com/dalanicolai/djvu3")
4278 (commit commit)))
4279 (file-name (git-file-name name version))
4280 (sha256
4281 (base32
4282 "0p0izjrgbayx5ybk1n6db5hbrjv9d4kpn57w4iyxdm3h96sp9cmr"))))
4283 (propagated-inputs
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}.
4290
4291 Other features include:
4292
4293 @itemize
4294 @item clickable links
4295 @item marker extension to @code{svg.el} for providing arrowheads (or other
4296 types of markers)
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
4301 @end itemize")
4302 (license license:gpl3+))))
4303
4304 (define-public emacs-pabbrev
4305 (package
4306 (name "emacs-pabbrev")
4307 (version "4.2.2")
4308 (source
4309 (origin
4310 (method url-fetch)
4311 (uri (string-append "https://elpa.gnu.org/packages/"
4312 "pabbrev-" version ".tar"))
4313 (sha256
4314 (base32 "0iydz8yz866krxv1qv32k88w4464xpymh0wxgrxv6nvniwvhvd0s"))))
4315 (build-system emacs-build-system)
4316 (home-page "http://elpa.gnu.org/packages/pabbrev.html")
4317 (synopsis "Predictive abbreviation expansion")
4318 (description
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).
4322
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+)))
4327
4328 (define-public emacs-pdf-tools
4329 (package
4330 (name "emacs-pdf-tools")
4331 (version "1.0.0")
4332 (source
4333 (origin
4334 (method git-fetch)
4335 (uri (git-reference
4336 (url "https://github.com/vedang/pdf-tools")
4337 (commit (string-append "v" version))))
4338 (file-name (git-file-name name version))
4339 (sha256
4340 (base32 "1idazz46zx2q84di4p73770l4bcnai2a03q95psg827ykdnmjwij"))))
4341 (build-system gnu-build-system)
4342 (arguments
4343 `(#:tests? #f ; there are no tests
4344 #:modules ((guix build gnu-build-system)
4345 ((guix build emacs-build-system) #:prefix emacs:)
4346 (guix build utils)
4347 (guix build emacs-utils))
4348 #:imported-modules (,@%gnu-build-system-modules
4349 (guix build emacs-build-system)
4350 (guix build emacs-utils))
4351 #:phases
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
4357 (lambda _
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 "."))
4365
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")
4370 "/bin/epdfinfo")))
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)))))
4385 (native-inputs
4386 (list autoconf automake emacs-minimal pkg-config))
4387 (inputs
4388 (list cairo glib libpng poppler zlib))
4389 (propagated-inputs
4390 (list emacs-tablist))
4391 (home-page "https://github.com/vedang/pdf-tools")
4392 (synopsis "Emacs support library for PDF files")
4393 (description
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+)))
4399
4400 (define-public emacs-saveplace-pdf-view
4401 (package
4402 (name "emacs-saveplace-pdf-view")
4403 (version "1.0.4")
4404 (source
4405 (origin
4406 (method git-fetch)
4407 (uri (git-reference
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))
4411 (sha256
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")
4416 (description
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+)))
4423
4424 (define-public emacs-pdfgrep
4425 ;; XXX: Upstream does not tag releases. The commit below matches latest
4426 ;; version bump.
4427 (let ((commit "e250376d97fc5240e07d81108bbca9b5a9ab50f4"))
4428 (package
4429 (name "emacs-pdfgrep")
4430 (version "1.4")
4431 (source
4432 (origin
4433 (method git-fetch)
4434 (uri (git-reference
4435 (url "https://github.com/jeremy-compostella/pdfgrep")
4436 (commit commit)))
4437 (file-name (git-file-name name version))
4438 (sha256
4439 (base32 "17yqvvgkgxmcl8nc0mb9yaz884zcdnz7dwvfi4mxjzp1l05fvwjk"))))
4440 (build-system emacs-build-system)
4441 (arguments
4442 (list #:phases
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"
4448 ("pdfgrep-program"
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
4453 for PDF files")
4454 (description
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+))))
4460
4461 (define-public emacs-dash
4462 (package
4463 (name "emacs-dash")
4464 (version "2.19.1")
4465 (source (origin
4466 (method git-fetch)
4467 (uri (git-reference
4468 (url "https://github.com/magnars/dash.el")
4469 (commit version)))
4470 (file-name (git-file-name name version))
4471 (sha256
4472 (base32
4473 "0z6f8y1m9amhg427iz1d4xcyr6n0kj5w7kmiz134p320ixsdnzd8"))))
4474 (build-system emacs-build-system)
4475 (arguments
4476 (list #:tests? #t
4477 #:phases
4478 #~(modify-phases %standard-phases
4479 (add-after 'unpack 'disable-byte-compile-error-on-warn
4480 (lambda _
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+)))
4488
4489 (define-public emacs-bui
4490 (package
4491 (name "emacs-bui")
4492 (version "1.2.1")
4493 (source (origin
4494 (method git-fetch)
4495 (uri (git-reference
4496 (url "https://notabug.org/alezost/emacs-bui.git")
4497 (commit (string-append "v" version))))
4498 (file-name (git-file-name name version))
4499 (sha256
4500 (base32
4501 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
4502 (build-system emacs-build-system)
4503 (propagated-inputs
4504 (list emacs-dash))
4505 (home-page "https://notabug.org/alezost/emacs-bui")
4506 (synopsis "Buffer interface library for Emacs")
4507 (description
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+)))
4512
4513 (define-public emacs-guix
4514 (let ((commit "cf5b7a402ea503c3dcda85a86b9a6c6dd01896e0")
4515 (revision "6"))
4516 (package
4517 (name "emacs-guix")
4518 (version (git-version "0.5.2" revision commit))
4519 (source (origin
4520 (method git-fetch)
4521 (uri (git-reference
4522 (url "https://git.savannah.gnu.org/git/guix/emacs-guix.git")
4523 (commit commit)))
4524 (file-name (git-file-name name version))
4525 (sha256
4526 (base32
4527 "0wxiipgv91rlk9bhspx370rykywi52rxg5m1f7680vzs3ckc7nyd"))))
4528 (build-system gnu-build-system)
4529 (arguments
4530 (list
4531 #:modules '((guix build gnu-build-system)
4532 ((guix build emacs-build-system) #:prefix emacs:)
4533 (guix build utils))
4534 #:imported-modules `(,@%gnu-build-system-modules
4535 (guix build emacs-build-system)
4536 (guix build emacs-utils))
4537 #:configure-flags
4538 #~(list (string-append "--with-lispdir="
4539 (emacs:elpa-directory #$output)))
4540 #:phases
4541 #~(modify-phases %standard-phases
4542 (add-after 'unpack 'expand-load-path
4543 (lambda _
4544 ((assoc-ref emacs:%standard-phases 'expand-load-path)
4545 #:prepend-source? #f))))))
4546 (native-inputs
4547 (list autoconf automake emacs-minimal pkg-config texinfo))
4548 (inputs
4549 (list (lookup-package-input guix "guile")
4550 guix))
4551 (propagated-inputs
4552 (list emacs-bui
4553 emacs-dash
4554 emacs-edit-indirect
4555 emacs-geiser
4556 emacs-geiser-guile
4557 emacs-magit-popup
4558 guile-gcrypt))
4559 (home-page "https://guix.gnu.org")
4560 (synopsis "Emacs interface for GNU Guix")
4561 (description
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+))))
4567
4568 (define-public emacs-build-farm
4569 (package
4570 (name "emacs-build-farm")
4571 (version "0.2.2")
4572 (source (origin
4573 (method git-fetch)
4574 (uri (git-reference
4575 (url "https://notabug.org/alezost/emacs-build-farm.git")
4576 (commit (string-append "v" version))))
4577 (file-name (git-file-name name version))
4578 (sha256
4579 (base32
4580 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
4581 (build-system emacs-build-system)
4582 (propagated-inputs
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")
4586 (description
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+)))
4592
4593 (define-public emacs-d-mode
4594 (package
4595 (name "emacs-d-mode")
4596 (version "2.0.12")
4597 (source
4598 (origin
4599 (method git-fetch)
4600 (uri (git-reference
4601 (url "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
4602 (commit version)))
4603 (file-name (git-file-name name version))
4604 (sha256
4605 (base32 "0mwd412d2kha8avkyhvvkh8r7an859xk18f7phgx7kj989pr3xkr"))))
4606 (build-system emacs-build-system)
4607 (propagated-inputs
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+)))
4614
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")
4618 (revision "1"))
4619 (package
4620 (name "emacs-extempore-mode")
4621 (version (git-version "0.0.0" revision commit))
4622 (source
4623 (origin
4624 (method git-fetch)
4625 (uri (git-reference
4626 (url "https://github.com/extemporelang/extempore-emacs-mode")
4627 (commit commit)))
4628 (file-name (git-file-name name version))
4629 (sha256
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")
4634 (description
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))))
4639
4640 (define-public emacs-external-completion
4641 (package
4642 (name "emacs-external-completion")
4643 (version "0.1")
4644 (source (origin
4645 (method url-fetch)
4646 (uri (string-append
4647 "https://elpa.gnu.org/packages/external-completion-" version
4648 ".tar"))
4649 (sha256
4650 (base32
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")
4655 (description
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+)))
4666
4667 (define-public emacs-kakoune
4668 ;; Package has no release. Version is extracted from "Version:" keyword in
4669 ;; main file.
4670 (let ((commit "d73d14e69ea38076af50cc69f846808383ff539d")
4671 (revision "0"))
4672 (package
4673 (name "emacs-kakoune")
4674 (version (git-version "0.1" revision commit))
4675 (source
4676 (origin
4677 (method git-fetch)
4678 (uri (git-reference
4679 (url "https://github.com/jmorag/kakoune.el")
4680 (commit commit)))
4681 (file-name (git-file-name name version))
4682 (sha256
4683 (base32 "0nk6jdy1y5mc3ryd0smiqghrk6iv34d5grc7f7migmshlbq0np92"))))
4684 (build-system emacs-build-system)
4685 (propagated-inputs
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
4693 possible.")
4694 (license license:expat))))
4695
4696 (define-public emacs-kana
4697 ;; Package has no release. Version is extracted from "Version:" keyword in
4698 ;; main file.
4699 (let ((commit "b239c3c3c6124b46ff720cca7b80ecbafd7fa489")
4700 (revision "0"))
4701 (package
4702 (name "emacs-kana")
4703 (version (git-version "1.0.0" revision commit))
4704 (source
4705 (origin
4706 (method git-fetch)
4707 (uri (git-reference
4708 (url "https://github.com/chenyanming/kana")
4709 (commit commit)))
4710 (file-name (git-file-name name version))
4711 (sha256
4712 (base32 "0vrrl1kniq4h111jvnapvx3wybvsl3alfaygw634mmryr3h7pwi8"))))
4713 (build-system emacs-build-system)
4714 (home-page "https://github.com/chenyanming/kana")
4715 (synopsis "Learn Japanese Kana in Emacs")
4716 (description
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+))))
4720
4721 (define-public emacs-kanji
4722 ;; Package has no release. Version is extracted from "Version:" keyword in
4723 ;; main file.
4724 (let ((commit "5e9d5b72468ece11cfb81b729be6babf63ede425")
4725 (revision "0"))
4726 (package
4727 (name "emacs-kanji")
4728 (version (git-version "1.0" revision commit))
4729 (source
4730 (origin
4731 (method git-fetch)
4732 (uri (git-reference
4733 (url "https://github.com/wsgac/kanji-mode")
4734 (commit commit)))
4735 (file-name (git-file-name name version))
4736 (sha256
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")
4741 (description
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+))))
4747
4748 (define-public emacs-kbd
4749 ;; Package has no release. Version is extracted from "Version:" keyword in
4750 ;; main file.
4751 (let ((commit "a7f4c9b9770fa6a58895c5f121df82652bb1b737")
4752 (revision "0"))
4753 (package
4754 (name "emacs-kbd")
4755 (version (git-version "0.0.1" revision commit))
4756 (source
4757 (origin
4758 (method git-fetch)
4759 (uri (git-reference
4760 (url "https://github.com/slotThe/kbd-mode")
4761 (commit commit)))
4762 (file-name (git-file-name name version))
4763 (sha256
4764 (base32 "0jv9yfsncgf96308c041hvps3jlc151xb0aipm0vasbma3x83ygm"))))
4765 (build-system emacs-build-system)
4766 (arguments
4767 (list
4768 #:phases
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")
4774 (description
4775 "This minor mode provides syntax highlighting for Lisp-like DSL used in
4776 kmonad's configuration files (@file{.kbd}).")
4777 (license license:gpl3+))))
4778
4779 (define-public emacs-keycast
4780 (package
4781 (name "emacs-keycast")
4782 (version "1.2.0")
4783 (source
4784 (origin
4785 (method git-fetch)
4786 (uri (git-reference
4787 (url "https://github.com/tarsius/keycast")
4788 (commit (string-append "v" version))))
4789 (file-name (git-file-name name version))
4790 (sha256
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")
4795 (description
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+)))
4800
4801 (define-public emacs-keyfreq
4802 (package
4803 (name "emacs-keyfreq")
4804 (version "20160516.716")
4805 (source
4806 (origin
4807 (method url-fetch)
4808 (uri (string-append "http://melpa.org/packages/keyfreq-"
4809 version ".el"))
4810 (sha256
4811 (base32
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
4817 a command.")
4818 (license license:gpl3+)))
4819
4820 (define-public emacs-olivetti
4821 (package
4822 (name "emacs-olivetti")
4823 (version "2.0.4")
4824 (source
4825 (origin
4826 (method git-fetch)
4827 (uri (git-reference
4828 (url "https://github.com/rnkn/olivetti")
4829 (commit (string-append "v" version))))
4830 (file-name (git-file-name name version))
4831 (sha256
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
4837 in the center.")
4838 (license license:gpl3+)))
4839
4840 (define-public emacs-undo-tree
4841 (package
4842 (name "emacs-undo-tree")
4843 (version "0.8.2")
4844 (source
4845 (origin
4846 (method git-fetch)
4847 (uri (git-reference
4848 (url "https://gitlab.com/tsc25/undo-tree")
4849 (commit "42aab056e37e033816b2d192f9121b89410b958e"))) ; no 0.8.2 tag
4850 (file-name (git-file-name name version))
4851 (sha256
4852 (base32 "1xvkxc078b4z5zqwndz6jcv4ga8yd2ci32v7l8pdvqjmz7fq7bfz"))))
4853 (build-system emacs-build-system)
4854 (propagated-inputs
4855 (list emacs-queue))
4856 (home-page "https://www.dr-qubit.org/undo-tree.html")
4857 (synopsis "Treat undo history as a tree")
4858 (description
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+)))
4863
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")
4868 (revision "0"))
4869 (package
4870 (name "emacs-undo-fu")
4871 (version (git-version "0.4" revision commit))
4872 (source
4873 (origin
4874 (method git-fetch)
4875 (uri (git-reference
4876 (url "https://gitlab.com/ideasman42/emacs-undo-fu")
4877 (commit commit)))
4878 (file-name (git-file-name name version))
4879 (sha256
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")
4884 (description
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+))))
4889
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")
4894 (revision "0"))
4895 (package
4896 (name "emacs-undo-fu-session")
4897 (version (git-version "0.2" revision commit))
4898 (source
4899 (origin
4900 (method git-fetch)
4901 (uri (git-reference
4902 (url "https://gitlab.com/ideasman42/emacs-undo-fu-session")
4903 (commit commit)))
4904 (file-name (git-file-name name version))
4905 (sha256
4906 (base32 "04wq1alrzzlidcb4mjb5j7pg68pks1vgv7kvvmi6dzb3l602mb2a"))))
4907 (build-system emacs-build-system)
4908 (arguments
4909 (list
4910 #:tests? #t
4911 #:test-command #~(list "emacs" "--batch" "-l" "undo-fu-session.el"
4912 "-l" "undo-fu-session-test.el")
4913 #:phases
4914 #~(modify-phases %standard-phases
4915 (add-before 'check 'set-home
4916 (lambda _
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+))))
4923
4924 (define-public emacs-s
4925 (package
4926 (name "emacs-s")
4927 (version "1.13.0")
4928 (source
4929 (origin
4930 (method git-fetch)
4931 (uri (git-reference
4932 (url "https://github.com/magnars/s.el")
4933 (commit version)))
4934 (file-name (git-file-name name version))
4935 (sha256
4936 (base32 "010i92kagqbfis46n1ffa28fgkdkjp55n13b6f4izar5r7ixm6wx"))))
4937 (build-system emacs-build-system)
4938 (arguments
4939 `(#:tests? #t
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
4944 strings.")
4945 (license license:gpl3+)))
4946
4947 (define-public emacs-inflections
4948 (package
4949 (name "emacs-inflections")
4950 (version "2.6")
4951 (source
4952 (origin
4953 (method git-fetch)
4954 (uri (git-reference
4955 (url "https://github.com/eschulte/jump.el")
4956 (commit version)))
4957 (file-name (git-file-name name version))
4958 (snippet #~(begin (delete-file "jump.el")))
4959 (sha256
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+)))
4967
4968 (define-public emacs-blight
4969 (let ((commit "6bf9c6192d2bf979eebbfae1963401ef3ff4ef5d")
4970 (revision "0"))
4971 (package
4972 (name "emacs-blight")
4973 (version (git-version "0" revision commit))
4974 (source
4975 (origin
4976 (method git-fetch)
4977 (uri (git-reference
4978 (url "https://codeberg.org/emacs-weirdware/blight")
4979 (commit commit)))
4980 (file-name (git-file-name name version))
4981 (sha256
4982 (base32 "1x7s1fcva5kkl9iyb5grd6crf38rrz3zb0c6wb85khi9far10vgq"))))
4983 (build-system emacs-build-system)
4984 (home-page "https://codeberg.org/emacs-weirdware/blight")
4985 (synopsis "Control display brightness")
4986 (description
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
4993 environments.")
4994 (license license:gpl3+))))
4995
4996 (define-public emacs-symon
4997 (package
4998 (name "emacs-symon")
4999 (version "20160630")
5000 (source
5001 (origin
5002 (method git-fetch)
5003 (uri (git-reference
5004 (url "https://github.com/zk-phi/symon")
5005 (commit version)))
5006 (file-name (git-file-name name version))
5007 (sha256
5008 (base32 "1q7di9s8k710nx98wnqnbkkhdimrn0jf6z4xkm4c78l6s5idjwlz"))))
5009 (build-system emacs-build-system)
5010 (home-page "https://github.com/zk-phi/symon")
5011 (synopsis "Tiny graphical system monitor")
5012 (description
5013 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
5014 (license license:gpl2+)))
5015
5016 (define-public emacs-lemon
5017 (let ((commit "37a6e6d6ef0900ca19c820a2dbc122c7fe6d86cf")
5018 (revision "0"))
5019 (package
5020 (name "emacs-lemon")
5021 (version (git-version "2.0.0" revision commit))
5022 (source
5023 (origin
5024 (method git-fetch)
5025 (uri (git-reference
5026 (url "https://codeberg.org/emacs-weirdware/lemon")
5027 (commit commit)))
5028 (file-name (git-file-name name version))
5029 (sha256
5030 (base32 "0bc77vzi4p6mlzmhgybbldlpcsiiv4xqrd5lnc7wzvmxv8byhqpm"))))
5031 (build-system emacs-build-system)
5032 (native-inputs
5033 (list emacs-blight emacs-emms))
5034 (propagated-inputs
5035 (list emacs-s))
5036 (home-page "https://codeberg.org/emacs-weirdware/lemon")
5037 (synopsis "System monitors in the echo area")
5038 (description
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
5042 EXWM.")
5043 (license license:gpl3+))))
5044
5045 (define-public emacs-sx
5046 (let ((version "20191229")
5047 (revision "0")
5048 (commit "e9d1093c97507a6d7b4f4710ef65200dae725e5f"))
5049 (package
5050 (name "emacs-sx")
5051 (version (git-version version revision commit))
5052 (source
5053 (origin
5054 (method git-fetch)
5055 (uri (git-reference
5056 (url "https://github.com/vermiculus/sx.el")
5057 (commit commit)))
5058 (file-name (git-file-name name version))
5059 (sha256
5060 (base32 "0m90ddwm8j0y6d1ppqhd2gil1107k202blw6mzm5bdambn4nfqkf"))))
5061 (build-system emacs-build-system)
5062 (propagated-inputs
5063 (list emacs-markdown-mode))
5064 (home-page "https://github.com/vermiculus/sx.el")
5065 (synopsis "Emacs StackExchange client")
5066 (description
5067 "Emacs StackExchange client. Ask and answer questions on
5068 Stack Overflow, Super User, and other StackExchange sites.")
5069 (license license:gpl3+))))
5070
5071 (define-public emacs-skempo
5072 (package
5073 (name "emacs-skempo")
5074 (version "0.2.2")
5075 (source
5076 (origin
5077 (method git-fetch)
5078 (uri (git-reference
5079 (url "https://github.com/xFA25E/skempo")
5080 (commit version)))
5081 (file-name (git-file-name name version))
5082 (sha256
5083 (base32
5084 "0xsr6819qaad0y8rhfrf555c9w7cmgbgkf1a2svgbp7rhhnywl0a"))))
5085 (build-system emacs-build-system)
5086 (home-page "https://github.com/xFA25E/skempo")
5087 (synopsis "Enhancements for skeleton/tempo + abbrev")
5088 (description
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+)))
5093
5094 (define-public emacs-toc-org
5095 (package
5096 (name "emacs-toc-org")
5097 (version "1.2.0")
5098 (source
5099 (origin
5100 (method git-fetch)
5101 (uri (git-reference
5102 (url "https://github.com/snosov1/toc-org")
5103 (commit version)))
5104 (file-name (git-file-name name version))
5105 (sha256
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")
5110 (description
5111 "This package generates a table of contents when saving in Org and
5112 Markdown files.")
5113 (license license:gpl2+)))
5114
5115 (define-public emacs-toml-mode
5116 (let ((version "0.1.3")
5117 (revision "0")
5118 (commit "f6c61817b00f9c4a3cab1bae9c309e0fc45cdd06"))
5119 (package
5120 (name "emacs-toml-mode")
5121 (version (git-version version revision commit))
5122 (source
5123 (origin
5124 (method git-fetch)
5125 (uri (git-reference
5126 (url "https://github.com/dryman/toml-mode.el")
5127 (commit commit)))
5128 (file-name (git-file-name name version))
5129 (sha256
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")
5134 (description
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+))))
5141
5142 (define-public emacs-twittering-mode
5143 (package
5144 (name "emacs-twittering-mode")
5145 (version "3.1.0")
5146 (source
5147 (origin
5148 (method url-fetch)
5149 (uri (string-append "mirror://sourceforge/twmode"
5150 "/twittering-mode-" version
5151 "/twittering-mode-" version ".tar.xz"))
5152 (sha256
5153 (base32 "02imis1gxz90lah0b5n37j2hlsaw5igss11d85vpsm5d1bgw8j28"))))
5154 (build-system emacs-build-system)
5155 (home-page "http://twmode.sourceforge.net")
5156 (synopsis "Emacs major mode for Twitter")
5157 (description
5158 "Twittering mode is an Emacs major mode for Twitter.
5159 You can check timelines, tweet, mark posts as favorites and so on with
5160 Emacs.")
5161 (license license:gpl2+)))
5162
5163 (define-public emacs-f
5164 (package
5165 (name "emacs-f")
5166 (version "0.20.0")
5167 (source (origin
5168 (method git-fetch)
5169 (uri (git-reference
5170 (url "https://github.com/rejeep/f.el")
5171 (commit (string-append "v" version))))
5172 (file-name (git-file-name name version))
5173 (sha256
5174 (base32
5175 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
5176 (build-system emacs-build-system)
5177 (propagated-inputs
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+)))
5184
5185 (define-public emacs-fountain-mode
5186 (package
5187 (name "emacs-fountain-mode")
5188 (version "3.6.2")
5189 (source
5190 (origin
5191 (method git-fetch)
5192 (uri (git-reference
5193 (url "https://github.com/rnkn/fountain-mode")
5194 (commit (string-append "v" version))))
5195 (file-name (git-file-name name version))
5196 (sha256
5197 (base32 "0mml0in6xxhfv4mdb7rl9k8m6xwmrjl5bb301p8d56sfng982pdl"))))
5198 (arguments
5199 (list
5200 #:phases #~(modify-phases %standard-phases
5201 (add-after 'unpack 'add-contrib
5202 (lambda _
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+)))
5210
5211 (define-public emacs-fringe-helper
5212 (let ((commit "ef4a9c023bae18ec1ddd7265f1f2d6d2e775efdd")
5213 (revision "1"))
5214 (package
5215 (name "emacs-fringe-helper")
5216 (version (git-version "1.0.1" revision commit))
5217 (source
5218 (origin
5219 (method git-fetch)
5220 (uri (git-reference
5221 (url "https://github.com/nschum/fringe-helper.el")
5222 (commit commit)))
5223 (file-name (git-file-name name version))
5224 (sha256
5225 (base32 "0ra9rc53l1gvkqank8apasl3r7wz2yfjrcvmfk3wpxhh24ppxv9d"))))
5226 (build-system emacs-build-system)
5227 (arguments
5228 `(#:tests? #t
5229 #:test-command '("emacs" "--batch"
5230 "-l" "tests.el"
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")
5234 (description
5235 "This package allows fringe bitmaps to be defined with a visual string
5236 representation.")
5237 (license license:gpl2+))))
5238
5239 (define-public emacs-git-gutter
5240 (let ((commit "ec28e85d237065cb3c28db4b66d129da6d309f9c")
5241 (revision "0"))
5242 (package
5243 (name "emacs-git-gutter")
5244 (version (git-version "0.92" revision commit))
5245 (source
5246 (origin
5247 (method git-fetch)
5248 (uri (git-reference
5249 (url "https://github.com/syohex/emacs-git-gutter")
5250 (commit commit)))
5251 (file-name (git-file-name name version))
5252 (sha256
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")
5257 (description
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.
5262
5263 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
5264 display and behaviour is easily customisable.")
5265 (license license:gpl3+))))
5266
5267 (define-public emacs-git-gutter-fringe
5268 (let ((commit "648cb5b57faec55711803cdc9434e55a733c3eba")
5269 (revision "2"))
5270 (package
5271 (name "emacs-git-gutter-fringe")
5272 (version (git-version "0.23" revision commit))
5273 (source
5274 (origin
5275 (method git-fetch)
5276 (uri (git-reference
5277 (url "https://github.com/emacsorphanage/git-gutter-fringe")
5278 (commit commit)))
5279 (file-name (git-file-name name version))
5280 (sha256
5281 (base32 "13bqq5r8ys2mmw1ffsm6hn6fji0vq3nx3slw98c9dgbvlprkaiip"))))
5282 (build-system emacs-build-system)
5283 (propagated-inputs
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")
5287 (description
5288 "This package extends @code{git-gutter} to use the fringe area of a
5289 window.")
5290 (license license:gpl3+))))
5291
5292 (define-public emacs-git-link
5293 (package
5294 (name "emacs-git-link")
5295 (version "0.8.6")
5296 (source
5297 (origin
5298 (method git-fetch)
5299 (uri (git-reference
5300 (url "https://github.com/sshaw/git-link")
5301 (commit (string-append "v" version))))
5302 (file-name (git-file-name name version))
5303 (sha256
5304 (base32 "1ifq9z4p0rbz2bpm6qz89xg5ycn5fflsyradzzxzsgyys0zc6szx"))))
5305 (build-system emacs-build-system)
5306 (arguments
5307 (list
5308 #:tests? #t
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")
5312 (description
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+)))
5317
5318 (define-public emacs-frowny
5319 (package
5320 (name "emacs-frowny")
5321 (version "0.3")
5322 (source
5323 (origin
5324 (method git-fetch)
5325 (uri (git-reference
5326 (url "https://github.com/duckwork/frowny.el")
5327 (commit (string-append "v" version))))
5328 (file-name (git-file-name name version))
5329 (sha256
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)))
5339
5340 (define-public emacs-apache-mode
5341 (package
5342 (name "emacs-apache-mode")
5343 (version "2.2.0")
5344 (source (origin
5345 (method git-fetch)
5346 (uri (git-reference
5347 (url "https://github.com/emacs-php/apache-mode")
5348 (commit version)))
5349 (file-name (git-file-name name version))
5350 (sha256
5351 (base32
5352 "1grs2x51k8pa6sgfa82s5pwwdfv7zw46ccw0zvd2rvzbhpq21p2z"))))
5353 (build-system emacs-build-system)
5354 (home-page "https://github.com/emacs-php/apache-mode")
5355 (synopsis
5356 "Syntax highlighting and indentation support for Apache config files")
5357 (description
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+)))
5362
5363 (define-public emacs-apheleia
5364 (package
5365 (name "emacs-apheleia")
5366 (version "3.1")
5367 (source
5368 (origin
5369 (method git-fetch)
5370 (uri (git-reference
5371 (url "https://github.com/raxod502/apheleia")
5372 (commit (string-append "v" version))))
5373 (file-name (git-file-name name version))
5374 (sha256
5375 (base32 "1145zh7nqadgz5r2llwjwgj2aciv08mn2cpp3zlf0rf3awg86yg7"))))
5376 (build-system emacs-build-system)
5377 (home-page "https://github.com/raxod502/apheleia")
5378 (synopsis "Reformat buffer stably")
5379 (description
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+)))
5384
5385 (define-public emacs-git-timemachine
5386 (package
5387 (name "emacs-git-timemachine")
5388 (version "4.11")
5389 (source
5390 (origin
5391 (method git-fetch)
5392 (uri (git-reference
5393 (url "https://gitlab.com/pidu/git-timemachine.git")
5394 (commit version)))
5395 (file-name (git-file-name name version))
5396 (sha256
5397 (base32
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+)))
5405
5406 (define-public emacs-minitest
5407 (package
5408 (name "emacs-minitest")
5409 (version "0.9.2")
5410 (source (origin
5411 (method git-fetch)
5412 (uri (git-reference
5413 (url "https://github.com/arthurnn/minitest-emacs")
5414 (commit (string-append "v" version))))
5415 (file-name (git-file-name name version))
5416 (sha256
5417 (base32
5418 "0d8kg68yy5x1y3ivj43vzcakb3gii6bh8jm40g4sah5f53bbrs16"))))
5419 (build-system emacs-build-system)
5420 (arguments
5421 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
5422 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
5423 (propagated-inputs
5424 (list emacs-dash emacs-f))
5425 (home-page "https://github.com/arthurnn/minitest-emacs")
5426 (synopsis "Emacs minitest mode")
5427 (description
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
5430 project.
5431
5432 This package also includes relevant snippets for yasnippet.")
5433 (license license:expat)))
5434
5435 (define-public emacs-gdscript-mode
5436 (package
5437 (name "emacs-gdscript-mode")
5438 (version "1.4.0")
5439 (source
5440 (origin
5441 (method git-fetch)
5442 (uri (git-reference
5443 (url "https://github.com/godotengine/emacs-gdscript-mode")
5444 (commit version)))
5445 (file-name (git-file-name name version))
5446 (sha256
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")
5451 (description
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+)))
5457
5458 (define-public emacs-el-mock
5459 (package
5460 (name "emacs-el-mock")
5461 (version "1.25.1")
5462 (source
5463 (origin
5464 (method git-fetch)
5465 (uri (git-reference
5466 (url "https://github.com/rejeep/el-mock.el")
5467 (commit (string-append "v" version))))
5468 (file-name (git-file-name name version))
5469 (sha256
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")
5474 (description
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+)))
5479
5480 (define-public emacs-ecukes
5481 (package
5482 (name "emacs-ecukes")
5483 (version "0.6.18")
5484 (source
5485 (origin
5486 (method git-fetch)
5487 (uri (git-reference
5488 (url "https://github.com/ecukes/ecukes")
5489 (commit (string-append "v" version))))
5490 (file-name (git-file-name name version))
5491 (sha256
5492 (base32 "182qgddfv8nd89y1l55rs5vm5i61ayc8cxbplb8zx0alnid9xrw1"))))
5493 (build-system emacs-build-system)
5494 (arguments
5495 `(#:include (cons* "^feature/" "^reporters/" "^templates/" %default-include)))
5496 (propagated-inputs
5497 (list emacs-ansi
5498 emacs-commander
5499 emacs-dash
5500 emacs-espuds
5501 emacs-f
5502 emacs-s))
5503 (home-page "https://github.com/ecukes/ecukes")
5504 (synopsis "Cucumber for Emacs")
5505 (description
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
5508 intended to be.")
5509 (license license:gpl3+)))
5510
5511 (define-public emacs-ef-themes
5512 ;; XXX: Upstream did not tag last release. The commit below matches version
5513 ;; bump.
5514 (let ((commit "35201e49e8c3f5d1a2d6c17cb1697a9e18529a9a"))
5515 (package
5516 (name "emacs-ef-themes")
5517 (version "0.10.0")
5518 (source
5519 (origin
5520 (method git-fetch)
5521 (uri (git-reference
5522 (url "https://git.sr.ht/~protesilaos/ef-themes")
5523 (commit commit)))
5524 (file-name (git-file-name name version))
5525 (sha256
5526 (base32
5527 "0c3gly6d5037dvvznf1mzihrfrcrrjmnsd2dda5k4frfyrc25rmn"))))
5528 (build-system emacs-build-system)
5529 (home-page "https://git.sr.ht/~protesilaos/ef-themes")
5530 (synopsis "Colorful and legible themes")
5531 (description
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+))))
5536
5537 (define-public emacs-espuds
5538 (package
5539 (name "emacs-espuds")
5540 (version "0.3.3")
5541 (source
5542 (origin
5543 (method git-fetch)
5544 (uri (git-reference
5545 (url "https://github.com/ecukes/espuds")
5546 (commit (string-append "v" version))))
5547 (file-name (git-file-name name version))
5548 (sha256
5549 (base32 "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg"))))
5550 (build-system emacs-build-system)
5551 (propagated-inputs
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+)))
5558
5559 (define-public emacs-spark
5560 (let ((version "20160503") ; no proper tag, use date of commit
5561 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
5562 (revision "1"))
5563 (package
5564 (name "emacs-spark")
5565 (version (git-version version revision commit))
5566 (source
5567 (origin
5568 (method git-fetch)
5569 (uri (git-reference
5570 (url "https://github.com/alvinfrancis/spark")
5571 (commit commit)))
5572 (file-name (git-file-name name version))
5573 (sha256
5574 (base32
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))))
5583
5584 (define-public emacs-spray
5585 (let ((version "0.0.2") (revision "0")
5586 (commit "74d9dcfa2e8b38f96a43de9ab0eb13364300cb46"))
5587 (package
5588 (name "emacs-spray")
5589 (version (git-version version revision commit))
5590 (source (origin
5591 (method git-fetch)
5592 (uri (git-reference
5593 (url "https://git.sr.ht/~iank/spray")
5594 (commit commit)))
5595 (file-name (git-file-name name version))
5596 (sha256
5597 (base32
5598 "1avbfr32dvff26kgvd5vgan99nb5c6al9kv5xbmy2rcls17py7r2"))))
5599 (build-system emacs-build-system)
5600 (home-page "https://git.sr.ht/~iank/spray")
5601 (synopsis "Speed reading mode for Emacs")
5602 (description
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+))))
5606
5607 (define-public emacs-es-mode
5608 (package
5609 (name "emacs-es-mode")
5610 (version "4.3.0")
5611 (source
5612 (origin
5613 (method git-fetch)
5614 (uri (git-reference
5615 (url "https://github.com/dakrone/es-mode")
5616 (commit version)))
5617 (file-name (git-file-name name version))
5618 (sha256
5619 (base32 "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg"))))
5620 (build-system emacs-build-system)
5621 (propagated-inputs
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+)))
5634
5635 (define-public emacs-expand-region
5636 (let ((commit "c5c4362741deebb0985a8a29f9b8b0e25160764a")
5637 (revision "1"))
5638 (package
5639 (name "emacs-expand-region")
5640 (version (git-version "0.11.0" revision commit))
5641 (source
5642 (origin
5643 (method git-fetch)
5644 (uri (git-reference
5645 (url "https://github.com/magnars/expand-region.el")
5646 (commit commit)))
5647 (file-name (git-file-name name version))
5648 (sha256
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")
5653 (description
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+))))
5658
5659 (define-public emacs-explain-pause-mode
5660 (let ((commit "2356c8c3639cbeeb9751744dbe737267849b4b51")
5661 (revision "0"))
5662 (package
5663 (name "emacs-explain-pause-mode")
5664 (version (git-version "0.1" revision commit))
5665 (source
5666 (origin
5667 (method git-fetch)
5668 (uri (git-reference
5669 (url "https://github.com/lastquestion/explain-pause-mode")
5670 (commit commit)))
5671 (file-name (git-file-name name version))
5672 (sha256
5673 (base32 "0frnfwqal9mrnrz6q4v7vcai26ahaw81894arff1yjw372pfgv7v"))))
5674 (build-system emacs-build-system)
5675 (native-inputs
5676 (list emacs-buttercup))
5677 (arguments
5678 '(#:tests? #t
5679 #:phases
5680 (modify-phases %standard-phases
5681 ;; This causes the byte-compilation before unit-tests to fail.
5682 (add-after 'unpack 'remove-error-on-warn
5683 (lambda _
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")
5694 (description
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+))))
5699
5700 (define-public emacs-filladapt
5701 (package
5702 (name "emacs-filladapt")
5703 (version "2.12.2")
5704 (source
5705 (origin
5706 (method url-fetch)
5707 (uri (string-append
5708 "https://elpa.gnu.org/packages/filladapt-"
5709 version ".el"))
5710 (sha256
5711 (base32
5712 "1cxyxfdjg1dsmn1jrl6b7xy03xr42fb6vyggh27s4dk417ils6yg"))))
5713 (build-system emacs-build-system)
5714 (home-page "http://elpa.gnu.org/packages/filladapt.html")
5715 (synopsis "Adaptive fill for Emacs")
5716 (description
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
5720 @code{fill-region}.
5721
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.
5727
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+)))
5733
5734 (define-public emacs-fill-column-indicator
5735 (package
5736 (name "emacs-fill-column-indicator")
5737 (version "1.90")
5738 (source
5739 (origin
5740 (method git-fetch)
5741 (uri (git-reference
5742 (url "https://github.com/alpaker/Fill-Column-Indicator")
5743 (commit version)))
5744 (file-name (git-file-name name version))
5745 (sha256
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")
5750 (description
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+)))
5754
5755 (define-public emacs-grep-a-lot
5756 (package
5757 (name "emacs-grep-a-lot")
5758 (version "1.0.7")
5759 (source
5760 (origin
5761 (method git-fetch)
5762 (uri (git-reference
5763 (url "https://github.com/ZungBang/emacs-grep-a-lot")
5764 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
5765 (file-name (git-file-name name version))
5766 (sha256
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")
5771 (description
5772 "This Emacs package allows managing multiple grep buffers.")
5773 (license license:gpl3+)))
5774
5775 (define-public emacs-fd
5776 (package
5777 (name "emacs-fd")
5778 (version "0.1.0")
5779 (source (origin
5780 (method git-fetch)
5781 (uri (git-reference
5782 (url "https://github.com/yqrashawn/fd-dired")
5783 (commit version)))
5784 (file-name (git-file-name name version))
5785 (sha256
5786 (base32
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
5792 result.")
5793 (license license:gpl3+)))
5794
5795 (define-public emacs-ripgrep
5796 (package
5797 (name "emacs-ripgrep")
5798 (version "0.4.0")
5799 (source
5800 (origin
5801 (method git-fetch)
5802 (uri (git-reference
5803 (url "https://github.com/nlamirault/ripgrep.el")
5804 (commit version)))
5805 (file-name (git-file-name name version))
5806 (sha256
5807 (base32 "1a5rdpmvsgsjlc9sywism9pq7jd6n9qbcdsvpbfkq1npwhpifkbj"))))
5808 (build-system emacs-build-system)
5809 (arguments
5810 `(#:phases
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
5815 (lambda _
5816 (delete-file "projectile-ripgrep.el"))))))
5817 (propagated-inputs
5818 (list ripgrep))
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+)))
5824
5825 (define-public emacs-rg
5826 (package
5827 (name "emacs-rg")
5828 (version "2.2.1")
5829 (source
5830 (origin
5831 (method git-fetch)
5832 (uri (git-reference
5833 (url "https://github.com/dajva/rg.el")
5834 (commit version)))
5835 (file-name (git-file-name name version))
5836 (sha256
5837 (base32 "1nxzplpk5cf6hhr2v85bmg68i6am96shi2zq7m83fs96bilhwsp5"))))
5838 (build-system emacs-build-system)
5839 (arguments
5840 (list
5841 #:phases
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.
5845 (lambda _
5846 (let ((file "rg.el"))
5847 (make-file-writable file)
5848 (emacs-substitute-sexps file
5849 ("(defcustom rg-executable" "rg"))))))))
5850 (propagated-inputs
5851 (list emacs-s emacs-wgrep ripgrep))
5852 (home-page "https://rgel.readthedocs.io/en/latest/")
5853 (synopsis "Search tool based on @code{ripgrep}")
5854 (description
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+)))
5859
5860 (define-public emacs-inf-ruby
5861 (package
5862 (name "emacs-inf-ruby")
5863 (version "2.5.2")
5864 (source
5865 (origin
5866 (method git-fetch)
5867 (uri (git-reference
5868 (url "https://github.com/nonsequitur/inf-ruby")
5869 (commit version)))
5870 (file-name (git-file-name name version))
5871 (sha256
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")
5876 (description
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+)))
5882
5883 (define-public emacs-zig-mode
5884 (let ((commit "dbc648f5bca8f3b9ca2cc7827f326f5530115144")
5885 (revision "0"))
5886 (package
5887 (name "emacs-zig-mode")
5888 (version (git-version "0.0.8" revision commit))
5889 (source
5890 (origin
5891 (method git-fetch)
5892 (uri (git-reference
5893 (url "https://github.com/ziglang/zig-mode")
5894 (commit commit)))
5895 (file-name (git-file-name name version))
5896 (sha256
5897 (base32 "0hwkkwhc5b2pzyqa2h0xw8wxijsrp1fk70fhyv8hx19shzlc4la3"))))
5898 (build-system emacs-build-system)
5899 (arguments
5900 (list
5901 #:tests? #t
5902 #:emacs emacs
5903 #:test-command #~(list "emacs" "--batch"
5904 "-l" "zig-mode.el"
5905 "-f" "ert-run-tests-batch-and-exit")))
5906 (home-page "https://github.com/ziglang/zig-mode/")
5907 (synopsis "Zig mode for Emacs")
5908 (description
5909 "This package provides syntax highlighting and automatic indentation
5910 for the Zig programming language in Emacs.")
5911 (license license:gpl3+))))
5912
5913 (define-public emacs-znc
5914 (package
5915 (name "emacs-znc")
5916 (version "0.4")
5917 (source
5918 (origin
5919 (method git-fetch)
5920 (uri (git-reference
5921 (url "https://github.com/sshirokov/ZNC.el")
5922 (commit version)))
5923 (file-name (git-file-name name version))
5924 (sha256
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")
5929 (description
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)))
5933
5934 (define-public emacs-erc-status-sidebar
5935 (let ((commit "ea4189a1dbfe60117359c36e681ad7c389e2968c")
5936 (revision "1"))
5937 (package
5938 (name "emacs-erc-status-sidebar")
5939 (version (git-version "0.1" revision commit))
5940 (source
5941 (origin
5942 (method git-fetch)
5943 (uri (git-reference
5944 (url "https://github.com/drewbarbs/erc-status-sidebar")
5945 (commit commit)))
5946 (file-name (git-file-name name version))
5947 (sha256
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")
5952 (description
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+))))
5958
5959 (define-public emacs-shut-up
5960 (package
5961 (name "emacs-shut-up")
5962 (version "0.3.3")
5963 (source
5964 (origin
5965 (method git-fetch)
5966 (uri (git-reference
5967 (url "https://github.com/cask/shut-up")
5968 (commit (string-append "v" version))))
5969 (file-name (git-file-name name version))
5970 (sha256
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)))
5978
5979 (define-public emacs-undercover
5980 (package
5981 (name "emacs-undercover")
5982 (version "0.8.1")
5983 (source
5984 (origin
5985 (method git-fetch)
5986 (uri (git-reference
5987 (url "https://github.com/sviridov/undercover.el")
5988 (commit (string-append "v" version))))
5989 (file-name (git-file-name name version))
5990 (sha256
5991 (base32 "0qmvyy3xg5qi7ws8zcs934d6afsappr1a6pgfp796xpa9vdr4y6j"))))
5992 (build-system emacs-build-system)
5993 (propagated-inputs
5994 (list emacs-dash emacs-shut-up))
5995 (home-page "https://github.com/sviridov/undercover.el")
5996 (synopsis "Test coverage library for Emacs Lisp")
5997 (description
5998 "Undercover is a test coverage library for software written in Emacs
5999 Lisp.")
6000 (license license:expat)))
6001
6002 (define-public emacs-paren-face
6003 (package
6004 (name "emacs-paren-face")
6005 (version "1.0.8")
6006 (source
6007 (origin
6008 (method git-fetch)
6009 (uri (git-reference
6010 (url "https://github.com/tarsius/paren-face")
6011 (commit version)))
6012 (file-name (git-file-name name version))
6013 (sha256
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")
6018 (description
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+)))
6026
6027 (define-public emacs-page-break-lines
6028 (package
6029 (name "emacs-page-break-lines")
6030 (version "0.14")
6031 (source
6032 (origin
6033 (method git-fetch)
6034 (uri (git-reference
6035 (url "https://github.com/purcell/page-break-lines")
6036 (commit version)))
6037 (file-name (git-file-name name version))
6038 (sha256
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")
6043 (description
6044 "This library provides a global mode which displays form feed characters
6045 as horizontal rules.")
6046 (license license:gpl3+)))
6047
6048 (define-public emacs-simple-httpd
6049 (package
6050 (name "emacs-simple-httpd")
6051 (version "1.5.1")
6052 (source
6053 (origin
6054 (method git-fetch)
6055 (uri (git-reference
6056 (url "https://github.com/skeeto/emacs-web-server")
6057 (commit version)))
6058 (file-name (git-file-name name version))
6059 (sha256
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")
6064 (description
6065 "This package provides a simple HTTP server written in Emacs Lisp to
6066 serve files and directory listings.")
6067 (license license:unlicense)))
6068
6069 (define-public emacs-skewer-mode
6070 (package
6071 (name "emacs-skewer-mode")
6072 (version "1.8.0")
6073 (source
6074 (origin
6075 (method git-fetch)
6076 (uri (git-reference
6077 (url "https://github.com/skeeto/skewer-mode")
6078 (commit version)))
6079 (file-name (git-file-name name version))
6080 (sha256
6081 (base32 "1ha7jl7776pk1bki5zj2q0jy66450mn8xr3aqjc0m9kj3gc9qxgw"))))
6082 (build-system emacs-build-system)
6083 (propagated-inputs
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")
6088 (description
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
6092 in Lisp modes.")
6093 (license license:unlicense)))
6094
6095 (define-public emacs-litable
6096 (let ((commit "b0278f3f8dcff424bfbdfdefb545b1fbff33206f"))
6097 (package
6098 (name "emacs-litable")
6099 (version (git-version "0.1" "0" commit))
6100 (source (origin
6101 (method git-fetch)
6102 (uri (git-reference
6103 (url "https://github.com/Fuco1/litable")
6104 (commit commit)))
6105 (file-name (git-file-name name version))
6106 (sha256
6107 (base32
6108 "0bny40hv9a024n01clxns351cs4j4ifhgcc7m4743xncqf612p7g"))))
6109 (build-system emacs-build-system)
6110 (propagated-inputs
6111 (list emacs-dash))
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+))))
6116
6117 (define-public emacs-literate-elisp
6118 (package
6119 (name "emacs-literate-elisp")
6120 (version "0.8")
6121 (source (origin
6122 (method git-fetch)
6123 (uri (git-reference
6124 (url "https://github.com/jingtaozf/literate-elisp")
6125 (commit version)))
6126 (file-name (git-file-name name version))
6127 (sha256
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")
6132 (description
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+)))
6137
6138 (define-public emacs-literate-calc-mode
6139 (let ((commit "ba7d22140a165b0fdd900a8d04916115ca6ab8ff")
6140 (revision "2"))
6141 (package
6142 (name "emacs-literate-calc-mode")
6143 (version (git-version "0.1" revision commit))
6144 (source
6145 (origin
6146 (method git-fetch)
6147 (uri (git-reference
6148 (url "https://github.com/sulami/literate-calc-mode.el")
6149 (commit commit)))
6150 (file-name (git-file-name name version))
6151 (sha256
6152 (base32 "1bdybw44pmhfpikdv1kg2sx88546xyncks5a4b2s0ak4p66r82k3"))))
6153 (build-system emacs-build-system)
6154 (propagated-inputs
6155 (list emacs-s))
6156 (home-page "https://github.com/sulami/literate-calc-mode.el")
6157 (synopsis "Literate programming for Emacs Calc")
6158 (description
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+))))
6165
6166 (define-public emacs-standard-dirs
6167 (package
6168 (name "emacs-standard-dirs")
6169 (version "2.0.0")
6170 (home-page "https://github.com/lafrenierejm/standard-dirs.el")
6171 (source
6172 (origin
6173 (method git-fetch)
6174 (uri (git-reference
6175 (url home-page)
6176 (commit version)))
6177 (file-name (git-file-name name version))
6178 (sha256
6179 (base32 "0r814qcrhvx4qlx4sdzwdmrhiryslqclx0bnpp0qcrbx6g8qfl25"))))
6180 (build-system emacs-build-system)
6181 (propagated-inputs
6182 (list emacs-f emacs-s))
6183 (synopsis "Platform-specific paths for config, cache, and other data")
6184 (description
6185 "This package provides platform-specific paths for reading and writing
6186 configuration, cache, and other data.")
6187 (license license:gpl3+)))
6188
6189 (define-public emacs-string-inflection
6190 (package
6191 (name "emacs-string-inflection")
6192 (version "1.0.16")
6193 (source
6194 (origin
6195 (method git-fetch)
6196 (uri (git-reference
6197 (url "https://github.com/akicho8/string-inflection")
6198 (commit (string-append "v" version))))
6199 (file-name (git-file-name name version))
6200 (sha256
6201 (base32 "0wskrp3v5gi3b3s9471ijkdncnfd888qd50c72rv2p8846174paj"))))
6202 (build-system emacs-build-system)
6203 (native-inputs
6204 (list emacs-ert-runner))
6205 (arguments
6206 `(#:tests? #t
6207 #:test-command '("ert-runner")))
6208 (home-page "https://github.com/akicho8/string-inflection")
6209 (synopsis "Convert symbol names between different naming conventions")
6210 (description
6211 "This Emacs package provides convenient methods for manipulating the
6212 naming style of a symbol. It supports different naming conventions such as:
6213
6214 @enumerate
6215 @item camel case
6216 @item Pascal case
6217 @item all upper case
6218 @item lower case separated by underscore
6219 @item etc...
6220 @end enumerate\n")
6221 (license license:gpl2+)))
6222
6223 (define-public emacs-stripe-buffer
6224 (package
6225 (name "emacs-stripe-buffer")
6226 (version "0.2.5")
6227 (source
6228 (origin
6229 (method git-fetch)
6230 (uri (git-reference
6231 (url "https://github.com/sabof/stripe-buffer")
6232 (commit version)))
6233 (file-name (git-file-name name version))
6234 (sha256
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")
6239 (description
6240 "This Emacs package adds faces to add stripes to list buffers and org
6241 tables.")
6242 (license license:gpl2+)))
6243
6244 (define-public emacs-org-beautify-theme
6245 ;; Latest release (0.4) is not tagged, use commit hash.
6246 (let ((commit "df6a1114fda313e1689363e196c8284fbe2a2738")
6247 (revision "0"))
6248 (package
6249 (name "emacs-org-beautify-theme")
6250 (version "0.4")
6251 (source
6252 (origin
6253 (method git-fetch)
6254 (uri (git-reference
6255 (url "https://github.com/jonnay/org-beautify-theme")
6256 (commit commit)))
6257 (file-name (git-file-name name version))
6258 (sha256
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")
6263 (description
6264 "The theme adds padding between headings, increases the size of titles,
6265 strike through completed TODO headings, changes Org blocks, changes Org check
6266 boxes, and more.")
6267 (license license:gpl3+))))
6268
6269 (define-public emacs-org-books
6270 (package
6271 (name "emacs-org-books")
6272 (version "0.3.0")
6273 (source
6274 (origin
6275 (method git-fetch)
6276 (uri (git-reference
6277 (url "https://github.com/lepisma/org-books")
6278 (commit version)))
6279 (file-name (git-file-name name version))
6280 (sha256
6281 (base32
6282 "1sgckvpjdaig9r2clcvs6ckgf2kx7amikkpq26y30jbnfnbskf0v"))))
6283 (build-system emacs-build-system)
6284 (propagated-inputs
6285 (list emacs-dash
6286 emacs-enlive
6287 emacs-helm
6288 emacs-helm-org
6289 emacs-org
6290 emacs-s))
6291 (home-page "https://github.com/lepisma/org-books")
6292 (synopsis "Reading list management with Org mode and Helm")
6293 (description
6294 "Org Books is a tool for managing reading lists in an Org mode file.")
6295 (license license:gpl3+)))
6296
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")
6301 (revision "0"))
6302 (package
6303 (name "emacs-org-chef")
6304 (version (git-version "0.1.3" revision commit))
6305 (source
6306 (origin
6307 (method git-fetch)
6308 (uri (git-reference
6309 (url "https://github.com/Chobbes/org-chef")
6310 (commit commit)))
6311 (file-name (git-file-name name version))
6312 (sha256
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")
6318 (description
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
6321 allrecipes.com.")
6322 (license license:expat))))
6323
6324 (define-public emacs-org-inline-pdf
6325 (package
6326 (name "emacs-org-inline-pdf")
6327 (version "0.2")
6328 (source (origin
6329 (method git-fetch)
6330 (uri (git-reference
6331 (url "https://github.com/shg/org-inline-pdf.el")
6332 (commit version)))
6333 (file-name (git-file-name name version))
6334 (sha256
6335 (base32
6336 "1qc92xvgxmnwjixk8bxwbc1l1jj0qk9dg73jyaip6lk4g0wjk6xf"))))
6337 (build-system emacs-build-system)
6338 (inputs
6339 (list pdf2svg))
6340 (arguments
6341 `(#:phases
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+)))
6353
6354 (define-public emacs-org-rainbow-tags
6355 ;; Upstream didn't tag version.
6356 (let ((commit "c6040d228c5e8c5c6d33c7f81fc09d935ad1bcbd"))
6357 (package
6358 (name "emacs-org-rainbow-tags")
6359 (version "0.1-pre")
6360 (source (origin
6361 (method git-fetch)
6362 (uri (git-reference
6363 (url "https://github.com/KaratasFurkan/org-rainbow-tags")
6364 (commit commit)))
6365 (file-name (git-file-name name version))
6366 (sha256
6367 (base32
6368 "006nx01sby8k0fc9lf63ldf0sl94ihldyrvqr9r18fb1gpzvivl6"))))
6369 (build-system emacs-build-system)
6370 (home-page "https://github.com/KaratasFurkan/org-rainbow-tags")
6371 (synopsis "Colorize Org tags automatically")
6372 (description
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+))))
6377
6378 (define-public emacs-org-rich-yank
6379 (package
6380 (name "emacs-org-rich-yank")
6381 (version "0.2.1")
6382 (source
6383 (origin
6384 (method git-fetch)
6385 (uri (git-reference
6386 (url "https://github.com/unhammer/org-rich-yank")
6387 (commit (string-append "v" version))))
6388 (file-name (git-file-name name version))
6389 (sha256
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")
6395 (description
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+)))
6400
6401 (define-public emacs-org-fancy-priorities
6402 (let ((commit "819bb993b71e7253cefef7047306ab4e0f9d0a86")
6403 (revision "1"))
6404 (package
6405 (name "emacs-org-fancy-priorities")
6406 (version (git-version "1.1" revision commit))
6407 (source
6408 (origin
6409 (method git-fetch)
6410 (uri (git-reference
6411 (url "https://github.com/harrybournis/org-fancy-priorities.git")
6412 (commit commit)))
6413 (file-name (git-file-name name version))
6414 (sha256
6415 (base32
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")
6420 (description
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))))
6425
6426 (define-public emacs-org-fragtog
6427 (package
6428 (name "emacs-org-fragtog")
6429 (version "0.4.2")
6430 (source
6431 (origin
6432 (method git-fetch)
6433 (uri (git-reference
6434 (url "https://github.com/io12/org-fragtog")
6435 (commit version)))
6436 (file-name (git-file-name name version))
6437 (sha256
6438 (base32 "1xag0pdphigk0ilrj2hacai3p6xgl27jji08aa1zlhq7p3rbay7m"))))
6439 (build-system emacs-build-system)
6440 (propagated-inputs
6441 (list emacs-org))
6442 (home-page "https://github.com/io12/org-fragtog")
6443 (synopsis "Toggle Org mode LaTeX fragments preview at cursor")
6444 (description
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+)))
6449
6450 (define-public emacs-ob-erlang
6451 (let ((revision "1")
6452 (commit "a029c23902b4ad73b84f262a7fc5b98d87b63dfd"))
6453 (package
6454 (name "emacs-ob-erlang")
6455 (version (git-version "20210321" revision commit))
6456 (source (origin
6457 (method git-fetch)
6458 (uri (git-reference
6459 (url "https://github.com/xfwduke/ob-erlang")
6460 (commit commit)))
6461 (file-name (git-file-name name version))
6462 (sha256
6463 (base32
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+))))
6471
6472 (define-public emacs-ob-restclient
6473 (let ((commit "1b021ce1c67c97fa1aa4d2c0816edb7add129e48"))
6474 (package
6475 (name "emacs-ob-restclient")
6476 (version (git-version "0.02" "3" commit))
6477 (source
6478 (origin
6479 (method git-fetch)
6480 (uri (git-reference
6481 (url "https://github.com/alf/ob-restclient.el")
6482 (commit commit)))
6483 (file-name (git-file-name name version))
6484 (sha256
6485 (base32 "1bcjj01q5n9w2cch6brbz8pzwnwsmdlgaa4sf5s97b9frmqb2ffg"))))
6486 (propagated-inputs
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}")
6491 (description
6492 "This package integrates @code{restclient-mode} with Org.")
6493 (license license:gpl3+))))
6494
6495 (define-public emacs-org-now
6496 (let ((commit "8f6b277a73f1c66e58ccb4b7f40d406851befc91"))
6497 (package
6498 (name "emacs-org-now")
6499 (version (git-version "0.1-pre" "1" commit))
6500 (source
6501 (origin
6502 (method git-fetch)
6503 (uri (git-reference
6504 (url "https://github.com/alphapapa/org-now")
6505 (commit commit)))
6506 (file-name (git-file-name name version))
6507 (sha256
6508 (base32 "117zzkryznznk6h4i1jqzdn888nl019xrgxm2gza0lndx8dxsg2c"))))
6509 (propagated-inputs
6510 (list emacs-dash))
6511 (build-system emacs-build-system)
6512 (home-page "https://github.com/alphapapa/org-now")
6513 (synopsis "Show current Org tasks in a sidebar")
6514 (description
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+))))
6520
6521 (define-public emacs-orgmdb
6522 (package
6523 (name "emacs-orgmdb")
6524 (version "0.5")
6525 (source
6526 (origin
6527 (method git-fetch)
6528 (uri (git-reference
6529 (url "https://github.com/isamert/orgmdb.el")
6530 (commit "66c13abdb84e0f0a31bae6cfda27478771d58d8e")))
6531 (sha256
6532 (base32
6533 "1hvxha0ih9jhvwj07l6jnpf2vzhgvb6ii73g49c8saxld61l0frf"))
6534 (file-name (git-file-name name version))))
6535 (build-system emacs-build-system)
6536 (arguments
6537 (list #:phases
6538 #~(modify-phases %standard-phases
6539 (add-after 'unpack 'configure
6540 (lambda* (#:key inputs #:allow-other-keys)
6541 (substitute* "orgmdb.el"
6542 (("\"fd ")
6543 (string-append "\""
6544 (search-input-file inputs "/bin/fd")
6545 " "))))))))
6546 (inputs
6547 (list fd))
6548 (propagated-inputs
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+)))
6555
6556 (define-public emacs-rich-minority
6557 (package
6558 (name "emacs-rich-minority")
6559 (version "1.0.3")
6560 (source
6561 (origin
6562 (method git-fetch)
6563 (uri (git-reference
6564 (url "https://github.com/Malabarba/rich-minority")
6565 (commit version)))
6566 (file-name (git-file-name name version))
6567 (sha256
6568 (base32
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")
6573 (description
6574 "This Emacs package hides and/or highlights minor modes in the
6575 mode-line.")
6576 (license license:gpl2+)))
6577
6578 (define-public emacs-robe
6579 (package
6580 (name "emacs-robe")
6581 (version "0.8.3")
6582 (source
6583 (origin
6584 (method git-fetch)
6585 (uri (git-reference
6586 (url "https://github.com/dgutov/robe")
6587 (commit version)))
6588 (file-name (git-file-name name version))
6589 (sha256
6590 (base32 "1xbj7wi389n6pxfvxrakvhylkdlqg8ll9ad2zmxggcchygwah6nl"))))
6591 (build-system emacs-build-system)
6592 (arguments
6593 '(#:include (cons "^lib\\/" %default-include)))
6594 (propagated-inputs
6595 (list emacs-inf-ruby))
6596 (home-page "https://github.com/dgutov/robe")
6597 (synopsis "Ruby code assistance tool for Emacs")
6598 (description
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+)))
6604
6605 (define-public emacs-robot-mode
6606 (package
6607 (name "emacs-robot-mode")
6608 (version "0.7.0")
6609 (source
6610 (origin
6611 (method git-fetch)
6612 (uri (git-reference
6613 (url "https://github.com/kopoli/robot-mode")
6614 (commit version)))
6615 (file-name (git-file-name name version))
6616 (sha256
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")
6621 (description
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+)))
6626
6627 (define-public emacs-robot-log
6628 (package
6629 (name "emacs-robot-log")
6630 (version "0.1.4")
6631 (source (origin
6632 (method git-fetch)
6633 (uri (git-reference
6634 (url "https://git.sr.ht/~apteryx/emacs-robot-log")
6635 (commit version)))
6636 (file-name (git-file-name name version))
6637 (sha256
6638 (base32
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+)))
6650
6651 (define-public emacs-robots-txt-mode
6652 (package
6653 (name "emacs-robots-txt-mode")
6654 (version "0.0.9")
6655 (source (origin
6656 (method git-fetch)
6657 (uri (git-reference
6658 (url "https://github.com/emacs-php/robots-txt-mode")
6659 (commit version)))
6660 (file-name (git-file-name name version))
6661 (sha256
6662 (base32
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+)))
6670
6671 (define-public emacs-roguel-ike
6672 (package
6673 (name "emacs-roguel-ike")
6674 (version "0.1.1")
6675 (source
6676 (origin
6677 (method git-fetch)
6678 (uri (git-reference
6679 (url "https://github.com/stevenremot/roguel-ike")
6680 (commit version)))
6681 (file-name (git-file-name name version))
6682 (sha256
6683 (base32 "0rgv4y9aa5cc2ddz3y5z8d22xmr8kf5c60h0r3g8h91jmcw3rb4z"))))
6684 (build-system emacs-build-system)
6685 (propagated-inputs
6686 (list emacs-popup))
6687 (arguments
6688 (list
6689 #:include #~(cons* "^roguel-ike/" "^roguel-ike-lib/" %default-include)
6690 #:phases
6691 #~(modify-phases %standard-phases
6692 (add-before 'check 'set-test-environment
6693 (lambda _
6694 (setenv "HOME" "/tmp"))))))
6695 (home-page "https://github.com/stevenremot/roguel-ike.git")
6696 (synopsis "Coffee-break roguelike for Emacs")
6697 (description
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
6701 explorations.")
6702 (license license:gpl3+)))
6703
6704 (define-public emacs-rspec
6705 (let ((commit "66ea7cc9699d6edc6115daa024818adbd85efc20")
6706 (revision "1"))
6707 (package
6708 (name "emacs-rspec")
6709 (version (git-version "1.11" revision commit))
6710 (source
6711 (origin
6712 (method git-fetch)
6713 (uri (git-reference
6714 (url "https://github.com/pezra/rspec-mode")
6715 (commit commit)))
6716 (file-name (git-file-name name version))
6717 (sha256
6718 (base32 "0b11s8r0pi7ah54km4yg4fqff8wkk409d25qnlwm1l94pdwjd1c8"))))
6719 (build-system emacs-build-system)
6720 (arguments
6721 `(#:include (cons "^snippets\\/rspec-mode\\/" %default-include)
6722 #:tests? #t
6723 #:test-command '("make" "test")))
6724 (home-page "https://github.com/pezra/rspec-mode")
6725 (synopsis "Provides a rspec mode for working with RSpec")
6726 (description
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.
6730
6731 Also included are keybindings for spec files and Dired buffers, as well as
6732 snippets for yasnippet.")
6733 (license license:gpl3+))))
6734
6735 (define-public emacs-mode-line-idle
6736 ;; Package has no release. Version is extracted from "Version:" keyword in
6737 ;; main file.
6738 (let ((commit "02b1da6278e43cc9cc0356110cc6bfbb37eb8241")
6739 (revision "1"))
6740 (package
6741 (name "emacs-mode-line-idle")
6742 (version (git-version "0.1" revision commit))
6743 (source
6744 (origin
6745 (method git-fetch)
6746 (file-name (git-file-name name version))
6747 (uri (git-reference
6748 (url "https://gitlab.com/ideasman42/emacs-mode-line-idle")
6749 (commit commit)))
6750 (sha256
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")
6755 (description
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
6758 configuration.")
6759 (license license:gpl3+))))
6760
6761 (define-public emacs-nyan-mode
6762 (package
6763 (name "emacs-nyan-mode")
6764 (version "1.1.3")
6765 (source
6766 (origin
6767 (method git-fetch)
6768 (uri (git-reference
6769 (url "https://github.com/TeMPOraL/nyan-mode/")
6770 (commit (string-append "v" version))))
6771 (file-name (git-file-name name version))
6772 (sha256
6773 (base32 "0d0hdjliad8afz4br38gwidph9zhmm5s09y45n95kqlazq62jfsx"))))
6774 (build-system emacs-build-system)
6775 (arguments
6776 (list
6777 #:include #~(cons* "img/" "mus/" %default-include)
6778 #:phases
6779 #~(modify-phases %standard-phases
6780 (add-after 'unpack 'patch-sources
6781 (lambda* (#:key inputs #:allow-other-keys)
6782 (substitute* "nyan-mode.el"
6783 (("mplayer ")
6784 (string-append (search-input-file inputs "bin/mplayer")
6785 " "))))))))
6786 (inputs (list mplayer))
6787 (home-page "https://github.com/TeMPOraL/nyan-mode/")
6788 (synopsis "Nyan Cat as buffer position indicator")
6789 (description
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+)))
6795
6796 (define-public emacs-smart-mode-line
6797 (package
6798 (name "emacs-smart-mode-line")
6799 (version "2.14")
6800 (source
6801 (origin
6802 (method git-fetch)
6803 (uri (git-reference
6804 (url "https://github.com/Malabarba/smart-mode-line")
6805 (commit version)))
6806 (file-name (git-file-name name version))
6807 (sha256
6808 (base32 "1h5w5lrgrmhpaqwppg5msylh7z78mvwy9mm8xiiv8w4wxvncxxl2"))))
6809 (build-system emacs-build-system)
6810 (propagated-inputs
6811 (list emacs-rich-minority))
6812 (home-page "https://github.com/Malabarba/smart-mode-line")
6813 (synopsis "Color-coded smart mode-line")
6814 (description
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
6817 truncation.")
6818 (license license:gpl2+)))
6819
6820 (define-public emacs-sqlite
6821 ;; XXX: There is no tagged commit.
6822 (let ((commit "dad42b8bbca4994be1871343dd18fd6528ee5797")
6823 (revision "0"))
6824 (package
6825 (name "emacs-sqlite")
6826 (build-system emacs-build-system)
6827 (version (git-version "1.0" revision commit))
6828 (source
6829 (origin
6830 (method git-fetch)
6831 (uri (git-reference
6832 (url "https://gitlab.com/cnngimenez/sqlite.el")
6833 (commit commit)))
6834 (file-name (git-file-name name version))
6835 (sha256
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+))))
6843
6844 (define-public emacs-sqlite3-api
6845 (package
6846 (name "emacs-sqlite3-api")
6847 (version "0.16")
6848 (source (origin
6849 (method git-fetch)
6850 (uri (git-reference
6851 (url "https://github.com/pekingduck/emacs-sqlite3-api")
6852 (commit (string-append "v" version))))
6853 (file-name (git-file-name name version))
6854 (sha256
6855 (base32
6856 "0yrfwb3yvhp1ib4izxh1ds68b3zw8gjkjhlk1kivarxnfjnjnly2"))))
6857 (build-system emacs-build-system)
6858 (arguments
6859 (list
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)
6864 (guix build utils))
6865 #:phases
6866 #~(modify-phases %standard-phases
6867 (add-after 'unpack 'patch-module-load
6868 (lambda _
6869 (make-file-writable "sqlite3.el")
6870 (emacs-substitute-sexps "sqlite3.el"
6871 ("(require 'sqlite3-api nil t)"
6872 (string-append
6873 "(module-load \"" #$output "/lib/sqlite3-api.so\")")))))
6874 (add-before 'check 'build-emacs-module
6875 (lambda _
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+)))
6901
6902 (define-public emacs-sr-speedbar
6903 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
6904 (revision "0"))
6905 (package
6906 (name "emacs-sr-speedbar")
6907 (version (git-version "20161025" revision commit))
6908 (source
6909 (origin
6910 (method git-fetch)
6911 (uri (git-reference
6912 (url "https://github.com/emacsorphanage/sr-speedbar")
6913 (commit commit)))
6914 (file-name (git-file-name name version))
6915 (sha256
6916 (base32
6917 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
6918 (build-system emacs-build-system)
6919 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
6920 (synopsis "Same frame Emacs @code{speedbar}")
6921 (description
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+))))
6926
6927 (define-public emacs-shell-switcher
6928 (package
6929 (name "emacs-shell-switcher")
6930 (version "1.0.1")
6931 (source
6932 (origin
6933 (method git-fetch)
6934 (uri (git-reference
6935 (url "https://github.com/DamienCassou/shell-switcher")
6936 (commit (string-append "v" version))))
6937 (file-name (git-file-name name version))
6938 (sha256
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")
6943 (description
6944 "This package provides commands to quickly switch between shell buffers.")
6945 (license license:gpl3+)))
6946
6947 (define-public emacs-shx
6948 (package
6949 (name "emacs-shx")
6950 (version "1.5.0")
6951 (source (origin
6952 (method git-fetch)
6953 (uri (git-reference
6954 (url "https://github.com/riscy/shx-for-emacs")
6955 (commit (string-append "v" version))))
6956 (file-name (git-file-name name version))
6957 (sha256
6958 (base32 "1cb5w6p9gnfxgh8qp7yj2f5ibpk1b4b5af3ynldaaj6yfpa8hqzn"))))
6959 (build-system emacs-build-system)
6960 (arguments
6961 `(#:tests? #t
6962 #:test-command
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")
6967 (description
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
6971 file).")
6972 (license license:gpl3+)))
6973
6974 (define-public emacs-names
6975 (let ((commit "d8baba5360e5253938a25d3e005455b6d2d86971")
6976 (version "20151201.0")
6977 (revision "8"))
6978 (package
6979 (name "emacs-names")
6980 (version (git-version version revision commit))
6981 (source
6982 (origin
6983 (method git-fetch)
6984 (uri (git-reference
6985 (url "https://github.com/Malabarba/names")
6986 (commit commit)))
6987 (file-name (git-file-name name version))
6988 (sha256
6989 (base32
6990 "11wyha2q8y7bzqq3jrzix8n97ywvsibvddrahqcps1a1yqk4hzfz"))))
6991 (build-system emacs-build-system)
6992 (home-page "https://github.com/Malabarba/names/")
6993 (synopsis "Namespace implementation for Emacs Lisp")
6994 (description
6995 "This package provides a macro that writes your namespaces for you.")
6996 (license license:gpl3+))))
6997
6998 (define-public emacs-nameless
6999 (package
7000 (name "emacs-nameless")
7001 (version "1.0.2")
7002 (source
7003 (origin
7004 (method git-fetch)
7005 (uri (git-reference
7006 (url "https://github.com/Malabarba/Nameless")
7007 (commit version)))
7008 (file-name (git-file-name name version))
7009 (sha256
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")
7014 (description
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+)))
7018
7019 (define-public emacs-evil-leader
7020 (package
7021 (name "emacs-evil-leader")
7022 (version "0.4.3")
7023 (source
7024 (origin
7025 (method git-fetch)
7026 (uri
7027 (git-reference
7028 (url "https://github.com/cofi/evil-leader")
7029 (commit version)))
7030 (file-name (git-file-name name version))
7031 (sha256
7032 (base32 "1k2zinchs0jjllp8zkpggckyy63dkyi5yig3p46vh4w45jdzysk5"))))
7033 (inputs
7034 (list emacs-evil))
7035 (build-system emacs-build-system)
7036 (home-page "https://github.com/cofi/evil-leader")
7037 (synopsis "Implement <leader> feature from Vim")
7038 (description
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+)))
7042
7043 (define-public emacs-evil-tex
7044 (package
7045 (name "emacs-evil-tex")
7046 (version "1.0.2")
7047 (source
7048 (origin
7049 (method git-fetch)
7050 (uri (git-reference
7051 (url "https://github.com/iyefrat/evil-tex")
7052 (commit version)))
7053 (file-name (git-file-name name version))
7054 (sha256
7055 (base32 "1wrx8ihimn1sx3vzzfppcwv0yfh3x95jrkxqvzj0ykckipm3zk0b"))))
7056 (build-system emacs-build-system)
7057 (arguments
7058 `(#:phases
7059 (modify-phases %standard-phases
7060 (add-before 'build 'set-home
7061 (lambda _ (setenv "HOME" "/tmp"))))))
7062 (propagated-inputs
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+)))
7071
7072 (define-public emacs-evil-textobj-syntax
7073 (let ((commit "2d9ba8c75c754b409aea7469f46a5cfa52a872f3")
7074 (version "0")
7075 (revision "1"))
7076 (package
7077 (name "emacs-evil-textobj-syntax")
7078 (version (git-version version revision commit))
7079 (source
7080 (origin
7081 (method git-fetch)
7082 (uri (git-reference
7083 (url "https://github.com/laishulu/evil-textobj-syntax/")
7084 (commit commit)))
7085 (file-name (git-file-name name version))
7086 (sha256
7087 (base32
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")
7093 (description
7094 "This package provides text objects for @code{evil-mode} with
7095 boundaries defined by syntax highlighting.")
7096 (license license:gpl3+))))
7097
7098 (define-public emacs-flycheck-flow
7099 (let ((commit "9e8e52cfc98af6a23fd906f9cb5d5d470d8cf82d")
7100 (version "1.1")
7101 (revision "1"))
7102 (package
7103 (name "emacs-flycheck-flow")
7104 (version (git-version version revision commit))
7105 (source
7106 (origin
7107 (method git-fetch)
7108 (uri (git-reference
7109 (url "https://github.com/lbolla/emacs-flycheck-flow")
7110 (commit commit)))
7111 (file-name (git-file-name name version))
7112 (sha256
7113 (base32
7114 "14qldlisbmxzammr500gyha2hiv2xgyzfc6mysqii06kbcqn1ik1"))))
7115 (build-system emacs-build-system)
7116 (propagated-inputs
7117 (list emacs-flycheck))
7118 (home-page "https://github.com/lbolla/emacs-flycheck-flow")
7119 (synopsis "Flow support for @code{flycheck-mode}")
7120 (description
7121 "This package allows @code{flycheck-mode} to provide syntax-checking
7122 for Flow files.")
7123 (license license:gpl3+))))
7124
7125 (define-public emacs-flycheck-grammalecte
7126 (package
7127 (name "emacs-flycheck-grammalecte")
7128 (version "2.0")
7129 (source
7130 (origin
7131 (method git-fetch)
7132 (uri (git-reference
7133 (url "https://git.umaneti.net/flycheck-grammalecte/")
7134 (commit (string-append "v" version))))
7135 (file-name (git-file-name name version))
7136 (sha256
7137 (base32 "040mb9djj4cxpjsjch9i30pi36a2z7grkhnsnfdi5qyh341p4pq0"))))
7138 (build-system emacs-build-system)
7139 (arguments
7140 `(#:include (cons "\\.py$" %default-include)
7141 #:exclude '("^test-profile.el$")
7142 #:emacs ,emacs ;need libxml support
7143 #:phases
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
7160 inputs
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.
7166 (lambda _
7167 (make-file-writable "grammalecte.el")
7168 (emacs-substitute-variables "grammalecte.el"
7169 ("grammalecte-check-upstream-version-delay" 0)))))))
7170 (inputs
7171 (list grammalecte python))
7172 (propagated-inputs
7173 (list emacs-flycheck))
7174 (home-page "https://git.umaneti.net/flycheck-grammalecte/")
7175 (synopsis "Integrate Grammalecte with Flycheck")
7176 (description
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+)))
7182
7183 (define-public emacs-flycheck-guile
7184 (package
7185 (name "emacs-flycheck-guile")
7186 (version "0.4")
7187 (source
7188 (origin
7189 (method git-fetch)
7190 (uri
7191 (git-reference
7192 (url "https://github.com/flatwhatson/flycheck-guile")
7193 (commit version)))
7194 (file-name (git-file-name name version))
7195 (sha256
7196 (base32 "0hkj3y7xlbbnwagmccav620r3qngpc909pj3n5b876r8gp6rm87p"))))
7197 (propagated-inputs
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")
7202 (description
7203 "This package provides a Flycheck checker for GNU Guile using @code{guild
7204 compile}.")
7205 (license license:gpl3+)))
7206
7207 (define-public emacs-flycheck-ledger
7208 (package
7209 (name "emacs-flycheck-ledger")
7210 (version "0.5")
7211 (source
7212 (origin
7213 (method git-fetch)
7214 (uri (git-reference
7215 (url "https://github.com/purcell/flycheck-ledger")
7216 (commit version)))
7217 (file-name (git-file-name name version))
7218 (sha256
7219 (base32 "1djrj3is0dzrl2703bw7bclf33dp4xqmy144q7xj5pvpb9v3kf50"))))
7220 (arguments
7221 (list
7222 #:phases
7223 #~(modify-phases %standard-phases
7224 (add-after 'unpack 'configure
7225 (lambda _
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))
7231 (propagated-inputs
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")
7236 (description
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
7239 errors.")
7240 (license license:gpl3+)))
7241
7242 (define-public emacs-flycheck-rust
7243 (package
7244 (name "emacs-flycheck-rust")
7245 (version "1.1")
7246 (source
7247 (origin
7248 (method git-fetch)
7249 (uri
7250 (git-reference
7251 (url "https://github.com/flycheck/flycheck-rust")
7252 (commit version)))
7253 (file-name (git-file-name name version))
7254 (sha256
7255 (base32 "1fh6j5w2387nh2fwwjphkhq17cgj5m2q5k0fhidvgc2w65lzbr1r"))))
7256 (propagated-inputs
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")
7261 (description
7262 "This Flycheck extension configures Flycheck automatically for
7263 the current Cargo project.")
7264 (license license:gpl3+)))
7265
7266 (define-public emacs-flycheck-package
7267 (package
7268 (name "emacs-flycheck-package")
7269 (version "0.14")
7270 (source
7271 (origin
7272 (method git-fetch)
7273 (uri (git-reference
7274 (url "https://github.com/purcell/flycheck-package")
7275 (commit version)))
7276 (file-name (git-file-name name version))
7277 (sha256
7278 (base32
7279 "00py39n1383761wq6wp194pvyk94ydqdbxj9kl64g9jnipkp7849"))))
7280 (build-system emacs-build-system)
7281 (propagated-inputs
7282 (list emacs-flycheck emacs-package-lint))
7283 (home-page "https://github.com/purcell/flycheck-package")
7284 (synopsis "Flycheck checker for elisp package metadata")
7285 (description
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+)))
7289
7290 (define-public emacs-flymake-proselint
7291 (let ((commit "9c68ee881f18f554f0ab5bbf5bee1a4b753d792b"))
7292 (package
7293 (name "emacs-flymake-proselint")
7294 (version "0.3.0")
7295 (source (origin
7296 (method git-fetch)
7297 (uri (git-reference
7298 (url "https://git.sr.ht/~manuel-uberti/flymake-proselint")
7299 (commit commit)))
7300 (file-name (git-file-name name version))
7301 (sha256
7302 (base32
7303 "1n8i17il2nfazw3d9kza2r7py61dgdr7kqmg0s1vhrk86qq39669"))))
7304 (build-system emacs-build-system)
7305 (arguments
7306 (list
7307 #:phases
7308 #~(modify-phases %standard-phases
7309 (add-after 'unpack 'patch-exec-paths
7310 (lambda* (#:key inputs #:allow-other-keys)
7311 (substitute* "flymake-proselint.el"
7312 (("\"proselint\"")
7313 (string-append
7314 "\"" (search-input-file inputs "/bin/proselint") "\""))))))))
7315 (inputs
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+))))
7321
7322 (define-public emacs-elisp-demos
7323 (package
7324 (name "emacs-elisp-demos")
7325 (version "2020.02.19")
7326 (source
7327 (origin
7328 (method git-fetch)
7329 (uri (git-reference
7330 (url "https://github.com/xuchunyang/elisp-demos")
7331 (commit version)))
7332 (file-name (git-file-name name version))
7333 (sha256
7334 (base32
7335 "0mckgaz92v3y2vlkggx9kd51fd1mahylw39c42l51dyv8wscm7sc"))))
7336 (build-system emacs-build-system)
7337 (arguments
7338 `(#:include '("\\.el$" "\\.org$")
7339 #:tests? #t
7340 #:test-command '("make" "test")))
7341 (home-page "https://github.com/xuchunyang/elisp-demos/")
7342 (synopsis "Enhance @code{*Help*} buffers with additional examples")
7343 (description
7344 "This package injects example uses of Elisp functions into their
7345 respective @code{*Help*} buffers.")
7346 (license license:gpl3+)))
7347
7348 (define-public emacs-docker-compose-mode
7349 (package
7350 (name "emacs-docker-compose-mode")
7351 (version "1.1.0")
7352 (source
7353 (origin
7354 (method git-fetch)
7355 (uri (git-reference
7356 (url "https://github.com/meqif/docker-compose-mode")
7357 (commit version)))
7358 (file-name (git-file-name name version))
7359 (sha256
7360 (base32
7361 "1fbcxwfvm33xcdj3cs26d9i1zyrryyjjkv7sc3mfxd45nq8d3ivj"))))
7362 (build-system emacs-build-system)
7363 (propagated-inputs
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")
7367 (description
7368 "This is a major mode for @file{docker-compose} files that provides
7369 completion of relevant keywords.")
7370 (license license:expat)))
7371
7372 (define-public emacs-dvc
7373 (let ((revision "591") ;no tags or official releases
7374 (guix-revision "1"))
7375 (package
7376 (name "emacs-dvc")
7377 (version (string-append "0.0.0-" guix-revision "." revision))
7378 (source
7379 (origin
7380 (method bzr-fetch)
7381 (uri (bzr-reference
7382 (url "lp:dvc")
7383 (revision revision)))
7384 (sha256
7385 (base32 "03pqn493w70wcpgaxvqnfgynxghw114l9pyiv3r414d84vzhan6h"))
7386 (file-name (string-append name "-" version "-checkout"))))
7387 (build-system gnu-build-system)
7388 (arguments
7389 (list
7390 #:modules `((guix build gnu-build-system)
7391 ((guix build emacs-build-system) #:prefix emacs:)
7392 (guix build utils))
7393 #:imported-modules `(,@%gnu-build-system-modules
7394 (guix build emacs-build-system)
7395 (guix build emacs-utils))
7396 #:configure-flags
7397 #~(list (string-append "--with-lispdir="
7398 (emacs:elpa-directory #$output)))
7399 #:tests? #f ;no test suite
7400 #:phases
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.
7408 (lambda _
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")))))))
7415 (native-inputs
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+))))
7424
7425 (define-public emacs-sudo-edit
7426 (package
7427 (name "emacs-sudo-edit")
7428 (version "0.1.1")
7429 (source
7430 (origin
7431 (method git-fetch)
7432 (uri (git-reference
7433 (url "https://github.com/nflath/sudo-edit")
7434 (commit (string-append "v" version))))
7435 (file-name (git-file-name name version))
7436 (sha256
7437 (base32 "1hncxbg5lvywzkwvdmzvrz71midy4samjq2vvxxhz90z1y5l8l29"))))
7438 (build-system emacs-build-system)
7439 (native-inputs
7440 (list emacs-undercover))
7441 (arguments
7442 (list
7443 #:emacs emacs
7444 #:phases
7445 #~(modify-phases %standard-phases
7446 (add-before 'check 'fix-makefile
7447 (lambda _
7448 (substitute* "Makefile"
7449 (("\\$\\(CASK\\) exec ") "")))))
7450 #:tests? #t
7451 #:test-command #~(list "make" "test")))
7452 (home-page "https://github.com/nflath/sudo-edit/")
7453 (synopsis "Open files as another user")
7454 (description
7455 "This package allows editing files as another user, including the root
7456 user.")
7457 (license license:gpl3+)))
7458
7459 (define-public emacs-subed
7460 (package
7461 (name "emacs-subed")
7462 (version "1.0.29")
7463 (source (origin
7464 (method url-fetch)
7465 (uri (string-append "https://elpa.nongnu.org/nongnu/subed-"
7466 version ".tar"))
7467 (sha256
7468 (base32
7469 "0q2sfdypj929y4fllk97rsb2bxm9a1izjy1f0z2viz5hz0hpqp26"))))
7470 (arguments
7471 (list
7472 #:tests? #t
7473 #:test-command #~(list "make" "test-only")))
7474 (native-inputs
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")
7479 (description
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+)))
7485
7486 (define-public emacs-miniedit
7487 (package
7488 (name "emacs-miniedit")
7489 (version "2.0")
7490 (source
7491 (origin
7492 (method git-fetch)
7493 (uri (git-reference
7494 (url "https://github.com/emacsmirror/miniedit")
7495 (commit version)))
7496 (file-name (git-file-name name version))
7497 (sha256
7498 (base32
7499 "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq"))))
7500 (build-system emacs-build-system)
7501 (home-page "https://github.com/emacsmirror/miniedit/")
7502 (synopsis "Enhanced editing for minibuffer fields")
7503 (description
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+)))
7508
7509 (define-public emacs-ob-ipython
7510 (package
7511 (name "emacs-ob-ipython")
7512 (version "20180224")
7513 (source (origin
7514 (method git-fetch)
7515 (uri (git-reference
7516 (commit "7147455230841744fb5b95dcbe03320313a77124")
7517 (url "https://github.com/gregsexton/ob-ipython")))
7518 (file-name (git-file-name name version))
7519 (sha256
7520 (base32
7521 "1a10fc2jk37ni5sjjvf87s5nyaz2a6h2mlj5dxh4dhv5sd3bb85p"))))
7522 (build-system emacs-build-system)
7523 (propagated-inputs
7524 (list emacs-f))
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+)))
7530
7531 (define-public emacs-ob-async
7532 (package
7533 (name "emacs-ob-async")
7534 (version "1.0.0")
7535 (source
7536 (origin
7537 (method git-fetch)
7538 (uri (git-reference
7539 (url "https://github.com/astahlman/ob-async")
7540 (commit (string-append "v" version))))
7541 (file-name (git-file-name name version))
7542 (sha256
7543 (base32 "10x4hxrjm4pr6vg42a961h9ilqzyd0l0fv7fsbq9clxi439f1nd6"))))
7544 (build-system emacs-build-system)
7545 (propagated-inputs
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
7550 src blocks.")
7551 (license license:gpl3+)))
7552
7553 (define-public emacs-ol-notmuch
7554 (let ((commit "1a53d6c707514784cabf33d865b577bf77f45913")
7555 (revision "0"))
7556 (package
7557 (name "emacs-ol-notmuch")
7558 (version (git-version "2.0.0" revision commit))
7559 (source
7560 (origin
7561 (method git-fetch)
7562 (uri (git-reference
7563 (url "https://git.sr.ht/~tarsius/ol-notmuch")
7564 (commit commit)))
7565 (sha256
7566 (base32
7567 "16p7j51z8r047alwn2hkb6944f7ds29ckb97b4k8ia00vwch0d67"))
7568 (file-name (git-file-name name version))))
7569 (build-system emacs-build-system)
7570 (propagated-inputs
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")
7574 (description
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+))))
7580
7581 (define-public emacs-debbugs
7582 (package
7583 (name "emacs-debbugs")
7584 (version "0.35")
7585 (source
7586 (origin
7587 (method url-fetch)
7588 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
7589 version ".tar"))
7590 (sha256
7591 (base32 "1w6y02ikjshfk12sdgbryfgj2z4yia2mpifa7g13ab7v9phpqpl1"))))
7592 (build-system emacs-build-system)
7593 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
7594 (propagated-inputs
7595 (list emacs-soap-client))
7596 (home-page "https://elpa.gnu.org/packages/debbugs.html")
7597 (synopsis "Access the Debbugs bug tracker in Emacs")
7598 (description
7599 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
7600 Tracker} from within Emacs.
7601
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.
7606
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+)))
7610
7611 (define-public emacs-piem
7612 (package
7613 (name "emacs-piem")
7614 (version "0.4.0")
7615 (source
7616 (origin
7617 (method git-fetch)
7618 (uri (git-reference
7619 (url "https://git.kyleam.com/piem")
7620 (commit (string-append "v" version))))
7621 (file-name (string-append name "-" version "-checkout"))
7622 (sha256
7623 (base32 "0wr6n6wvznngjdp4c0pmdr4xz05dark0kxi5svzhzxsg3rdaql3z"))))
7624 (build-system emacs-build-system)
7625 (arguments
7626 (list #:phases
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"))))))))
7633 (inputs
7634 (list b4))
7635 (propagated-inputs
7636 (list emacs-elfeed
7637 emacs-notmuch
7638 emacs-transient))
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+)))
7647
7648 (define-public emacs-ert-expectations
7649 (package
7650 (name "emacs-ert-expectations")
7651 (version "0.2")
7652 (source
7653 (origin
7654 (method url-fetch)
7655 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
7656 (sha256
7657 (base32
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+)))
7665
7666 (define-public emacs-deferred
7667 (package
7668 (name "emacs-deferred")
7669 (version "0.5.1")
7670 (home-page "https://github.com/kiwanami/emacs-deferred")
7671 (source
7672 (origin
7673 (method git-fetch)
7674 (uri (git-reference
7675 (url home-page)
7676 (commit (string-append "v" version))))
7677 (file-name (git-file-name name version))
7678 (sha256
7679 (base32 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))
7680 (patches
7681 (search-patches "emacs-deferred-fix-number-of-arguments.patch"))))
7682 (build-system emacs-build-system)
7683 (arguments
7684 `(#:phases
7685 (modify-phases %standard-phases
7686 (add-after 'unpack 'set-shell
7687 ;; Setting the SHELL environment variable is required for the tests
7688 ;; to find sh.
7689 (lambda _
7690 (setenv "SHELL" (which "sh"))))
7691 (add-before 'check 'fix-makefile
7692 (lambda _
7693 (substitute* "Makefile"
7694 (("\\$\\(CASK\\) exec ") "")))))
7695 #:tests? #t
7696 #:test-command '("make" "test")))
7697 (native-inputs
7698 (list emacs-ert-expectations emacs-ert-runner emacs-undercover))
7699 (synopsis "Simple asynchronous functions for Emacs Lisp")
7700 (description
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+)))
7706
7707 (define-public emacs-butler
7708 (package
7709 (name "emacs-butler")
7710 (version "0.2.6")
7711 (home-page "https://github.com/AshtonKem/Butler")
7712 (source (origin
7713 (method git-fetch)
7714 (uri (git-reference
7715 (url home-page)
7716 (commit version)))
7717 (file-name (git-file-name name version))
7718 (sha256
7719 (base32
7720 "1wsk5isza8xqr84w6haal95ssifz6j2lrr5phbsdc90jb9hicbff"))))
7721 (build-system emacs-build-system)
7722 (propagated-inputs
7723 (list emacs-deferred))
7724 (synopsis "Emacs client for Jenkins")
7725 (description
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
7730 build jobs.")
7731 (license license:gpl3+)))
7732
7733 (define-public emacs-zmq
7734 (package
7735 (name "emacs-zmq")
7736 (version "0.10.10")
7737 (source
7738 (origin
7739 (method git-fetch)
7740 (uri (git-reference
7741 (url "https://github.com/nnicandro/emacs-zmq")
7742 (commit (string-append "v" version))))
7743 (file-name (git-file-name name version))
7744 (sha256
7745 (base32 "0ngxm5mm0kqgvn8977ryrngamx0khzlw86d8vz5s0jhm2kgwnqp8"))))
7746 (build-system emacs-build-system)
7747 (arguments
7748 `(#:tests? #f ; no tests
7749 #:phases
7750 (modify-phases %standard-phases
7751 (add-after 'unpack 'configure
7752 (lambda _
7753 (invoke "make" "src/configure")
7754 (substitute* "src/configure"
7755 (("/bin/sh") (which "sh"))
7756 (("/usr/bin/file") (which "file")))
7757 (invoke "make")))
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"))))))))
7765 (native-inputs
7766 (list autoconf automake libtool pkg-config))
7767 (inputs
7768 (list zeromq))
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
7774
7775 (define-public emacs-tup-mode
7776 (package
7777 (name "emacs-tup-mode")
7778 (version "1.3.1")
7779 (source
7780 (origin
7781 (method git-fetch)
7782 (uri (git-reference
7783 (url "https://github.com/ejmr/tup-mode")
7784 (commit (string-append "v" version))))
7785 (file-name (git-file-name name version))
7786 (sha256
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")
7791 (description
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+)))
7796
7797 (define-public emacs-compat
7798 (package
7799 (name "emacs-compat")
7800 (version "28.1.2.2")
7801 (source (origin
7802 (method git-fetch)
7803 (uri (git-reference
7804 (url "https://git.sr.ht/~pkal/compat")
7805 (commit version)))
7806 (file-name (git-file-name name version))
7807 (sha256
7808 (base32
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")
7814 (description
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.
7820
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+)))
7827
7828 (define-public emacs-company
7829 (package
7830 (name "emacs-company")
7831 (version "0.9.13")
7832 (source
7833 (origin
7834 (method url-fetch)
7835 (uri (string-append "https://elpa.gnu.org/packages/"
7836 "company-" version ".tar"))
7837 (sha256
7838 (base32 "1c9x9wlzzsn7vrsm57l2l44nqx455saa6wrm853szzg09qn8dlnw"))))
7839 (build-system emacs-build-system)
7840 (home-page "https://company-mode.github.io/")
7841 (synopsis "Modular text completion framework")
7842 (description
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+)))
7848
7849 (define-public emacs-company-box
7850 ;; There is no release yet. Version is extracted from the main
7851 ;; file.
7852 (let ((version "0.0.1")
7853 (revision "0")
7854 (commit "be37a9a30dc112ab172af21af694e2cb04a74f85"))
7855 (package
7856 (name "emacs-company-box")
7857 (version (git-version version revision commit))
7858 (source
7859 (origin
7860 (method git-fetch)
7861 (uri (git-reference
7862 (url "https://github.com/sebastiencs/company-box")
7863 (commit commit)))
7864 (file-name (git-file-name name version))
7865 (sha256
7866 (base32 "13fgmdy51gqdwijqfvb784pirx4lgva0y7ysi0c3fcx8f82cdj59"))))
7867 (build-system emacs-build-system)
7868 (propagated-inputs
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")
7872 (description
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.
7878
7879 This package is not compatible with a TTY.")
7880 (license license:gpl3+))))
7881
7882 (define-public emacs-company-posframe
7883 (package
7884 (name "emacs-company-posframe")
7885 (version "0.5.0")
7886 (source (origin
7887 (method git-fetch)
7888 (uri (git-reference
7889 (url "https://github.com/tumashu/company-posframe")
7890 (commit (string-append "v" version))))
7891 (file-name (git-file-name name version))
7892 (sha256
7893 (base32
7894 "05ays6xkqbxcfplvx7wfc2slflmwc3aw7vkixvabk0ilvisndvgm"))))
7895 (build-system emacs-build-system)
7896 (propagated-inputs
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")
7900 (description
7901 "Allows @code{emacs-company} to use child frames for its candidate menus.
7902
7903 @code{emacs-company-posframe} is fast enough for daily use and supports CJK
7904 languages.")
7905 (license license:gpl3+)))
7906
7907 (define-public emacs-irony-mode
7908 (package
7909 (name "emacs-irony-mode")
7910 (version "1.5.0")
7911 (home-page "https://github.com/Sarcasm/irony-mode")
7912 (source
7913 (origin
7914 (method git-fetch)
7915 (uri (git-reference
7916 (url (string-append home-page ".git"))
7917 (commit (string-append "v" version))))
7918 (file-name (git-file-name name version))
7919 (sha256
7920 (base32 "1ilvfqn7hzrjjy2zrv08dbdnmgksdgsmrdcvx05s8704430ag0pb"))))
7921 (build-system emacs-build-system)
7922 (arguments
7923 (list
7924 #:phases
7925 #~(modify-phases %standard-phases
7926 (add-after 'unpack 'configure
7927 (lambda _
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+)))
7940
7941 (define-public emacs-irony-mode-server
7942 (package
7943 (inherit emacs-irony-mode)
7944 (name "emacs-irony-mode-server")
7945 (arguments
7946 `(#:phases
7947 (modify-phases %standard-phases
7948 (replace 'configure
7949 (lambda* (#:key outputs #:allow-other-keys)
7950 (let ((out (assoc-ref outputs "out")))
7951 (invoke "cmake"
7952 "server"
7953 (string-append "-DCMAKE_INSTALL_PREFIX=" out))))))))
7954 (inputs
7955 (list clang))
7956 (build-system cmake-build-system)
7957 (synopsis "Server for the Emacs @dfn{irony mode}")))
7958
7959 (define-public emacs-company-irony
7960 (package
7961 (name "emacs-company-irony")
7962 (version "1.1.1")
7963 (source
7964 (origin
7965 (method git-fetch)
7966 (uri (git-reference
7967 (url "https://github.com/Sarcasm/company-irony")
7968 (commit (string-append "v" version))))
7969 (sha256
7970 (base32 "1d3jw0d4zymznri86a5iixyxnw16jzkkrbhrh657ys73189c1c73"))
7971 (file-name (git-file-name name version))))
7972 (build-system emacs-build-system)
7973 (inputs
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+)))
7980
7981 (define-public emacs-flycheck-irony
7982 (package
7983 (name "emacs-flycheck-irony")
7984 (version "0.1.0")
7985 (source (origin
7986 (method git-fetch)
7987 (uri (git-reference
7988 (url "https://github.com/Sarcasm/flycheck-irony")
7989 (commit (string-append "v" version))))
7990 (file-name (git-file-name name version))
7991 (sha256
7992 (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))))
7993 (build-system emacs-build-system)
7994 (inputs
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+)))
8001
8002 (define-public emacs-irony-eldoc
8003 (package
8004 (name "emacs-irony-eldoc")
8005 (version (package-version emacs-irony-mode))
8006 (source
8007 (origin
8008 (method git-fetch)
8009 (uri (git-reference
8010 (url "https://github.com/ikirill/irony-eldoc")
8011 (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
8012 (file-name (git-file-name name version))
8013 (sha256
8014 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))))
8015 (build-system emacs-build-system)
8016 (inputs
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+)))
8023
8024 (define-public emacs-company-quickhelp
8025 (package
8026 (name "emacs-company-quickhelp")
8027 (version "2.3.0")
8028 (source
8029 (origin
8030 (method git-fetch)
8031 (uri (git-reference
8032 (url "https://github.com/expez/company-quickhelp")
8033 (commit version)))
8034 (file-name (git-file-name name version))
8035 (sha256
8036 (base32 "08ccsfvwdpzpj0gai3xrdb2bv1nl6myjkxsc5774pbvlq9nkfdvr"))))
8037 (build-system emacs-build-system)
8038 (propagated-inputs
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+)))
8045
8046 (define-public emacs-math-symbol-lists
8047 (package
8048 (name "emacs-math-symbol-lists")
8049 (version "1.3")
8050 (source
8051 (origin
8052 (method git-fetch)
8053 (uri (git-reference
8054 (url "https://github.com/vspinu/math-symbol-lists")
8055 (commit (string-append "v" version))))
8056 (file-name (git-file-name name version))
8057 (sha256
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+)))
8065
8066 (define-public emacs-company-coq
8067 (package
8068 (name "emacs-company-coq")
8069 (version "1.0.1")
8070 (source
8071 (origin
8072 (method git-fetch)
8073 (uri
8074 (git-reference
8075 (url "https://github.com/cpitclaudel/company-coq")
8076 (commit version)))
8077 (file-name (git-file-name name version))
8078 (sha256
8079 (base32 "0dxi4h8xqq5647k7h89s4pi8nwyj3brlhsckrv3p3b1g4dr6mk3b"))))
8080 (inputs
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
8087 features:
8088
8089 @itemize
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,
8096 @item and more.
8097 @end itemize")
8098 (license license:gpl3+)))
8099
8100 (define-public emacs-company-math
8101 (package
8102 (name "emacs-company-math")
8103 (version "1.5.1")
8104 (source
8105 (origin
8106 (method git-fetch)
8107 (uri (git-reference
8108 (url "https://github.com/vspinu/company-math")
8109 (commit (string-append "v" version))))
8110 (file-name (git-file-name name version))
8111 (sha256
8112 (base32 "1pj10i7ml5d2spcmf8035ngcq5zc6rs3lqx09d0qj6bsghglr6j3"))))
8113 (build-system emacs-build-system)
8114 (propagated-inputs
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")
8118 (description
8119 "This package provides a backend for use with Company mode allowing for
8120 completion of common math symbols.")
8121 (license license:gpl3+)))
8122
8123 (define-public emacs-compdef
8124 (let ((commit "67104a38763cc819644f711248b170a43bce151b")
8125 (revision "2"))
8126 (package
8127 (name "emacs-compdef")
8128 (version (git-version "0.2" revision commit))
8129 (source
8130 (origin
8131 (method git-fetch)
8132 (uri (git-reference
8133 (url "https://gitlab.com/jjzmajic/compdef.git")
8134 (commit commit)))
8135 (file-name (git-file-name name version))
8136 (sha256
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+))))
8145
8146 (define-public emacs-icomplete-vertical
8147 (package
8148 (name "emacs-icomplete-vertical")
8149 (version "0.3")
8150 (source
8151 (origin
8152 (method git-fetch)
8153 (uri (git-reference
8154 (url "https://github.com/oantolin/icomplete-vertical")
8155 (commit version)))
8156 (file-name (git-file-name name version))
8157 (sha256
8158 (base32 "02v190pb802vck7di39jyf5prvmfsgcxln8mgwsls2b4clx9da97"))))
8159 (build-system emacs-build-system)
8160 (home-page "https://github.com/oantolin/icomplete-vertical")
8161 (synopsis "Display Icomplete candidates vertically")
8162 (description
8163 "This package defines a global minor mode to display Icomplete
8164 completion candidates vertically.")
8165 (license license:gpl3+)))
8166
8167 (define-public emacs-handle
8168 (let ((commit "51c050bc1c6e5caf0eb47ecd985daea1db7241ab")
8169 (revision "2"))
8170 (package
8171 (name "emacs-handle")
8172 (version (git-version "0.1" revision commit))
8173 (source
8174 (origin
8175 (method git-fetch)
8176 (uri (git-reference
8177 (url "https://gitlab.com/jjzmajic/handle.git")
8178 (commit commit)))
8179 (file-name (git-file-name name version))
8180 (sha256
8181 (base32 "14f15qzfmwdslml4rv37zb5d1lsjf0jibriz636hb7q7knx1n4sg"))))
8182 (build-system emacs-build-system)
8183 (propagated-inputs
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
8191 succeeds.")
8192 (license license:gpl3+))))
8193
8194 (define-public emacs-nswbuff
8195 (package
8196 (name "emacs-nswbuff")
8197 (version "1.3")
8198 (source
8199 (origin
8200 (method git-fetch)
8201 (uri (git-reference
8202 (url "https://github.com/joostkremers/nswbuff")
8203 (commit version)))
8204 (file-name (git-file-name name version))
8205 (sha256
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+)))
8213
8214 (define-public emacs-phi-search
8215 (let ((commit "9a089b8271cb1cff9640848850298c9ec855286c")
8216 (revision "1"))
8217 (package
8218 (name "emacs-phi-search")
8219 (version (git-version "20160630" revision commit))
8220 (source
8221 (origin
8222 (method git-fetch)
8223 (uri (git-reference
8224 (url "https://github.com/zk-phi/phi-search")
8225 (commit commit)))
8226 (file-name (git-file-name name version))
8227 (sha256
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+))))
8235
8236 (define-public emacs-phi-search-mc
8237 (let ((commit "7aa671910f766437089aec26c3aa7814222d1356")
8238 (revision "1"))
8239 (package
8240 (name "emacs-phi-search-mc")
8241 (version (git-version "2.2.1" revision commit))
8242 (source
8243 (origin
8244 (method git-fetch)
8245 (uri (git-reference
8246 (url "https://github.com/knu/phi-search-mc.el")
8247 (commit commit)))
8248 (file-name (git-file-name name version))
8249 (sha256
8250 (base32 "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd"))))
8251 (build-system emacs-build-system)
8252 (propagated-inputs
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))))
8261
8262 (define-public emacs-multiple-cursors
8263 (package
8264 (name "emacs-multiple-cursors")
8265 (version "1.4.0")
8266 (source
8267 (origin
8268 (method git-fetch)
8269 (uri (git-reference
8270 (url "https://github.com/magnars/multiple-cursors.el")
8271 (commit version)))
8272 (file-name (git-file-name name version))
8273 (sha256
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")
8278 (description
8279 "This package adds support to Emacs for editing text with multiple
8280 simultaneous cursors.")
8281 (license license:gpl3+)))
8282
8283 (define-public emacs-multifiles
8284 ;; There is no tag and no "Version:" keyword. Using the latest release
8285 ;; instead.
8286 (let ((commit "dddfe64b8e1c1cd1f9ccc1f03405477fc0d53897")
8287 (revision "1"))
8288 (package
8289 (name "emacs-multifiles")
8290 (version (git-version "0" revision commit))
8291 (source
8292 (origin
8293 (method git-fetch)
8294 (uri (git-reference
8295 (url "https://github.com/magnars/multifiles.el")
8296 (commit commit)))
8297 (file-name (git-file-name name version))
8298 (sha256
8299 (base32 "065l04ylplng1vgykkbn2vnkcs3sn1k2cikx1ha2q8wmgx6bkvai"))))
8300 (build-system emacs-build-system)
8301 (propagated-inputs
8302 (list emacs-dash))
8303 (home-page "https://github.com/magnars/multifiles.el")
8304 (synopsis "Edit multiple files in a single Emacs buffer")
8305 (description
8306 "This package allows one to view and edit parts of multiple files in
8307 one Emacs buffer.")
8308 (license license:gpl3+))))
8309
8310 (define-public emacs-mc-extras
8311 (let ((commit "053abc52181b8718559d7361a587bbb795faf164")
8312 (revision "1"))
8313 (package
8314 (name "emacs-mc-extras")
8315 (version (git-version "1.2.4" revision commit))
8316 (source
8317 (origin
8318 (method git-fetch)
8319 (uri (git-reference
8320 (url "https://github.com/knu/mc-extras.el")
8321 (commit commit)))
8322 (file-name (git-file-name name version))
8323 (sha256
8324 (base32 "16y48qrd20m20vypvys5jp4v4gc1qrqlkm75s1pk1r68i9zrw481"))))
8325 (build-system emacs-build-system)
8326 (propagated-inputs
8327 (list emacs-multiple-cursors))
8328 (home-page "https://github.com/knu/mc-extras.el")
8329 (synopsis "Extra functions for manipulating multiple cursors")
8330 (description
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))))
8335
8336 (define-public emacs-typo
8337 (package
8338 (name "emacs-typo")
8339 (version "1.1")
8340 (home-page "https://github.com/jorgenschaefer/typoel")
8341 (source (origin
8342 (method git-fetch)
8343 (uri (git-reference
8344 (url home-page)
8345 (commit (string-append "v" version))))
8346 (file-name (git-file-name name version))
8347 (sha256
8348 (base32
8349 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))))
8350 (build-system emacs-build-system)
8351 (synopsis "Minor mode for typographic editing")
8352 (description
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
8357 on context.")
8358 (license license:gpl3+)))
8359
8360 (define-public emacs-company-lsp
8361 (package
8362 (name "emacs-company-lsp")
8363 (version "2.1.0")
8364 (source (origin
8365 (method git-fetch)
8366 (uri (git-reference
8367 (url "https://github.com/tigersoldier/company-lsp")
8368 (commit version)))
8369 (file-name (git-file-name name version))
8370 (sha256
8371 (base32
8372 "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"))))
8373 (build-system emacs-build-system)
8374 (propagated-inputs
8375 (list emacs-dash emacs-lsp-mode emacs-company emacs-s emacs-dash))
8376 (native-inputs
8377 (list emacs-buttercup))
8378 (arguments
8379 `(#:tests? #t
8380 #:test-command '("buttercup" "-L" ".")))
8381 (home-page "https://github.com/tigersoldier/company-lsp")
8382 (synopsis "Completion for @code{lsp-mode}")
8383 (description
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+)))
8388
8389 (define-public emacs-scala-mode
8390 (package
8391 (name "emacs-scala-mode")
8392 (version "1.1.0")
8393 (source
8394 (origin
8395 (method git-fetch)
8396 (uri (git-reference
8397 (url "https://github.com/hvesalai/emacs-scala-mode")
8398 (commit (string-append "v" version))))
8399 (file-name (git-file-name name version))
8400 (sha256
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")
8405 (description
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
8410 ;; indicates GPL3.
8411 (license license:gpl3)))
8412
8413 (define-public emacs-sbt-mode
8414 (package
8415 (name "emacs-sbt-mode")
8416 (version "2.0.0")
8417 (source
8418 (origin
8419 (method git-fetch)
8420 (uri (git-reference
8421 (url "https://github.com/hvesalai/emacs-sbt-mode")
8422 (commit (string-append "v" version))))
8423 (file-name (git-file-name name version))
8424 (sha256
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")
8429 (description
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+)))
8435
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"))
8440 (package
8441 (name "emacs-scheme-complete")
8442 (version "0.9.9")
8443 (source
8444 (origin
8445 (method git-fetch)
8446 (uri (git-reference
8447 (url "https://github.com/ashinn/scheme-complete")
8448 (commit commit)))
8449 (file-name (git-file-name name version))
8450 (sha256
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")
8455 (description
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))))
8461
8462 (define-public emacs-scel
8463 (let ((version "20170629")
8464 (revision "1")
8465 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
8466 (package
8467 (name "emacs-scel")
8468 (version (git-version version revision commit))
8469 (source
8470 (origin
8471 (method git-fetch)
8472 (uri (git-reference
8473 (url "https://github.com/supercollider/scel")
8474 (commit commit)))
8475 (file-name (git-file-name name version))
8476 (sha256
8477 (base32
8478 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
8479 (build-system emacs-build-system)
8480 (arguments
8481 (list
8482 #:modules '((guix build emacs-build-system)
8483 ((guix build cmake-build-system) #:prefix cmake:)
8484 (guix build utils))
8485 #:imported-modules `(,@%emacs-build-system-modules
8486 (guix build cmake-build-system))
8487 #:phases
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)
8495 #:outputs outputs
8496 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
8497 (add-after 'expand-load-path 'add-el-dir-to-emacs-load-path
8498 (lambda _
8499 (setenv "EMACSLOADPATH"
8500 (string-append (getcwd)
8501 "/el:"
8502 (getenv "EMACSLOADPATH")))))
8503 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
8504 (inputs
8505 (list supercollider))
8506 (native-inputs
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+))))
8513
8514 (define-public emacs-soothe-theme
8515 ;; There is no named branch.
8516 (let ((commit "0786fe70c6c1b4ddcfb932fdc6862b9611cfc09b")
8517 (revision "0"))
8518 (package
8519 (name "emacs-soothe-theme")
8520 (version (git-version "20141027.2233" revision commit))
8521 (source
8522 (origin
8523 (method git-fetch)
8524 (uri (git-reference
8525 (url "https://github.com/emacsfodder/emacs-soothe-theme")
8526 (commit commit)))
8527 (file-name (git-file-name name version))
8528 (sha256
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")
8533 (description
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
8537 mode.")
8538 (license license:gpl3))))
8539
8540 (define-public emacs-company-auctex
8541 (let ((commit "48c42c58ce2f0e693301b0cb2d085055410c1b25")
8542 (revision "1"))
8543 (package
8544 (name "emacs-company-auctex")
8545 (version (git-version "0.1" revision commit))
8546 (source
8547 (origin
8548 (method git-fetch)
8549 (uri (git-reference
8550 (url "https://github.com/alexeyr/company-auctex")
8551 (commit commit)))
8552 (file-name (git-file-name name version))
8553 (sha256
8554 (base32 "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8"))))
8555 (build-system emacs-build-system)
8556 (arguments
8557 `(#:phases
8558 (modify-phases %standard-phases
8559 (add-before 'build 'set-home
8560 (lambda _ (setenv "HOME" "/tmp"))))))
8561 (propagated-inputs
8562 (list emacs-auctex emacs-company emacs-yasnippet))
8563 (home-page "https://github.com/alexeyr/company-auctex/")
8564 (synopsis "Completion for @code{AUCTeX}")
8565 (description
8566 "This package provides a group of backends permitting auto-completion
8567 for @code{AUCTeX}.")
8568 (license license:gpl3+))))
8569
8570 (define-public emacs-mit-scheme-doc
8571 (package
8572 (name "emacs-mit-scheme-doc")
8573 (version "20140203")
8574 (source
8575 (origin
8576 (modules '((guix build utils)))
8577 (snippet
8578 ;; keep only file of interest
8579 '(begin
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"))
8584 (method url-fetch)
8585 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
8586 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
8587 (sha256
8588 (base32
8589 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
8590 (build-system emacs-build-system)
8591 (inputs (list mit-scheme))
8592 (arguments
8593 `(#:phases
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/"
8599 "mit-scheme-"
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")
8606 (description
8607 "This package provides a set of Emacs functions to search definitions of
8608 identifiers in the MIT-Scheme documentation.")
8609 (license license:gpl2+)))
8610
8611 (define-public emacs-constants
8612 (package
8613 (name "emacs-constants")
8614 (version "2.6")
8615 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
8616 (source
8617 (origin
8618 (method git-fetch)
8619 (uri (git-reference
8620 (url "https://github.com/fedeinthemix/emacs-constants")
8621 (commit (string-append "v" version))))
8622 (file-name (git-file-name name version))
8623 (sha256
8624 (base32 "0f5sh6b45a8p9kancjp9jk44ws8ww6x50a0i6zgyyvr7dbvii1a0"))))
8625 (build-system emacs-build-system)
8626 (synopsis "Enter definition of constants into an Emacs buffer")
8627 (description
8628 "This package provides functions for inserting the definition of natural
8629 constants and units into an Emacs buffer.")
8630 (license license:gpl2+)))
8631
8632 (define-public emacs-tagedit
8633 (package
8634 (name "emacs-tagedit")
8635 (version "1.4.0")
8636 (source
8637 (origin
8638 (method git-fetch)
8639 (uri (git-reference
8640 (url "https://github.com/magnars/tagedit")
8641 (commit version)))
8642 (file-name (git-file-name name version))
8643 (sha256
8644 (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb"))))
8645 (build-system emacs-build-system)
8646 (propagated-inputs
8647 (list emacs-s emacs-dash))
8648 (home-page "https://github.com/magnars/tagedit")
8649 (synopsis "Some paredit-like features for html-mode")
8650 (description
8651 "This package provides a collection of paredit-like functions for editing
8652 in @code{html-mode}.")
8653 (license license:gpl3+)))
8654
8655 (define-public emacs-slime
8656 (package
8657 (name "emacs-slime")
8658 (version "2.27")
8659 (source
8660 (origin
8661 (method git-fetch)
8662 (uri (git-reference
8663 (url "https://github.com/slime/slime")
8664 (commit (string-append "v" version))))
8665 (file-name (git-file-name name version))
8666 (sha256
8667 (base32 "1s5mbljlz22pb90gwbd380nighkz6gdxl77hc08gri7wwr5gy5n2"))))
8668 (build-system emacs-build-system)
8669 (native-inputs
8670 (list texinfo))
8671 (arguments
8672 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
8673 #:exclude '("^slime-tests.el" "^contrib/test/"
8674 "^contrib/Makefile$" "^contrib/README.md$")
8675 #:phases
8676 (modify-phases %standard-phases
8677 (add-after 'unpack 'make-git-checkout-writable
8678 (lambda _
8679 (for-each make-file-writable (find-files "."))))
8680 (add-before 'install 'configure
8681 (lambda* _
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)
8703 (delete-file f))
8704 doc-files)
8705 (delete-file-recursively "doc")))))))
8706 (home-page "https://github.com/slime/slime")
8707 (synopsis "Superior Lisp Interaction Mode for Emacs")
8708 (description
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))))
8716
8717 (define-public emacs-popup
8718 (package
8719 (name "emacs-popup")
8720 (version "0.5.9")
8721 (source
8722 (origin
8723 (method git-fetch)
8724 (uri (git-reference
8725 (url "https://github.com/auto-complete/popup-el")
8726 (commit (string-append "v" version))))
8727 (file-name (git-file-name name version))
8728 (sha256
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")
8733 (description
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
8736 and popup menus.")
8737 (license license:gpl3+)))
8738
8739 (define-public emacs-popup-kill-ring
8740 (let ((commit "a45c9cf79c4e1207fdbdd662e161154ef224ad61")
8741 (revision "0"))
8742 (package
8743 (name "emacs-popup-kill-ring")
8744 (version (git-version "0.2.8" revision commit))
8745 (source (origin
8746 (method git-fetch)
8747 (uri (git-reference
8748 (url "https://github.com/waymondo/popup-kill-ring")
8749 (commit commit)))
8750 (file-name (git-file-name name version))
8751 (sha256
8752 (base32
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+))))
8761
8762 (define-public emacs-popper
8763 ;; No tagged release upstream for version 0.45. The commit below matches
8764 ;; version bump.
8765 (let ((commit "851d83882192ac9599ac5b053614a42d683b3fab"))
8766 (package
8767 (name "emacs-popper")
8768 (version "0.45")
8769 (source (origin
8770 (method git-fetch)
8771 (uri (git-reference
8772 (url "https://github.com/karthink/popper")
8773 (commit commit)))
8774 (file-name (git-file-name name version))
8775 (sha256
8776 (base32
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")
8781 (description
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+))))
8785
8786 (define-public emacs-pydoc
8787 ;; https://github.com/statmobile/pydoc/issues/31
8788 (let ((commit "c8b667e17bfe3e63221f822c5c4d58c8fb4fea90")
8789 (revision "0"))
8790 (package
8791 (name "emacs-pydoc")
8792 (version (git-version "0.2" revision commit))
8793 (source
8794 (origin
8795 (uri (git-reference
8796 (url "https://github.com/statmobile/pydoc")
8797 (commit commit)))
8798 (method git-fetch)
8799 (sha256
8800 (base32 "082ar5w28dknaa63mf587vdzr78xlnvh8lbxqq3hk6qa2c72akam"))
8801 (file-name (git-file-name name version))))
8802 (build-system emacs-build-system)
8803 (arguments
8804 (list
8805 #:phases
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"
8815 (("\"lsof")
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+))))
8825
8826 (define-public emacs-python-black
8827 (package
8828 (name "emacs-python-black")
8829 (version "1.2.0")
8830 (source
8831 (origin
8832 (method git-fetch)
8833 (uri (git-reference
8834 (url "https://github.com/wbolster/emacs-python-black")
8835 (commit version)))
8836 (file-name (git-file-name name version))
8837 (sha256
8838 (base32 "1x6b67cs7kn8711fxr3fq8y9wcpf9g71asf9wiqfrk2mrfzli6a3"))))
8839 (build-system emacs-build-system)
8840 (propagated-inputs
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}")
8845 (description
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)))
8850
8851 (define-public emacs-py-isort
8852 (package
8853 (name "emacs-py-isort")
8854 (version "2016.1")
8855 (source
8856 (origin
8857 (method git-fetch)
8858 (uri (git-reference
8859 (url "https://github.com/paetzke/py-isort.el")
8860 (commit (string-append "v" version))))
8861 (file-name (git-file-name name version))
8862 (sha256
8863 (base32 "08i55gv392wc12x8v3dca0dmz8a8p9ljsqhyajsb6qv1k120wqhx"))))
8864 (build-system emacs-build-system)
8865 (arguments
8866 `(#:tests? #f)) ;tests fail with "emacs: standard input is not a tty"
8867 (propagated-inputs
8868 (list python-isort))
8869 (home-page "https://github.com/paetzke/py-isort.el")
8870 (synopsis "Sort the imports in Python buffers")
8871 (description
8872 "This package provides commands and a minor mode to sort Python imports
8873 using @code{python-isort}.")
8874 (license license:gpl3+)))
8875
8876 (define-public emacs-python-environment
8877 (package
8878 (name "emacs-python-environment")
8879 (version "0.0.2")
8880 (source
8881 (origin
8882 (method git-fetch)
8883 (uri (git-reference
8884 (url "https://github.com/tkf/emacs-python-environment/")
8885 (commit version)))
8886 (file-name (git-file-name name version))
8887 (sha256
8888 (base32 "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk"))))
8889 (build-system emacs-build-system)
8890 (propagated-inputs
8891 (list emacs-deferred))
8892 (home-page "https://github.com/tkf/emacs-python-environment")
8893 (synopsis "Provides a @code{virtualenv} API in Emacs Lisp")
8894 (description
8895 "This package permits automated installation of tools written in Python.")
8896 (license license:gpl3+)))
8897
8898 (define-public emacs-jedi
8899 (package
8900 (name "emacs-jedi")
8901 (version "0.2.8")
8902 (source (origin
8903 (method git-fetch)
8904 (uri (git-reference
8905 (url "https://github.com/tkf/emacs-jedi/")
8906 (commit (string-append "v" version))))
8907 (file-name (git-file-name name version))
8908 (sha256
8909 (base32
8910 "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"))))
8911 (build-system emacs-build-system)
8912 (arguments
8913 (list
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)
8919 (guix build utils))
8920 #:phases
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
8926 (lambda _
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
8945 (propagated-inputs
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")
8949 (description
8950 "This package provides completion in Python buffers and also helps find
8951 the locations of docstrings, arguments, and functions.")
8952 (license license:gpl3+)))
8953
8954 (define-public emacs-company-jedi
8955 (package
8956 (name "emacs-company-jedi")
8957 (version "0.04")
8958 (source (origin
8959 (method git-fetch)
8960 (uri (git-reference
8961 (url "https://github.com/syohex/emacs-company-jedi")
8962 (commit version)))
8963 (file-name (git-file-name name version))
8964 (sha256
8965 (base32
8966 "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1"))))
8967 (build-system emacs-build-system)
8968 (propagated-inputs
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}")
8972 (description
8973 "This package provides a Company backend for Python.")
8974 (license license:gpl3+)))
8975
8976 (define-public emacs-elquery
8977 (package
8978 (name "emacs-elquery")
8979 (version "1.1.0")
8980 (source
8981 (origin
8982 (method git-fetch)
8983 (uri
8984 (git-reference
8985 (url "https://github.com/AdamNiederer/elquery")
8986 (commit version)))
8987 (file-name (git-file-name name version))
8988 (sha256
8989 (base32 "035zjzmd7yfw0rsjpaklc2wwiqw6brkjadch9x8n8n2gjyxg05mn"))))
8990 (build-system emacs-build-system)
8991 (arguments
8992 (list
8993 #:emacs emacs-no-x
8994 #:tests? #t
8995 #:test-command #~(list "ert-runner")
8996 #:phases #~(modify-phases %standard-phases
8997 (add-after 'unpack 'fix-native-compilation
8998 (lambda _
8999 (substitute* "elquery.el"
9000 (("\\(1- \\(/ length \\(match-data\\)\\) 2\\)")
9001 "(1- (/ (length (match-data)) 2))"))))
9002 (add-before 'check 'disable-failing-tests
9003 (lambda _
9004 (substitute* "test/elquery-test.el"
9005 (("\\(ert-deftest elquery--write-test .*" all)
9006 (string-append all "(skip-unless nil)\n"))))))))
9007 (native-inputs
9008 (list emacs-ert-runner emacs-undercover))
9009 (propagated-inputs
9010 (list emacs-dash))
9011 (home-page "https://github.com/AdamNiederer/elquery/")
9012 (synopsis "Read and manipulate HTML in Emacs")
9013 (description
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+)))
9018
9019 (define-public emacs-cov
9020 ;; XXX: Upstream made no release nor any tag so far.
9021 (let ((commit "cd3e1995c596cc227124db9537792d8329ffb696")
9022 (revision "0"))
9023 (package
9024 (name "emacs-cov")
9025 (version (git-version "0.1.0" revision commit))
9026 (source
9027 (origin
9028 (method git-fetch)
9029 (uri
9030 (git-reference
9031 (url "https://github.com/AdamNiederer/cov")
9032 (commit commit)))
9033 (file-name (git-file-name name version))
9034 (sha256
9035 (base32 "1gyc0si60czhgrkm7kink1p1zj1h5j5nzif4ivm5bg78l28skmpm"))))
9036 (build-system emacs-build-system)
9037 (arguments
9038 (list
9039 #:emacs emacs-no-x ;for libxml
9040 #:tests? #t
9041 #:test-command #~(list "ert-runner")
9042 #:phases
9043 #~(modify-phases %standard-phases
9044 (add-before 'check 'disable-failing-tests
9045 (lambda _
9046 (substitute* "test/cov-test.el"
9047 (("\\(ert-deftest cov--load-coverage-test-mtime-check .*" all)
9048 (string-append all "(skip-unless nil)\n"))))))))
9049 (native-inputs
9050 (list emacs-ert-runner emacs-mocker emacs-undercover))
9051 (propagated-inputs
9052 (list emacs-elquery emacs-f emacs-s))
9053 (home-page "https://github.com/AdamNiederer/cov/")
9054 (synopsis "Emacs extension for displaying coverage data")
9055 (description
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+))))
9060
9061 (define-public emacs-puppet-mode
9062 (package
9063 (name "emacs-puppet-mode")
9064 (version "0.4")
9065 (source
9066 (origin
9067 (method git-fetch)
9068 (uri (git-reference
9069 (url "https://github.com/voxpupuli/puppet-mode")
9070 (commit version)))
9071 (file-name (git-file-name name version))
9072 (sha256
9073 (base32
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")
9078 (description
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+)))
9084
9085 (define-public emacs-purescript-mode
9086 ;; Retrieved on 2021-05-18.
9087 (let ((revision "0")
9088 (commit "0acd1af446424ba855153161fe07a20f67dc0a89"))
9089 (package
9090 (name "emacs-purescript-mode")
9091 (version (git-version "0.0.0" revision commit))
9092 (source
9093 (origin
9094 (method git-fetch)
9095 (uri (git-reference
9096 (url "https://github.com/purescript-emacs/purescript-mode")
9097 (commit commit)))
9098 (file-name (git-file-name name version))
9099 (sha256
9100 (base32
9101 "0rxdsmx8826az4blhnnvqrx7bjky9hwph6gkyrh33sck26xhh3g5"))))
9102 (build-system emacs-build-system)
9103 (arguments
9104 `(#:phases
9105 (modify-phases %standard-phases
9106 (add-before 'install 'make-info
9107 (lambda _
9108 (invoke "makeinfo" "--no-split"
9109 "-o" "purescript-mode.info" "purescript-mode.texi"))))))
9110 (native-inputs
9111 (list texinfo))
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+))))
9116
9117 (define-public emacs-new-purescript-mode
9118 (let ((commit "9f7bb73e26340fcd2ea1946dbad165f0406eb3e1")
9119 (revision "0"))
9120 (package
9121 (name "emacs-new-purescript-mode")
9122 (version (git-version "0.0.1" revision commit))
9123 (source
9124 (origin
9125 (method git-fetch)
9126 (uri
9127 (git-reference
9128 (url "https://github.com/justinwoo/new-purescript-mode")
9129 (commit commit)))
9130 (file-name (git-file-name name version))
9131 (sha256
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))))
9139
9140 (define-public emacs-god-mode
9141 (package
9142 (name "emacs-god-mode")
9143 (version "2.18.0")
9144 (source
9145 (origin
9146 (method git-fetch)
9147 (uri (git-reference
9148 (url "https://github.com/emacsorphanage/god-mode")
9149 (commit version)))
9150 (file-name (git-file-name name version))
9151 (sha256
9152 (base32
9153 "1njln47w25ix9w0xjv02110ngr8d8ma3w7db0x4xcxhihbl65zly"))))
9154 (build-system emacs-build-system)
9155 (arguments
9156 (list #:tests? #true
9157 #:test-command
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")
9163 (description
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+)))
9169
9170 (define-public emacs-jinja2-mode
9171 (package
9172 (name "emacs-jinja2-mode")
9173 (version "0.2")
9174 (source
9175 (origin
9176 (method git-fetch)
9177 (uri (git-reference
9178 (url "https://github.com/paradoxxxzero/jinja2-mode")
9179 (commit (string-append "v" version))))
9180 (file-name (git-file-name name version))
9181 (sha256
9182 (base32 "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381"))))
9183 (build-system emacs-build-system)
9184 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
9185 (synopsis "Major mode for jinja2")
9186 (description
9187 "Emacs major mode for jinja2 with: syntax highlighting,
9188 sgml/html integration, and indentation (working with sgml).")
9189 (license license:gpl3+)))
9190
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")
9194 (revision "1"))
9195 (package
9196 (name "emacs-company-cabal")
9197 (version (git-version "0.3.0" revision commit))
9198 (source (origin
9199 (method git-fetch)
9200 (uri (git-reference
9201 (url "https://github.com/iquiw/company-cabal/")
9202 (commit commit)))
9203 (file-name (git-file-name name version))
9204 (sha256
9205 (base32
9206 "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg"))))
9207 (build-system emacs-build-system)
9208 (propagated-inputs
9209 (list emacs-company))
9210 (arguments
9211 `(#:include (cons "^tools\\/" %default-include)))
9212 (home-page "https://github.com/iquiw/company-cabal/")
9213 (synopsis "Company completion for Haskell Cabal files")
9214 (description
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+))))
9218
9219 (define-public emacs-rfcview
9220 (package
9221 (name "emacs-rfcview")
9222 (version "0.13")
9223 (home-page "http://www.loveshack.ukfsn.org/emacs")
9224 (source (origin
9225 (method url-fetch)
9226 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
9227 (sha256
9228 (base32
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+)))
9242
9243 (define-public emacs-ffap-rfc-space
9244 (package
9245 (name "emacs-ffap-rfc-space")
9246 (version "12")
9247 (home-page "https://user42.tuxfamily.org/ffap-rfc-space/index.html")
9248 (source (origin
9249 (method url-fetch)
9250 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
9251 (sha256
9252 (base32
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
9264 number.")
9265 (license license:gpl3+)))
9266
9267 (define-public emacs-feature-mode
9268 (let ((version "20190801")
9269 (revision "1")
9270 (commit "11ae1671629bfedaa553c7b819676d64eb320992"))
9271 (package
9272 (name "emacs-feature-mode")
9273 (version (git-version version revision commit))
9274 (source (origin
9275 (method git-fetch)
9276 (uri (git-reference
9277 (url "https://github.com/michaelklishin/cucumber.el")
9278 (commit commit)))
9279 (file-name (git-file-name name version))
9280 (sha256
9281 (base32
9282 "0yd4gkxz9xcbgibfgr8apsid3f83nmg5jgqk5nql0linj5gymc28"))))
9283 (build-system emacs-build-system)
9284 (arguments
9285 `(#:include (cons* "^features\\/" "snippets\\/" "^support\\/"
9286 %default-include)))
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+))))
9292
9293 (define-public emacs-org-bullets
9294 (package
9295 (name "emacs-org-bullets")
9296 (version "0.2.4")
9297 (source
9298 (origin
9299 (method git-fetch)
9300 (uri (git-reference
9301 (url "https://github.com/sabof/org-bullets")
9302 (commit version)))
9303 (file-name (git-file-name name version))
9304 (sha256
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")
9309 (description
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+)))
9313
9314 (define-public emacs-org-appear
9315 (package
9316 (name "emacs-org-appear")
9317 (version "0.3.0")
9318 (source
9319 (origin
9320 (method git-fetch)
9321 (uri (git-reference
9322 (url "https://github.com/awth13/org-appear")
9323 (commit version)))
9324 (file-name (git-file-name name version))
9325 (sha256
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)))
9334
9335 (define-public emacs-org-drill
9336 (package
9337 (name "emacs-org-drill")
9338 (version "2.7.0")
9339 (source
9340 (origin
9341 (method git-fetch)
9342 (uri (git-reference
9343 (url "https://gitlab.com/phillord/org-drill")
9344 (commit version)))
9345 (file-name (git-file-name name version))
9346 (sha256
9347 (base32 "13y302lyscdqrba1sfx60yf5ji2xi7fbsvjsjbw7hiz63kg6rccy"))))
9348 (build-system emacs-build-system)
9349 (propagated-inputs
9350 (list emacs-org emacs-persist))
9351 (home-page "https://gitlab.com/phillord/org-drill")
9352 (synopsis "Flash card memorization system using Org mode")
9353 (description
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+)))
9358
9359 (define-public emacs-anki-editor
9360 ;; Last release was in 2018.
9361 (let ((commit "546774a453ef4617b1bcb0d1626e415c67cc88df")
9362 (revision "0")
9363 (version "0.3.3"))
9364 (package
9365 (name "emacs-anki-editor")
9366 (version (git-version version revision commit))
9367 (source
9368 (origin
9369 (method git-fetch)
9370 (uri (git-reference
9371 (url "https://github.com/louietan/anki-editor")
9372 (commit commit)))
9373 (file-name (git-file-name name version))
9374 (sha256
9375 (base32 "1if610hq5j8rbjh1caw5bwbgnsn231awwxqbpwvrh966kdxzl4qf"))))
9376 (build-system emacs-build-system)
9377 (propagated-inputs
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")
9381 (description
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+))))
9385
9386 (define-public emacs-org-mime
9387 (package
9388 (name "emacs-org-mime")
9389 (version "0.3.2")
9390 (source
9391 (origin
9392 (method git-fetch)
9393 (uri (git-reference
9394 (url "https://github.com/org-mime/org-mime")
9395 (commit version)))
9396 (file-name (git-file-name name version))
9397 (sha256
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")
9402 (description
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
9406 email.")
9407 (license license:gpl3+)))
9408
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"))
9412 (package
9413 (name "emacs-org-msg")
9414 (version "4.0")
9415 (source
9416 (origin
9417 (method git-fetch)
9418 (uri (git-reference
9419 (url "https://github.com/jeremy-compostella/org-msg")
9420 (commit commit)))
9421 (file-name (git-file-name name version))
9422 (sha256
9423 (base32 "077g7gvn1k6i2x4m2kd3dkrznc89f5a5pd916wsmpy703pv0aca5"))))
9424 (build-system emacs-build-system)
9425 (propagated-inputs
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")
9429 (description
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+))))
9434
9435 (define-public emacs-org-superstar
9436 (package
9437 (name "emacs-org-superstar")
9438 (version "1.5.0")
9439 (source
9440 (origin
9441 (method git-fetch)
9442 (uri (git-reference
9443 (url "https://github.com/integral-dw/org-superstar-mode")
9444 (commit (string-append "v" version))))
9445 (file-name (git-file-name name version))
9446 (sha256
9447 (base32 "12inin2p6pm6vbv3yc06fx343dsp0vp07fjb35w088akhikmqh2a"))))
9448 (build-system emacs-build-system)
9449 (propagated-inputs
9450 (list emacs-org))
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.
9456
9457 Currently, this package prettifies Org heading lines by:
9458 @itemize
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.
9465 @end itemize
9466
9467 It also prettifies Org plain list bullets by:
9468 @itemize
9469 @item replacing each bullet type (*, + and -) with UTF-8 bullets,
9470 @item applying a custom face to item bullets.
9471 @end itemize
9472
9473 Features degrade gracefully when viewed from terminal.")
9474 (license license:gpl3+)))
9475
9476 (define-public emacs-org-pandoc-import
9477 (package
9478 (name "emacs-org-pandoc-import")
9479 (version "1.0")
9480 (source
9481 (origin
9482 (method git-fetch)
9483 (uri (git-reference
9484 (url "https://github.com/tecosaur/org-pandoc-import/")
9485 (commit (string-append "v" version))))
9486 (file-name (git-file-name name version))
9487 (sha256
9488 (base32 "00z9bpm975mlyqlxbyib3j547br6kvcam04b70qkmq22vh8yf341"))))
9489 (build-system emacs-build-system)
9490 (arguments
9491 `(#:include
9492 (cons* "^filters\\/" "^preprocessors" %default-include)
9493 #:phases
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\"")))))))))
9500 (inputs
9501 (list pandoc))
9502 (home-page "https://github.com/tecosaur/org-pandoc-import/")
9503 (synopsis "Read and edit non-Org file types in Org")
9504 (description
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.
9507
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+)))
9512
9513 (define-public emacs-org-pomodoro
9514 ;; Last release version was from 2016.
9515 (let ((commit "aa07c11318f91219336197e62c47bc7a3d090479")
9516 (revision "1"))
9517 (package
9518 (name "emacs-org-pomodoro")
9519 (version (git-version "2.1.0" revision commit))
9520 (source
9521 (origin
9522 (method git-fetch)
9523 (uri (git-reference
9524 (url "https://github.com/marcinkoziej/org-pomodoro")
9525 (commit commit)))
9526 (file-name (git-file-name name version))
9527 (sha256
9528 (base32 "0nbprh2nhnmb7ngp9ndr6zr37ashcsvpi5slv7a37x1dl7j6w1k4"))))
9529 (build-system emacs-build-system)
9530 (propagated-inputs
9531 (list emacs-alert))
9532 (arguments
9533 (list
9534 #:include #~(cons "^resources\\/" %default-include)
9535 #:tests? #t
9536 #:test-command
9537 #~(list "emacs" "--batch"
9538 "-l" "org-pomodoro-tests.el"
9539 "-f" "ert-run-tests-batch-and-exit")
9540 #:phases
9541 #~(modify-phases %standard-phases
9542 (add-before 'check 'make-tests-writable
9543 (lambda _
9544 (make-file-writable "org-pomodoro-tests.el")))
9545 (add-before 'check 'add-require
9546 (lambda _
9547 (emacs-batch-edit-file "org-pomodoro-tests.el"
9548 `(progn (progn (goto-char (point-min))
9549 (re-search-forward "ert-deftest")
9550 (beginning-of-line)
9551 (forward-line -1)
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.
9558
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+))))
9565
9566 (define-public emacs-org-sidebar
9567 (package
9568 (name "emacs-org-sidebar")
9569 (version "0.3.2")
9570 (source
9571 (origin
9572 (method git-fetch)
9573 (uri (git-reference
9574 (url "https://github.com/alphapapa/org-sidebar")
9575 (commit version)))
9576 (file-name (git-file-name name version))
9577 (sha256
9578 (base32 "1r8kp954ciin4j7j7j8ihdkryf5x09s3ryl7bi9h2j6xqc1ij4wq"))))
9579 (build-system emacs-build-system)
9580 (propagated-inputs
9581 (list emacs-dash emacs-org-super-agenda emacs-org emacs-org-ql
9582 emacs-s))
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+)))
9592
9593 (define-public emacs-org-trello
9594 (package
9595 (name "emacs-org-trello")
9596 (version "0.8.2")
9597 (source
9598 (origin
9599 (method git-fetch)
9600 (uri (git-reference
9601 (url "https://github.com/org-trello/org-trello")
9602 (commit version)))
9603 (file-name (git-file-name name version))
9604 (sha256
9605 (base32
9606 "18y5zdjc7zh4jlwz6k1nl13i721rknqm0vp4mxfnmq0sc5a0qva0"))))
9607 (build-system emacs-build-system)
9608 (propagated-inputs
9609 (list emacs-dash
9610 emacs-deferred
9611 emacs-f
9612 emacs-helm
9613 emacs-request
9614 emacs-s))
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
9619 organizer.")
9620 (license license:gpl3+)))
9621
9622 (define-public emacs-org-tanglesync
9623 (let ((commit "d99181f173b4e55b4e835d99fcd415e62beb047f")
9624 (revision "2"))
9625 (package
9626 (name "emacs-org-tanglesync")
9627 (version (git-version "0.6" revision commit))
9628 (source
9629 (origin
9630 (method git-fetch)
9631 (uri (git-reference
9632 (url "https://github.com/mtekman/org-tanglesync.el")
9633 (commit commit)))
9634 (file-name (git-file-name name version))
9635 (sha256
9636 (base32 "0x94gy1bgfd1f3p9w2bfrqj11bwy9ql0cpi1gw6srpj7kykx0lml"))))
9637 (build-system emacs-build-system)
9638 (propagated-inputs
9639 (list emacs-org))
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+))))
9645
9646 (define-public emacs-company-flow
9647 (let ((commit "76ef585c70d2a3206c2eadf24ba61e59124c3a16")
9648 (revision "1"))
9649 (package
9650 (name "emacs-company-flow")
9651 (version (git-version "0.1.0" revision commit))
9652 (source (origin
9653 (method git-fetch)
9654 (uri (git-reference
9655 (url "https://github.com/aaronjensen/company-flow/")
9656 (commit commit)))
9657 (file-name (git-file-name name version))
9658 (sha256
9659 (base32
9660 "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw"))))
9661 (build-system emacs-build-system)
9662 (propagated-inputs
9663 (list emacs-company emacs-dash))
9664 (home-page "https://github.com/aaronjensen/company-flow/")
9665 (synopsis "Flow backend for @code{company-mode}")
9666 (description
9667 "This package provides completion for JavaScript files utilizing Flow.")
9668 (license license:gpl3+))))
9669
9670 (define-public emacs-habitica
9671 (let ((commit "c45c602ddf9d6cbb0e3baf5cb3e1b7ef90f2759d")
9672 (revision "1"))
9673 (package
9674 (name "emacs-habitica")
9675 (version (git-version "1.0" revision commit))
9676 (source
9677 (origin
9678 (method git-fetch)
9679 (uri (git-reference
9680 (url "https://github.com/abrochard/emacs-habitica")
9681 (commit commit)))
9682 (file-name (git-file-name name version))
9683 (sha256
9684 (base32
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+))))
9692
9693 (define-public emacs-atom-one-dark-theme
9694 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
9695 (revision "0"))
9696 (package
9697 (name "emacs-atom-one-dark-theme")
9698 (version (git-version "0.4.0" revision commit))
9699 (source (origin
9700 (method git-fetch)
9701 (uri (git-reference
9702 (url "https://github.com/jonathanchu/atom-one-dark-theme")
9703 (commit commit)))
9704 (sha256
9705 (base32
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+))))
9713
9714 (define-public emacs-zenburn-theme
9715 (package
9716 (name "emacs-zenburn-theme")
9717 (version "2.7.0")
9718 (source
9719 (origin
9720 (method git-fetch)
9721 (uri (git-reference
9722 (url "https://github.com/bbatsov/zenburn-emacs")
9723 (commit (string-append "v" version))))
9724 (file-name (git-file-name name version))
9725 (sha256
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")
9730 (description
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+)))
9734
9735 (define-public emacs-moe-theme-el
9736 (package
9737 (name "emacs-moe-theme-el")
9738 (version "1.0.1")
9739 (source
9740 (origin
9741 (method git-fetch)
9742 (uri (git-reference
9743 (url "https://github.com/kuanyui/moe-theme.el")
9744 (commit (string-append "v" version))))
9745 (file-name (git-file-name name version))
9746 (sha256
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")
9751 (description
9752 "This package provides vibrant color schemes with light and dark
9753 variants.")
9754 (license license:gpl3+)))
9755
9756 (define-public emacs-solarized-theme
9757 (package
9758 (name "emacs-solarized-theme")
9759 (version "2.0.0")
9760 (source
9761 (origin
9762 (method git-fetch)
9763 (uri (git-reference
9764 (url "https://github.com/bbatsov/solarized-emacs/")
9765 (commit (string-append "v" version))))
9766 (file-name (git-file-name name version))
9767 (sha256
9768 (base32 "17z6cj8ids88xj2i6zs1s0mxs0fhn3gr7g5nhhy8s8khnzmyy2vj"))))
9769 (build-system emacs-build-system)
9770 (propagated-inputs
9771 (list emacs-dash))
9772 (home-page "https://github.com/bbatsov/solarized-emacs")
9773 (synopsis "Port of the Solarized theme for Emacs")
9774 (description
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+)))
9778
9779 (define-public emacs-color-theme-solarized
9780 ;; From 2017-10-24. No releases available.
9781 (let ((commit "f3ca8902ea056fb8e46cb09f09c96294e31cd4ee")
9782 (revision "0"))
9783 (package
9784 (name "emacs-color-theme-solarized")
9785 (version (git-version "0" revision commit))
9786 (source (origin
9787 (method git-fetch)
9788 (uri (git-reference
9789 (url
9790 "https://github.com/sellout/emacs-color-theme-solarized")
9791 (commit commit)))
9792 (file-name (git-file-name name version))
9793 (sha256
9794 (base32
9795 "16d7adqi07lzzr0qipl1fbag9l8kiyr3xrqxi528pimcisbg85d3"))))
9796 (build-system emacs-build-system)
9797 (arguments
9798 (list #:phases
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
9803 (lambda _
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")
9808 (description
9809 "This package provides Emacs highlighting using Ethan Schoonover’s
9810 Solarized color scheme.")
9811 (license license:expat))))
9812
9813 (define-public emacs-poet-theme
9814 (let ((commit "16eb694f0755c04c4db98614d0eca1199fddad70")
9815 (revision "1"))
9816 (package
9817 (name "emacs-poet-theme")
9818 (version (git-version "0" revision commit))
9819 (source
9820 (origin
9821 (method git-fetch)
9822 (uri (git-reference
9823 (url "https://github.com/kunalb/poet")
9824 (commit commit)))
9825 (file-name (git-file-name name version))
9826 (sha256
9827 (base32
9828 "0zm8jbviddyj7jnyssh77jx43jghbpjwr77n9s3cjp3bmadwkrv5"))))
9829 (build-system emacs-build-system)
9830 (home-page "https://github.com/kunalb/poet/")
9831 (synopsis "Emacs theme for prose")
9832 (description
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
9837 backgrounds.")
9838 (license license:expat))))
9839
9840 (define-public emacs-ahungry-theme
9841 (package
9842 (name "emacs-ahungry-theme")
9843 (version "1.10.0")
9844 (source
9845 (origin (method url-fetch)
9846 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
9847 version ".tar"))
9848 (sha256
9849 (base32
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
9857 dark background.")
9858 (license license:gpl3+)))
9859
9860 (define-public emacs-color-theme-modern
9861 ;; No release since October 2019
9862 (let ((commit "74ad69bbca6fcfff3c0960d888c7c9c1f9f3e2e8")
9863 (revision "1"))
9864 (package
9865 (name "emacs-color-theme-modern")
9866 (version (git-version "0.0.3" revision commit))
9867 (source (origin
9868 (method git-fetch)
9869 (uri (git-reference
9870 (url "https://github.com/emacs-jp/replace-colorthemes.git")
9871 (commit commit)))
9872 (file-name (git-file-name name version))
9873 (sha256
9874 (base32
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+))))
9883
9884 (define-public emacs-gruvbox-theme
9885 (package
9886 (name "emacs-gruvbox-theme")
9887 (version "1.30.1")
9888 (source (origin
9889 (method git-fetch)
9890 (uri (git-reference
9891 (url "https://github.com/greduan/emacs-theme-gruvbox")
9892 (commit version)))
9893 (file-name (git-file-name name version))
9894 (sha256
9895 (base32
9896 "0dgjf86i8179l1nsjyc20chysqmy8yhphpd5lzv2ypx79l4z3jka"))))
9897 (build-system emacs-build-system)
9898 (propagated-inputs
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")
9902 (description
9903 "Gruvbox is heavily inspired by badwolf, jellybeans and solarized.
9904
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
9908 for the eyes.")
9909 (license license:expat))) ; MIT license
9910
9911 (define-public emacs-spacegray-theme
9912 (let ((commit "9826265c2bceb2ebc1c5e16a45021da0253ace97")
9913 (revision "0"))
9914 (package
9915 (name "emacs-spacegray-theme")
9916 (version (git-version "0" revision commit))
9917 (source (origin
9918 (method git-fetch)
9919 (uri (git-reference
9920 (url "https://github.com/bruce/emacs-spacegray-theme")
9921 (commit commit)))
9922 (file-name (git-file-name name version))
9923 (sha256
9924 (base32
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")
9929 (description
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
9934
9935 (define-public emacs-org-cv
9936 ;; There are no tagged releases.
9937 (let ((commit "24bcd82348d441d95c2c80fb8ef8b5d6d4b80d95")
9938 (revision "0"))
9939 (package
9940 (name "emacs-org-cv")
9941 (version (git-version "0" revision commit))
9942 (source
9943 (origin
9944 (method git-fetch)
9945 (uri (git-reference
9946 (url "https://gitlab.com/Titan-C/org-cv")
9947 (commit commit)))
9948 (file-name (git-file-name name version))
9949 (sha256
9950 (base32 "0zcnbxvlwi4d6vzsm3ag7z74qphdigmx303gppb9d614jnsfsdg2"))))
9951 (build-system emacs-build-system)
9952 (propagated-inputs
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")
9956 (description
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+))))
9961
9962 (define-public emacs-ox-gfm
9963 (package
9964 (name "emacs-ox-gfm")
9965 (version "1.0")
9966 (source (origin
9967 (method git-fetch)
9968 (uri (git-reference
9969 (url "https://github.com/larstvei/ox-gfm")
9970 (commit (string-append "v" version))))
9971 (file-name (git-file-name name version))
9972 (sha256
9973 (base32
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+)))
9982
9983 (define-public emacs-2048-game
9984 (package
9985 (name "emacs-2048-game")
9986 (version "20151026.1233")
9987 (source
9988 (origin
9989 (method url-fetch)
9990 (uri (string-append "https://melpa.org/packages/2048-game-"
9991 version ".el"))
9992 (sha256
9993 (base32
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")
9998 (description
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+)))
10003
10004 (define-public emacs-chess
10005 (package
10006 (name "emacs-chess")
10007 (version "2.0.5")
10008 (source
10009 (origin
10010 (method url-fetch)
10011 (uri (string-append "https://elpa.gnu.org/packages/"
10012 "chess-" version ".tar"))
10013 (sha256
10014 (base32 "1a4iwjdh6k348df6qywjws9z9f862d62m0b2sz57z4xhywiyxpr7"))))
10015 (build-system emacs-build-system)
10016 (arguments
10017 (list
10018 #:phases
10019 #~(modify-phases %standard-phases
10020 (add-after 'install 'install-pieces
10021 (lambda _
10022 (let ((pieces
10023 (string-append #$output "/share/emacs/site-lisp/chess-"
10024 #$version "/pieces")))
10025 (mkdir-p pieces)
10026 (copy-recursively "pieces" pieces)))))))
10027 (home-page "https://elpa.gnu.org/packages/chess.html")
10028 (synopsis "Play chess in GNU Emacs")
10029 (description
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+)))
10034
10035 (define-public emacs-4clojure
10036 ;; There is no release. Base version is extracted from Version keyword in
10037 ;; the main file.
10038 (let ((commit "4eccf8c7d4341a36c269451838114b27836699f9")
10039 (revision "1"))
10040 (package
10041 (name "emacs-4clojure")
10042 (version (git-version "0.2.1" revision commit))
10043 (source
10044 (origin
10045 (method git-fetch)
10046 (uri (git-reference
10047 (url "https://github.com/emacsorphanage/4clojure")
10048 (commit commit)))
10049 (file-name (git-file-name name version))
10050 (sha256
10051 (base32 "19x653lzc1dxil4ix257hciidbdmbhaxhs6qhlkwi9ygjrlrgvnk"))))
10052 (build-system emacs-build-system)
10053 (propagated-inputs
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
10060 answers.")
10061 (license license:gpl3+))))
10062
10063 (define-public emacs-base16-theme
10064 (package
10065 (name "emacs-base16-theme")
10066 (version "3.0")
10067 (source
10068 (origin
10069 (method git-fetch)
10070 (uri (git-reference
10071 (url "https://github.com/belak/base16-emacs")
10072 (commit version)))
10073 (file-name (git-file-name name version))
10074 (sha256
10075 (base32 "0qp71j77zg8gippcn277s0j5a9n6dbwv3kdp2nya6li4b412vgba"))))
10076 (build-system emacs-build-system)
10077 (arguments
10078 (list #:include #~(cons "^build\\/.*\\.el$" %default-include)
10079 #:phases
10080 #~(modify-phases %standard-phases
10081 (add-after 'install 'mv-themes
10082 (lambda _
10083 (use-modules (ice-9 regex))
10084 (let ((theme-dir (string-append (elpa-directory #$output)
10085 "/build")))
10086 (for-each (lambda (theme)
10087 (rename-file
10088 theme
10089 (regexp-substitute #f
10090 (string-match "build\\/"
10091 theme)
10092 'pre 'post)))
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")
10097 (description
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)))
10102
10103 (define-public emacs-solaire-mode
10104 (package
10105 (name "emacs-solaire-mode")
10106 (version "2.0.4")
10107 (source
10108 (origin
10109 (method git-fetch)
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))
10114 (sha256
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")
10119 (description
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)))
10125
10126 (define-public emacs-embark
10127 ;; XXX: Upstream did not tag last release. Use commit matching version
10128 ;; bump.
10129 (let ((commit "09da327d43793f0b30114ee80d82ef587124462a"))
10130 (package
10131 (name "emacs-embark")
10132 (version "0.18")
10133 (source
10134 (origin
10135 (method git-fetch)
10136 (uri (git-reference
10137 (url "https://github.com/oantolin/embark")
10138 (commit commit)))
10139 (sha256
10140 (base32 "0drzsa9rzjy0548pa161cf1d71lnyjri31rkwyjray9gy2adbnhv"))
10141 (file-name (git-file-name name version))))
10142 (build-system emacs-build-system)
10143 (propagated-inputs
10144 (list emacs-avy emacs-consult))
10145 (home-page "https://github.com/oantolin/embark")
10146 (synopsis "Emacs mini-buffer actions rooted in keymaps")
10147 (description
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
10150 the context.
10151
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
10155 or URL at point.
10156
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+))))
10163
10164 (define-public emacs-prescient
10165 (package
10166 (name "emacs-prescient")
10167 (version "6.1")
10168 (source
10169 (origin
10170 (method git-fetch)
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))
10175 (sha256
10176 (base32 "1mc9pjb80bxcmzaylfwh0sgpvwbx3h35jalznwz464hw3vqfff83"))))
10177 (build-system emacs-build-system)
10178 (propagated-inputs
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")
10182 (description
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)))
10186
10187 (define-public emacs-selectrum
10188 (package
10189 (name "emacs-selectrum")
10190 (version "3.1")
10191 (source
10192 (origin
10193 (method git-fetch)
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))
10198 (sha256
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
10210 interface.")
10211 (license license:expat)))
10212
10213 (define-public emacs-orderless
10214 (let ((commit "004cee6b8e01f8eb0cb1c683d0a637b14890600f"))
10215 (package
10216 (name "emacs-orderless")
10217 (version "1.0")
10218 (source
10219 (origin
10220 (method git-fetch)
10221 (uri (git-reference
10222 (url "https://github.com/oantolin/orderless")
10223 (commit commit)))
10224 (sha256
10225 (base32 "115bwqi2yc44bgvcl7lha8p2s6jgh5hksn4wa9s0kpfxhi14jwmy"))
10226 (file-name (git-file-name name version))))
10227 (build-system emacs-build-system)
10228 (arguments
10229 (list
10230 #:phases
10231 #~(modify-phases %standard-phases
10232 (add-after 'install 'makeinfo
10233 (lambda _
10234 (invoke "makeinfo" "orderless.texi")
10235 (install-file "orderless.info"
10236 (string-append #$output "/share/info")))))))
10237 (native-inputs
10238 (list texinfo))
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+))))
10247
10248 (define-public emacs-consult
10249 (package
10250 (name "emacs-consult")
10251 (version "0.29")
10252 (source
10253 (origin
10254 (method git-fetch)
10255 (uri (git-reference
10256 (url "https://github.com/minad/consult")
10257 (commit version)))
10258 (sha256
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+)))
10269
10270 (define-public emacs-consult-bibtex
10271 ;; XXX: Upstream contains a single commit, which matches the version below.
10272 (let ((commit "2f870d6eefb54a53216d90a82cff0ff97ba54725"))
10273 (package
10274 (name "emacs-consult-bibtex")
10275 (version "0.1")
10276 (source (origin
10277 (method git-fetch)
10278 (uri (git-reference
10279 (url "https://github.com/mohkale/consult-bibtex")
10280 (commit commit)))
10281 (file-name (git-file-name name version))
10282 (sha256
10283 (base32
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+))))
10292
10293 (define-public emacs-consult-dir
10294 (package
10295 (name "emacs-consult-dir")
10296 (version "0.1")
10297 (source (origin
10298 (method git-fetch)
10299 (uri (git-reference
10300 (url "https://github.com/karthink/consult-dir")
10301 (commit (string-append "v" version))))
10302 (sha256
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.
10311
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+)))
10317
10318 (define-public emacs-consult-notmuch
10319 (package
10320 (name "emacs-consult-notmuch")
10321 (version "0.8.1")
10322 (source
10323 (origin
10324 (method git-fetch)
10325 (uri (git-reference
10326 (url "https://codeberg.org/jao/consult-notmuch")
10327 (commit version)))
10328 (file-name (git-file-name name version))
10329 (sha256
10330 (base32 "0gcd69i99prnskh1na7clydqgh1y9rbzkdc6dy9zmin9hfdrw1yd"))))
10331 (build-system emacs-build-system)
10332 (propagated-inputs
10333 (list emacs-consult emacs-notmuch))
10334 (home-page "https://codeberg.org/jao/consult-notmuch")
10335 (synopsis "Search and preview Notmuch emails using Consult")
10336 (description
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+)))
10340
10341 (define-public emacs-consult-org-roam
10342 (let* ((commit "9572c5bc194a583dc9e86ea7d2751959d86b5c78")
10343 (revision "0"))
10344 (package
10345 (name "emacs-consult-org-roam")
10346 (version (git-version "0.1" revision commit))
10347 (source
10348 (origin
10349 (method git-fetch)
10350 (uri (git-reference
10351 (url "https://github.com/jgru/consult-org-roam")
10352 (commit commit)))
10353 (file-name (git-file-name name version))
10354 (sha256
10355 (base32
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")
10361 (description
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+))))
10366
10367 (define-public emacs-consult-eglot
10368 (package
10369 (name "emacs-consult-eglot")
10370 (version "0.2.0")
10371 (source (origin
10372 (method git-fetch)
10373 (uri (git-reference
10374 (url "https://github.com/mohkale/consult-eglot")
10375 (commit (string-append "v" version))))
10376 (sha256
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
10385 call.")
10386 (license license:gpl3+)))
10387
10388 (define-public emacs-eglot-tempel
10389 (let ((commit "e08b203d6a7c495d4b91ed4537506b5f1ea8a84f")
10390 (revision "0"))
10391 (package
10392 (name "emacs-eglot-tempel")
10393 (version (git-version "0.1" revision commit))
10394 (source
10395 (origin
10396 (method git-fetch)
10397 (uri (git-reference
10398 (url "https://github.com/fejfighter/eglot-tempel")
10399 (commit commit)))
10400 (file-name (git-file-name name version))
10401 (sha256
10402 (base32 "0f4m0bb1f91x9jqfc0ny95a3pfh1mzzjzdjpa6f548hynq8j34ib"))))
10403 (build-system emacs-build-system)
10404 (arguments
10405 (list
10406 #:tests? #true
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+))))
10417
10418 (define-public emacs-consult-xdg-recent-files
10419 (let ((commit "593023ffb99a368152ebd4e739488fa560bdfdea")
10420 (revision "0"))
10421 (package
10422 (name "emacs-consult-xdg-recent-files")
10423 (version (git-version "0" revision commit))
10424 (source
10425 (origin
10426 (method git-fetch)
10427 (uri (git-reference
10428 (url "https://github.com/hrehfeld/consult-xdg-recent-files")
10429 (commit commit)))
10430 (file-name (git-file-name name version))
10431 (sha256
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")
10437 (description
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
10441 opening.
10442
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+))))
10448
10449 (define-public emacs-consult-yasnippet
10450 (let ((commit "ae0450889484f23dc4ec37518852a2c61b89f184")
10451 (revision "0"))
10452 (package
10453 (name "emacs-consult-yasnippet")
10454 (version (git-version "0.2" revision commit))
10455 (source
10456 (origin
10457 (method git-fetch)
10458 (uri (git-reference
10459 (url "https://github.com/mohkale/consult-yasnippet")
10460 (commit commit)))
10461 (file-name (git-file-name name version))
10462 (sha256
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")
10468 (description
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+))))
10473
10474 (define-public emacs-marginalia
10475 (package
10476 (name "emacs-marginalia")
10477 (version "1.0")
10478 (source
10479 (origin
10480 (method git-fetch)
10481 (uri (git-reference
10482 (url "https://github.com/minad/marginalia")
10483 (commit version)))
10484 (file-name (git-file-name name version))
10485 (sha256
10486 (base32 "1rf4xgb82j1g6ybrzz7ak9hlk86d4r0hcprbqz05hvjnb8nyfa4c"))))
10487 (build-system emacs-build-system)
10488 (home-page "https://github.com/minad/marginalia")
10489 (synopsis "Marginalia in the minibuffer completions")
10490 (description
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+)))
10496
10497 (define-public emacs-smartparens
10498 (package
10499 (name "emacs-smartparens")
10500 (version "1.11.0")
10501 (source
10502 (origin
10503 (method git-fetch)
10504 (uri (git-reference
10505 (url "https://github.com/Fuco1/smartparens")
10506 (commit version)))
10507 (file-name (git-file-name name version))
10508 (sha256
10509 (base32 "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6"))))
10510 (build-system emacs-build-system)
10511 (propagated-inputs
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
10515 defined pairs")
10516 (description
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+)))
10526
10527 (define-public emacs-dumbparens
10528 ;; There are no releases.
10529 (let ((commit "18b668772f25e5f7b62c0a000b8169eaf7515057")
10530 (revision "0"))
10531 (package
10532 (name "emacs-dumbparens")
10533 (version (git-version "0" revision commit))
10534 (source
10535 (origin
10536 (method git-fetch)
10537 (uri
10538 (git-reference
10539 (url "https://github.com/raxod502/dumbparens")
10540 (commit commit)))
10541 (file-name (git-file-name name version))
10542 (sha256
10543 (base32 "0xv2yzjzq2450z007jppf86knnwzb2s3sxvqyk1yp6qs9mgrmnyp"))))
10544 (build-system emacs-build-system)
10545 (arguments
10546 (list
10547 #:tests? #t
10548 #:test-command #~(list "make" "test")))
10549 (home-page "https://github.com/raxod502/dumbparens/")
10550 (synopsis "Minor mode that provides improvements on Smartparens")
10551 (description
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))))
10555
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
10559 ;; messages.
10560 (let ((commit "7a789c779648c55b16e43278e51be5898c121b3a")
10561 (version "1.3")
10562 (revision "1"))
10563 (package
10564 (name "emacs-highlight-symbol")
10565 (version (git-version version revision commit))
10566 (source
10567 (origin
10568 (method git-fetch)
10569 (uri (git-reference
10570 (url "https://github.com/nschum/highlight-symbol.el")
10571 (commit commit)))
10572 (file-name (git-file-name name version))
10573 (sha256
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")
10578 (description
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.
10582
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}.
10590
10591 @code{highlight-symbol-query-replace} can be used to replace the symbol.")
10592 (license license:gpl2+))))
10593
10594 (define-public emacs-symbol-overlay
10595 (package
10596 (name "emacs-symbol-overlay")
10597 (version "4.2")
10598 (source
10599 (origin
10600 (method git-fetch)
10601 (uri (git-reference
10602 (url "https://github.com/wolray/symbol-overlay")
10603 (commit version)))
10604 (file-name (git-file-name name version))
10605 (sha256
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")
10610 (description
10611 "This package provides functions for highlighting and navigating
10612 between symbols.")
10613 (license license:gpl3+)))
10614
10615 (define-public emacs-hl-todo
10616 (package
10617 (name "emacs-hl-todo")
10618 (version "3.4.2")
10619 (source (origin
10620 (method git-fetch)
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))
10625 (sha256
10626 (base32
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")
10631 (description
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+)))
10637
10638 (define-public emacs-perspective
10639 (package
10640 (name "emacs-perspective")
10641 (version "2.18")
10642 (source
10643 (origin
10644 (method git-fetch)
10645 (uri (git-reference
10646 (url "https://github.com/nex3/perspective-el")
10647 (commit version)))
10648 (file-name (git-file-name name version))
10649 (sha256
10650 (base32 "1r026cw6p2ss5wg8mxgzf6iv1lb9pdnqyf6yrqb914aibkrvp9b6"))))
10651 (build-system emacs-build-system)
10652 (arguments
10653 `(#:tests? #t
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\"")
10659 (description
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+)))
10669
10670 (define-public emacs-persp-mode
10671 (package
10672 (name "emacs-persp-mode")
10673 (version "2.9.8")
10674 (source
10675 (origin
10676 (method git-fetch)
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))
10681 (sha256
10682 (base32
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")
10687 (description
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+)))
10691
10692 (define-public emacs-eyebrowse
10693 ;; XXX: Upstream has no tagged release. Version is extracted from keyword
10694 ;; in main file.
10695 (let ((commit "88c7b59aa7c5c93bc23812217213adfa238f977b")
10696 (revision "0"))
10697 (package
10698 (name "emacs-eyebrowse")
10699 (version (git-version "0.7.8" revision commit))
10700 (source
10701 (origin
10702 (method git-fetch)
10703 (uri (git-reference
10704 (url "https://depp.brause.cc/eyebrowse.git")
10705 (commit commit)))
10706 (file-name (git-file-name name version))
10707 (sha256
10708 (base32 "09s07mvg5bz3dm9sxgn40c7z6d6ry1sdjzsxwgmy825f3xm66avs"))))
10709 (build-system emacs-build-system)
10710 (propagated-inputs
10711 (list emacs-dash))
10712 (home-page "https://depp.brause.cc/eyebrowse/")
10713 (synopsis "Simple-minded way to manage window configs in Emacs")
10714 (description
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+))))
10720
10721 (define-public emacs-test-simple
10722 (package
10723 (name "emacs-test-simple")
10724 (version "1.3.0")
10725 (source
10726 (origin
10727 (method url-fetch)
10728 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
10729 version ".el"))
10730 (sha256
10731 (base32
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")
10736 (description
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+)))
10741
10742 (define-public emacs-load-relative
10743 (package
10744 (name "emacs-load-relative")
10745 (version "1.3.1")
10746 (source
10747 (origin
10748 (method url-fetch)
10749 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
10750 version ".el"))
10751 (sha256
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")
10756 (description
10757 "Provides functions which facilitate writing multi-file Emacs packages
10758 and running from the source tree without having to \"install\" code or fiddle
10759 with @{load-path}.
10760
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+)))
10764
10765 (define-public emacs-loc-changes
10766 (package
10767 (name "emacs-loc-changes")
10768 (version "1.2")
10769 (source
10770 (origin
10771 (method url-fetch)
10772 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
10773 version ".el"))
10774 (sha256
10775 (base32
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")
10780 (description
10781 "This Emacs package provides a mean to track important buffer positions
10782 after buffer changes.")
10783 (license license:gpl3+)))
10784
10785 (define-public emacs-loccur
10786 (let ((commit "01b7afa62589432a98171074abb8c5a1e089034a")
10787 (revision "1"))
10788 (package
10789 (name "emacs-loccur")
10790 (version (git-version "1.2.5" revision commit))
10791 (source (origin
10792 (method git-fetch)
10793 (uri (git-reference
10794 (url "https://github.com/fourier/loccur/")
10795 (commit commit)))
10796 (file-name (git-file-name name version))
10797 (sha256
10798 (base32
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")
10803 (description
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+))))
10808
10809 (define-public emacs-realgud
10810 (package
10811 (name "emacs-realgud")
10812 (version "1.5.1")
10813 (source
10814 (origin
10815 (method git-fetch)
10816 (uri (git-reference
10817 (url "https://github.com/realgud/realgud/")
10818 (commit version)))
10819 (sha256
10820 (base32
10821 "1d3s23jk0i34wpyxfajydgyyvsxnpbqrfl0mgydsq7zw2c75ylnq"))
10822 (file-name (git-file-name name version))))
10823 (build-system emacs-build-system)
10824 (arguments
10825 (list
10826 #:tests? #t
10827 #:phases
10828 #~(modify-phases %standard-phases
10829 (add-after 'unpack 'fix-realgud:run-process-void-error
10830 ;; See: https://github.com/realgud/realgud/issues/269.
10831 (lambda _
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
10839 (lambda _
10840 (substitute* "autogen.sh"
10841 (("./configure") "sh configure"))))
10842 (add-after 'fix-autogen-script 'autogen
10843 (lambda _
10844 (setenv "CONFIG_SHELL" "sh")
10845 (invoke "sh" "autogen.sh")))
10846 (add-after 'fix-autogen-script 'set-home
10847 (lambda _
10848 (setenv "HOME" (getenv "TMPDIR"))))
10849 (add-before 'patch-el-files 'remove-realgud-pkg.el
10850 (lambda _
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)))
10855 (native-inputs
10856 (list autoconf automake emacs-test-simple))
10857 (propagated-inputs
10858 (list emacs-load-relative emacs-loc-changes))
10859 (home-page "https://github.com/realgud/realgud/")
10860 (synopsis
10861 "Modular front-end for interacting with external debuggers")
10862 (description
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
10867 parallel.")
10868 (license license:gpl3+)))
10869
10870 (define-public emacs-rmsbolt
10871 ;; There is no release tag. Version is extracted from main file.
10872 (let ((commit "ff496660cc52a6dd33d358ef0acc6d4bb70cc340")
10873 (revision "0")
10874 (version "0.1.2"))
10875 (package
10876 (name "emacs-rmsbolt")
10877 (version (git-version version revision commit))
10878 (source
10879 (origin
10880 (method git-fetch)
10881 (uri (git-reference
10882 (url "https://gitlab.com/jgkamat/rmsbolt")
10883 (commit commit)))
10884 (file-name (git-file-name name version))
10885 (sha256
10886 (base32 "05i0101238yy1da6z543nr9x5gpvgdxrrdn3sw5dibcn6z62ml3p"))))
10887 (build-system emacs-build-system)
10888 (home-page "https://gitlab.com/jgkamat/rmsbolt")
10889 (synopsis "Emacs viewer for compiler output")
10890 (description
10891 "RMSBolt is a package to provide assembly or bytecode output for
10892 a source code input file.")
10893 (license license:agpl3+))))
10894
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")
10899 (revision "1"))
10900 (package
10901 (name "emacs-request")
10902 (version (git-version "0.3.2" revision commit))
10903 (source (origin
10904 (method git-fetch)
10905 (uri (git-reference
10906 (url "https://github.com/tkf/emacs-request")
10907 (commit commit)))
10908 (file-name (git-file-name name version))
10909 (sha256
10910 (base32
10911 "0jckwy5zhz95d6l3lz8b9b34pppcjjzy97fg1wn8mqzhf3h460ac"))))
10912 (build-system emacs-build-system)
10913 (arguments
10914 `(#:tests? #f)) ; requires network access.
10915 (propagated-inputs
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
10921 line program.")
10922 (license license:gpl3+))))
10923
10924 (define-public emacs-rudel
10925 (package
10926 (name "emacs-rudel")
10927 (version "0.3.2")
10928 (source
10929 (origin
10930 (method url-fetch)
10931 (uri (string-append "https://elpa.gnu.org/packages/rudel-"
10932 version ".tar"))
10933 (sha256
10934 (base32 "03hcvpp6ykavidwn5x48gs986w1i5icvh7ks6p74pdaagpgw4jmk"))))
10935 (build-system emacs-build-system)
10936 (home-page "http://rudel.sourceforge.net/")
10937 (synopsis "Collaborative editing framework")
10938 (description
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+)))
10946
10947 (define-public emacs-hydra
10948 (package
10949 (name "emacs-hydra")
10950 (version "0.15.0")
10951 (source
10952 (origin
10953 (method git-fetch)
10954 (uri (git-reference
10955 (url "https://github.com/abo-abo/hydra")
10956 (commit version)))
10957 (file-name (git-file-name name version))
10958 (sha256
10959 (base32
10960 "0fapvhmhgc9kppf3bvkgry0cd7gyilg7sfvlscfrfjxpx4xvwsfy"))))
10961 (build-system emacs-build-system)
10962 (arguments
10963 `(#:tests? #t
10964 #:test-command '("make" "test")))
10965 (home-page "https://github.com/abo-abo/hydra")
10966 (synopsis "Make Emacs bindings that stick around")
10967 (description
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
10975 automatically.")
10976 (license license:gpl3+)))
10977
10978 (define-public emacs-pretty-hydra
10979 (package
10980 (name "emacs-pretty-hydra")
10981 (version "0.2.2")
10982 (source
10983 (origin
10984 (method git-fetch)
10985 (uri (git-reference
10986 (url "https://github.com/jerrypnz/major-mode-hydra.el")
10987 (commit version)))
10988 (file-name (git-file-name name version))
10989 (sha256
10990 (base32
10991 "08a15knkdq35pzjq82imff016fbfdib5q4glg2xmdy2b5fnk7jqa"))))
10992 (build-system emacs-build-system)
10993 (propagated-inputs
10994 (list emacs-dash emacs-hydra emacs-s))
10995 (arguments
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")
10999 (description
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+)))
11004
11005 (define-public emacs-interleave
11006 (package
11007 (name "emacs-interleave")
11008 (version "1.4.0")
11009 (source
11010 (origin
11011 (method git-fetch)
11012 (uri
11013 (git-reference
11014 (url "https://github.com/rudolfochrist/interleave")
11015 (commit (string-append "interleave-" version))))
11016 (file-name (git-file-name name version))
11017 (sha256
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")
11022 (description
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+)))
11026
11027 (define-public emacs-major-mode-hydra
11028 (package
11029 (inherit emacs-pretty-hydra)
11030 (name "emacs-major-mode-hydra")
11031 (propagated-inputs
11032 (list emacs-dash emacs-pretty-hydra))
11033 (arguments
11034 `(#:exclude (cons "^pretty-hydra\\.el" %default-exclude)))
11035 (synopsis "Create nice-looking hydras")
11036 (description
11037 "This package provides the macro @code{pretty-hydra-define} to define
11038 hydras with one column per group of heads.")))
11039
11040 (define-public emacs-ivy
11041 (package
11042 (name "emacs-ivy")
11043 (version "0.13.4")
11044 (source
11045 (origin
11046 (method url-fetch)
11047 (uri (string-append "https://elpa.gnu.org/packages/ivy-" version ".tar"))
11048 (sha256
11049 (base32 "0qpza1c45mr8fcpnm32cck4v22fnzz1yb7kww05rzgq1k9iivx5v"))))
11050 (build-system emacs-build-system)
11051 (propagated-inputs
11052 (list emacs-hydra))
11053 (home-page "https://github.com/abo-abo/swiper")
11054 (synopsis "Incremental vertical completion for Emacs")
11055 (description
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
11061 expression.")
11062 (license license:gpl3+)))
11063
11064 (define-public emacs-counsel
11065 (package
11066 (name "emacs-counsel")
11067 (version "0.13.4")
11068 (source
11069 (origin
11070 (method url-fetch)
11071 (uri (string-append "https://elpa.gnu.org/packages/"
11072 "counsel-" version ".tar"))
11073 (sha256
11074 (base32 "094zfapfn1l8wjf3djkipk0d9nks0g77sbk107pfsbr3skkzh031"))))
11075 (build-system emacs-build-system)
11076 (propagated-inputs
11077 (list emacs-swiper))
11078 (home-page "https://github.com/abo-abo/swiper")
11079 (synopsis "Various completion functions using Ivy")
11080 (description
11081 "Just call one of the interactive functions in a file to complete the
11082 corresponding thing using Ivy.
11083
11084 The following completions are currently available:
11085 @itemize
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.
11093 @item Many more.
11094 @end itemize")
11095 (license license:gpl3+)))
11096
11097 (define-public emacs-swiper
11098 (package
11099 (name "emacs-swiper")
11100 (version "0.13.4")
11101 (source
11102 (origin
11103 (method url-fetch)
11104 (uri (string-append "https://elpa.gnu.org/packages/swiper-" version ".tar"))
11105 (sha256
11106 (base32 "197pq2cvvskib87aky907wv2am55vilr7y5dabmmm07a8vr9py0v"))))
11107 (build-system emacs-build-system)
11108 (propagated-inputs
11109 (list emacs-ivy))
11110 (home-page "https://github.com/abo-abo/swiper")
11111 (synopsis "Isearch with an overview")
11112 (description
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.
11116
11117 It can double as a quick `regex-builder', although only single lines will be
11118 matched.")
11119 (license license:gpl3+)))
11120
11121 (define-public emacs-ivy-xref
11122 (let ((commit "1a35fc0f070388701b05b0a455cbe262e924d547")
11123 (revision "1"))
11124 (package
11125 (name "emacs-ivy-xref")
11126 (version (git-version "0.1" revision commit))
11127 (source
11128 (origin
11129 (method git-fetch)
11130 (uri (git-reference
11131 (url "https://github.com/alexmurray/ivy-xref")
11132 (commit commit)))
11133 (file-name (git-file-name name version))
11134 (sha256
11135 (base32
11136 "0d71nm9d9ajp5i6dnl8h1hw9jqp8gd1ajgninb1h13i80rplzl9k"))))
11137 (build-system emacs-build-system)
11138 (propagated-inputs
11139 (list emacs-ivy))
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))))
11145
11146 (define-public emacs-ivy-pass
11147 (let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5")
11148 (revision "1"))
11149 (package
11150 (name "emacs-ivy-pass")
11151 (version (git-version "0.1" revision commit))
11152 (source
11153 (origin
11154 (method git-fetch)
11155 (uri (git-reference
11156 (url "https://github.com/ecraven/ivy-pass")
11157 (commit commit)))
11158 (file-name (git-file-name name version))
11159 (sha256
11160 (base32
11161 "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk"))))
11162 (build-system emacs-build-system)
11163 (propagated-inputs
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")
11167 (description
11168 "This package provides an Ivy interface for working with the password
11169 store (@code{pass}) in Emacs.")
11170 (license license:gpl3))))
11171
11172 (define-public emacs-ivy-yasnippet
11173 (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
11174 (revision "2"))
11175 (package
11176 (name "emacs-ivy-yasnippet")
11177 (version (git-version "0.1" revision commit))
11178 (source
11179 (origin
11180 (method git-fetch)
11181 (uri (git-reference
11182 (url "https://github.com/mkcms/ivy-yasnippet")
11183 (commit commit)))
11184 (file-name (git-file-name name version))
11185 (sha256
11186 (base32
11187 "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
11188 (build-system emacs-build-system)
11189 (propagated-inputs
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+))))
11199
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")
11205 (revision "2"))
11206 (package
11207 (name "emacs-ivy-rich")
11208 (version (git-version "0.1.6" revision commit))
11209 (source
11210 (origin
11211 (method git-fetch)
11212 (uri (git-reference
11213 (url "https://github.com/Yevgnen/ivy-rich")
11214 (commit commit)))
11215 (file-name (git-file-name name version))
11216 (sha256
11217 (base32 "1dv6vr7fv32v5m04zdy02sdajpvrnpc4i3pbh2dwfv73ff8d8yxm"))))
11218 (build-system emacs-build-system)
11219 (propagated-inputs
11220 (list emacs-ivy))
11221 (home-page "https://github.com/Yevgnen/ivy-rich")
11222 (synopsis "More friendly interface for @code{ivy}")
11223 (description
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
11227 icons as well.")
11228 (license license:gpl3+))))
11229
11230 (define-public emacs-avy
11231 (package
11232 (name "emacs-avy")
11233 (version "0.5.0")
11234 (source
11235 (origin
11236 (method git-fetch)
11237 (uri (git-reference
11238 (url "https://github.com/abo-abo/avy")
11239 (commit version)))
11240 (file-name (git-file-name name version))
11241 (sha256
11242 (base32 "09qdni1s74i5pv8741szl5g4ynj8fxn0x65qmwa9rmfkbimnc0fs"))))
11243 (build-system emacs-build-system)
11244 (arguments
11245 `(#:tests? #t
11246 #:test-command '("make" "test")))
11247 (home-page "https://github.com/abo-abo/avy")
11248 (synopsis "Tree-based completion for Emacs")
11249 (description
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
11253 be used.
11254
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
11259 windows.")
11260 (license license:gpl3+)))
11261
11262 (define-public emacs-ace-window
11263 (package
11264 (name "emacs-ace-window")
11265 (version "0.10.0")
11266 (source
11267 (origin
11268 (method git-fetch)
11269 (uri (git-reference
11270 (url "https://github.com/abo-abo/ace-window")
11271 (commit version)))
11272 (file-name (git-file-name name version))
11273 (sha256
11274 (base32
11275 "0f3r40d5yxp2pm2j0nn86s29nqj8py0jxjbj50v4ci3hsd92d8jl"))))
11276 (build-system emacs-build-system)
11277 (propagated-inputs
11278 (list emacs-avy))
11279 (home-page "https://github.com/abo-abo/ace-window")
11280 (synopsis "Quickly switch windows in Emacs")
11281 (description
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+)))
11287
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"))
11293 (package
11294 (name "emacs-windsize")
11295 (version (git-version "0.1" revision commit))
11296 (source
11297 (origin
11298 (method git-fetch)
11299 (uri (git-reference
11300 (url "https://github.com/grammati/windsize")
11301 (commit commit)))
11302 (file-name (git-file-name name version))
11303 (sha256
11304 (base32 "13kfrmv3vmkfanxv9nym5v43hx5p7xkgqmx65zcxh4gcbaham1mi"))))
11305 (build-system emacs-build-system)
11306 (home-page "https://github.com/grammati/windsize")
11307 (synopsis "Easy resizing of Emacs windows")
11308 (description
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+))))
11313
11314 (define-public emacs-window-purpose
11315 (package
11316 (name "emacs-window-purpose")
11317 (version "1.8.1")
11318 (source
11319 (origin
11320 (method git-fetch)
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))
11325 (sha256
11326 (base32
11327 "1cw513mh3gyl21qpmgwqjgpi8kwddmd4n69l4ax5a5pv3vvwrcx9"))))
11328 (build-system emacs-build-system)
11329 (propagated-inputs
11330 (list emacs-let-alist emacs-imenu-list))
11331 (arguments
11332 '(#:include
11333 '("^[^/]+.el$"
11334 "^[^/]+.el.in$"
11335 "^dir$"
11336 "^[^/]+.info$"
11337 "^[^/]+.texi$"
11338 "^[^/]+.texinfo$"
11339 "^doc/dir$"
11340 "^doc/[^/]+.info$"
11341 "^doc/[^/]+.texi$"
11342 "^doc/[^/]+.texinfo$"
11343 "^layouts$")
11344 #:exclude
11345 '("^.dir-locals.el$"
11346 "^test.el$"
11347 "^tests.el$"
11348 "^[^/]+-test.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+)))
11356
11357 (define-public emacs-iedit
11358 (package
11359 (name "emacs-iedit")
11360 (version "0.9.9.9.9")
11361 (source
11362 (origin
11363 (method git-fetch)
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))
11368 (sha256
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")
11373 (description
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.
11377
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+)))
11382
11383 (define-public emacs-zoutline
11384 (package
11385 (name "emacs-zoutline")
11386 (version "0.2.0")
11387 (source
11388 (origin
11389 (method git-fetch)
11390 (uri (git-reference
11391 (url "https://github.com/abo-abo/zoutline")
11392 (commit version)))
11393 (sha256
11394 (base32
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")
11400 (description
11401 "This library provides helpers for outlines. Outlines allow users to
11402 navigate code in a tree-like fashion.")
11403 (license license:gpl3+)))
11404
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"))
11409 (package
11410 (name "emacs-lispy")
11411 (version (git-version "0.27.0" "3" commit))
11412 (home-page "https://github.com/abo-abo/lispy")
11413 (source (origin
11414 (method git-fetch)
11415 (uri (git-reference
11416 (url "https://github.com/abo-abo/lispy")
11417 (commit commit)))
11418 (sha256
11419 (base32
11420 "02pmnn9cqslahnvllqzawp2j5icmb3wgkrk4qrfxjds68jg7pjj4"))
11421 (patches
11422 (search-patches "emacs-lispy-fix-thread-last-test.patch"))
11423 (file-name (git-file-name name version))))
11424 (build-system emacs-build-system)
11425 (propagated-inputs
11426 (list emacs-ace-window emacs-hydra emacs-iedit emacs-swiper
11427 emacs-zoutline))
11428 (native-inputs
11429 (list which emacs-clojure-mode emacs-undercover))
11430 (arguments
11431 (list
11432 #:include #~(cons* "^lispy-clojure\\.clj$"
11433 "^lispy-python\\.py$"
11434 %default-include)
11435 #:phases
11436 ;; XXX: Some failing tests
11437 #~(modify-phases %standard-phases
11438 (add-before 'check 'make-test-writable
11439 (lambda _
11440 (make-file-writable "lispy-test.el")))
11441 (add-before 'check 'remove-failing-test
11442 (lambda _
11443 (emacs-batch-edit-file "lispy-test.el"
11444 `(progn
11445 (dolist (test '("lispy-eval-python-str" "lispy--clojure-dot-object"))
11446 (goto-char (point-min))
11447 (re-search-forward
11448 (concat "ert-deftest " test))
11449 (beginning-of-line)
11450 (kill-sexp))
11451 (basic-save-buffer))))))
11452 #:tests? #t
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")
11456 (description
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
11462 S-expression.")
11463 (license license:gpl3+))))
11464
11465 (define-public emacs-lispyville
11466 (let ((commit "89316f01822b2135e52ca27fd308d207ef618052")
11467 (revision "3"))
11468 (package
11469 (name "emacs-lispyville")
11470 (version (git-version "0.1" revision commit))
11471 (home-page "https://github.com/noctuid/lispyville")
11472 (source (origin
11473 (method git-fetch)
11474 (uri (git-reference (url home-page) (commit commit)))
11475 (sha256
11476 (base32
11477 "10k3hxxpx2v2k4dyad7j1bzmr1q7rzvv4y6c67pa9zcqyaw8m91v"))
11478 (file-name (git-file-name name version))))
11479 (propagated-inputs
11480 (list emacs-evil emacs-lispy))
11481 (build-system emacs-build-system)
11482 (synopsis "Minor mode for integrating Evil with lispy")
11483 (description
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+))))
11490
11491 (define-public emacs-function-args
11492 ;; The latest release is from August 21, 2017.
11493 (let ((commit "beba049751fed78666c87bd146a6f1cf149bb819")
11494 (revision "0"))
11495 (package
11496 (name "emacs-function-args")
11497 (version (git-version "0.6.0" revision commit))
11498 (source
11499 (origin
11500 (method git-fetch)
11501 (uri (git-reference
11502 (url "https://github.com/abo-abo/function-args")
11503 (commit commit)))
11504 (file-name (git-file-name name version))
11505 (sha256
11506 (base32
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")
11512 (description
11513 "This package provides a way of showing an inline arguments hint for
11514 the C/C++ function at point.")
11515 (license license:gpl3+))))
11516
11517 (define-public emacs-lpy
11518 ;; There is no proper release/tag.
11519 (let ((commit "fa95b11e1023704510cc7dd2897bf8bcc3027cbb")
11520 (revision "6"))
11521 (package
11522 (name "emacs-lpy")
11523 (version (git-version "0.1.0" revision commit))
11524 (source
11525 (origin
11526 (method git-fetch)
11527 (uri (git-reference
11528 (url "https://github.com/abo-abo/lpy")
11529 (commit commit)))
11530 (file-name (git-file-name name version))
11531 (sha256
11532 (base32
11533 "18kx2mfmxy8s8csnp0iaiirl2z9baicq9f2w7rxlgkxww5511v7d"))))
11534 (build-system emacs-build-system)
11535 (propagated-inputs
11536 (list emacs-function-args emacs-lispy emacs-zoutline))
11537 (home-page "https://github.com/abo-abo/lpy")
11538 (synopsis "Modal editing for Python")
11539 (description
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+))))
11545
11546 (define-public emacs-clojure-mode
11547 (package
11548 (name "emacs-clojure-mode")
11549 (version "5.16.0")
11550 (source
11551 (origin
11552 (method git-fetch)
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))
11557 (sha256
11558 (base32 "0s09b9gbmjmk56jm9hcbk06zfa96kqhgx58d98w13yy01yx0pych"))))
11559 (build-system emacs-build-system)
11560 (native-inputs
11561 (list emacs-buttercup emacs-dash emacs-paredit emacs-s))
11562 (arguments
11563 `(#:tests? #t
11564 #:test-command '("buttercup")))
11565 (home-page "https://github.com/clojure-emacs/clojure-mode")
11566 (synopsis "Major mode for Clojure code")
11567 (description
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+)))
11572
11573 (define-public emacs-clj-refactor
11574 (package
11575 (name "emacs-clj-refactor")
11576 (version "3.6.0")
11577 (source
11578 (origin
11579 (method git-fetch)
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))
11584 (sha256
11585 (base32 "15ya7hp5d2kwh1ig55d75vlghm1vsq99jh44i8q8v25vfmzjp7gp"))))
11586 (build-system emacs-build-system)
11587 (propagated-inputs
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+)))
11595
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")
11600 (revision "0")
11601 (commit "6068dca90467a0f4ebc2cd39338a173d6f5ddc04"))
11602 (package
11603 (name "emacs-clojure-snippets")
11604 (version (git-version version revision commit))
11605 (source
11606 (origin
11607 (method git-fetch)
11608 (uri (git-reference
11609 (url "https://github.com/mpenet/clojure-snippets")
11610 (commit commit)))
11611 (file-name (git-file-name name version))
11612 (sha256
11613 (base32 "0vvadcydpsz4b17dlm1jd4fbddzfqibh3mlzv3k4gvp67vv10cqy"))))
11614 (build-system emacs-build-system)
11615 (arguments
11616 `(#:include (cons* "^.*\\/" %default-include)))
11617 (propagated-inputs
11618 (list emacs-yasnippet))
11619 (home-page "https://github.com/mpenet/clojure-snippets")
11620 (synopsis "Yasnippets for Clojure")
11621 (description
11622 "This package provides Yasnippets snippets for Clojure.")
11623 (license license:gpl3+))))
11624
11625 (define-public emacs-anakondo
11626 ;; This particular commit introduces bug fixes above latest release.
11627 (let ((version "0.2.1")
11628 (revision "0")
11629 (commit "c48518560815c49d8d78fb9069906d17e883385e"))
11630 (package
11631 (name "emacs-anakondo")
11632 (version (git-version version revision commit))
11633 (source
11634 (origin
11635 (method git-fetch)
11636 (uri (git-reference
11637 (url "https://github.com/didibus/anakondo")
11638 (commit commit)))
11639 (file-name (git-file-name name version))
11640 (sha256
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")
11645 (description
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))))
11649
11650 (define-public emacs-epl
11651 (package
11652 (name "emacs-epl")
11653 (version "0.9")
11654 (source
11655 (origin
11656 (method git-fetch)
11657 (uri (git-reference
11658 (url "https://github.com/cask/epl")
11659 (commit version)))
11660 (file-name (git-file-name name version))
11661 (sha256
11662 (base32 "0d3z5z90ln8ipk1yds1n1p8fj9yyh2kpspqjs7agl38indra3nb4"))))
11663 (build-system emacs-build-system)
11664 (home-page "https://github.com/cask/epl")
11665 (synopsis "Emacs Package Library")
11666 (description
11667 "A package management library for Emacs, based on @code{package.el}.
11668
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+)))
11672
11673 (define-public emacs-counsel-jq
11674 (package
11675 (name "emacs-counsel-jq")
11676 (version "1.1")
11677 (home-page "https://github.com/200ok-ch/counsel-jq")
11678 (source
11679 (origin
11680 (method git-fetch)
11681 (uri (git-reference
11682 (url home-page)
11683 (commit "aaf33fc2447096cd0d03b77395fe2a95c9fe1481")))
11684 (file-name (git-file-name name version))
11685 (sha256
11686 (base32 "10rz0qm8a4bl0m86kx19zq8lri047p4sxqyny08bgm9pbam0wvwn"))))
11687 (build-system emacs-build-system)
11688 (propagated-inputs
11689 (list emacs-swiper jq))
11690 (synopsis "Live preview @code{jq} queries using counsel")
11691 (description
11692 "This Emacs package provides the ability to live preview @code{jq}
11693 queries using counsel.")
11694 (license license:gpl3+)))
11695
11696 (define-public emacs-counsel-notmuch
11697 ;; Upstream provides no release. Extract version for main file.
11698 (let ((commit "a4a1562935e4180c42524c51609d1283e9be0688")
11699 (revision "0"))
11700 (package
11701 (name "emacs-counsel-notmuch")
11702 (version (git-version "1.0" revision commit))
11703 (source
11704 (origin
11705 (method git-fetch)
11706 (uri (git-reference
11707 (url "https://github.com/fuxialexander/counsel-notmuch")
11708 (commit commit)))
11709 (file-name (git-file-name name version))
11710 (sha256
11711 (base32 "01k1321d961kc2i660a5595bqk0d85f16snsxngsn5si6y83kqr7"))))
11712 (build-system emacs-build-system)
11713 (arguments
11714 `(#:phases
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"))))))))
11722 (inputs
11723 (list emacs-counsel notmuch emacs-s))
11724 (propagated-inputs
11725 (list emacs-notmuch))
11726 (home-page "https://github.com/fuxialexander/counsel-notmuch")
11727 (synopsis "Search emails in Notmuch asynchronously with Ivy")
11728 (description
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+))))
11733
11734 (define-public emacs-counsel-projectile
11735 (package
11736 (name "emacs-counsel-projectile")
11737 (version "0.3.2")
11738 (source
11739 (origin
11740 (method git-fetch)
11741 (uri (git-reference
11742 (url "https://github.com/ericdanan/counsel-projectile")
11743 (commit version)))
11744 (file-name (git-file-name name version))
11745 (sha256
11746 (base32 "1vp39r5njfzchkqv9g0w77whazp070anh9gmbkp3z4n3xxbik27f"))))
11747 (build-system emacs-build-system)
11748 (propagated-inputs
11749 (list emacs-counsel emacs-projectile))
11750 (home-page "https://github.com/ericdanan/counsel-projectile")
11751 (synopsis "Enhance Projectile with Ivy")
11752 (description
11753 "This package uses Ivy to provide additional actions for Projectile
11754 commands and replacements for existing functions.")
11755 (license license:gpl3+)))
11756
11757 (define-public emacs-qml-mode
11758 (package
11759 (name "emacs-qml-mode")
11760 (version "0.4")
11761 (source (origin
11762 (method git-fetch)
11763 (uri (git-reference
11764 (url "https://github.com/coldnew/qml-mode")
11765 (commit version)))
11766 (file-name (git-file-name name version))
11767 (sha256
11768 (base32
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+)))
11779
11780 (define-public emacs-queue
11781 (package
11782 (name "emacs-queue")
11783 (version "0.2")
11784 (source (origin
11785 (method url-fetch)
11786 (uri (string-append "https://elpa.gnu.org/packages/queue-"
11787 version ".el"))
11788 (sha256
11789 (base32
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")
11794 (description
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+)))
11801
11802 (define-public emacs-quickrun
11803 (package
11804 (name "emacs-quickrun")
11805 (version "2.3.1")
11806 (source
11807 (origin
11808 (method git-fetch)
11809 (uri (git-reference
11810 (url "https://github.com/emacsorphanage/quickrun")
11811 (commit version)))
11812 (sha256
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")
11818 (description
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
11822 languages.")
11823 (license license:gpl3+)))
11824
11825 (define-public emacs-pkg-info
11826 (package
11827 (name "emacs-pkg-info")
11828 (version "0.6")
11829 (source
11830 (origin
11831 (method git-fetch)
11832 (uri (git-reference
11833 (url "https://github.com/lunaryorn/pkg-info.el")
11834 (commit version)))
11835 (file-name (git-file-name name version))
11836 (sha256
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")
11842 (description
11843 "This library extracts information from the installed Emacs packages.")
11844 (license license:gpl3+)))
11845
11846 (define-public emacs-spinner
11847 (package
11848 (name "emacs-spinner")
11849 (version "1.7.4")
11850 (source (origin
11851 (method url-fetch)
11852 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
11853 version ".tar"))
11854 (sha256
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")
11859 (description
11860 "This Emacs package adds spinners and progress-bars to the mode-line for
11861 ongoing operations.")
11862 (license license:gpl3+)))
11863
11864 (define-public emacs-sparql-mode
11865 (package
11866 (name "emacs-sparql-mode")
11867 (version "4.0.2")
11868 (source
11869 (origin
11870 (method git-fetch)
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))
11875 (sha256
11876 (base32 "0hqp8r24wvzrkl630wbm0lynrcrnawv2yn2a3xgwqwwhwgva35rn"))))
11877 (build-system emacs-build-system)
11878 (propagated-inputs
11879 (list emacs-company))
11880 (home-page "https://github.com/ljos/sparql-mode")
11881 (synopsis "SPARQL mode for Emacs")
11882 (description
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+)))
11887
11888 (define-public emacs-better-defaults
11889 (package
11890 (name "emacs-better-defaults")
11891 (version "0.1.3")
11892 (source
11893 (origin
11894 (method git-fetch)
11895 (uri (git-reference
11896 (url "https://git.sr.ht/~technomancy/better-defaults")
11897 (commit version)))
11898 (file-name (git-file-name name version))
11899 (sha256
11900 (base32
11901 "1rxznx2l0cdpiz8mad8s6q17m1fngpgb1cki7ch6yh18r3qz8ysr"))))
11902 (build-system emacs-build-system)
11903 (home-page "https://git.sr.ht/~technomancy/better-defaults")
11904 (synopsis "Better defaults for Emacs")
11905 (description
11906 "Better defaults attempts to address the most obvious deficiencies of the
11907 Emacs default configuration in uncontroversial ways that nearly everyone can
11908 agree upon.")
11909 (license license:gpl3+)))
11910
11911 (define-public emacs-undohist-el
11912 (package
11913 (name "emacs-undohist-el")
11914 (version "0.2.1")
11915 (source
11916 (origin
11917 (method git-fetch)
11918 (uri (git-reference
11919 (url "https://github.com/m2ym/undohist-el")
11920 (commit version)))
11921 (file-name (git-file-name name version))
11922 (sha256
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+)))
11930
11931 (define-public emacs-eprime
11932 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
11933 (package
11934 (name "emacs-eprime")
11935 (version (string-append "20140513-" (string-take commit 7)))
11936 (source (origin
11937 (method url-fetch)
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"))
11942 (sha256
11943 (base32
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+))))
11952
11953 (define-public emacs-julia-mode
11954 (package
11955 (name "emacs-julia-mode")
11956 (version "0.4")
11957 (source
11958 (origin
11959 (method git-fetch)
11960 (uri (git-reference
11961 (url "https://github.com/JuliaEditorSupport/julia-emacs")
11962 (commit version)))
11963 (file-name (git-file-name name version))
11964 (sha256
11965 (base32
11966 "1w131jb9mhvyjxa0p93iwfhzidgbcs6b8i6jg79yisqb9wchik99"))))
11967 (build-system emacs-build-system)
11968 (arguments
11969 `(#:tests? #t
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)))
11978
11979 (define-public emacs-julia-repl
11980 (package
11981 (name "emacs-julia-repl")
11982 (version "1.3.0")
11983 (source (origin
11984 (method git-fetch)
11985 (uri (git-reference
11986 (url "https://github.com/tpapp/julia-repl")
11987 (commit version)))
11988 (file-name (git-file-name name version))
11989 (sha256
11990 (base32
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)))
12001
12002 (define-public emacs-julia-snail
12003 (package
12004 (name "emacs-julia-snail")
12005 (version "1.1.5")
12006 (source (origin
12007 (method git-fetch)
12008 (uri (git-reference
12009 (url "https://github.com/gcv/julia-snail")
12010 (commit version)))
12011 (file-name (git-file-name name version))
12012 (sha256
12013 (base32
12014 "04nh37izz04lxkvkxhsig8khbrrgdl4p6pkjsv5bxymnp84zwlw7"))))
12015 (build-system emacs-build-system)
12016 (arguments
12017 (list #:include #~(cons "^JuliaSnail\\.jl" %default-include)))
12018 (inputs
12019 (list emacs-dash emacs-s emacs-spinner emacs-xref))
12020 (propagated-inputs
12021 (list libvterm
12022 emacs-julia-mode ;required by parser
12023 emacs-parsec ;required by parser
12024 emacs-vterm))
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)))
12031
12032 (define-public emacs-smex
12033 (package
12034 (name "emacs-smex")
12035 (version "3.0")
12036 (source (origin
12037 (method url-fetch)
12038 (uri (string-append "https://raw.githubusercontent.com"
12039 "/nonsequitur/smex/" version "/smex.el"))
12040 (file-name (string-append "smex-" version ".el"))
12041 (sha256
12042 (base32
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")
12047 (description
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+)))
12052
12053 (define-public emacs-js2-mode
12054 (package
12055 (name "emacs-js2-mode")
12056 (version "20220710")
12057 (source
12058 (origin
12059 (method git-fetch)
12060 (uri (git-reference
12061 (url "https://github.com/mooz/js2-mode")
12062 (commit version)))
12063 (file-name (git-file-name name version))
12064 (sha256
12065 (base32 "0whvhmgpv6yxqiljd1l4a880i0dhp0z0jxqaad7jjvwij07vvla4"))))
12066 (build-system emacs-build-system)
12067 (arguments
12068 `(#:tests? #t
12069 #:test-command '("make" "test")))
12070 (home-page "https://github.com/mooz/js2-mode/")
12071 (synopsis "Improved JavaScript editing mode for Emacs")
12072 (description
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+)))
12079
12080 (define-public emacs-js-comint
12081 (package
12082 (name "emacs-js-comint")
12083 (version "1.2.0")
12084 (source
12085 (origin
12086 (method url-fetch)
12087 (uri (string-append "https://stable.melpa.org/packages/"
12088 "js-comint-" version ".el"))
12089 (sha256
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")
12094 (description
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
12098 an Emacs buffer.")
12099 (license license:gpl3+)))
12100
12101 (define-public emacs-nodejs-repl
12102 (package
12103 (name "emacs-nodejs-repl")
12104 (version "0.2.4")
12105 (source (origin
12106 (method git-fetch)
12107 (uri (git-reference
12108 (url "https://github.com/abicky/nodejs-repl.el")
12109 (commit version)))
12110 (file-name (git-file-name name version))
12111 (sha256
12112 (base32
12113 "0a5mmg3cmdi73giblp07ksl06xzl9nb2m3f96ny4r3rv0ar3v1bx"))))
12114 (build-system emacs-build-system)
12115 (inputs
12116 (list node))
12117 (native-inputs
12118 (list emacs-ert-expectations))
12119 (arguments
12120 `(#:phases
12121 (modify-phases %standard-phases
12122 (add-after 'unpack 'set-shell
12123 ;; Setting the SHELL environment variable is required for the tests
12124 ;; to find sh.
12125 (lambda _
12126 (setenv "SHELL" (which "sh"))
12127 #t))
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
12135 "nodejs-repl.el"
12136 ("nodejs-repl-command"
12137 (string-append node "/bin/node")))))))
12138 #:tests? #t
12139 #:test-command '("emacs" "-Q" "--batch"
12140 "-L" "."
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")
12145 (description
12146 "This program is derived from comint-mode and provides the following
12147 features:
12148
12149 @itemize
12150 @item TAB completion same as Node.js REPL
12151 @item file name completion in string
12152 @item incremental history search
12153 @end itemize")
12154 (license license:gpl3+)))
12155
12156 (define-public emacs-typescript-mode
12157 (package
12158 (name "emacs-typescript-mode")
12159 (version "0.4")
12160 (source (origin
12161 (method git-fetch)
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))
12166 (sha256
12167 (base32
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")
12172 (description
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\"
12177
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+)))
12182
12183 (define-public emacs-tide
12184 (package
12185 (name "emacs-tide")
12186 (version "4.5.4")
12187 (source (origin
12188 (method git-fetch)
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))
12193 (sha256
12194 (base32
12195 "0zrapfxdarakp3kwp73c2ymjx51fsnfk6azi2y1wb2kgsdxl2yim"))))
12196 (build-system emacs-build-system)
12197 (propagated-inputs
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")
12201 (description
12202 "Tide is an Interactive Development Environment (IDE) for Emacs which
12203 provides the following features:
12204
12205 @itemize
12206 @item ElDoc
12207 @item Auto complete
12208 @item Flycheck
12209 @item Jump to definition, Jump to type definition
12210 @item Find occurrences
12211 @item Rename symbol
12212 @item Imenu
12213 @item Compile On Save
12214 @item Highlight Identifiers
12215 @item Code Fixes
12216 @item Code Refactor
12217 @item Organize Imports
12218 @end itemize")
12219 (license license:gpl3+)))
12220
12221 (define-public emacs-markdown-mode
12222 (package
12223 (name "emacs-markdown-mode")
12224 (version "2.5")
12225 (source
12226 (origin
12227 (method git-fetch)
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))
12232 (sha256
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")
12237 (description
12238 "Markdown-mode is a major mode for editing Markdown-formatted text files
12239 in Emacs.")
12240 (license license:gpl3+)))
12241
12242 (define-public emacs-evil-markdown
12243 (let ((commit "685d7fbb81bc02fa32779d2a127b99a0c8c7436b")
12244 (revision "2"))
12245 (package
12246 (name "emacs-evil-markdown")
12247 (version (git-version "0.0.2" revision commit))
12248 (source
12249 (origin
12250 (method git-fetch)
12251 (uri (git-reference
12252 (url "https://github.com/Somelauw/evil-markdown")
12253 (commit commit)))
12254 (file-name (git-file-name name version))
12255 (sha256
12256 (base32 "1z1sjn6dcqv8mmkh6nfcwhnql2z6xr9yx3hs77bfxj79pf3c466p"))))
12257 (build-system emacs-build-system)
12258 (propagated-inputs
12259 (list emacs-evil emacs-markdown-mode))
12260 (home-page "https://github.com/Somelauw/evil-markdown/")
12261 (synopsis "Evil keybindings for @code{markdown-mode}")
12262 (description
12263 "This package provides custom text objects and bindings for
12264 @code{markdown-mode}.")
12265 (license license:gpl3+))))
12266
12267 (define-public emacs-edit-indirect
12268 (package
12269 (name "emacs-edit-indirect")
12270 (version "0.1.10")
12271 (source
12272 (origin
12273 (method git-fetch)
12274 (uri (git-reference
12275 (url "https://github.com/Fanael/edit-indirect")
12276 (commit version)))
12277 (file-name (git-file-name name version))
12278 (sha256
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)))
12286
12287 (define-public emacs-projectile
12288 (package
12289 (name "emacs-projectile")
12290 (version "2.7.0")
12291 (source
12292 (origin
12293 (method git-fetch)
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))
12298 (sha256
12299 (base32
12300 "0ybd41iss8vd56qv6czpxqq7a99s4h7i3a2r4khy4rf5blj5zdqi"))))
12301 (build-system emacs-build-system)
12302 (arguments
12303 (list
12304 #:tests? #t
12305 #:test-command #~(list "buttercup" "-L" ".")
12306 #:phases
12307 #~(modify-phases %standard-phases
12308 (add-before 'check 'fix-failing-test
12309 (lambda _
12310 (substitute* "test/projectile-test.el"
12311 (("user-emacs-directory") "\".\"")))))))
12312 (native-inputs
12313 (list emacs-buttercup))
12314 (propagated-inputs
12315 (list emacs-dash emacs-pkg-info))
12316 (home-page "https://github.com/bbatsov/projectile")
12317 (synopsis "Manage and navigate projects in Emacs easily")
12318 (description
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+)))
12325
12326 (define-public emacs-skeletor
12327 (let ((commit "47c5b761aee8452716c97a69949ac2f675affe13")
12328 (revision "1"))
12329 (package
12330 (name "emacs-skeletor")
12331 (version (git-version "1.6.1" revision commit))
12332 (source (origin
12333 (method git-fetch)
12334 (uri (git-reference
12335 (url "https://github.com/chrisbarrett/skeletor.el")
12336 (commit commit)))
12337 (file-name (git-file-name name version))
12338 (sha256
12339 (base32
12340 "12bdgykfh4mwsqdazxjdvha62h3q3v33159ypy91f6x59y01fi0n"))))
12341 (build-system emacs-build-system)
12342 (propagated-inputs
12343 (list emacs-s emacs-f emacs-dash emacs-let-alist))
12344 (native-inputs
12345 (list emacs-ert-runner))
12346 (arguments
12347 `(#:include (cons "^project-skeletons\\/" %default-include)
12348 ;; XXX: one failing test involving initializing a git repo
12349 #:phases
12350 (modify-phases %standard-phases
12351 (add-before 'check 'make-test-writable
12352 (lambda _
12353 (make-file-writable "test/skeletor-test.el")
12354 #t))
12355 (add-before 'check 'remove-git-test
12356 (lambda _
12357 (emacs-batch-edit-file "test/skeletor-test.el"
12358 `(progn
12359 (progn
12360 (goto-char (point-min))
12361 (re-search-forward
12362 "ert-deftest initialises-git-repo")
12363 (beginning-of-line)
12364 (kill-sexp))
12365 (basic-save-buffer)))
12366 #t)))
12367 #:tests? #t
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,
12373 and tooling.")
12374 (license license:gpl3+))))
12375
12376 (define-public emacs-elfeed
12377 (package
12378 (name "emacs-elfeed")
12379 (version "3.4.1")
12380 (source
12381 (origin
12382 (method git-fetch)
12383 (uri (git-reference
12384 (url "https://github.com/skeeto/elfeed")
12385 (commit version)))
12386 (file-name (git-file-name name version))
12387 (sha256
12388 (base32 "1ghdvfn4f9y69r59i1ga9b3ib1r8sbqg6q1v5rz3f9paagfavrd1"))))
12389 (build-system emacs-build-system)
12390 (arguments
12391 `(#:tests? #t
12392 #:test-command '("make" "test")))
12393 (home-page "https://github.com/skeeto/elfeed")
12394 (synopsis "Atom/RSS feed reader for Emacs")
12395 (description
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+)))
12399
12400 (define-public emacs-elfeed-org
12401 (let ((commit "77b6bbf222487809813de260447d31c4c59902c9"))
12402 (package
12403 (name "emacs-elfeed-org")
12404 (version (git-version "0.1" "1" commit))
12405 (source
12406 (origin
12407 (method git-fetch)
12408 (uri (git-reference
12409 (url "https://github.com/remyhonig/elfeed-org")
12410 (commit commit)))
12411 (file-name (git-file-name name version))
12412 (sha256
12413 (base32 "0a2ibka82xq1dhy2z7rd2y9zhcj8rna8357881yz49wf55ccgm53"))))
12414 (build-system emacs-build-system)
12415 (arguments
12416 `(#:tests? #t
12417 #:test-command '("ert-runner" "-L" "org-mode/lisp")
12418 #:phases
12419 (modify-phases %standard-phases
12420 (add-before 'check 'chmod
12421 (lambda _
12422 (chmod "test/fixture-mark-feed-ignore.org" #o644))))))
12423 (propagated-inputs
12424 (list emacs-elfeed emacs-org emacs-dash emacs-s))
12425 (native-inputs
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")
12429 (description
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
12434 much easier.")
12435 (license license:gpl3+))))
12436
12437 (define-public emacs-elfeed-protocol
12438 (package
12439 (name "emacs-elfeed-protocol")
12440 (version "0.8.1")
12441 (source
12442 (origin
12443 (method git-fetch)
12444 (uri (git-reference
12445 (url "https://github.com/fasheng/elfeed-protocol")
12446 (commit version)))
12447 (file-name (git-file-name name version))
12448 (sha256
12449 (base32 "0k9rkghp9rg7aidmx7q0n4wpb9z5cwr7j8z167yzaqgf9s3y4jj2"))))
12450 (build-system emacs-build-system)
12451 (propagated-inputs
12452 (list emacs-elfeed))
12453 (home-page "https://github.com/fasheng/elfeed-protocol")
12454 (synopsis "Fever/NewsBlur/ownCloud/tt-RSS protocols for Elfeed")
12455 (description
12456 "Elfeed-protocol provides extra protocols to make self-hosting RSS
12457 readers like Fever, NewsBlur, ownCloud News and Tiny TIny RSS work
12458 with Elfeed.")
12459 (license license:gpl3+)))
12460
12461 (define-public emacs-elfeed-score
12462 (package
12463 (name "emacs-elfeed-score")
12464 (version "1.2.4")
12465 (source
12466 (origin
12467 (method git-fetch)
12468 (uri (git-reference
12469 (url "https://github.com/sp1ff/elfeed-score")
12470 (commit version)))
12471 (file-name (git-file-name name version))
12472 (sha256
12473 (base32 "0d1yh4wv81n5mnrzdi88z0vbs94m7j3q20r5fc1wk35r4hrl3xqw"))))
12474 (build-system emacs-build-system)
12475 (propagated-inputs
12476 (list emacs-elfeed))
12477 (home-page "https://github.com/sp1ff/elfeed-score")
12478 (synopsis "Gnus-style scoring for Elfeed")
12479 (description
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+)))
12487
12488 (define-public emacs-el-x
12489 (package
12490 (name "emacs-el-x")
12491 (version "0.3.1")
12492 (source (origin
12493 (method git-fetch)
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))
12498 (sha256
12499 (base32
12500 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
12501 (build-system emacs-build-system)
12502 (arguments
12503 `(#:phases
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
12508 (lambda _
12509 (let ((el-files (find-files "./lisp" ".*\\.el$")))
12510 (for-each (lambda (f)
12511 (rename-file f (basename f)))
12512 el-files))
12513 #t)))))
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+)))
12520
12521 (define-public emacs-epithet
12522 ;; No tags.
12523 (let ((commit "cc42338376c2c58da561214c554be8e8856f6a2b"))
12524 (package
12525 (name "emacs-epithet")
12526 (version "0.1")
12527 (source (origin
12528 (method git-fetch)
12529 (uri (git-reference
12530 (url "https://github.com/oantolin/epithet")
12531 (commit commit)))
12532 (file-name (git-file-name name version))
12533 (sha256
12534 (base32
12535 "06irgshgcgmm09nswrny8mam6l660ai71rgn0l3rmyp9li8n97j0"))))
12536 (build-system emacs-build-system)
12537 (home-page "https://github.com/oantolin/epithet")
12538 (synopsis "Rename Emacs buffers with descriptive names")
12539 (description
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+))))
12546
12547 (define-public emacs-eterm-256color
12548 (package
12549 (name "emacs-eterm-256color")
12550 (version "0.3.13")
12551 (source (origin
12552 (method git-fetch)
12553 (uri (git-reference
12554 (url "https://github.com/dieggsy/eterm-256color")
12555 (commit version)))
12556 (file-name (git-file-name name version))
12557 (sha256
12558 (base32
12559 "0ysxblc90kjcz84siprnyxwh94scflivqbxylzkvjm7hbx93rsh1"))))
12560 (build-system emacs-build-system)
12561 (propagated-inputs
12562 (list emacs-f emacs-xterm-color))
12563 (home-page "https://github.com/dieggsy/eterm-256color")
12564 (synopsis
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+)))
12569
12570 (define-public emacs-mocker
12571 (package
12572 (name "emacs-mocker")
12573 (version "0.5.0")
12574 (source
12575 (origin
12576 (method git-fetch)
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))
12581 (sha256
12582 (base32 "1dc514cqbfmg33sb3j90s5jmw6jnm3wzvs0zhw3maz13bp7w6z48"))))
12583 (build-system emacs-build-system)
12584 (arguments
12585 `(#:tests? #t
12586 #:test-command '("ert-runner")))
12587 (native-inputs
12588 (list emacs-ert-runner))
12589 (propagated-inputs
12590 (list emacs-el-x))
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+)))
12597
12598 (define-public emacs-find-file-in-project
12599 (package
12600 (name "emacs-find-file-in-project")
12601 (version "6.2.0")
12602 (source
12603 (origin
12604 (method git-fetch)
12605 (uri (git-reference
12606 (url "https://github.com/technomancy/find-file-in-project")
12607 (commit version)))
12608 (file-name (git-file-name name version))
12609 (sha256
12610 (base32 "0sq8fyq19jw1hm0m6hiqnvzzvx0c3xigfx7x6i40ib5hnfjlqs0a"))))
12611 (build-system emacs-build-system)
12612 (arguments
12613 `(#:tests? #t
12614 #:test-command '("ert-runner" "tests")))
12615 (native-inputs
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+)))
12624
12625 (define-public emacs-pyvenv
12626 (package
12627 (name "emacs-pyvenv")
12628 (version "1.21")
12629 (source
12630 (origin
12631 (method git-fetch)
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))
12636 (sha256
12637 (base32 "055sgk8zf4wb5nqsf3qasf5gg861zlb1831733f1qcrd2ij5gzxx"))))
12638 (build-system emacs-build-system)
12639 (arguments
12640 `(#:phases
12641 (modify-phases %standard-phases
12642 ;; This phase incorrectly attempts to substitute "activate" and fails
12643 ;; doing so.
12644 (delete 'patch-el-files))
12645 #:tests? #t
12646 #:test-command '("ert-runner")))
12647 (native-inputs
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+)))
12654
12655 (define-public emacs-highlight-indent-guides
12656 (let ((version "0.8.5") ; from package metadata
12657 (revision "0")
12658 (commit "c2c9de4d01edfb89609c91d4d7f1d81312015a2c"))
12659 (package
12660 (name "emacs-highlight-indent-guides")
12661 (version (git-version version revision commit))
12662 (source
12663 (origin
12664 (method git-fetch)
12665 (uri (git-reference
12666 (url "https://github.com/DarthFennec/highlight-indent-guides")
12667 (commit commit)))
12668 (file-name (git-file-name name version))
12669 (sha256
12670 (base32 "10chvqnmdmkx6i9sigqframr85ziyafiz44glwhvhjajfkv42ad2"))))
12671 (build-system emacs-build-system)
12672 (home-page
12673 "https://github.com/DarthFennec/highlight-indent-guides")
12674 (synopsis "Minor mode to highlight indentation")
12675 (description
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
12681 buffers.")
12682 (license license:expat))))
12683
12684 (define-public emacs-highlight-indentation
12685 ;; Last release version is from 2015.
12686 (let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f")
12687 (revision "1"))
12688 (package
12689 (name "emacs-highlight-indentation")
12690 (version (git-version "0.7.0" revision commit))
12691 (source
12692 (origin
12693 (method git-fetch)
12694 (uri (git-reference
12695 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs")
12696 (commit commit)))
12697 (file-name (git-file-name name version))
12698 (sha256
12699 (base32
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:
12706
12707 @enumerate
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).
12712 @end enumerate")
12713 (license license:gpl2+))))
12714
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")
12721 (revision "1"))
12722 (package
12723 (name "emacs-elpy")
12724 (version (git-version "1.35.0" revision commit))
12725 (source (origin
12726 (method git-fetch)
12727 (uri (git-reference
12728 (url "https://github.com/jorgenschaefer/elpy")
12729 (commit commit)))
12730 (file-name (git-file-name name version))
12731 (sha256
12732 (base32
12733 "120xzzaa8jxls3lri6d53zq6gafnkc6d9mlg09an334kkmh8k2fc"))))
12734 (build-system emacs-build-system)
12735 (arguments
12736 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
12737 #:phases
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
12741 ;; them (see:
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
12745 ;; way.
12746 (lambda _
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
12754 ;; 28.1 (see:
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
12772 (lambda _
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
12778 (lambda _
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")))
12788 (mkdir-p man1)
12789 (copy-file "docs/_build/man/elpy.1"
12790 (string-append man1 "/elpy.1"))))))
12791 #:tests? #t
12792 #:test-command '("ert-runner")))
12793 (propagated-inputs
12794 (list emacs-company
12795 emacs-find-file-in-project
12796 emacs-highlight-indentation
12797 emacs-yasnippet
12798 emacs-pyvenv
12799 emacs-s
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.
12803 python-autopep8
12804 python-black
12805 python-flake8
12806 python-jedi
12807 python-yapf))
12808 (native-inputs
12809 (list emacs-ert-runner
12810 emacs-f
12811 python-wrapper
12812 ;; For documentation.
12813 python-sphinx
12814 texinfo))
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+))))
12822
12823 (define-public emacs-rainbow-delimiters
12824 (package
12825 (name "emacs-rainbow-delimiters")
12826 (version "2.1.5")
12827 (source (origin
12828 (method git-fetch)
12829 (uri (git-reference
12830 (url "https://github.com/Fanael/rainbow-delimiters")
12831 (commit version)))
12832 (file-name (git-file-name name version))
12833 (sha256
12834 (base32
12835 "179mzsd8nvlr0ym9zf9fgdngsgxj3kdgbjblynliirsyk05ssrwc"))))
12836 (build-system emacs-build-system)
12837 (home-page "https://github.com/Fanael/rainbow-delimiters")
12838 (arguments
12839 `(#:tests? #t
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")
12844 (description
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+)))
12851
12852 (define-public emacs-rainbow-identifiers
12853 (package
12854 (name "emacs-rainbow-identifiers")
12855 (version "0.2.2")
12856 (source (origin
12857 (method url-fetch)
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"))
12862 (sha256
12863 (base32
12864 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
12865 (build-system emacs-build-system)
12866 (home-page "https://github.com/Fanael/rainbow-identifiers")
12867 (synopsis "Highlight identifiers in source code")
12868 (description
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
12871 of its name.")
12872 (license license:bsd-2)))
12873
12874 (define-public emacs-rainbow-mode
12875 (package
12876 (name "emacs-rainbow-mode")
12877 (version "1.0.6")
12878 (source
12879 (origin
12880 (method url-fetch)
12881 (uri (string-append "https://elpa.gnu.org/packages/"
12882 "rainbow-mode-" version ".tar"))
12883 (sha256
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")
12888 (description
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+)))
12892
12893 (define-public emacs-ryo-modal
12894 ;; Package has no release. Version is extracted from "Version:" keyword in
12895 ;; main file.
12896 (let ((commit "a10f564474cc8fa28a74b04e3b15375315223c44")
12897 (revision "0"))
12898 (package
12899 (name "emacs-ryo-modal")
12900 (version (git-version "0.45" revision commit))
12901 (source
12902 (origin
12903 (method git-fetch)
12904 (uri (git-reference
12905 (url "https://github.com/Kungsgeten/ryo-modal")
12906 (commit commit)))
12907 (file-name (git-file-name name version))
12908 (sha256
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))))
12916
12917 (define-public emacs-valign
12918 (package
12919 (name "emacs-valign")
12920 (version "3.1.1")
12921 (source
12922 (origin
12923 (method git-fetch)
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))
12928 (sha256
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")
12933 (description
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+)))
12939
12940 (define-public emacs-visual-fill-column
12941 (package
12942 (name "emacs-visual-fill-column")
12943 (version "2.5")
12944 (source
12945 (origin
12946 (method git-fetch)
12947 (uri (git-reference
12948 (url "https://codeberg.org/joostkremers/visual-fill-column")
12949 (commit version)))
12950 (file-name (git-file-name name version))
12951 (sha256
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")
12956 (description
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
12962 window edge.")
12963 (license license:gpl3+)))
12964
12965 (define-public emacs-writeroom
12966 (package
12967 (name "emacs-writeroom")
12968 (version "3.11")
12969 (source
12970 (origin
12971 (method git-fetch)
12972 (uri (git-reference
12973 (url "https://github.com/joostkremers/writeroom-mode")
12974 (commit version)))
12975 (file-name (git-file-name name version))
12976 (sha256
12977 (base32
12978 "0y4jcja9kml1lq88r8b9myk39dgaggh7q7f3a43sj828hvzlccb7"))))
12979 (build-system emacs-build-system)
12980 (propagated-inputs
12981 (list emacs-visual-fill-column))
12982 (home-page "https://github.com/joostkremers/writeroom-mode")
12983 (synopsis "Distraction-free writing for Emacs")
12984 (description
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)))
12990
12991 (define-public emacs-wucuo
12992 (package
12993 (name "emacs-wucuo")
12994 (version "0.2.9")
12995 (source
12996 (origin
12997 (method git-fetch)
12998 (uri (git-reference
12999 (url "https://github.com/redguardtoo/wucuo")
13000 (commit "89b99166768afb811c48a7db7c93c02d51a32b09")))
13001 (file-name (git-file-name name version))
13002 (sha256
13003 (base32 "03a6jlbv9axrd9yr0xscq3ni7fipm20ppc51kxy0sn241rplv0pg"))))
13004 (build-system emacs-build-system)
13005 (arguments
13006 `(#:tests? #t
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)))))))
13012 (native-inputs
13013 ;; For tests.
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")
13017 (description
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+)))
13022
13023 (define-public emacs-ido-completing-read+
13024 (package
13025 (name "emacs-ido-completing-read+")
13026 (version "4.14")
13027 (source (origin
13028 (method url-fetch)
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"))
13033 (sha256
13034 (base32
13035 "1wn94nkfv6qyyj6clvms7m7ncqf09bgszv67may530y75kylivav"))))
13036 (build-system emacs-build-system)
13037 (arguments
13038 (list #:phases
13039 #~(modify-phases %standard-phases
13040 (add-after 'unpack 'disable-native-comp
13041 (lambda _
13042 ;; Native compilation of this package may crash your system,
13043 ;; see <https://bugs.gnu.org/57878>.
13044 (for-each
13045 (lambda (file)
13046 (make-file-writable file)
13047 (emacs-batch-disable-compilation file #:native? #t))
13048 (find-files "." "\\.el$")))))))
13049 (propagated-inputs
13050 (list emacs-s))
13051 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
13052 (synopsis "Replacement for completing-read using ido")
13053 (description
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+)))
13059
13060 (define-public emacs-ido-ubiquitous
13061 (package
13062 (name "emacs-ido-ubiquitous")
13063 (version "4.13")
13064 (source (origin
13065 (method url-fetch)
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"))
13070 (sha256
13071 (base32
13072 "08iwvqknicqlffda7ixwgzw7q9g2g4j4nsxdw6544r85vaysi4cc"))))
13073 (build-system emacs-build-system)
13074 (propagated-inputs
13075 (list emacs-ido-completing-read+))
13076 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
13077 (synopsis "Use ido (nearly) everywhere")
13078 (description
13079 "Ido-ubiquitous enables ido-style completion for almost every function
13080 that uses the standard completion function completing-read.")
13081 (license license:gpl3+)))
13082
13083 (define-public emacs-yaml
13084 (package
13085 (name "emacs-yaml")
13086 (version "0.5.1")
13087 (source
13088 (origin
13089 (method git-fetch)
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))
13094 (sha256
13095 (base32 "0n0cf5y862ajyf2q0pnvbkhg57ggsri33x8y4q99s0a17ksk4qrm"))))
13096 (build-system emacs-build-system)
13097 (home-page "https://github.com/zkry/yaml.el")
13098 (synopsis "YAML parser in Elisp")
13099 (description
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
13102 parsing utility.")
13103 (license license:gpl3+)))
13104
13105 (define-public emacs-yaml-mode
13106 (package
13107 (name "emacs-yaml-mode")
13108 (version "0.0.15")
13109 (source
13110 (origin
13111 (method git-fetch)
13112 (uri (git-reference
13113 (url "https://github.com/yoshiki/yaml-mode")
13114 (commit version)))
13115 (file-name (git-file-name name version))
13116 (sha256
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")
13121 (description
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+)))
13127
13128 (define-public emacs-gitlab-ci-mode
13129 (package
13130 (name "emacs-gitlab-ci-mode")
13131 (version "20190824.12.2")
13132 (source (origin
13133 (method git-fetch)
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))
13138 (sha256
13139 (base32
13140 "16fb4r3vq8xkzl911v7gaky95w1agfxjlpaxpjmidwx48rbcar59"))))
13141 (build-system emacs-build-system)
13142 (propagated-inputs
13143 (list emacs-yaml-mode))
13144 (home-page "https://gitlab.com/joewreschnig/gitlab-ci-mode/")
13145 (synopsis "Emacs mode for editing GitLab CI files")
13146 (description
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+)))
13152
13153 (define-public emacs-gitlab-snip-helm
13154 (package
13155 (name "emacs-gitlab-snip-helm")
13156 (version "0.0.2")
13157 (source (origin
13158 (method git-fetch)
13159 (uri (git-reference
13160 (url "https://gitlab.com/sasanidas/gitlab-snip-helm.git")
13161 (commit version)))
13162 (file-name (git-file-name name version))
13163 (sha256
13164 (base32
13165 "1c5js19zyb1z61hapvbfcl5jhrjqij46cxldgqij6al0scw44dga"))))
13166 (build-system emacs-build-system)
13167 (propagated-inputs
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
13172 Emacs.")
13173 (license license:gpl3+)))
13174
13175 (define-public emacs-web-mode
13176 (package
13177 (name "emacs-web-mode")
13178 (version "17.2.1")
13179 (source
13180 (origin
13181 (method git-fetch)
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))
13186 (sha256
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+)))
13198
13199 (define-public emacs-templatel
13200 (package
13201 (name "emacs-templatel")
13202 (version "0.1.6")
13203 (source
13204 (origin
13205 (method git-fetch)
13206 (uri (git-reference
13207 (url "https://github.com/clarete/templatel")
13208 (commit version)))
13209 (file-name (git-file-name name version))
13210 (sha256
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")
13215 (description
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+)))
13220
13221 (define-public emacs-wgrep
13222 (package
13223 (name "emacs-wgrep")
13224 (version "2.3.2")
13225 (source (origin
13226 (method git-fetch)
13227 (uri (git-reference
13228 (url "https://github.com/mhayashi1120/Emacs-wgrep")
13229 (commit version)))
13230 (file-name (git-file-name name version))
13231 (sha256
13232 (base32
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")
13237 (description
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+)))
13242
13243 (define-public emacs-helm
13244 (package
13245 (name "emacs-helm")
13246 (version "3.9.0")
13247 (source
13248 (origin
13249 (method git-fetch)
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))
13254 (sha256
13255 (base32 "1i253ani2bl665biha0f071pncr2jh7x5yxp8rg2013sdf4nr74c"))))
13256 (build-system emacs-build-system)
13257 (propagated-inputs
13258 (list emacs-async emacs-popup))
13259 (home-page "https://emacs-helm.github.io/helm/")
13260 (synopsis
13261 "Incremental completion and selection narrowing framework for Emacs")
13262 (description
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+)))
13267
13268 (define-public emacs-helm-org
13269 (let ((commit "8457e1e46227bf87726e05c42cec5a4b51c2ef7b")
13270 (revision "3"))
13271 (package
13272 (name "emacs-helm-org")
13273 (version (git-version "1.0" revision commit))
13274 (source
13275 (origin
13276 (method git-fetch)
13277 (uri (git-reference
13278 (url "https://github.com/emacs-helm/helm-org")
13279 (commit commit)))
13280 (file-name (git-file-name name version))
13281 (sha256
13282 (base32 "0kcjhwwi492n9m2w894hvdavfvhj45zygy7bwvx103wvpay5h6h6"))))
13283 (build-system emacs-build-system)
13284 (propagated-inputs
13285 (list emacs-helm))
13286 (home-page "https://github.com/emacs-helm/helm-org")
13287 (synopsis "Helm interface to the Silver Searcher")
13288 (description
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+))))
13292
13293 (define-public emacs-helm-swoop
13294 (package
13295 (name "emacs-helm-swoop")
13296 (version "3.0.0")
13297 (source
13298 (origin
13299 (method git-fetch)
13300 (uri (git-reference
13301 (url "https://github.com/emacsorphanage/helm-swoop")
13302 (commit version)))
13303 (file-name (git-file-name name version))
13304 (sha256
13305 (base32 "1qjay0fvryxa8n1ws6r1by512p2fylb2nj7ycm1497fcalb0d706"))))
13306 (build-system emacs-build-system)
13307 (propagated-inputs
13308 (list emacs-helm))
13309 (home-page "https://github.com/emacsorphanage/helm-swoop")
13310 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
13311 (description
13312 "This package builds on the Helm interface to provide several commands
13313 for search-based navigation of buffers.")
13314 (license license:gpl2+)))
13315
13316 (define-public emacs-helm-ag
13317 (package
13318 (name "emacs-helm-ag")
13319 (version "0.64")
13320 (source
13321 (origin
13322 (method git-fetch)
13323 (uri (git-reference
13324 (url "https://github.com/syohex/emacs-helm-ag")
13325 (commit version)))
13326 (file-name (git-file-name name version))
13327 (sha256
13328 (base32 "0ml9yp3qaiwn7iixyxvsj3fxn7gw913qxisr47df57q4ka912law"))))
13329 (build-system emacs-build-system)
13330 (propagated-inputs
13331 (list emacs-helm))
13332 (home-page "https://github.com/syohex/emacs-helm-ag")
13333 (synopsis "Helm interface to the Silver Searcher")
13334 (description
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+)))
13338
13339 (define-public emacs-helm-projectile
13340 (package
13341 (name "emacs-helm-projectile")
13342 (version "1.0.0")
13343 (source
13344 (origin
13345 (method git-fetch)
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))
13350 (sha256
13351 (base32 "05gpg90gg03yalmv9fw1y9k21i2l617iipvs0p9n80aln8nrzs8g"))))
13352 (build-system emacs-build-system)
13353 (propagated-inputs
13354 (list emacs-helm emacs-projectile))
13355 (home-page "https://github.com/bbatsov/helm-projectile")
13356 (synopsis "Helm integration for Projectile")
13357 (description
13358 "This Emacs library provides a Helm interface for Projectile.")
13359 (license license:gpl3+)))
13360
13361 (define-public emacs-taskrunner
13362 (let ((commit "3afd4a546d42339543d3d4e51b175fc3e82b3358")
13363 (revision "1"))
13364 (package
13365 (name "emacs-taskrunner")
13366 (version (git-version "0.6" revision commit))
13367 (source
13368 (origin
13369 (method git-fetch)
13370 (uri (git-reference
13371 (url "https://github.com/emacs-taskrunner/emacs-taskrunner")
13372 (commit commit)))
13373 (file-name (git-file-name name version))
13374 (sha256
13375 (base32
13376 "1lkdvmjn3alhqxq2i64sdr977sbw3g0b2670d9bwyzi67qh0jxrv"))))
13377 (build-system emacs-build-system)
13378 (propagated-inputs
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+))))
13385
13386 (define-public emacs-ivy-taskrunner
13387 (let ((commit "75d8d67cfe3c29663fe0f5508a887adf40ed5162")
13388 (revision "1"))
13389 (package
13390 (name "emacs-ivy-taskrunner")
13391 (version (git-version "0.9" revision commit))
13392 (source
13393 (origin
13394 (method git-fetch)
13395 (uri (git-reference
13396 (url "https://github.com/emacs-taskrunner/ivy-taskrunner")
13397 (commit commit)))
13398 (file-name (git-file-name name version))
13399 (sha256
13400 (base32
13401 "1wf4s4k0ap21f7g5w6128an8nsvbja7f5n889vcml5b6gjz058db"))))
13402 (build-system emacs-build-system)
13403 (propagated-inputs
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+))))
13410
13411 (define-public emacs-helm-taskrunner
13412 (let ((commit "1910dac19cbc7bd4fd08b0faf9affd455339fbea")
13413 (revision "1"))
13414 (package
13415 (name "emacs-helm-taskrunner")
13416 (version (git-version "0.9" revision commit))
13417 (source
13418 (origin
13419 (method git-fetch)
13420 (uri (git-reference
13421 (url "https://github.com/emacs-taskrunner/helm-taskrunner")
13422 (commit commit)))
13423 (file-name (git-file-name name version))
13424 (sha256
13425 (base32
13426 "182lmr858fx6rdhp1fy7kv8dvrhzcnxzwfck1q22s6xs8x85d5q7"))))
13427 (build-system emacs-build-system)
13428 (propagated-inputs
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+))))
13435
13436 (define-public emacs-helm-make
13437 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
13438 (revision "1"))
13439 (package
13440 (name "emacs-helm-make")
13441 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
13442 (source
13443 (origin
13444 (method git-fetch)
13445 (uri (git-reference
13446 (url "https://github.com/abo-abo/helm-make")
13447 (commit commit)))
13448 (file-name (git-file-name name version))
13449 (sha256
13450 (base32
13451 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
13452 (build-system emacs-build-system)
13453 (propagated-inputs
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+))))
13461
13462 (define-public emacs-islisp-mode
13463 (package
13464 (name "emacs-islisp-mode")
13465 (version "0.3.1")
13466 (source (origin
13467 (method git-fetch)
13468 (uri (git-reference
13469 (url "https://gitlab.com/sasanidas/islisp-mode")
13470 (commit version)))
13471 (file-name (git-file-name name version))
13472 (sha256
13473 (base32
13474 "1s6alrv1hfi1plj5lh826j0h71xvm2v092kglj3yvy34g73dgrna"))))
13475 (build-system emacs-build-system)
13476 (arguments
13477 (list
13478 #:include #~(cons "\\.lsp$" %default-include)
13479 #:tests? #true
13480 #:test-command #~(list "ert-runner")
13481 #:phases
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
13486 (lambda _
13487 (for-each (lambda (dir)
13488 (let ((files (find-files dir "\\.(lsp|el)$")))
13489 (for-each (lambda (f)
13490 (rename-file f (basename f)))
13491 files)))
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")
13505 (description
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)
13510 implementation.")
13511 (license license:gpl3+)))
13512
13513 (define-public emacs-cider
13514 (package
13515 (name "emacs-cider")
13516 (version "1.6.0")
13517 (source
13518 (origin
13519 (method git-fetch)
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))
13524 (sha256
13525 (base32 "1a3xbfn1id8dcy3178kmdnzcvh7lq2pdwwg4axhncw6jq9hqiqja"))))
13526 (build-system emacs-build-system)
13527 (arguments
13528 '(#:exclude ;don't exclude 'cider-test.el'
13529 '("^\\.dir-locals\\.el$" "^test/")
13530 #:phases
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
13535 ;; anyway.
13536 (modify-phases %standard-phases
13537 (delete 'patch-el-files))))
13538 (propagated-inputs
13539 (list emacs-clojure-mode
13540 emacs-parseedn
13541 emacs-pkg-info
13542 emacs-queue
13543 emacs-sesman
13544 emacs-spinner))
13545 (home-page "https://cider.mx/")
13546 (synopsis "Clojure development environment for Emacs")
13547 (description
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.
13552
13553 CIDER is the successor to the now deprecated combination of using SLIME +
13554 swank-clojure for Clojure development.
13555
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
13558 CIDER).")
13559 (license license:gpl3+)))
13560
13561 (define-public emacs-sly
13562 ;; Update together with sbcl-slynk.
13563 (let ((commit "4513c382f07a2a2cedb3c046231b69eae2f5e6f0")
13564 (revision "6"))
13565 ;; Versions are not always tagged. Besides, latest master contains
13566 ;; important fixes.
13567 (package
13568 (name "emacs-sly")
13569 (version (git-version "1.0.43" revision commit))
13570 (source
13571 (origin
13572 (method git-fetch)
13573 (uri (git-reference
13574 (url "https://github.com/joaotavora/sly")
13575 (commit commit)))
13576 (file-name (git-file-name name version))
13577 (sha256
13578 (base32
13579 "10bzxhi5d7h18hqclxqy2z857d0sfbsnyxvrhmfkdi0h75zz7m4n"))))
13580 (build-system emacs-build-system)
13581 (native-inputs
13582 (list texinfo))
13583 (arguments
13584 `(#:include (cons* "^contrib\\/" "^lib\\/" "^slynk\\/" %default-include)
13585 #:phases
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
13603 ;; the git repo.
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)
13614 (delete-file f))
13615 doc-files)
13616 (delete-file-recursively "doc")
13617 #t))))))
13618 (home-page "https://github.com/joaotavora/sly")
13619 (synopsis "Sylvester the Cat's Common Lisp IDE")
13620 (description
13621 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
13622 contains the following improvements over it:
13623
13624 @enumerate
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;
13636 @end enumerate
13637
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+))))
13641
13642 (define-public emacs-sly-quicklisp
13643 (let ((commit "01ebe3976a244309f2e277c09206831135a0b66c")
13644 (revision "1"))
13645 (package
13646 (name "emacs-sly-quicklisp")
13647 (version (git-version "0.0.0" revision commit))
13648 (home-page "https://github.com/joaotavora/sly-quicklisp")
13649 (source
13650 (origin
13651 (method git-fetch)
13652 (uri (git-reference
13653 (url home-page)
13654 (commit commit)))
13655 (file-name (git-file-name name version))
13656 (sha256
13657 (base32
13658 "1vfqmvayf35g6y3ljsm3rlzv5jm50qikhh4lv2zkkswj6gkkb1cv"))))
13659 (build-system emacs-build-system)
13660 (propagated-inputs
13661 (list emacs-sly))
13662 (arguments
13663 `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
13664 #:phases
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")
13670 (description
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+))))
13674
13675 (define-public emacs-sly-asdf
13676 (package
13677 (name "emacs-sly-asdf")
13678 (version "0.2.0")
13679 (home-page "https://github.com/mmgeorge/sly-asdf")
13680 (source
13681 (origin
13682 (method git-fetch)
13683 (uri (git-reference
13684 (url home-page)
13685 (commit (string-append "v" version))))
13686 (file-name (git-file-name name version))
13687 (sha256
13688 (base32
13689 "0gncp8xv33s4wx594bgd35vr1455bcggv1bg28qv75mhv41nzw97"))))
13690 (build-system emacs-build-system)
13691 (propagated-inputs
13692 (list emacs-sly emacs-popup))
13693 (arguments
13694 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)))
13695 (synopsis "ASDF contrib for SLY")
13696 (description
13697 "@command{sly-asdf} is an external contrib for SLY that provides
13698 additional support for working with ASDF projects.")
13699 (license license:gpl3+)))
13700
13701 (define-public emacs-sly-named-readtables
13702 (let ((commit "a5a42674ccffa97ccd5e4e9742beaf3ea719931f")
13703 (revision "1"))
13704 (package
13705 (name "emacs-sly-named-readtables")
13706 (version (git-version "0.1" revision commit))
13707 (home-page "https://github.com/joaotavora/sly-named-readtables")
13708 (source
13709 (origin
13710 (method git-fetch)
13711 (uri (git-reference
13712 (url home-page)
13713 (commit commit)))
13714 (file-name (git-file-name name version))
13715 (sha256
13716 (base32
13717 "16asd119rzqrlclps2q6yrkis8jy5an5xgzzqvb7jdyq39zxg54q"))))
13718 (build-system emacs-build-system)
13719 (propagated-inputs
13720 (list emacs-sly))
13721 (arguments
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")
13727 (description
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
13730 file.")
13731 (license license:gpl3+))))
13732
13733 (define-public emacs-sly-macrostep
13734 (let ((commit "5113e4e926cd752b1d0bcc1508b3ebad5def5fad")
13735 (revision "2"))
13736 (package
13737 (name "emacs-sly-macrostep")
13738 (version (git-version "0.1" revision commit))
13739 (home-page "https://github.com/joaotavora/sly-macrostep")
13740 (source
13741 (origin
13742 (method git-fetch)
13743 (uri (git-reference
13744 (url home-page)
13745 (commit commit)))
13746 (file-name (git-file-name name version))
13747 (sha256
13748 (base32
13749 "1nxf28gn4f3n0wnv7nb5sgl36fz175y470zs9hig4kq8cp0yal0r"))))
13750 (build-system emacs-build-system)
13751 (propagated-inputs
13752 (list emacs-sly emacs-macrostep))
13753 (arguments
13754 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
13755 #:phases
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")
13761 (description
13762 "@command{sly-macrostep} is a SLY contrib for expanding CL macros right
13763 inside the source file.")
13764 (license license:gpl3+))))
13765
13766 (define-public emacs-sly-stepper
13767 (let ((commit "da84e3bba8466c2290c2dc7c27d7f4c48c27b39e"))
13768 (package
13769 (name "emacs-sly-stepper")
13770 (version (git-version "0.0.0" "2" commit))
13771 (home-page "https://github.com/joaotavora/sly-stepper")
13772 (source
13773 (origin
13774 (method git-fetch)
13775 (uri (git-reference
13776 (url home-page)
13777 (commit commit)))
13778 (file-name (git-file-name name version))
13779 (sha256
13780 (base32
13781 "07p0k797fagn1qha191p6g2b55hsqqkcj59mh0ms9id0ildydil0"))
13782 (modules '((guix build utils)))
13783 (snippet
13784 '(begin
13785 (map delete-file (find-files "." ".*-autoloads\\.elc?$"))
13786 #t))))
13787 (build-system emacs-build-system)
13788 (inputs
13789 (list cl-agnostic-lizard))
13790 (propagated-inputs
13791 (list emacs-sly))
13792 (arguments
13793 `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
13794 #:phases
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 ":")
13802 ":"
13803 (getenv "EMACSLOADPATH")))
13804 #t)))
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.
13814 (substitute* file
13815 (("\\(require :asdf\\)")
13816 (string-append
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")
13821 (description
13822 "This package features a new, portable, visual stepping facility for
13823 Common Lisp, realized as an extension to SLY.")
13824 (license license:gpl3+))))
13825
13826 (define-public emacs-sly-package-inferred
13827 (let ((commit "800e71e2be631422277e2ec77e6d6f6ea20e95ef")
13828 (revision "1"))
13829 (package
13830 (name "emacs-sly-package-inferred")
13831 (version (git-version "0.1" revision commit))
13832 (home-page "https://github.com/40ants/sly-package-inferred")
13833 (source
13834 (origin
13835 (method git-fetch)
13836 (uri (git-reference
13837 (url home-page)
13838 (commit commit)))
13839 (file-name (git-file-name name version))
13840 (sha256
13841 (base32
13842 "1216idyp034nkqddhw4p53jkhhdxa6xnjjmsvijpf4rxqnfqvapg"))))
13843 (build-system emacs-build-system)
13844 (propagated-inputs
13845 (list emacs-sly))
13846 (arguments
13847 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
13848 #:phases
13849 ;; The package provides autoloads.
13850 (modify-phases %standard-phases
13851 (delete 'make-autoloads))))
13852 (synopsis "Improved package inferred systems support for SLY")
13853 (description
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+))))
13858
13859 (define-public emacs-lua-mode
13860 (package
13861 (name "emacs-lua-mode")
13862 (version "20210802")
13863 (home-page "https://github.com/immerrr/lua-mode/")
13864 (source
13865 (origin
13866 (method git-fetch)
13867 (uri (git-reference
13868 (url home-page)
13869 (commit (string-append "v" version))))
13870 (file-name (git-file-name name version))
13871 (sha256
13872 (base32 "0r3svhggdml2n256k3b0zmbjnw51p46gan6dg07bhavpfrqs5196"))))
13873 (build-system emacs-build-system)
13874 (arguments
13875 `(#:tests? #t
13876 #:test-command '("buttercup" "-l" "lua-mode.el")))
13877 (native-inputs
13878 (list emacs-buttercup-1.25 lua))
13879 (synopsis "Major mode for lua")
13880 (description
13881 "This Emacs package provides a mode for @uref{https://www.lua.org/,
13882 Lua programming language}.")
13883 (license license:gpl2+)))
13884
13885 (define-public emacs-ebuild-mode
13886 (package
13887 (name "emacs-ebuild-mode")
13888 (version "1.61")
13889 (source
13890 (origin
13891 (method url-fetch)
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"))
13896 (sha256
13897 (base32 "02fkmzh9rdl061n1p9lgf5mgkm67vxcbd8sj0f1dicb9vyry0zgy"))))
13898 (build-system emacs-build-system)
13899 (arguments
13900 (list
13901 #:phases
13902 #~(modify-phases %standard-phases
13903 (add-after 'install 'install-doc
13904 (lambda _
13905 (invoke "make" "ebuild-mode.info")
13906 (install-file "ebuild-mode.info"
13907 (string-append #$output "/share/info")))))))
13908 (native-inputs
13909 (list texinfo))
13910 (home-page "https://devmanual.gentoo.org")
13911 (synopsis "Major modes for Gentoo package files")
13912 (description
13913 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
13914 news items, openrc and runscripts.")
13915 (license license:gpl2+)))
13916
13917 (define-public emacs-ebuku
13918 ;; Upstream has no tagged release.
13919 (let ((revision "1")
13920 (commit "0c6cf404a49bd68800221446df186fffa0139325"))
13921 (package
13922 (name "emacs-ebuku")
13923 (version (git-version "0" revision commit))
13924 (source (origin
13925 (method git-fetch)
13926 (uri (git-reference
13927 (url "https://github.com/flexibeast/ebuku")
13928 (commit commit)))
13929 (file-name (git-file-name name version))
13930 (sha256
13931 (base32
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")
13936 (description
13937 "Ebuku provides a basic interface to the @code{buku} Web bookmark
13938 manager.")
13939 (license license:gpl3+))))
13940
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")
13945 (revision "0"))
13946 (package
13947 (name "emacs-evil")
13948 (version (git-version "1.15.0" revision commit))
13949 (source
13950 (origin
13951 (method git-fetch)
13952 (uri (git-reference
13953 (url "https://github.com/emacs-evil/evil")
13954 (commit commit)))
13955 (file-name (git-file-name name version))
13956 (sha256
13957 (base32
13958 "1hxhw1rsm0wbrhz85gfabncanijpxd47g5yrdnl3bbm499z1gsvg"))))
13959 (arguments
13960 `(#:phases
13961 (modify-phases %standard-phases
13962 (add-before 'check 'fix-test-helpers
13963 (lambda _
13964 (substitute* "evil-test-helpers.el"
13965 (("\\(undo-tree-mode 1\\)") ""))
13966 #t))
13967 (add-before 'install 'make-info
13968 (lambda _
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")
13976 (description
13977 "Evil is an extensible vi layer for Emacs. It emulates the
13978 main features of Vim, and provides facilities for writing custom
13979 extensions.")
13980 (license license:gpl3+))))
13981
13982 (define-public emacs-evil-collection
13983 (package
13984 (name "emacs-evil-collection")
13985 (version "0.0.8")
13986 (source
13987 (origin
13988 (method git-fetch)
13989 (uri (git-reference
13990 (url "https://github.com/emacs-evil/evil-collection")
13991 (commit version)))
13992 (file-name (git-file-name name version))
13993 (sha256
13994 (base32 "159i3qvjnp7jiffwpr517nnxcy3w3g40302vyzxvz6mb6qay6f2c"))))
13995 (build-system emacs-build-system)
13996 (propagated-inputs
13997 (list emacs-evil emacs-annalist))
13998 (arguments
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+)))
14006
14007 (define-public emacs-evil-goggles
14008 (let ((commit "08a22058fd6a167f9f1b684c649008caef571459")
14009 (version "0.0.1")
14010 (revision "0"))
14011 (package
14012 (name "emacs-evil-goggles")
14013 (version (git-version version revision commit))
14014 (source
14015 (origin
14016 (method git-fetch)
14017 (uri (git-reference
14018 (url "https://github.com/edkolev/evil-goggles")
14019 (commit commit)))
14020 (file-name (git-file-name name version))
14021 (sha256
14022 (base32 "1p3vjrij63v9nrcyj3b5jsqzv9y7dgv9i1inx1q7x3s90vndavac"))))
14023 (build-system emacs-build-system)
14024 (propagated-inputs
14025 (list emacs-evil))
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+))))
14031
14032 (define-public emacs-goggles
14033 (package
14034 (name "emacs-goggles")
14035 (version "0.2")
14036 (source
14037 (origin
14038 (method git-fetch)
14039 (uri (git-reference
14040 (url "https://github.com/minad/goggles")
14041 (commit version)))
14042 (file-name (git-file-name name version))
14043 (sha256
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+)))
14051
14052 (define-public emacs-goto-chg
14053 (package
14054 (name "emacs-goto-chg")
14055 (version "1.7.5")
14056 (source
14057 (origin
14058 (method git-fetch)
14059 (uri (git-reference
14060 (url "https://github.com/emacs-evil/goto-chg")
14061 (commit version)))
14062 (file-name (git-file-name name version))
14063 (sha256
14064 (base32
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")
14069 (description
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+)))
14075
14076 (define-public emacs-evil-owl
14077 (let ((commit "24c5f43df375194386344e69bc720ea3986c9510")
14078 (revision "3"))
14079 (package
14080 (name "emacs-evil-owl")
14081 (version (git-version "0.0.1" revision commit))
14082 (source
14083 (origin
14084 (method git-fetch)
14085 (uri (git-reference
14086 (url "https://github.com/mamapanda/evil-owl")
14087 (commit commit)))
14088 (file-name (git-file-name name version))
14089 (sha256
14090 (base32
14091 "0bqzch14whlmrcasakah3psrzswvkzd7mmi8hx5s64kfp29wbdhi"))))
14092 (build-system emacs-build-system)
14093 (propagated-inputs
14094 (list emacs-evil))
14095 (arguments
14096 `(#:tests? #t
14097 #:test-command '("make" "test")))
14098 (home-page "https://github.com/mamapanda/evil-owl")
14099 (synopsis "Preview candidates when using Evil registers and marks")
14100 (description
14101 "This package supplements Evil's register- and mark-based commands with
14102 a popup window for previewing candidates.")
14103 (license license:gpl3+))))
14104
14105 (define-public emacs-evil-paredit
14106 (let ((commit "e058fbdcf9dbf7ad6cc77f0172d7517ef233d55f"))
14107 (package
14108 (name "emacs-evil-paredit")
14109 (version "0.0.2") ; says 0.0.2 in evil-paredit.el
14110 (source
14111 (origin
14112 (method git-fetch)
14113 (uri (git-reference
14114 (url "https://github.com/roman/evil-paredit")
14115 (commit commit)))
14116 (file-name (git-file-name name version))
14117 (sha256
14118 (base32 "0b08y4spapl4g2292j3l4cr84gjlvm3rpma3gqld4yb1sxd7v78p"))))
14119 (build-system emacs-build-system)
14120 (propagated-inputs
14121 (list emacs-evil emacs-paredit))
14122 (home-page "https://github.com/roman/evil-paredit")
14123 (synopsis "Evil extension to integrate nicely with Paredit")
14124 (description
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))))
14130
14131 (define-public emacs-evil-args
14132 (let ((commit "758ad5ae54ad34202064fec192c88151c08cb387")
14133 (revision "1"))
14134 (package
14135 (name "emacs-evil-args")
14136 (version (git-version "1.0" revision commit))
14137 (source
14138 (origin
14139 (method git-fetch)
14140 (uri (git-reference
14141 (url "https://github.com/wcsmith/evil-args")
14142 (commit commit)))
14143 (file-name (git-file-name name version))
14144 (sha256
14145 (base32
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")
14151 (description
14152 "This package provides motions and text objects for delimited
14153 arguments, such as arguments separated by commas and semicolons.")
14154 (license license:expat))))
14155
14156 (define-public emacs-evil-escape
14157 (package
14158 (name "emacs-evil-escape")
14159 (version "3.16")
14160 (source
14161 (origin
14162 (method git-fetch)
14163 (uri
14164 (git-reference
14165 (url "https://github.com/emacsorphanage/evil-escape")
14166 (commit (string-append "v" version))))
14167 (file-name (git-file-name name version))
14168 (sha256
14169 (base32 "1z30v59igndqzxg9gcx4bsbf5jkh11wp936il8azkrz3qdryaj4a"))))
14170 (propagated-inputs
14171 (list emacs-evil))
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")
14175 (description
14176 "Evil escape provides a customizable key sequence to escape from insert
14177 state and everything else in Emacs.")
14178 (license license:gpl3+)))
14179
14180 (define-public emacs-evil-exchange
14181 (let ((commit "47691537815150715e64e6f6ec79be7746c96120")
14182 (version "0.41")
14183 (revision "1"))
14184 (package
14185 (name "emacs-evil-exchange")
14186 (version (git-version version revision commit))
14187 (source
14188 (origin
14189 (method git-fetch)
14190 (uri (git-reference
14191 (url "https://github.com/Dewdrops/evil-exchange")
14192 (commit commit)))
14193 (file-name (git-file-name name version))
14194 (sha256
14195 (base32
14196 "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa"))))
14197 (build-system emacs-build-system)
14198 (propagated-inputs (list emacs-evil))
14199 (native-inputs (list emacs-ert-runner))
14200 (arguments
14201 `(#:phases
14202 (modify-phases %standard-phases
14203 (add-before 'check 'fix-makefile
14204 (lambda _
14205 (substitute* "Makefile"
14206 (("cask exec ") ""))
14207 #t)))
14208 #:tests? #t
14209 #:test-command '("make" "test")))
14210 (home-page "https://github.com/Dewdrops/evil-exchange")
14211 (synopsis "Exchange text easily within Evil")
14212 (description
14213 "This package, a port of @code{vim-exchange}, provides an Evil operator
14214 for exchanging text.")
14215 (license license:gpl3+))))
14216
14217 (define-public emacs-evil-replace-with-register
14218 (let ((commit "91cc7bf21a94703c441cc9212214075b226b7f67")
14219 (version "0.1")
14220 (revision "1"))
14221 (package
14222 (name "emacs-evil-replace-with-register")
14223 (version (git-version version revision commit))
14224 (source
14225 (origin
14226 (method git-fetch)
14227 (uri (git-reference
14228 (url "https://github.com/Dewdrops/evil-ReplaceWithRegister")
14229 (commit commit)))
14230 (file-name (git-file-name name version))
14231 (sha256
14232 (base32
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")
14238 (description
14239 "This package provides an Evil operator for replacing text with the
14240 contents of a register.")
14241 (license license:gpl3+))))
14242
14243 (define-public emacs-evil-indent-plus
14244 (let ((commit "0c7501e6efed661242c3a20e0a6c79a6455c2c40")
14245 (version "1.0.0")
14246 (revision "1"))
14247 (package
14248 (name "emacs-evil-indent-plus")
14249 (version (git-version version revision commit))
14250 (source
14251 (origin
14252 (method git-fetch)
14253 (uri (git-reference
14254 (url "https://github.com/TheBB/evil-indent-plus")
14255 (commit commit)))
14256 (file-name (git-file-name name version))
14257 (sha256
14258 (base32
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")
14264 (description
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+))))
14269
14270 (define-public emacs-evil-text-object-python
14271 (let ((commit "9a064fe6475429145cbcc3b270fcc963b67adb15")
14272 (version "1.0.1")
14273 (revision "1"))
14274 (package
14275 (name "emacs-evil-text-object-python")
14276 (version (git-version version revision commit))
14277 (source
14278 (origin
14279 (method git-fetch)
14280 (uri (git-reference
14281 (url "https://github.com/wbolster/evil-text-object-python")
14282 (commit commit)))
14283 (file-name (git-file-name name version))
14284 (sha256
14285 (base32
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")
14291 (description
14292 "This package provides @code{evil-mode} text objects for Python.")
14293 (license license:gpl3+))))
14294
14295 (define-public emacs-evil-lion
14296 (let ((commit "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab")
14297 (revision "1"))
14298 (package
14299 (name "emacs-evil-lion")
14300 (version (git-version "0.0.2" revision commit))
14301 (source
14302 (origin
14303 (method git-fetch)
14304 (uri (git-reference
14305 (url "https://github.com/edkolev/evil-lion")
14306 (commit commit)))
14307 (file-name (git-file-name name version))
14308 (sha256
14309 (base32
14310 "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q"))))
14311 (build-system emacs-build-system)
14312 (propagated-inputs (list emacs-evil))
14313 (arguments
14314 `(#:tests? #t
14315 #:test-command '("make" "test")))
14316 (home-page "https://github.com/edkolev/evil-lion")
14317 (synopsis "Align operator for @code{evil-mode}")
14318 (description
14319 "This package, a port of @code{vim-lion}, provides an operator for
14320 aligning text objects based on separators.")
14321 (license license:gpl3+))))
14322
14323 (define-public emacs-evil-expat
14324 (let ((commit "f4fcd0aa3edc359adb5c986b5dd9188d220d84e2")
14325 (revision "1"))
14326 (package
14327 (name "emacs-evil-expat")
14328 (version (git-version "0.0.1" revision commit))
14329 (source
14330 (origin
14331 (method git-fetch)
14332 (uri (git-reference
14333 (url "https://github.com/edkolev/evil-expat")
14334 (commit commit)))
14335 (file-name (git-file-name name version))
14336 (sha256
14337 (base32
14338 "0872ix682hkdz0k8pn6sb54rqkx00rz5fxpd5j2snx406yagpaxz"))))
14339 (build-system emacs-build-system)
14340 (propagated-inputs (list emacs-evil))
14341 (arguments
14342 `(#:tests? #t
14343 #:test-command '("make" "test")))
14344 (home-page "https://github.com/edkolev/evil-expat")
14345 (synopsis "Extra @code{ex} commands for @code{evil-mode}")
14346 (description
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+))))
14351
14352 (define-public emacs-evil-nerd-commenter
14353 (package
14354 (name "emacs-evil-nerd-commenter")
14355 (version "3.6.0")
14356 (source
14357 (origin
14358 (method git-fetch)
14359 (uri (git-reference
14360 (url "https://github.com/redguardtoo/evil-nerd-commenter")
14361 (commit version)))
14362 (file-name (git-file-name name version))
14363 (sha256
14364 (base32
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")
14370 (description
14371 "This package provides text objects and operators for comments within
14372 @code{evil-mode}.")
14373 (license license:gpl3+)))
14374
14375 (define-public emacs-evil-visual-replace
14376 (package
14377 (name "emacs-evil-visual-replace")
14378 (version "0.0.5")
14379 (source
14380 (origin
14381 (method git-fetch)
14382 (uri (git-reference
14383 (url "https://github.com/troyp/evil-visual-replace")
14384 (commit version)))
14385 (file-name (git-file-name name version))
14386 (sha256
14387 (base32
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")
14393 (description
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+)))
14397
14398 (define-public emacs-evil-visualstar
14399 (let ((commit "06c053d8f7381f91c53311b1234872ca96ced752")
14400 (version "0.2.0")
14401 (revision "1"))
14402 (package
14403 (name "emacs-evil-visualstar")
14404 (version (git-version version revision commit))
14405 (source
14406 (origin
14407 (method git-fetch)
14408 (uri (git-reference
14409 (url "https://github.com/bling/evil-visualstar")
14410 (commit commit)))
14411 (file-name (git-file-name name version))
14412 (sha256
14413 (base32
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")
14419 (description
14420 "This package provides @code{evil-mode} functions for using selected text
14421 to search.")
14422 (license license:gpl3+))))
14423
14424 (define-public emacs-monky
14425 (package
14426 (name "emacs-monky")
14427 (version "0.1")
14428 (source (origin
14429 (method git-fetch)
14430 (uri (git-reference
14431 (url "https://github.com/ananthakumaran/monky")
14432 (commit version)))
14433 (file-name (git-file-name name version))
14434 (sha256
14435 (base32
14436 "1fgn7al4zwz2k5wb5dy3byqg9lsrjk9fra341mxh5ma2pfwxjgps"))))
14437 (build-system emacs-build-system)
14438 (home-page "https://ananthakumaran.in/monky/index.html")
14439 (arguments
14440 `(#:tests? #t
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")
14445 (description
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+)))
14449
14450 (define-public emacs-monroe
14451 (package
14452 (name "emacs-monroe")
14453 (version "0.3.1")
14454 (source
14455 (origin
14456 (method git-fetch)
14457 (uri (git-reference
14458 (url "https://github.com/sanel/monroe")
14459 (commit version)))
14460 (file-name (git-file-name name version))
14461 (sha256
14462 (base32 "101lfrykdbv37spkbw7zihhx26bc1lhjyxbanrcp9880bxj04jiy"))))
14463 (build-system emacs-build-system)
14464 (home-page "https://github.com/sanel/monroe")
14465 (synopsis "Clojure nREPL client for Emacs")
14466 (description
14467 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
14468 distribution, primarily targeting Clojure users")
14469 (license license:gpl3+)))
14470
14471 (define-public emacs-orgalist
14472 (package
14473 (name "emacs-orgalist")
14474 (version "1.13")
14475 (source
14476 (origin
14477 (method url-fetch)
14478 (uri (string-append "https://elpa.gnu.org/packages/"
14479 "orgalist-" version ".el"))
14480 (sha256
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.
14488
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+)))
14492
14493 (define-public emacs-writegood-mode
14494 (package
14495 (name "emacs-writegood-mode")
14496 (version "2.2.0")
14497 (home-page "https://github.com/bnbeckwith/writegood-mode")
14498 (source (origin
14499 (method git-fetch)
14500 (uri (git-reference
14501 (url home-page)
14502 (commit (string-append "v" version))))
14503 (sha256
14504 (base32
14505 "1a3gmaaa344kigr209b6wnjiw9ikkmw1j5jda04h3g8f9817njyv"))
14506 (file-name (string-append name "-checkout"))))
14507 (build-system emacs-build-system)
14508 (synopsis "Polish up poor writing on the fly")
14509 (description
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
14512 passive voice.")
14513 (license license:gpl3+)))
14514
14515 (define-public emacs-neotree
14516 (package
14517 (name "emacs-neotree")
14518 (version "0.5.2")
14519 (home-page "https://github.com/jaypei/emacs-neotree")
14520 (source (origin
14521 (method git-fetch)
14522 (uri (git-reference
14523 (url home-page)
14524 (commit version)))
14525 (sha256
14526 (base32
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+)))
14533
14534 (define-public emacs-org
14535 (package
14536 (name "emacs-org")
14537 (version "9.6")
14538 (source
14539 (origin
14540 (method git-fetch)
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))
14545 (sha256
14546 (base32 "1pi9kkcbvsrvw009lf6q2l68n9jyjks94xjqyn36zq1vqcvmg33d"))))
14547 (build-system emacs-build-system)
14548 (arguments
14549 (list
14550 #:tests? #t
14551 #:test-command #~(list "make" "test-dirty")
14552 #:phases
14553 #~(modify-phases %standard-phases
14554 (replace 'expand-load-path
14555 ;; Make sure `load-path' includes "lisp" directory, otherwise
14556 ;; byte-compilation fails.
14557 (lambda args
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".
14562 (lambda _
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
14573 '("babel.org"
14574 "ob-awk-test.org"
14575 "ob-sed-test.org"
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")))))
14588 (replace 'install
14589 (lambda _
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.
14599 (lambda _
14600 (install-file "etc/ORG-NEWS"
14601 (string-append #$output "/share/doc/"
14602 #$name "-" #$version)))))))
14603 (native-inputs
14604 (list texinfo))
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+)))
14612
14613 (define-public emacs-org-contrib
14614 (package
14615 (name "emacs-org-contrib")
14616 (version "0.4.1")
14617 (source
14618 (origin
14619 (method git-fetch)
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))
14624 (sha256
14625 (base32 "0f3zjy3ybkqmvvlx04251add0vcz248qibxy5akal96l8bdhjajx"))))
14626 (build-system emacs-build-system)
14627 (arguments
14628 `(#:phases
14629 (modify-phases %standard-phases
14630 (add-after 'unpack 'enter-source-directory
14631 (lambda _
14632 (chdir "lisp"))))))
14633 (native-inputs
14634 (list emacs-cider))
14635 (propagated-inputs
14636 (list emacs-org))
14637 (home-page "https://git.sr.ht/~bzg/org-contrib")
14638 (synopsis "Unmaintained add-ons for Org mode")
14639 (description
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+)))
14644
14645 (define-public emacs-org-contacts
14646 ;; XXX: Upstream does not tag version bumps. Commit below matches latest
14647 ;; version bump.
14648 (let ((commit "217ba04c9d638067a6ccb0829cf1885f54c1d568"))
14649 (package
14650 (name "emacs-org-contacts")
14651 (version "1.1")
14652 (source
14653 (origin
14654 (method git-fetch)
14655 (uri (git-reference
14656 (url "https://repo.or.cz/org-contacts")
14657 (commit commit)))
14658 (file-name (git-file-name name version))
14659 (sha256
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+))))
14669
14670 (define-public emacs-org-vcard
14671 (package
14672 (name "emacs-org-vcard")
14673 (version "0.2.0")
14674 (source
14675 (origin
14676 (method git-fetch)
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))
14681 (sha256
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")
14686 (description
14687 "This package exports and imports vCard files from within GNU Emacs' Org
14688 mode.")
14689 (license license:gpl3+)))
14690
14691 (define-public emacs-org-pretty-table
14692 ;; There is no release yet.
14693 (let ((commit "1331c600b83d95b28730b1bfcb48369ac1cf12ef")
14694 (revision "0"))
14695 (package
14696 (name "emacs-org-pretty-table")
14697 (version (git-version "0.0.1" revision commit))
14698 (source
14699 (origin
14700 (method git-fetch)
14701 (uri (git-reference
14702 (url "https://github.com/Fuco1/org-pretty-table")
14703 (commit commit)))
14704 (file-name (git-file-name name version))
14705 (sha256
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")
14710 (description
14711 "This package displays tables in Org mode and OrgTbl mode using Unicode
14712 characters.")
14713 (license license:gpl3+))))
14714
14715 (define-public emacs-ob-sclang
14716 (let ((commit "cd3f3c847d8149cd4ce4a775942dac88ba92c772")
14717 (revision "1"))
14718 (package
14719 (name "emacs-ob-sclang")
14720 (version (git-version "0.1" revision commit))
14721 (source (origin
14722 (method git-fetch)
14723 (uri (git-reference
14724 (url "https://repo.or.cz/ob-sclang")
14725 (commit commit)))
14726 (file-name (git-file-name name version))
14727 (sha256
14728 (base32
14729 "0dr8va2v0262plqxd63yxymqiffkql9klci7wsp5i7xgpka8925q"))))
14730 (build-system emacs-build-system)
14731 (propagated-inputs
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+))))
14738
14739 (define-public emacs-org-edna
14740 (package
14741 (name "emacs-org-edna")
14742 (version "1.1.2")
14743 (source (origin
14744 (method bzr-fetch)
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"))
14749 (sha256
14750 (base32
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
14759 a DONE state.")
14760 (license license:gpl3+)))
14761
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.
14765 (package
14766 (name "emacs-toodoo")
14767 (version "0.2")
14768 (source
14769 (origin
14770 (method git-fetch)
14771 (uri (git-reference
14772 (url "https://github.com/ChanderG/toodoo.el")
14773 (commit "149a563863c2f728c5f903475dbce50547c51000")))
14774 (file-name (git-file-name name version))
14775 (sha256
14776 (base32
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)))
14785
14786 (define-public emacs-flx
14787 (package
14788 (name "emacs-flx")
14789 (version "0.6.1")
14790 (source
14791 (origin
14792 (method git-fetch)
14793 (uri (git-reference
14794 (url "https://github.com/lewang/flx")
14795 (commit (string-append "v" version))))
14796 (sha256
14797 (base32
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")
14803 (description
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+)))
14810
14811 (define-public emacs-cyberpunk-theme
14812 (package
14813 (name "emacs-cyberpunk-theme")
14814 (version "1.22")
14815 (source
14816 (origin
14817 (method git-fetch)
14818 (uri (git-reference
14819 (url "https://github.com/n3mo/cyberpunk-theme.el/")
14820 (commit version)))
14821 (sha256
14822 (base32
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")
14828 (description
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+)))
14832
14833 (define-public emacs-dart-mode
14834 (package
14835 (name "emacs-dart-mode")
14836 (version "1.0.7")
14837 (source
14838 (origin
14839 (method git-fetch)
14840 (uri (git-reference
14841 (url "https://github.com/bradyt/dart-mode")
14842 (commit version)))
14843 (file-name (git-file-name name version))
14844 (sha256
14845 (base32 "1vql8m4nj0brmv58b6lkbhykik8n6j4i7d3nylcls78y7ihc2cz8"))))
14846 (build-system emacs-build-system)
14847 (propagated-inputs
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")
14851 (description
14852 "Dart mode is an Emacs major mode for editing Dart files. It provides
14853 basic syntax highlighting and indentation.")
14854 (license license:gpl3+)))
14855
14856 (define-public emacs-danneskjold-theme
14857 (let* ((commit "e4d1f2c76245fe9d0d07133a841e789d139df28d")
14858 (revision "2"))
14859 (package
14860 (name "emacs-danneskjold-theme")
14861 (version (git-version "0.0.0" revision commit))
14862 (source
14863 (origin
14864 (method git-fetch)
14865 (uri (git-reference
14866 (url "https://github.com/rails-to-cosmos/danneskjold-theme")
14867 (commit commit)))
14868 (file-name (git-file-name name version))
14869 (sha256
14870 (base32 "1ii3cgf4hlclwaraisxksv98mmhajx517i60p1cgd7vapznn2b6v"))))
14871 (build-system emacs-build-system)
14872 (arguments
14873 `(#:phases
14874 (modify-phases %standard-phases
14875 (add-after 'unpack 'delete-screenshots
14876 (lambda _
14877 (delete-file-recursively "screenshots"))))))
14878 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
14879 (synopsis "High-contrast Emacs theme")
14880 (description
14881 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
14882 (license license:gpl3+))))
14883
14884 (define-public emacs-dream-theme
14885 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
14886 (revision "1"))
14887 (package
14888 (name "emacs-dream-theme")
14889 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
14890 (source
14891 (origin
14892 (method git-fetch)
14893 (uri (git-reference
14894 (url "https://github.com/djcb/dream-theme")
14895 (commit commit)))
14896 (file-name (git-file-name name version))
14897 (sha256
14898 (base32
14899 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
14900 (build-system emacs-build-system)
14901 (home-page "https://github.com/djcb/dream-theme")
14902 (synopsis "High-contrast Emacs theme")
14903 (description
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+))))
14907
14908 (define-public emacs-dracula-theme
14909 (package
14910 (name "emacs-dracula-theme")
14911 (version "1.7.0")
14912 (source
14913 (origin
14914 (method git-fetch)
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))
14919 (sha256
14920 (base32 "15y2djc5jljlvls1x9kp50m1kp0dcksmyixafsyimj66xpq9ngh0"))))
14921 (build-system emacs-build-system)
14922 (home-page "https://draculatheme.com/")
14923 (synopsis "Dark theme for Emacs")
14924 (description
14925 "Dracula is a dark color theme for many editors, shells and more. This
14926 package provides the Emacs theme.")
14927 (license license:expat)))
14928
14929 (define-public emacs-auto-complete
14930 (package
14931 (name "emacs-auto-complete")
14932 (version "1.5.1")
14933 (source
14934 (origin
14935 (method git-fetch)
14936 (uri (git-reference
14937 (url "https://github.com/auto-complete/auto-complete")
14938 (commit (string-append "v" version))))
14939 (sha256
14940 (base32
14941 "04i9b11iksg6acn885wl3qgi5xpsm3yszlqmd2x21yhprndlz7gb"))
14942 (file-name (git-file-name name version))))
14943 (build-system emacs-build-system)
14944 (propagated-inputs
14945 (list emacs-popup))
14946 (home-page "https://github.com/auto-complete/auto-complete")
14947 (synopsis "Intelligent auto-completion extension for Emacs")
14948 (description
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,
14953 extensibility.")
14954 (license license:gpl3+)))
14955
14956 (define-public emacs-autocrypt
14957 (let ((commit "5b55f8d37545e9c441788627c17e350d7edf4055")
14958 (revision "0"))
14959 (package
14960 (name "emacs-autocrypt")
14961 (version (git-version "0.4.0" revision commit))
14962 (source (origin
14963 (method git-fetch)
14964 (uri (git-reference
14965 (url "https://git.sr.ht/~pkal/autocrypt")
14966 (commit commit)))
14967 (file-name (git-file-name name version))
14968 (sha256
14969 (base32
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
14977 encryption.
14978
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))))
14983
14984 (define-public emacs-nginx-mode
14985 (package
14986 (name "emacs-nginx-mode")
14987 (version "1.1.9")
14988 (source
14989 (origin
14990 (method git-fetch)
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))
14995 (sha256
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+)))
15003
15004 (define-public emacs-stream
15005 (package
15006 (name "emacs-stream")
15007 (version "2.2.5")
15008 (source
15009 (origin
15010 (method url-fetch)
15011 (uri (string-append "https://elpa.gnu.org/packages/"
15012 "stream-" version ".tar"))
15013 (sha256
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+)))
15021
15022 (define-public emacs-cl-print
15023 (let ((commit "1a70c553dfb04352afb5b8696fe0cef8acc8f991")
15024 (revision "1"))
15025 (package
15026 (name "emacs-cl-print")
15027 (version (git-version "1.0" revision commit))
15028 (source
15029 (origin
15030 (method git-fetch)
15031 (uri (git-reference
15032 (url "https://github.com/emacsmirror/cl-print")
15033 (commit commit)))
15034 (file-name (git-file-name name version))
15035 (sha256
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
15042 please.")
15043 (license license:gpl3+))))
15044
15045 (define-public emacs-el-search
15046 (let ((commit "07bed84dd8ae9e4c6c648834224b1d33fdbd51e0")
15047 (revision "2"))
15048 (package
15049 (name "emacs-el-search")
15050 (version (git-version "1.12.6.1" revision commit))
15051 (source
15052 (origin
15053 (method git-fetch)
15054 (uri (git-reference
15055 (url "https://github.com/emacsmirror/el-search")
15056 (commit commit)))
15057 (file-name (git-file-name name version))
15058 (sha256
15059 (base32 "10w1ldgijdhfsrazp0y3bm76jv5wvdn94k1yp0pmc2m1896b58ak"))))
15060 (build-system emacs-build-system)
15061 (inputs
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+))))
15068
15069 (define-public emacs-ht
15070 (package
15071 (name "emacs-ht")
15072 (version "2.3")
15073 (source
15074 (origin
15075 (method git-fetch)
15076 (uri (git-reference
15077 (url "https://github.com/Wilfred/ht.el")
15078 (commit version)))
15079 (file-name (git-file-name name version))
15080 (sha256
15081 (base32 "0can9v336lgnq0q2ha3js0565jzp3dlwwqxhcbx5swk5kp148f07"))))
15082 (build-system emacs-build-system)
15083 (propagated-inputs (list emacs-dash))
15084 (native-inputs
15085 (list emacs-ert-runner))
15086 (arguments
15087 `(#:tests? #t
15088 #:test-command '("ert-runner")))
15089 (home-page "https://github.com/Wilfred/ht.el")
15090 (synopsis "Hash table library for Emacs")
15091 (description
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+)))
15095
15096 (define-public emacs-log4e
15097 (package
15098 (name "emacs-log4e")
15099 (version "0.3.3")
15100 (source
15101 (origin
15102 (method git-fetch)
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))
15107 (sha256
15108 (base32 "0dbnks76v05allzkhx9zmyqpn6sk5376n8k2rbpnaw6gmz1ib2fv"))))
15109 (build-system emacs-build-system)
15110 (arguments
15111 `(#:phases
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
15116 ;; needed anyway).
15117 (lambda _
15118 (delete-file-recursively "test"))))))
15119 (home-page "https://github.com/aki2o/log4e")
15120 (synopsis "Logging framework for elisp")
15121 (description
15122 "This package provides a logging framework for elisp. It allows
15123 you to deal with multiple log levels.")
15124 (license license:gpl3+)))
15125
15126 (define-public emacs-denote
15127 (package
15128 (name "emacs-denote")
15129 (version "1.2.0")
15130 (source
15131 (origin
15132 (method git-fetch)
15133 (uri (git-reference
15134 (url "https://git.sr.ht/~protesilaos/denote")
15135 (commit version)))
15136 (file-name (git-file-name name version))
15137 (sha256
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")
15143 (description
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+)))
15150
15151 (define-public emacs-logos
15152 ;; XXX: Upstream did not tag latest release. Use the commit matching
15153 ;; version bump.
15154 (let ((commit "d8f18f74591ffcac6466409ac7cd29f90838b2fe"))
15155 (package
15156 (name "emacs-logos")
15157 (version "1.0.1")
15158 (source (origin
15159 (method git-fetch)
15160 (uri (git-reference
15161 (url "https://git.sr.ht/~protesilaos/logos")
15162 (commit commit)))
15163 (file-name (git-file-name name version))
15164 (sha256
15165 (base32
15166 "0g3jxzwv99wkxlb36j2nyjibayvwjpy7qc2mz9lfd2945q6apj3z"))))
15167 (native-inputs (list texinfo))
15168 (build-system emacs-build-system)
15169 (arguments
15170 (list
15171 #:phases
15172 #~(modify-phases %standard-phases
15173 (add-after 'install 'makeinfo
15174 (lambda* (#:key outputs #:allow-other-keys)
15175 (invoke "emacs"
15176 "--batch"
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
15189
15190 (define-public emacs-tmr
15191 (package
15192 (name "emacs-tmr")
15193 (version "0.4.0")
15194 (source
15195 (origin
15196 (method git-fetch)
15197 (uri (git-reference
15198 (url "https://git.sr.ht/~protesilaos/tmr")
15199 (commit version)))
15200 (file-name (git-file-name name version))
15201 (sha256
15202 (base32 "1vz9zfqap221baiy41wpxph33g6h2plnanzgpjs0wk8dz1fpwfky"))))
15203 (build-system emacs-build-system)
15204 (arguments
15205 (list
15206 #:phases
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"
15212 (("\"ffplay ")
15213 (string-append "\"" ffplay " "))))
15214 (emacs-substitute-variables "tmr.el"
15215 ("tmr-sound-file"
15216 (search-input-file
15217 inputs
15218 "share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga")))))
15219 (add-after 'install 'makeinfo
15220 (lambda _
15221 (invoke "emacs"
15222 "--batch"
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")
15232 (description
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
15237
15238 (define-public emacs-gn-mode
15239 (package
15240 (name "emacs-gn-mode")
15241 (version "0.4.1")
15242 (source
15243 (origin
15244 (method git-fetch)
15245 (uri (git-reference
15246 (url "https://github.com/lashtear/gn-mode")
15247 (commit version)))
15248 (file-name (git-file-name name version))
15249 (sha256
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")
15254 (description
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)))
15259
15260 (define-public emacs-drag-stuff
15261 (package
15262 (name "emacs-drag-stuff")
15263 (version "0.3.0")
15264 (source
15265 (origin
15266 (method git-fetch)
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))
15271 (sha256
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")
15276 (description
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+)))
15280
15281 (define-public emacs-bazel
15282 ;; From 2021-11-21.
15283 ;; No releases available.
15284 (let ((commit "cdb2643dba39fe2bd64ba3b190b94d1ef1d83b18")
15285 (revision "0"))
15286 (package
15287 (name "emacs-bazel")
15288 (version (git-version "0" revision commit))
15289 (source (origin
15290 (method git-fetch)
15291 (uri (git-reference
15292 (url "https://github.com/bazelbuild/emacs-bazel-mode")
15293 (commit commit)))
15294 (file-name (git-file-name name version))
15295 (sha256
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")
15300 (description
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))))
15304
15305 (define-public emacs-clue
15306 ;; There are no releases so far.
15307 (let ((commit "41895da52cf76f964d97cb8204406ab9828c4839")
15308 (revision "0"))
15309 (package
15310 (name "emacs-clue")
15311 (version (git-version "0" revision commit))
15312 (source (origin
15313 (method git-fetch)
15314 (uri (git-reference
15315 (url "https://github.com/AmaiKinono/clue")
15316 (commit commit)))
15317 (file-name (git-file-name name version))
15318 (sha256
15319 (base32 "08xpdpac82v5vwqqqgbh5imakl4pys6bpfacfk05pk88lw925ql8"))))
15320 (build-system emacs-build-system)
15321 (home-page "https://github.com/AmaiKinono/clue/")
15322 (synopsis "Connecting clues while reading code")
15323 (description
15324 "Clue is a tool for helping you take notes while reading code.
15325
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
15329 locations.")
15330 (license license:gpl3+))))
15331
15332 (define-public emacs-gntp
15333 (package
15334 (name "emacs-gntp")
15335 (version "0.1")
15336 (source
15337 (origin
15338 (method git-fetch)
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))
15343 (sha256
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")
15348 (description
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
15352 notifications.")
15353 (license license:bsd-3)))
15354
15355 (define-public emacs-alert
15356 (package
15357 (name "emacs-alert")
15358 (version "1.3")
15359 (source
15360 (origin
15361 (method git-fetch)
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))
15366 (sha256
15367 (base32 "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r"))))
15368 (build-system emacs-build-system)
15369 (propagated-inputs
15370 (list emacs-gntp emacs-log4e))
15371 (home-page "https://github.com/jwiegley/alert")
15372 (synopsis "Growl-style notification system for Emacs")
15373 (description
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+)))
15378
15379 (define-public emacs-zones
15380 (package
15381 (name "emacs-zones")
15382 (version "2019.7.13")
15383 (source
15384 (origin
15385 (method url-fetch)
15386 (uri (string-append "https://elpa.gnu.org/packages/"
15387 "zones-" version ".el"))
15388 (sha256
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")
15393 (description
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+)))
15400
15401 (define-public emacs-mu4e-alert
15402 (package
15403 (name "emacs-mu4e-alert")
15404 (version "1.0")
15405 (source
15406 (origin
15407 (method git-fetch)
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))
15412 (sha256
15413 (base32 "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg"))))
15414 (build-system emacs-build-system)
15415 (propagated-inputs
15416 (list emacs-alert emacs-s emacs-ht mu))
15417 (home-page "https://github.com/iqbalansari/mu4e-alert")
15418 (synopsis "Desktop notification for mu4e")
15419 (description
15420 "This package provides desktop notifications for mu4e.
15421 Additionally it can display the number of unread emails in the
15422 mode-line.")
15423 (license license:gpl3+)))
15424
15425 (define-public emacs-mu4e-jump-to-list
15426 (let ((commit "358bba003543b49ffa266e503e54aebd0ebe614b")
15427 (revision "1"))
15428 (package
15429 (name "emacs-mu4e-jump-to-list")
15430 (version (git-version "1.0" revision commit))
15431 (source
15432 (origin
15433 (method git-fetch)
15434 (uri (git-reference
15435 (url "https://gitlab.com/wavexx/mu4e-jump-to-list.el.git")
15436 (commit commit)))
15437 (file-name (git-file-name name version))
15438 (sha256
15439 (base32
15440 "00y9nap61q1z2cdql4k9g7fgi2gdgd9iy5s5lzrd9a4agbx6r7sv"))))
15441 (build-system emacs-build-system)
15442 (propagated-inputs
15443 (list mu))
15444 (home-page "https://gitlab.com/wavexx/mu4e-jump-to-list.el")
15445 (synopsis "Select and view mailing lists in mu4e")
15446 (description
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+))))
15452
15453 (define-public emacs-url-scgi
15454 (package
15455 (name "emacs-url-scgi")
15456 (version "0.8")
15457 (source (origin
15458 (method url-fetch)
15459 (uri (string-append "https://elpa.gnu.org/packages/"
15460 "url-scgi-" version ".tar"))
15461 (sha256
15462 (base32
15463 "1837vyamwk5mp2nf3k477hyr5pq1xy6p7br7kl6h2k8jmxqy3mlj"))))
15464 (build-system emacs-build-system)
15465 (home-page "https://github.com/skangas/url-scgi/")
15466 (synopsis "SCGI support for url.el")
15467 (description
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+)))
15471
15472 (define-public emacs-mentor
15473 (package
15474 (name "emacs-mentor")
15475 (version "0.5")
15476 (source
15477 (origin
15478 (method url-fetch)
15479 (uri (string-append "https://elpa.nongnu.org/nongnu/mentor-"
15480 version ".tar"))
15481 (sha256
15482 (base32
15483 "1kkzm881fxhc5hb83x0j12lv22b72nzw45qrypbl1jf2siispz9l"))))
15484 (build-system emacs-build-system)
15485 (propagated-inputs
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")
15489 (description
15490 "Mentor is a GNU Emacs frontend for the rTorrent bittorrent client.
15491
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.
15494
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+)))
15499
15500 (define-public emacs-message-view-patch
15501 (let ((commit "40bc2e554fc1d0b6f0c403192c0a3ceaa019a78d")
15502 (revision "2"))
15503 (package
15504 (name "emacs-message-view-patch")
15505 (version (git-version "0.2.0" revision commit))
15506 (source (origin
15507 (method git-fetch)
15508 (uri (git-reference
15509 (url "https://github.com/seanfarley/message-view-patch")
15510 (commit commit)))
15511 (file-name (git-file-name name version))
15512 (sha256
15513 (base32
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")
15519 (description
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+))))
15524
15525 (define-public emacs-mu4e-patch
15526 (deprecated-package "emacs-mu4e-patch" emacs-message-view-patch))
15527
15528 (define-public emacs-pretty-mode
15529 (package
15530 (name "emacs-pretty-mode")
15531 (version "2.0.3")
15532 (source
15533 (origin
15534 (method git-fetch)
15535 (uri (git-reference
15536 (url "https://github.com/akatov/pretty-mode/")
15537 (commit version)))
15538 (file-name (git-file-name name version))
15539 (sha256
15540 (base32
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")
15545 (description
15546 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
15547 (license license:gpl3+)))
15548
15549 (define-public emacs-tempel
15550 (package
15551 (name "emacs-tempel")
15552 (version "0.6")
15553 (source (origin
15554 (method git-fetch)
15555 (uri (git-reference
15556 (url "https://github.com/minad/tempel")
15557 (commit version)))
15558 (file-name (git-file-name name version))
15559 (sha256
15560 (base32
15561 "1jgsjhrfdd72a0na4s1qp8yc24mbgrpxkv8yqac0vgqipg98cdg6"))))
15562 (build-system emacs-build-system)
15563 (home-page "https://github.com/minad/tempel")
15564 (synopsis "Simple templates for Emacs")
15565 (description
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+)))
15569
15570 (define-public emacs-tempel-collection
15571 (let ((commit "cd9529b2a2fdfd49010117d2a1fc49adf9725051")
15572 (revision "0"))
15573 (package
15574 (name "emacs-tempel-collection")
15575 (version (git-version "0.1" revision commit))
15576 (source (origin
15577 (method git-fetch)
15578 (uri (git-reference
15579 (url "https://github.com/Crandel/tempel-collection")
15580 (commit commit)))
15581 (file-name (git-file-name name version))
15582 (sha256
15583 (base32
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+))))
15592
15593 (define-public emacs-yasnippet
15594 (package
15595 (name "emacs-yasnippet")
15596 (version "0.14.0")
15597 (source
15598 (origin
15599 (method git-fetch)
15600 (uri (git-reference
15601 (url "https://github.com/joaotavora/yasnippet")
15602 (commit version)))
15603 (file-name (git-file-name name version))
15604 (sha256
15605 (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))
15606 (patches
15607 (search-patches "emacs-yasnippet-fix-tests.patch"))))
15608 (build-system emacs-build-system)
15609 (arguments
15610 `(#:tests? #t
15611 #:test-command '("emacs" "--batch"
15612 "-l" "yasnippet-tests.el"
15613 "-f" "ert-run-tests-batch-and-exit")
15614 #:phases
15615 (modify-phases %standard-phases
15616 ;; Set HOME, otherwise test-rebindings fails.
15617 (add-before 'check 'set-home
15618 (lambda _
15619 (setenv "HOME" (getcwd))
15620 #t)))))
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+)))
15626
15627 (define-public emacs-yasnippet-snippets
15628 (package
15629 (name "emacs-yasnippet-snippets")
15630 (version "1.0")
15631 (source
15632 (origin
15633 (method git-fetch)
15634 (uri (git-reference
15635 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
15636 (commit version)))
15637 (file-name (git-file-name name version))
15638 (sha256
15639 (base32 "0m78jxhjyf4212ig2ncxr6bhhd6yx4c3nc8x4ylamzq21x4fl21r"))))
15640 (build-system emacs-build-system)
15641 (arguments
15642 `(#:include (cons* "^snippets\\/" %default-include)))
15643 (propagated-inputs
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+)))
15651
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")
15656 (revision "0")
15657 (commit "bc613f448eed1bd363e61c41691a61e9fd139534"))
15658 (package
15659 (name "emacs-doom-snippets")
15660 (version (git-version release revision commit))
15661 (source
15662 (origin
15663 (method git-fetch)
15664 (uri (git-reference
15665 (url "https://github.com/hlissner/doom-snippets")
15666 (commit commit)))
15667 (file-name (git-file-name name version))
15668 (sha256
15669 (base32 "0n4b2pr0gpn8vb2n1rckdq4jk9sj995a62yxk6z2ygw5ad7pkj8f"))))
15670 (build-system emacs-build-system)
15671 (arguments
15672 `(#:include (cons* "^.*\\/" %default-include)))
15673 (propagated-inputs
15674 (list emacs-yasnippet))
15675 (home-page "https://github.com/hlissner/doom-snippets")
15676 (synopsis "Doom Emacs' snippet library")
15677 (description
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))))
15681
15682 (define-public emacs-helm-c-yasnippet
15683 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
15684 (revision "1"))
15685 (package
15686 (name "emacs-helm-c-yasnippet")
15687 (version (string-append "0.6.7" "-" revision "."
15688 (string-take commit 7)))
15689 (source (origin
15690 (method git-fetch)
15691 (uri (git-reference
15692 (url "https://github.com/emacs-jp/helm-c-yasnippet")
15693 (commit commit)))
15694 (file-name (git-file-name name version))
15695 (sha256
15696 (base32
15697 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
15698 (build-system emacs-build-system)
15699 (propagated-inputs
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
15704 Yasnippet.")
15705 (license license:gpl2+))))
15706
15707 (define-public emacs-helm-system-packages
15708 (package
15709 (name "emacs-helm-system-packages")
15710 (version "1.10.2")
15711 (source (origin
15712 (method git-fetch)
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))
15717 (sha256
15718 (base32
15719 "13a8jpj4wwm0yjv8hnsizgjf8wi3r2ap87lyvw7g4c7snp2dydwa"))))
15720 (build-system emacs-build-system)
15721 (inputs
15722 (list recutils))
15723 (propagated-inputs
15724 (list emacs-helm))
15725 (arguments
15726 `(#:phases
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+)))
15744
15745 (define-public emacs-helm-org-rifle
15746 (package
15747 (name "emacs-helm-org-rifle")
15748 (version "1.7.1")
15749 (source
15750 (origin
15751 (method git-fetch)
15752 (uri (git-reference
15753 (url "https://github.com/alphapapa/helm-org-rifle")
15754 (commit version)))
15755 (file-name (git-file-name name version))
15756 (sha256
15757 (base32
15758 "0pm6va26kadjvbai4qsnjc2bk379w2nk6h3b5f0c2yv3q5na0p49"))))
15759 (build-system emacs-build-system)
15760 (propagated-inputs
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+)))
15767
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")
15772 (revision "0"))
15773 (package
15774 (name "emacs-dired-git-info")
15775 (version (git-version "0.3.1" revision commit))
15776 (source
15777 (origin
15778 (method git-fetch)
15779 (uri
15780 (git-reference
15781 (url "https://github.com/clemera/dired-git-info")
15782 (commit commit)))
15783 (file-name (git-file-name name version))
15784 (sha256
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+))))
15792
15793 (define-public emacs-dired-toggle-sudo
15794 (let ((commit "13bbe52c54893f5aa3e56228450ffdd0c9e1d169")
15795 (revision "0"))
15796 (package
15797 (name "emacs-dired-toggle-sudo")
15798 (version (git-version "1.0" revision commit))
15799 (source
15800 (origin
15801 (method git-fetch)
15802 (uri (git-reference
15803 (url "https://github.com/renard/dired-toggle-sudo")
15804 (commit commit)))
15805 (file-name (git-file-name name version))
15806 (sha256
15807 (base32
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))))
15815
15816 (define-public emacs-diredfl
15817 (package
15818 (name "emacs-diredfl")
15819 (version "0.4")
15820 (source
15821 (origin
15822 (method git-fetch)
15823 (uri
15824 (git-reference
15825 (url "https://github.com/purcell/diredfl")
15826 (commit version)))
15827 (file-name (git-file-name name version))
15828 (sha256
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+
15835 package.")
15836 (license license:gpl3+)))
15837
15838 (define-public emacs-memoize
15839 (package
15840 (name "emacs-memoize")
15841 (version "1.1")
15842 (source
15843 (origin
15844 (method git-fetch)
15845 (uri (git-reference
15846 (url "https://github.com/skeeto/emacs-memoize")
15847 (commit version)))
15848 (file-name (git-file-name name version))
15849 (sha256
15850 (base32 "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk"))))
15851 (build-system emacs-build-system)
15852 (arguments
15853 `(#:tests? #t
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)))
15862
15863 (define-public emacs-linum-relative
15864 (package
15865 (name "emacs-linum-relative")
15866 (version "0.6")
15867 (source
15868 (origin
15869 (method git-fetch)
15870 (uri (git-reference
15871 (url "https://github.com/coldnew/linum-relative")
15872 (commit version)))
15873 (file-name (git-file-name name version))
15874 (sha256
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+)))
15882
15883 (define-public emacs-lin
15884 (package
15885 (name "emacs-lin")
15886 (version "1.0.0")
15887 (source (origin
15888 (method git-fetch)
15889 (uri (git-reference
15890 (url "https://git.sr.ht/~protesilaos/lin")
15891 (commit version)))
15892 (file-name (git-file-name name version))
15893 (sha256
15894 (base32
15895 "0bbxm2ndp6hcpdiv34dl9smgx5l0m4pdzm7csp283f6q9kwwdf3v"))))
15896 (native-inputs (list texinfo))
15897 (build-system emacs-build-system)
15898 (arguments
15899 (list
15900 #:phases
15901 #~(modify-phases %standard-phases
15902 (add-after 'install 'makeinfo
15903 (lambda _
15904 (invoke "emacs"
15905 "--batch"
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
15918
15919 (define-public emacs-idle-highlight
15920 (package
15921 (name "emacs-idle-highlight")
15922 (version "1.1.3")
15923 (source
15924 (origin
15925 (method git-fetch)
15926 (uri (git-reference
15927 (url "https://github.com/nonsequitur/idle-highlight-mode")
15928 (commit version)))
15929 (file-name (git-file-name name version))
15930 (sha256
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")
15935 (description
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
15938 the point.")
15939 (license license:gpl3+)))
15940
15941 (define-public emacs-ox-twbs
15942 (package
15943 (name "emacs-ox-twbs")
15944 (version "1.1.4")
15945 (source
15946 (origin
15947 (method git-fetch)
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))
15952 (sha256
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")
15957 (description
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+)))
15963
15964 (define-public emacs-highlight-sexp
15965 (package
15966 (name "emacs-highlight-sexp")
15967 (version "1.0")
15968 (source
15969 (origin
15970 (method git-fetch)
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))
15975 (sha256
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")
15980 (description
15981 "This Emacs package highlights the s-exp at the current position.")
15982 (license license:gpl3+)))
15983
15984 (define-public emacs-highlight-stages
15985 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
15986 (revision "1"))
15987 (package
15988 (name "emacs-highlight-stages")
15989 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
15990 (source
15991 (origin
15992 (method git-fetch)
15993 (uri (git-reference
15994 (url "https://github.com/zk-phi/highlight-stages")
15995 (commit commit)))
15996 (file-name (git-file-name name version))
15997 (sha256
15998 (base32
15999 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
16000 (patches
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+))))
16008
16009 (define-public emacspeak
16010 (package
16011 (name "emacspeak")
16012 (version "53.0")
16013 (source
16014 (origin
16015 (method url-fetch)
16016 (uri (string-append
16017 "https://github.com/tvraman/emacspeak/releases/download/"
16018 version "/emacspeak-" version ".tar.bz2"))
16019 (sha256
16020 (base32 "0lasj4ggsh93ingf46n16wxfx5zzxvr1igikbmdqlz3i99j331gs"))))
16021 (build-system gnu-build-system)
16022 (arguments
16023 (list
16024 #:make-flags #~(list (string-append "prefix=" #$output))
16025 #:phases
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
16032 ;; variable.
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 "
16037 #$tclx
16038 "/lib]\n"
16039 "package require Tclx"))))
16040 ;; Configure Emacspeak according to etc/install.org.
16041 (invoke "make" "config")))
16042 (add-after 'build 'build-espeak
16043 (lambda _
16044 (invoke "make" "espeak")))
16045 (replace 'install
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.
16054 (for-each
16055 (lambda (file)
16056 (copy-recursively file (string-append lisp "/" file)))
16057 '("etc" "info" "js" "lisp" "media" "servers" "sounds"
16058 "stumpwm" "xsl"))
16059 ;; Make sure emacspeak is loaded from the correct directory.
16060 (substitute* "run"
16061 (("\\./lisp/emacspeak-setup.el")
16062 (string-append lisp "/lisp/emacspeak-setup.el")))
16063 ;; Install the convenient startup script.
16064 (mkdir-p bin)
16065 (copy-file "run" (string-append bin "/emacspeak"))))))
16066 #:tests? #f)) ; no check target
16067 (inputs
16068 (list emacs espeak-ng perl tcl tclx))
16069 (home-page "http://emacspeak.sourceforge.net")
16070 (synopsis "Audio desktop interface for Emacs")
16071 (description
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+)))
16080
16081 (define-public emacs-adaptive-wrap
16082 (package
16083 (name "emacs-adaptive-wrap")
16084 (version "0.8")
16085 (source
16086 (origin
16087 (method url-fetch)
16088 (uri (string-append "https://elpa.gnu.org/packages/"
16089 "adaptive-wrap-" version ".tar"))
16090 (sha256
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")
16095 (description
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+)))
16102
16103 (define-public emacs-diff-hl
16104 ;;; XXX: Latest release is not tagged. Use commit matching version bump.
16105 (let ((commit "37b00f3bad841e131d69442a89cbebc3041d996b"))
16106 (package
16107 (name "emacs-diff-hl")
16108 (version "1.9.0")
16109 (source
16110 (origin
16111 (method git-fetch)
16112 (uri (git-reference
16113 (url "https://github.com/dgutov/diff-hl")
16114 (commit commit)))
16115 (file-name (git-file-name name version))
16116 (sha256
16117 (base32 "0s3fcwk6c99n2q25bf0a33lphr9mcrxmvr5wz8qsj86jfbyi1is1"))))
16118 (build-system emacs-build-system)
16119 (home-page "https://github.com/dgutov/diff-hl")
16120 (synopsis
16121 "Highlight uncommitted changes using VC")
16122 (description
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+))))
16127
16128 (define-public emacs-diminish
16129 ;; XXX: Upstream did not tag last release.
16130 (let ((commit "fd486ef76e4c1d8211ae337a43b8bba106d4bca7")
16131 (revision "1"))
16132 (package
16133 (name "emacs-diminish")
16134 (version (git-version "0.46" revision commit))
16135 (source
16136 (origin
16137 (method git-fetch)
16138 (uri (git-reference
16139 (url "https://github.com/myrjola/diminish.el")
16140 (commit commit)))
16141 (file-name (git-file-name name version))
16142 (sha256
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+))))
16150
16151 (define-public emacs-use-package
16152 ;; XXX: Upstream did not tag latest release. Using commit matching exact
16153 ;; version bump.
16154 (let ((commit "942617d26e11d80d879ff23d2a8b477bd074a734"))
16155 (package
16156 (name "emacs-use-package")
16157 (version "2.4.4")
16158 (source (origin
16159 (method git-fetch)
16160 (uri (git-reference
16161 (url "https://github.com/jwiegley/use-package")
16162 (commit commit)))
16163 (file-name (git-file-name name version))
16164 (sha256
16165 (base32
16166 "1zpf9xv65jg813k90x8g9k4lja896nqfh48pjinicmz1rn0rf51a"))))
16167 (build-system emacs-build-system)
16168 (arguments
16169 (list
16170 #:tests? #t
16171 #:test-command #~(list "emacs" "--batch"
16172 "-l" "use-package-tests.el"
16173 "-f" "ert-run-tests-batch-and-exit")
16174 #:phases
16175 #~(modify-phases %standard-phases
16176 (add-before 'install 'install-manual
16177 (lambda _
16178 (let ((info-dir (string-append #$output "/share/info")))
16179 (install-file "use-package.info" info-dir))))
16180 (add-before 'install-manual 'build-manual
16181 (lambda _
16182 (invoke "makeinfo" "use-package.texi"))))))
16183 (native-inputs
16184 (list texinfo))
16185 (propagated-inputs
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+))))
16193
16194 (define-public emacs-leaf
16195 (package
16196 (name "emacs-leaf")
16197 (version "4.5.5")
16198 (source
16199 (origin
16200 (method url-fetch)
16201 (uri (string-append "https://elpa.gnu.org/packages/"
16202 "leaf-" version ".tar"))
16203 (sha256
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")
16208 (description
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+)))
16214
16215 (define-public emacs-strace-mode
16216 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
16217 (revision "1"))
16218 (package
16219 (name "emacs-strace-mode")
16220 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
16221 (source (origin
16222 (method git-fetch)
16223 (uri (git-reference
16224 (url "https://github.com/pkmoore/strace-mode")
16225 (commit commit)))
16226 (file-name (git-file-name name version))
16227 (sha256
16228 (base32
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+))))
16236
16237 (define-public emacs-default-encrypt
16238 (package
16239 (name "emacs-default-encrypt")
16240 (version "4.4")
16241 (source
16242 (origin
16243 (method url-fetch)
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"))
16248 (sha256
16249 (base32
16250 "0w9ggz075j1zwg7d0rv9k8238g600p7czfnnsnawswi7yps2xk78"))))
16251 (build-system emacs-build-system)
16252 (home-page
16253 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
16254 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
16255 (description
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+)))
16264
16265 (define-public emacs-extend-smime
16266 (package
16267 (name "emacs-extend-smime")
16268 (version "3.3")
16269 (source
16270 (origin
16271 (method url-fetch)
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"))
16276 (sha256
16277 (base32
16278 "1iv8s2wjmv3v5qfwlcy9hvvrmxxvp3f8m1krlr789q7bbh35jynh"))))
16279 (build-system emacs-build-system)
16280 (home-page
16281 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
16282 (synopsis "Improved S/MIME support for Gnus in Emacs")
16283 (propagated-inputs
16284 (list emacs-default-encrypt))
16285 (description
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+)))
16299
16300 (define-public emacs-htmlize
16301 (package
16302 (name "emacs-htmlize")
16303 (version "1.56")
16304 (source
16305 (origin
16306 (method git-fetch)
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))
16311 (sha256
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+)))
16320
16321 (define-public emacs-xmlgen
16322 (package
16323 (name "emacs-xmlgen")
16324 (version "0.5")
16325 (source
16326 (origin
16327 (method git-fetch)
16328 (uri (git-reference
16329 (url "https://github.com/philjackson/xmlgen")
16330 (commit version)))
16331 (file-name (git-file-name name version))
16332 (sha256
16333 (base32 "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s"))))
16334 (build-system emacs-build-system)
16335 (arguments
16336 `(#:tests? #t
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
16342 Emacs Lisp")
16343 (description "@code{emacs-xmlgen} provides S-expression to XML
16344 conversion for Emacs Lisp.")
16345 (license license:gpl2+)))
16346
16347 (define-public emacs-cdlatex
16348 (package
16349 (name "emacs-cdlatex")
16350 (version "4.7")
16351 (source
16352 (origin
16353 (method git-fetch)
16354 (uri (git-reference
16355 (url "https://github.com/cdominik/cdlatex")
16356 (commit version)))
16357 (file-name (git-file-name name version))
16358 (sha256
16359 (base32 "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d"))))
16360 (build-system emacs-build-system)
16361 (propagated-inputs
16362 (list emacs-auctex))
16363 (home-page "https://github.com/cdominik/cdlatex")
16364 (synopsis "Fast Emacs input methods for LaTeX environments and
16365 math")
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
16370 constructs.")
16371 (license license:gpl3+)))
16372
16373 (define-public emacs-cnfonts
16374 (package
16375 (name "emacs-cnfonts")
16376 (version "0.9.1")
16377 (source
16378 (origin
16379 (method git-fetch)
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))
16384 (sha256
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+)))
16392
16393 (define-public emacs-boon
16394 (package
16395 (name "emacs-boon")
16396 (version "1.2")
16397 (source
16398 (origin
16399 (method git-fetch)
16400 (uri (git-reference
16401 (url "https://github.com/jyp/boon")
16402 (commit version)))
16403 (file-name (git-file-name name version))
16404 (sha256
16405 (base32 "18il2licf8pgfcrpx2bk55gpf8f537kb9cxqz83jldkhiyry74il"))))
16406 (build-system emacs-build-system)
16407 (propagated-inputs
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+)))
16418
16419 (define-public emacs-cc-mode
16420 (package
16421 (name "emacs-cc-mode")
16422 (version "5.35")
16423 (source
16424 (origin
16425 (method hg-fetch)
16426 (uri (hg-reference
16427 (url "http://hg.code.sf.net/p/cc-mode/cc-mode")
16428 (changeset
16429 (string-append "Release_"
16430 (string-replace-substring version "." "_")))))
16431 (file-name (hg-file-name name version))
16432 (sha256
16433 (base32 "03cvl61baccx57zd62nz2wy4hvij5hl2syg7byaxgrs4c7grr414"))))
16434 (build-system emacs-build-system)
16435 (arguments
16436 '(#:tests? #t
16437 #:test-command '("make" "test")
16438 #:phases
16439 (modify-phases %standard-phases
16440 (add-before 'install 'make-info
16441 (lambda _
16442 (invoke "make" "info"))))))
16443 (native-inputs
16444 (list texinfo))
16445 (home-page "http://cc-mode.sourceforge.net/")
16446 (synopsis "Framework for creating major modes for C-style languages")
16447 (description
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+)))
16451
16452 (define-public emacs-csharp-mode
16453 (package
16454 (name "emacs-csharp-mode")
16455 (version "2.0.0")
16456 (source
16457 (origin
16458 (method git-fetch)
16459 (uri (git-reference
16460 (url "https://github.com/josteink/csharp-mode")
16461 (commit version)))
16462 (file-name (git-file-name name version))
16463 (sha256
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")
16468 (description
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+)))
16474
16475 (define-public emacs-vala-mode
16476 ;; Upstream has no tagged release.
16477 (let ((commit "d696a8177e94c81ea557ad364a3b3dcc3abbc50f")
16478 (revision "0"))
16479 (package
16480 (name "emacs-vala-mode")
16481 (version (git-version "0.1" revision commit))
16482 (source
16483 (origin
16484 (method git-fetch)
16485 (uri (git-reference
16486 (url "https://github.com/rrthomas/vala-mode")
16487 (commit commit)))
16488 (file-name (git-file-name name version))
16489 (sha256
16490 (base32 "0g5pdq757z9d8rk489n5ilhqipdc4i4sfkjwwrxyvgjlapjc04c0"))))
16491 (build-system emacs-build-system)
16492 (arguments
16493 '(#:phases
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"
16499 '(progn
16500 (require 'thingatpt) ;; beginning-of-thing, end-of-thing
16501 (goto-char (point-min))
16502 (save-excursion
16503 (re-search-forward ";; Support multiline strings")
16504 (goto-char (match-beginning 0))
16505 (kill-sexp)
16506 (insert ";; FIXME: Support multiline strings
16507 (c-lang-defconst c-multiline-string-start-char vala nil)"))
16508 (save-excursion
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")
16517 (description
16518 "This package provides a major mode for editing .vala and .vapi files
16519 in Emacs.")
16520 (license license:gpl2+))))
16521
16522 (define-public emacs-php-mode
16523 (package
16524 (name "emacs-php-mode")
16525 (version "1.24.2")
16526 (source
16527 (origin
16528 (method git-fetch)
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))
16533 (sha256
16534 (base32 "13lkzvamr86409whr8as4721gx9xrlfkmxvv941775mryliqk6j6"))))
16535 (build-system emacs-build-system)
16536 (arguments
16537 `(#:phases
16538 (modify-phases %standard-phases
16539 (add-after 'unpack 'enter-source-directory
16540 (lambda _
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")
16545 (description
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+)))
16552
16553 (define-public emacs-pos-tip
16554 (package
16555 (name "emacs-pos-tip")
16556 (version "0.4.6")
16557 (source
16558 (origin
16559 (method git-fetch)
16560 (uri (git-reference
16561 (url "https://github.com/pitkali/pos-tip")
16562 (commit version)))
16563 (file-name (git-file-name name version))
16564 (sha256
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+)))
16578
16579 (define-public emacs-pyim-basedict
16580 ;; XXX: The commit below points to the lastest (un-tagged) release.
16581 (let ((commit "d61af27686f7a39e6c138b7261a686e7ea7a0ef7"))
16582 (package
16583 (name "emacs-pyim-basedict")
16584 (version "0.5.4")
16585 (source
16586 (origin
16587 (method git-fetch)
16588 (uri (git-reference
16589 (url "https://github.com/tumashu/pyim-basedict")
16590 (commit commit)))
16591 (file-name (git-file-name name version))
16592 (sha256
16593 (base32 "0fzyh8qmicq2vy9j1ca708ir67dpxp1cwjaw0sw469p24cvj12yy"))))
16594 (build-system emacs-build-system)
16595 (propagated-inputs
16596 (list emacs-pyim))
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+))))
16602
16603 (define-public emacs-pyim
16604 (package
16605 (name "emacs-pyim")
16606 (version "5.2.9")
16607 (source
16608 (origin
16609 (method url-fetch)
16610 (uri (string-append "https://elpa.gnu.org/packages/pyim-" version ".tar"))
16611 (sha256
16612 (base32 "0blsz344jq1zx4qs73zinb8fhh2a35k5nx12i2wn76902qx2qc6j"))))
16613 (build-system emacs-build-system)
16614 (propagated-inputs
16615 (list emacs-async emacs-popup emacs-posframe emacs-xr))
16616 (home-page "https://github.com/tumashu/pyim")
16617 (synopsis "Chinese input method")
16618 (description
16619 "This package provides a Chinese input method which supports quanpin,
16620 shuangpin, wubi and cangjie.")
16621 (license license:gpl2+)))
16622
16623 (define-public emacs-pinyinlib
16624 (package
16625 (name "emacs-pinyinlib")
16626 (version "0.1.1")
16627 (source
16628 (origin
16629 (method git-fetch)
16630 (uri (git-reference
16631 (url "https://github.com/cute-jumper/pinyinlib.el")
16632 (commit version)))
16633 (file-name (git-file-name name version))
16634 (sha256
16635 (base32
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")
16640 (description
16641 "This Emacs library provides functionality for converting the first
16642 letter of Pinyin to Simplified/Traditional Chinese characters.")
16643 (license license:gpl3+)))
16644
16645 (define-public emacs-reverse-im
16646 (package
16647 (name "emacs-reverse-im")
16648 (version "0.0.8")
16649 (source
16650 (origin
16651 (method git-fetch)
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))
16656 (sha256
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")
16661 (description
16662 "Reverse IM provides a minor mode that toggles translations for all input
16663 methods from a given list.")
16664 (license license:gpl3+)))
16665
16666 (define-public emacs-mini-frame
16667 (let ((commit "60838f3cab438dcbda8eaa15ab3e5d1af88910e9")
16668 (revision "0"))
16669 (package
16670 (name "emacs-mini-frame")
16671 (version (git-version "1.19" revision commit))
16672 (source
16673 (origin
16674 (uri (git-reference
16675 (url "https://github.com/muffinmad/emacs-mini-frame.git")
16676 (commit commit)))
16677 (method git-fetch)
16678 (sha256
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")
16684 (description
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+))))
16690
16691 (define-public emacs-posframe
16692 (package
16693 (name "emacs-posframe")
16694 (version "1.3.2")
16695 (source
16696 (origin
16697 (method url-fetch)
16698 (uri (string-append "https://elpa.gnu.org/packages/"
16699 "posframe-" version ".tar"))
16700 (sha256
16701 (base32 "05qkwb3ys05chn0maz7q19kp539m7p5acb8di4rni4vjjlkpx2bj"))))
16702 (build-system emacs-build-system)
16703 ;; emacs-minimal does not include the function font-info.
16704 (arguments
16705 `(#:emacs ,emacs))
16706 (home-page "https://github.com/tumashu/posframe")
16707 (synopsis "Pop a posframe (a child frame) at point")
16708 (description
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+)))
16713
16714 (define-public emacs-el2org
16715 (package
16716 (name "emacs-el2org")
16717 (version "0.6.0")
16718 (source
16719 (origin
16720 (method git-fetch)
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))
16725 (sha256
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+)))
16733
16734 (define-public emacs-muse
16735 (package
16736 (name "emacs-muse")
16737 (version "3.20.2")
16738 (source
16739 (origin
16740 (method url-fetch)
16741 (uri (string-append "https://elpa.gnu.org/packages/"
16742 "muse-" version ".tar"))
16743 (sha256
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")
16748 (description
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+)))
16753
16754 (define-public emacs-mustache
16755 (package
16756 (name "emacs-mustache")
16757 (version "0.23")
16758 (source
16759 (origin
16760 (method git-fetch)
16761 (uri (git-reference
16762 (url "https://github.com/Wilfred/mustache.el")
16763 (commit version)))
16764 (file-name (git-file-name name version))
16765 (sha256
16766 (base32 "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"))))
16767 (build-system emacs-build-system)
16768 (propagated-inputs
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
16776 and lambdas.")
16777 (license license:gpl3+)))
16778
16779 (define-public emacs-org2web
16780 (package
16781 (name "emacs-org2web")
16782 (version "0.9.1")
16783 (source
16784 (origin
16785 (method git-fetch)
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))
16790 (sha256
16791 (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"))))
16792 (build-system emacs-build-system)
16793 (propagated-inputs
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+)))
16801
16802 (define-public emacs-meow
16803 (package
16804 (name "emacs-meow")
16805 (version "1.4.2")
16806 (source
16807 (origin
16808 (method git-fetch)
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))
16813 (sha256
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
16821 conflicts.")
16822 (license license:gpl3+)))
16823
16824 (define-public emacs-xelb
16825 (package
16826 (name "emacs-xelb")
16827 (version "0.18")
16828 (source (origin
16829 (method url-fetch)
16830 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
16831 version ".tar"))
16832 (sha256
16833 (base32
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
16841 (arguments
16842 `(#:emacs ,emacs
16843 #:phases
16844 (modify-phases %standard-phases
16845 (add-after 'unpack 'regenerate-el-files
16846 (lambda* (#:key inputs #:allow-other-keys)
16847 (invoke "make"
16848 (string-append "PROTO_PATH="
16849 (assoc-ref inputs "xcb-proto")
16850 "/share/xcb")
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+)))
16862
16863 (define-public emacs-exwm
16864 (package
16865 (name "emacs-exwm")
16866 (version "0.27")
16867 (synopsis "Emacs X window manager")
16868 (source
16869 (origin
16870 (method url-fetch)
16871 (uri (string-append "https://elpa.gnu.org/packages/"
16872 "exwm-" version ".tar"))
16873 (sha256
16874 (base32 "094k33clmxhnab0wniyrs48sdz28kna2g6fmkhsd7n20nmhhc4sn"))))
16875 (build-system emacs-build-system)
16876 (propagated-inputs
16877 (list emacs-xelb))
16878 (inputs
16879 (list xhost dbus))
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
16884 (arguments
16885 `(#:emacs ,emacs
16886 #:phases
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)
16896 (mkdir-p bin)
16897 (make-desktop-entry-file
16898 (string-append xsessions "/exwm.desktop")
16899 #:name ,name
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
16905 (lambda _
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")
16913 '(cond
16914 ((file-exists-p "~/.exwm")
16915 (load-file "~/.exwm"))
16916 ((not (featurep 'exwm))
16917 (require '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)
16923 #t))))))
16924 (home-page "https://github.com/ch11ng/exwm")
16925 (description
16926 "EXWM is a full-featured tiling X window manager for Emacs built on top
16927 of XELB.")
16928 (license license:gpl3+)))
16929
16930 (define-public emacs-xelb-no-x-toolkit
16931 (package
16932 (inherit emacs-xelb)
16933 (name "emacs-xelb-no-x-toolkit")
16934 (arguments
16935 (substitute-keyword-arguments (package-arguments emacs-xelb)
16936 ((#:emacs emacs) `,emacs-no-x-toolkit)))))
16937
16938 (define-public emacs-exwm-no-x-toolkit
16939 (package
16940 (inherit emacs-exwm)
16941 (name "emacs-exwm-no-x-toolkit")
16942 (synopsis "Emacs X window manager (without an X toolkit)")
16943 (propagated-inputs
16944 (list emacs-xelb-no-x-toolkit))
16945 (arguments
16946 (substitute-keyword-arguments (package-arguments emacs-exwm)
16947 ((#:emacs emacs) `,emacs-no-x-toolkit)))))
16948
16949 (define-public emacs-switch-window
16950 (package
16951 (name "emacs-switch-window")
16952 (version "1.6.2")
16953 (source
16954 (origin
16955 (method git-fetch)
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))
16960 (sha256
16961 (base32
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)))
16970
16971 (define-public emacs-exwm-x
16972 (package
16973 (name "emacs-exwm-x")
16974 (version "2.0.2")
16975 (synopsis "Derivative window manager based on EXWM")
16976 (source
16977 (origin
16978 (method git-fetch)
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))
16983 (sha256
16984 (base32
16985 "0h248mma7kky30jr9bbhmp95wchl2cx5p6kh0gxmzpbc247dn2cc"))))
16986 (build-system emacs-build-system)
16987 (propagated-inputs
16988 (list emacs-counsel emacs-exwm emacs-switch-window emacs-use-package))
16989 (inputs
16990 (list xhost dbus))
16991 ;; Need emacs instead of emacs-minimal,
16992 ;; for emacs's bin path will be inserted into bin/exwm-x file.
16993 (arguments
16994 `(#:emacs ,emacs
16995 #:phases
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)
17005 (mkdir-p bin)
17006 (with-output-to-file
17007 (string-append xsessions "/exwm-x.desktop")
17008 (lambda _
17009 (format #t "[Desktop Entry]~@
17010 Name=~a~@
17011 Comment=~a~@
17012 Exec=~a~@
17013 TryExec=~@*~a~@
17014 Type=Application~%" ,name ,synopsis exwm-executable)))
17015 ;; Add a shell wrapper to bin
17016 (with-output-to-file exwm-executable
17017 (lambda _
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)
17027 #t))))))
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+)))
17032
17033 (define-public emacs-gnugo
17034 (package
17035 (name "emacs-gnugo")
17036 (version "3.1.2")
17037 (source
17038 (origin
17039 (method url-fetch)
17040 (uri (string-append "https://elpa.gnu.org/packages/gnugo-"
17041 version ".tar"))
17042 (sha256
17043 (base32
17044 "138gzdyi8scqimvs49da66j8f5a43bhgpasn1bxzdj2zffwlwp6g"))))
17045 (build-system emacs-build-system)
17046 (arguments
17047 `(#:phases
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))
17055 (propagated-inputs
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+)))
17065
17066 (define-public emacs-gnuplot
17067 (package
17068 (name "emacs-gnuplot")
17069 (version "0.8.0")
17070 (source
17071 (origin
17072 (method git-fetch)
17073 (uri (git-reference
17074 (url "https://github.com/emacsorphanage/gnuplot-mode")
17075 (commit version)))
17076 (file-name (git-file-name name version))
17077 (sha256
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")
17082 (description
17083 "Emacs Gnuplot is an Emacs major mode for interacting with Gnuplot.")
17084 (license license:gpl2+)))
17085
17086 (define-public emacs-transpose-frame
17087 (package
17088 (name "emacs-transpose-frame")
17089 (version "0.2.1")
17090 (source
17091 (origin
17092 (method git-fetch)
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))
17097 (sha256
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
17104 selected frame.")
17105 (license license:bsd-2)))
17106
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")
17110 (revision "0"))
17111 (package
17112 (name "emacs-transpose-mark")
17113 (version (git-version "0" revision commit))
17114 (source
17115 (origin
17116 (method git-fetch)
17117 (uri (git-reference
17118 (url "https://github.com/kwrooijen/transpose-mark")
17119 (commit commit)))
17120 (file-name (git-file-name name version))
17121 (sha256
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+))))
17131
17132 (define-public emacs-key-chord
17133 (package
17134 (name "emacs-key-chord")
17135 (version "0.6")
17136 (source
17137 (origin
17138 (method url-fetch)
17139 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
17140 (file-name (string-append "key-chord-" version ".el"))
17141 (sha256
17142 (base32
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+)))
17151
17152 (define-public emacs-evil-surround
17153 (package
17154 (name "emacs-evil-surround")
17155 (version "1.1.1")
17156 (source
17157 (origin
17158 (method git-fetch)
17159 (uri (git-reference
17160 (url "https://github.com/emacs-evil/evil-surround")
17161 (commit version)))
17162 (file-name (git-file-name name version))
17163 (sha256
17164 (base32 "1gfgmr4909m36gknprcam6q4rkcqfbi6w43ky7x6jnlmgb6mxggg"))))
17165 (build-system emacs-build-system)
17166 (propagated-inputs
17167 (list emacs-evil))
17168 (arguments
17169 `(#:tests? #t
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+)))
17176
17177 (define-public emacs-evil-commentary
17178 (package
17179 (name "emacs-evil-commentary")
17180 (version "2.2.0")
17181 (source
17182 (origin
17183 (method git-fetch)
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))
17188 (sha256
17189 (base32 "1l8zi9wlg1f7ffm8gh92qwk3q7h6cdl8b8zkd9hcda53mq6klpjr"))))
17190 (build-system emacs-build-system)
17191 (propagated-inputs
17192 (list emacs-evil))
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+)))
17199
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")
17204 (revision "2"))
17205 (package
17206 (name "emacs-ansi")
17207 (version (git-version "0.4.1" revision commit))
17208 (source
17209 (origin
17210 (method git-fetch)
17211 (uri (git-reference
17212 (url "https://github.com/rejeep/ansi.el")
17213 (commit commit)))
17214 (file-name (git-file-name name version))
17215 (sha256
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+))))
17225
17226 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
17227 ;; therefore cannot be run
17228 (define-public emacs-commander
17229 (package
17230 (name "emacs-commander")
17231 (version "0.7.0")
17232 (source
17233 (origin
17234 (method git-fetch)
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))
17239 (sha256
17240 (base32 "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45"))))
17241 (build-system emacs-build-system)
17242 (propagated-inputs
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
17247 Emacs.")
17248 (license license:gpl3+)))
17249
17250 (define-public emacs-eglot
17251 (package
17252 (name "emacs-eglot")
17253 (version "1.10")
17254 (source
17255 (origin
17256 (method url-fetch)
17257 (uri (string-append "https://elpa.gnu.org/packages/eglot-" version
17258 ".tar"))
17259 (sha256
17260 (base32
17261 "0iw1jnfsjd2yq73ic3cld8m51wyxdwn3kjv9ala28krvsvb4h3y4"))))
17262 (build-system emacs-build-system)
17263 (propagated-inputs
17264 (list emacs-external-completion
17265 emacs-eldoc
17266 emacs-jsonrpc
17267 emacs-project
17268 emacs-seq
17269 emacs-xref))
17270 (home-page "https://github.com/joaotavora/eglot")
17271 (synopsis "Client for Language Server Protocol (LSP) servers")
17272 (description
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
17276 one if it fails.")
17277 (license license:gpl3+)))
17278
17279 (define-public emacs-jarchive
17280 (package
17281 (name "emacs-jarchive")
17282 (version "0.9.0")
17283 (source (origin
17284 (method git-fetch)
17285 (uri (git-reference
17286 (url "https://git.sr.ht/~dannyfreeman/jarchive")
17287 (commit version)))
17288 (file-name (git-file-name name version))
17289 (sha256
17290 (base32
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+)))
17298
17299 (define-public emacs-eldoc
17300 (package
17301 (name "emacs-eldoc")
17302 (version "1.13.0")
17303 (source
17304 (origin
17305 (method url-fetch)
17306 (uri (string-append
17307 "https://elpa.gnu.org/packages/eldoc-" version ".tar"))
17308 (sha256
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")
17313 (description
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+)))
17322
17323 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
17324 ;; cannot be run
17325 (define-public emacs-ert-runner
17326 (package
17327 (name "emacs-ert-runner")
17328 (version "0.8.0")
17329 (source
17330 (origin
17331 (method git-fetch)
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))
17336 (sha256
17337 (base32
17338 "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98"))))
17339 (build-system emacs-build-system)
17340 (inputs
17341 (list emacs-ansi
17342 emacs-commander
17343 emacs-dash
17344 emacs-f
17345 emacs-s
17346 emacs-shut-up))
17347 (arguments
17348 `(#:phases
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
17362 ;; the wrapper.
17363 (delete source-directory
17364 (string-split (getenv "EMACSLOADPATH") #\:))))
17365 #t))))
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+)))
17373
17374 (define-public emacs-xtest
17375 (package
17376 (name "emacs-xtest")
17377 (version "1.1.0")
17378 (source (origin
17379 (method git-fetch)
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))
17384 (sha256
17385 (base32
17386 "1wqx6hlqcmqiljydih5fx89dw06g8w728pyn4iqsap8jwgjngb09"))))
17387 (arguments
17388 `(#:exclude '()))
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+)))
17394
17395 (define-public emacs-org-transclusion
17396 (let ((commit "cf51df7b87e0d32ba13ac5380557e81d9845d81b")) ;version bump
17397 (package
17398 (name "emacs-org-transclusion")
17399 (version "1.3.1")
17400 (source
17401 (origin
17402 (method git-fetch)
17403 (uri (git-reference
17404 (url "https://github.com/nobiot/org-transclusion")
17405 (commit commit)))
17406 (file-name (git-file-name name version))
17407 (sha256
17408 (base32 "0ix5l8cjcafw8lqhkmwa3cpdw6cbpx65k0iww426nxya849y61yx"))))
17409 (build-system emacs-build-system)
17410 (arguments
17411 (list
17412 #:tests? #true
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")))
17417 (native-inputs
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+))))
17428
17429 (define-public emacs-disable-mouse
17430 (package
17431 (name "emacs-disable-mouse")
17432 (version "0.3")
17433 (source
17434 (origin
17435 (method git-fetch)
17436 (uri (git-reference
17437 (url "https://github.com/purcell/disable-mouse")
17438 (commit version)))
17439 (file-name (git-file-name name version))
17440 (sha256
17441 (base32 "0l6mai68ns3qw3rlvjvzsnqwdy7bxqiy0vdwflq0l1plxb1vazyc"))))
17442 (build-system emacs-build-system)
17443 (home-page "https://github.com/purcell/disable-mouse")
17444 (synopsis "Disable mouse commands globally")
17445 (description
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+)))
17450
17451 (define-public emacs-json-reformat
17452 (package
17453 (name "emacs-json-reformat")
17454 (version "0.0.7")
17455 (source
17456 (origin
17457 (method git-fetch)
17458 (uri (git-reference
17459 (url "https://github.com/gongo/json-reformat")
17460 (commit version)))
17461 (file-name (git-file-name name version))
17462 (sha256
17463 (base32 "1gaifz1brh7yh1wk1c02gddwis4ab6bggv27gy7gcd2s861f8bkx"))
17464 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
17465 (build-system emacs-build-system)
17466 (arguments
17467 `(#:tests? #t
17468 #:test-command '("ert-runner")
17469 #:phases
17470 (modify-phases %standard-phases
17471 (add-before 'check 'make-tests-writable
17472 (lambda _
17473 (for-each make-file-writable (find-files "test"))))
17474 (add-before 'check 'delete-json-objects-order-test
17475 (lambda _
17476 (emacs-batch-edit-file "test/json-reformat-test.el"
17477 `(progn (progn (goto-char (point-min))
17478 (re-search-forward
17479 "ert-deftest json-reformat-test:json-reformat-region")
17480 (beginning-of-line)
17481 (kill-sexp))
17482 (basic-save-buffer)))))
17483 (add-before 'check 'delete-json-reformat-region-occur-error-test
17484 (lambda _
17485 (emacs-batch-edit-file "test/json-reformat-test.el"
17486 `(progn (goto-char (point-min))
17487 (re-search-forward
17488 "ert-deftest json-reformat-test:json-reformat-region-occur-error")
17489 (beginning-of-line)
17490 (kill-sexp)
17491 (basic-save-buffer))))))))
17492 (native-inputs
17493 (list emacs-dash emacs-ert-runner emacs-shut-up))
17494 (propagated-inputs
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+)))
17501
17502 (define-public emacs-json-snatcher
17503 (package
17504 (name "emacs-json-snatcher")
17505 (version "1.0.0")
17506 (source
17507 (origin
17508 (method git-fetch)
17509 (uri (git-reference
17510 (url "https://github.com/Sterlingg/json-snatcher")
17511 (commit version)))
17512 (file-name (git-file-name name version))
17513 (sha256
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+)))
17521
17522 (define-public emacs-json-mode
17523 (package
17524 (name "emacs-json-mode")
17525 (version "1.8.0")
17526 (source
17527 (origin
17528 (method git-fetch)
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))
17533 (sha256
17534 (base32 "0r0k56q58kb133l9x9nbisz9p2kbphfgw1l4g2xp0pjqsc9wvq8z"))))
17535 (build-system emacs-build-system)
17536 (propagated-inputs
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
17541 highlighting.")
17542 (license license:gpl3+)))
17543
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
17549 (package
17550 (name "emacs-jsonrpc")
17551 (version "1.0.16")
17552 (source
17553 (origin
17554 (method git-fetch)
17555 (uri (git-reference
17556 (url "https://git.savannah.gnu.org/git/emacs")
17557 (commit commit)))
17558 (file-name (git-file-name name version))
17559 (sha256
17560 (base32
17561 "1mka35kparv7z52kknh9nam4wyczcp73glp48q24v05gm42a8xxr"))))
17562 (build-system emacs-build-system)
17563 (arguments
17564 (list #:phases
17565 #~(modify-phases %standard-phases
17566 (replace 'unpack
17567 (lambda* (#:key source #:allow-other-keys)
17568 (mkdir "source")
17569 (chdir "source")
17570 (copy-file (string-append source "/lisp/jsonrpc.el")
17571 "jsonrpc.el"))))))
17572 (home-page "http://elpa.gnu.org/packages/jsonrpc.html")
17573 (synopsis "JSON-RPC library")
17574 (description
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
17578 JSON objects.")
17579 (license license:gpl3+))))
17580
17581 (define-public emacs-jsonnet-mode
17582 (package
17583 (name "emacs-jsonnet-mode")
17584 (version "0.1.3")
17585 (source
17586 (origin
17587 (method git-fetch)
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))
17592 (sha256
17593 (base32
17594 "14nxfa91yg2243v4d5kvynp2645x3811ispmhmpgil3x9qbl9jg9"))))
17595 (build-system emacs-build-system)
17596 (propagated-inputs
17597 (list emacs-dash))
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+)))
17603
17604 (define-public emacs-restclient
17605 (let ((commit "1fb570643b08ba66eb70831b6f874f52546917f1")
17606 (version "0")
17607 (revision "4")) ;Guix package revision,
17608 ;upstream doesn't have official releases
17609 (package
17610 (name "emacs-restclient")
17611 (version (git-version version revision commit))
17612 (source (origin
17613 (method git-fetch)
17614 (uri (git-reference
17615 (url "https://github.com/pashky/restclient.el")
17616 (commit commit)))
17617 (sha256
17618 (base32
17619 "0npij1p1yw4p1f1yrx6bl8q18nav5p2xvbp7qhzhn7lb2fdn5jqv"))
17620 (file-name (git-file-name name version))))
17621 (build-system emacs-build-system)
17622 (propagated-inputs
17623 (list emacs-helm emacs-jq-mode))
17624 (home-page "https://github.com/pashky/restclient.el")
17625 (synopsis "Explore and test HTTP REST webservices")
17626 (description
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))))
17631
17632 (define-public emacs-jq-mode
17633 (package
17634 (name "emacs-jq-mode")
17635 (version "0.5.0")
17636 (source
17637 (origin
17638 (method git-fetch)
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))
17643 (sha256
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")
17648 (description
17649 "Jq mode is an Emacs major mode for editing jq-scripts.")
17650 (license license:gpl3+)))
17651
17652 (define-public emacs-whitespace-cleanup-mode
17653 (let ((commit "72427144b054b0238a86e1348c45d986b8830d9d")
17654 (revision "1"))
17655 (package
17656 (name "emacs-whitespace-cleanup-mode")
17657 (version (git-version "0.10" revision commit))
17658 (source (origin
17659 (method git-fetch)
17660 (uri (git-reference
17661 (url "https://github.com/purcell/whitespace-cleanup-mode")
17662 (commit commit)))
17663 (sha256
17664 (base32
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")
17670 (description
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+))))
17675
17676 (define-public emacs-eimp
17677 (let ((version "1.4.0")
17678 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
17679 (revision "1"))
17680 (package
17681 (name "emacs-eimp")
17682 (version (git-version version revision commit))
17683 (source
17684 (origin
17685 (method git-fetch)
17686 (uri (git-reference
17687 (url "https://github.com/nicferrier/eimp")
17688 (commit commit)))
17689 (file-name (git-file-name name version))
17690 (sha256
17691 (base32
17692 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
17693 (build-system emacs-build-system)
17694 (arguments
17695 `(#:phases
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"))))
17705 #t)))))
17706 (inputs
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+))))
17714
17715 (define-public emacs-dired-hacks
17716 (let ((commit "d1a2bda6aa8f890cb367297ed93aee6d3b5ba388")
17717 (revision "3"))
17718 (package
17719 (name "emacs-dired-hacks")
17720 (version (git-version "0.0.1" revision commit))
17721 (source (origin
17722 (method git-fetch)
17723 (uri (git-reference
17724 (url "https://github.com/Fuco1/dired-hacks")
17725 (commit commit)))
17726 (file-name (git-file-name name version))
17727 (sha256
17728 (base32
17729 "12m81a9kjhs4cyq3lym0vp5nx6z3sfnypyzrnia76x6rjvixjf6y"))))
17730 (build-system emacs-build-system)
17731 (propagated-inputs
17732 (list emacs-dash emacs-eimp emacs-f emacs-s))
17733 (home-page "https://github.com/Fuco1/dired-hacks")
17734 (synopsis
17735 "Collection of useful dired additions")
17736 (description
17737 "This package provides the following collection of Emacs dired mode
17738 additions:
17739
17740 @itemize
17741 @item dired-avfs
17742 @item dired-columns
17743 @item dired-filter
17744 @item dired-hacks-utils
17745 @item dired-images
17746 @item dired-list
17747 @item dired-narrow
17748 @item dired-open
17749 @item dired-rainbow
17750 @item dired-ranger
17751 @item dired-subtree
17752 @item dired-tagsistant
17753 @end itemize\n")
17754 (license license:gpl3+))))
17755
17756 (define-public emacs-dired-sidebar
17757 (package
17758 (name "emacs-dired-sidebar")
17759 (home-page "https://github.com/jojojames/dired-sidebar")
17760 (version "0.2.0")
17761 (source
17762 (origin
17763 (method git-fetch)
17764 (uri (git-reference
17765 (url home-page)
17766 (commit version)))
17767 (file-name (git-file-name name version))
17768 (sha256
17769 (base32 "090dqaqyjmkzrz4szjpk1iip0bdvb0frp4l79393f8ki8w7c16c1"))))
17770 (build-system emacs-build-system)
17771 (propagated-inputs
17772 (list emacs-dired-hacks))
17773 (synopsis "Sidebar for Emacs using Dired")
17774 (description
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+)))
17778
17779 (define-public emacs-dirvish
17780 (package
17781 (name "emacs-dirvish")
17782 (version "2.0.53")
17783 (source (origin
17784 (method git-fetch)
17785 (uri (git-reference
17786 (url "https://github.com/alexluigit/dirvish")
17787 (commit "c535e2147171be5506f4ff34e862bacbfb3de768")))
17788 (sha256
17789 (base32
17790 "1nmp5ci4dvcpih6phfhk66s98lf8b49qd35ymy29kqkf5v4cnwga"))
17791 (file-name (git-file-name name version))))
17792 (build-system emacs-build-system)
17793 (propagated-inputs (list emacs-transient))
17794 (arguments
17795 (list
17796 #:phases
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
17801 (lambda _
17802 (let ((el-files (find-files "./extensions" ".*\\.el$")))
17803 (for-each (lambda (f)
17804 (rename-file f (basename f)))
17805 el-files)))))))
17806 (home-page "https://github.com/alexluigit/dirvish")
17807 (synopsis "Improved version of the Emacs package Dired")
17808 (description
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+)))
17814
17815 (define-public emacs-which-key
17816 (package
17817 (name "emacs-which-key")
17818 (version "3.6.0")
17819 (source
17820 (origin
17821 (method git-fetch)
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))
17826 (sha256
17827 (base32 "0ph5mrzz3r7x4dmy93v6affl4jznvic97a30mrs3kvhwyr2v4mby"))))
17828 (build-system emacs-build-system)
17829 (arguments
17830 `(#:tests? #t
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")
17836 (description
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
17842 settings).")
17843 (license license:gpl3+)))
17844
17845 (define-public emacs-free-keys
17846 (package
17847 (name "emacs-free-keys")
17848 (version "1.0.0")
17849 (source
17850 (origin
17851 (method git-fetch)
17852 (uri
17853 (git-reference
17854 (url "https://github.com/Fuco1/free-keys")
17855 (commit version)))
17856 (file-name (git-file-name name version))
17857 (sha256
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.")
17862 (description
17863 "Free-keys shows available key bindings in the current Emacs buffer.")
17864 (license license:gpl3+)))
17865
17866 (define-public emacs-hercules
17867 (package
17868 (name "emacs-hercules")
17869 (version "0.3.1")
17870 (source
17871 (origin
17872 (method git-fetch)
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))
17877 (sha256
17878 (base32 "1rp37rhkj8jm07dwr74vc68dhrbvyvrxjdavpb0h073ps9vl9dsc"))))
17879 (build-system emacs-build-system)
17880 (propagated-inputs
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")
17884 (description
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+)))
17889
17890 (define-public emacs-ws-butler
17891 (package
17892 (name "emacs-ws-butler")
17893 (version "0.6")
17894 (source
17895 (origin
17896 (method git-fetch)
17897 (uri (git-reference
17898 (url "https://github.com/lewang/ws-butler")
17899 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
17900 (file-name (git-file-name name version))
17901 (sha256
17902 (base32 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
17903 (build-system emacs-build-system)
17904 (arguments
17905 `(#:tests? #t
17906 #:test-command '("ert-runner" "tests")))
17907 (native-inputs
17908 (list emacs-ert-runner))
17909 (home-page "https://github.com/lewang/ws-butler")
17910 (synopsis "Trim spaces from end of lines")
17911 (description
17912 "This Emacs package automatically and unobtrusively trims whitespace
17913 characters from end of lines.")
17914 (license license:gpl3+)))
17915
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")
17920 (revision "1"))
17921 (package
17922 (name "emacs-opencl-mode")
17923 (version (git-version "1.0" revision commit))
17924 (source (origin
17925 (method git-fetch)
17926 (uri (git-reference
17927 (url "https://github.com/salmanebah/opencl-mode")
17928 (commit commit)))
17929 (file-name (git-file-name name version))
17930 (sha256
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+))))
17939
17940 (define-public emacs-openwith
17941 ;; There is no release tag. Version is extracted from main file.
17942 (let ((version "20120531")
17943 (revision "0")
17944 (commit "5fe01dee520d24c839ad5ee18822667457d9f352"))
17945 (package
17946 (name "emacs-openwith")
17947 (version (git-version version revision commit))
17948 (source
17949 (origin
17950 (method git-fetch)
17951 (uri (git-reference
17952 (url "https://github.com/garberw/openwith")
17953 (commit commit)))
17954 (file-name (git-file-name name version))
17955 (sha256
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")
17960 (description
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+))))
17967
17968 (define-public emacs-org-edit-latex
17969 (package
17970 (name "emacs-org-edit-latex")
17971 (version "0.8.3")
17972 (source
17973 (origin
17974 (method git-fetch)
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))
17979 (sha256
17980 (base32 "1w0lyz71dq8x28ira4hig1b70bqn1dr53w3k5dgch9szcf6xa86y"))))
17981 (build-system emacs-build-system)
17982 (arguments
17983 `(#:phases
17984 (modify-phases %standard-phases
17985 (add-before 'build 'set-home
17986 (lambda _ (setenv "HOME" "/tmp"))))))
17987 (propagated-inputs
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")
17991 (description
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+)))
17995
17996 (define-public emacs-emamux
17997 (package
17998 (name "emacs-emamux")
17999 (version "0.14")
18000 (source
18001 (origin
18002 (method git-fetch)
18003 (uri (git-reference
18004 (url "https://github.com/syohex/emacs-emamux")
18005 (commit version)))
18006 (file-name (git-file-name name version))
18007 (sha256
18008 (base32 "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b"))))
18009 (build-system emacs-build-system)
18010 (home-page "https://github.com/syohex/emacs-emamux")
18011 (synopsis "Manipulate Tmux from Emacs")
18012 (description
18013 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
18014 multiplexer.")
18015 (license license:gpl3+)))
18016
18017 (define-public emacs-plz
18018 (package
18019 (name "emacs-plz")
18020 (version "0.3")
18021 (source
18022 (origin
18023 (method git-fetch)
18024 (uri (git-reference
18025 (url "https://github.com/alphapapa/plz.el")
18026 (commit version)))
18027 (file-name (git-file-name name version))
18028 (sha256
18029 (base32 "1ack4rajjdmb3fqz5v394rqpvn9mfvbkrxra27yrcqz97mma1ki7"))))
18030 (build-system emacs-build-system)
18031 (inputs (list curl))
18032 (arguments
18033 (list
18034 #:phases
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")
18042 (description
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+)))
18046
18047 (define-public emacs-ement
18048 (package
18049 (name "emacs-ement")
18050 (version "0.5.2")
18051 (source
18052 (origin
18053 (method git-fetch)
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))
18058 (sha256
18059 (base32 "1gc5b0mzh4a4xxbzfgjx5m830rymnf93qn2k5jvj7kmwnh15w89h"))))
18060 (build-system emacs-build-system)
18061 (arguments
18062 `(#:emacs ,emacs)) ;need libxml support
18063 (propagated-inputs
18064 (list emacs-plz
18065 emacs-svg-lib
18066 emacs-taxy
18067 emacs-taxy-magit-section
18068 emacs-ts))
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+)))
18073
18074 (define-public emacs-rpm-spec-mode
18075 (let ((commit "c1c38050c48ea330c7cea632b8785d66daeefb2b")
18076 (revision "0"))
18077 (package
18078 (name "emacs-rpm-spec-mode")
18079 (version (git-version "0.16" revision commit))
18080 (source (origin
18081 (method git-fetch)
18082 (uri (git-reference
18083 (url "https://github.com/stigbjorlykke/rpm-spec-mode")
18084 (commit commit)))
18085 (file-name (git-file-name name version))
18086 (sha256
18087 (base32
18088 "0427kcvf2ljhzwxskn3jzk0ncrl3f9zcz2sm83d9pmhh5jax2gch"))))
18089 (build-system emacs-build-system)
18090 (arguments
18091 (list
18092 #:phases
18093 #~(modify-phases %standard-phases
18094 (add-after 'unpack 'adjust-for-emacs-28
18095 (lambda _
18096 ;; Since Emacs 28, define-obsolete-variable-alias require a
18097 ;; 3rd argument to specify when the deprecation was
18098 ;; introduced.
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+))))
18115
18116 (define-public emacs-lcr
18117 (package
18118 (name "emacs-lcr")
18119 (version "1.5")
18120 (source
18121 (origin
18122 (method git-fetch)
18123 (uri (git-reference
18124 (url "https://github.com/jyp/lcr")
18125 (commit version)))
18126 (file-name (git-file-name name version))
18127 (sha256
18128 (base32 "0hhn0gqkwki0dfk6j759hmbj1ijn4bs550jh3kgy9jfmnb7cd81l"))))
18129 (build-system emacs-build-system)
18130 (propagated-inputs
18131 (list emacs-dash))
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+)))
18138
18139 (define-public emacs-attrap
18140 (package
18141 (name "emacs-attrap")
18142 (version "1.1")
18143 (source
18144 (origin
18145 (method git-fetch)
18146 (uri (git-reference
18147 (url "https://github.com/jyp/attrap")
18148 (commit version)))
18149 (sha256
18150 (base32 "0wqc7bqx9rvk8r7fd3x84h8p01v97s6w2jf29nnjb59xakwp22i7"))
18151 (file-name (git-file-name name version))))
18152 (build-system emacs-build-system)
18153 (propagated-inputs
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
18158 at point.")
18159 (license license:gpl3+)))
18160
18161 (define-public emacs-git-messenger
18162 (package
18163 (name "emacs-git-messenger")
18164 (version "0.18")
18165 (source
18166 (origin
18167 (method git-fetch)
18168 (uri (git-reference
18169 (url "https://github.com/syohex/emacs-git-messenger")
18170 (commit version)))
18171 (file-name (git-file-name name version))
18172 (sha256
18173 (base32 "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"))))
18174 (build-system emacs-build-system)
18175 (propagated-inputs
18176 (list emacs-popup))
18177 (arguments
18178 `(#:tests? #t
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
18186 internally.")
18187 (license license:gpl3+)))
18188
18189 (define-public emacs-gitpatch
18190 (package
18191 (name "emacs-gitpatch")
18192 (version "0.5.1")
18193 (source
18194 (origin
18195 (method git-fetch)
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))
18200 (sha256
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+)))
18209
18210 (define-public emacs-git-email
18211 ;; Use latest commit since latest tagged release is missing important
18212 ;; changes.
18213 (let ((commit "b5ebade3a48dc0ce0c85699f25800808233c73be")
18214 (revision "0"))
18215 (package
18216 (name "emacs-git-email")
18217 (version (git-version "0.2.0" revision commit))
18218 (source
18219 (origin
18220 (method git-fetch)
18221 (uri (git-reference
18222 (url "https://git.sr.ht/~yoctocell/git-email")
18223 (commit commit)))
18224 (patches
18225 (search-patches "emacs-git-email-missing-parens.patch"))
18226 (file-name (git-file-name name version))
18227 (sha256
18228 (base32 "1lk1yds7idgawnair8l3s72rgjmh80qmy4kl5wrnqvpmjrmdgvnx"))))
18229 (build-system emacs-build-system)
18230 (arguments
18231 `(#:phases
18232 (modify-phases %standard-phases
18233 ;; piem is not yet packaged in Guix.
18234 (add-after 'unpack 'remove-piem
18235 (lambda _
18236 (delete-file "git-email-piem.el")))
18237 (add-before 'install 'makeinfo
18238 (lambda _
18239 (invoke "makeinfo" "doc/git-email.texi"))))))
18240 (native-inputs
18241 (list texinfo))
18242 (propagated-inputs
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."))))
18249
18250 (define-public emacs-erc-hl-nicks
18251 (package
18252 (name "emacs-erc-hl-nicks")
18253 (version "1.3.4")
18254 (source
18255 (origin
18256 (method git-fetch)
18257 (uri (git-reference
18258 (url "https://github.com/leathekd/erc-hl-nicks")
18259 (commit version)))
18260 (file-name (git-file-name name version))
18261 (sha256
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:
18267 @itemize
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
18273 @end itemize\n")
18274 (home-page "https://github.com/leathekd/erc-hl-nicks")
18275 (license license:gpl3+)))
18276
18277 (define-public emacs-engine-mode
18278 (package
18279 (name "emacs-engine-mode")
18280 (version "2.2.1")
18281 (source
18282 (origin
18283 (method git-fetch)
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))
18288 (sha256
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+)))
18297
18298 (define-public emacs-engrave-faces
18299 (package
18300 (name "emacs-engrave-faces")
18301 (version "0.3.1")
18302 (source (origin
18303 (method url-fetch)
18304 (uri (string-append "https://elpa.gnu.org/packages/engrave-faces-"
18305 version ".tar"))
18306 (sha256
18307 (base32
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.
18316
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+)))
18321
18322 (define-public emacs-inheritenv
18323 (package
18324 (name "emacs-inheritenv")
18325 (version "0.1")
18326 (source
18327 (origin
18328 (method git-fetch)
18329 (uri (git-reference
18330 (url "https://github.com/purcell/inheritenv")
18331 (commit version)))
18332 (file-name (git-file-name name version))
18333 (sha256
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")
18338 (description
18339 "Inheritenv provides tools to execute processes inheriting the calling
18340 buffer's environment.")
18341 (license license:gpl3+)))
18342
18343 (define-public emacs-enlive
18344 (package
18345 (name "emacs-enlive")
18346 (version "0.0.1")
18347 (source
18348 (origin
18349 (method git-fetch)
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))
18354 (sha256
18355 (base32
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")
18360 (description
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+)))
18364
18365 (define-public emacs-envrc
18366 (package
18367 (name "emacs-envrc")
18368 (version "0.4")
18369 (source
18370 (origin
18371 (method git-fetch)
18372 (uri (git-reference
18373 (url "https://github.com/purcell/envrc")
18374 (commit version)))
18375 (file-name (git-file-name name version))
18376 (sha256
18377 (base32
18378 "0nqqx4qlw75lmbn0v927sg3xyjkk86ihw1q3rdbbn59va41grds4"))))
18379 (build-system emacs-build-system)
18380 (propagated-inputs
18381 (list emacs-inheritenv))
18382 (home-page "https://github.com/purcell/envrc")
18383 (synopsis "Support for Direnv which operates buffer-locally")
18384 (description
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+)))
18392
18393 (define-public emacs-prop-menu
18394 (package
18395 (name "emacs-prop-menu")
18396 (version "0.1.2")
18397 (source
18398 (origin
18399 (method git-fetch)
18400 (uri (git-reference
18401 (url "https://github.com/david-christiansen/prop-menu-el")
18402 (commit version)))
18403 (file-name (git-file-name name version))
18404 (sha256
18405 (base32
18406 "18ap2liz5r5a8ja2zz9182fnfm47jnsbyblpq859zks356k37iwc"))))
18407 (build-system emacs-build-system)
18408 (home-page
18409 "https://github.com/david-christiansen/prop-menu-el")
18410 (synopsis
18411 "Create and display a context menu based on text and overlay properties")
18412 (description
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
18417 discoverability.
18418
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+)))
18425
18426 (define-public emacs-idris-mode
18427 (let ((commit "9bc7697406f719258d93835df3c1761efbfecaa7")
18428 (revision "1"))
18429 (package
18430 (name "emacs-idris-mode")
18431 (version (git-version "1.0" revision commit))
18432 (source
18433 (origin
18434 (method git-fetch)
18435 (uri (git-reference
18436 (url "https://github.com/idris-hackers/idris-mode")
18437 (commit commit)))
18438 (file-name (git-file-name name commit))
18439 (sha256
18440 (base32
18441 "1d1f7kx0fw632js7qd1sra5wbpwyamcqs5wpzhyynmr5ybb0vyl7"))))
18442 (build-system emacs-build-system)
18443 (propagated-inputs
18444 (list emacs-prop-menu))
18445 (home-page
18446 "https://github.com/idris-hackers/idris-mode")
18447 (synopsis "Major mode for editing Idris code")
18448 (description
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+))))
18452
18453 (define-public emacs-browse-at-remote
18454 (package
18455 (name "emacs-browse-at-remote")
18456 (version "0.14.0")
18457 (source
18458 (origin
18459 (method git-fetch)
18460 (uri (git-reference
18461 (url "https://github.com/rmuslimov/browse-at-remote")
18462 (commit version)))
18463 (file-name (git-file-name name version))
18464 (sha256
18465 (base32 "0bx4ns0jb0sqrjk1nsspvl3mhz3n12925azf7brlwb1vcgnji09v"))))
18466 (build-system emacs-build-system)
18467 (arguments
18468 `(#:tests? #t
18469 #:test-command '("ert-runner")))
18470 (native-inputs
18471 (list emacs-ert-runner))
18472 (propagated-inputs
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")
18476 (description
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+)))
18481
18482 (define-public emacs-tiny
18483 (let ((commit "fd8a6b0b0c564d8242259e20e557ee6041f40908")
18484 (revision "1"))
18485 (package
18486 (name "emacs-tiny")
18487 (version (git-version "0.2.1" revision commit))
18488 (source
18489 (origin
18490 (method git-fetch)
18491 (uri (git-reference
18492 (url "https://github.com/abo-abo/tiny")
18493 (commit commit)))
18494 (file-name (git-file-name name version))
18495 (sha256
18496 (base32
18497 "1498j392ap2mk4zmsm2id16pfgvj78r428da9vw7hdrzzibai2cx"))))
18498 (build-system emacs-build-system)
18499 (arguments
18500 `(#:tests? #t
18501 #:test-command '("make" "test")))
18502 (home-page "https://github.com/abo-abo/tiny")
18503 (synopsis "Quickly generate linear ranges in Emacs")
18504 (description
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+))))
18510
18511 (define-public emacs-taxy
18512 (package
18513 (name "emacs-taxy")
18514 (version "0.10.1")
18515 (source
18516 (origin
18517 (method url-fetch)
18518 (uri (string-append
18519 "https://elpa.gnu.org/packages/taxy-" version ".tar"))
18520 (sha256
18521 (base32
18522 "05czw8fkifb25rwl99dmncr1g0rjfx1bqijl7igqs9j6h9ia2xvg"))))
18523 (build-system emacs-build-system)
18524 (propagated-inputs
18525 (list emacs-magit))
18526 (home-page "https://github.com/alphapapa/taxy.el")
18527 (synopsis "Programmable taxonomical grouping for arbitrary objects")
18528 (description
18529 "Taxy provides a programmable way to classify arbitrary objects into
18530 a hierarchical taxonomy. Allows you to automatically put things in nested
18531 groups.")
18532 (license license:gpl3+)))
18533
18534 (define-public emacs-taxy-magit-section
18535 (package
18536 (name "emacs-taxy-magit-section")
18537 (version "0.12.1")
18538 (source (origin
18539 (method url-fetch)
18540 (uri (string-append
18541 "https://elpa.gnu.org/packages/taxy-magit-section-" version
18542 ".tar"))
18543 (sha256
18544 (base32
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")
18550 (description
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
18554 configurations.")
18555 (license license:gpl3+)))
18556
18557 (define-public emacs-emojify
18558 (package
18559 (name "emacs-emojify")
18560 (version "1.2")
18561 (source
18562 (origin
18563 (method git-fetch)
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))
18568 (sha256
18569 (base32
18570 "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm"))))
18571 (build-system emacs-build-system)
18572 (arguments
18573 `(#:include (cons "^data/" %default-include)))
18574 (propagated-inputs
18575 (list emacs-ht))
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+)))
18583
18584 (define-public emacs-make-it-so
18585 (let ((commit "b73dfb640588123c9eece230ad72b37604f5c126")
18586 (revision "2"))
18587 (package
18588 (name "emacs-make-it-so")
18589 (version (git-version "0.1.0" revision commit))
18590 (source
18591 (origin
18592 (method git-fetch)
18593 (uri (git-reference
18594 (url "https://github.com/abo-abo/make-it-so")
18595 (commit commit)))
18596 (file-name (git-file-name name version))
18597 (sha256
18598 (base32
18599 "0p6xhyinzzkrwzbpxqfm8hlii0ikvmmylya240bwsa77w0g1k6xq"))))
18600 (build-system emacs-build-system)
18601 (arguments
18602 `(#:include (cons "^recipes/" %default-include)))
18603 (propagated-inputs
18604 (list emacs-ivy))
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+))))
18613
18614 (define-public emacs-unidecode
18615 (let ((commit "5502ada9287b4012eabb879f12f5b0a9df52c5b7")
18616 (revision "1"))
18617 (package
18618 (name "emacs-unidecode")
18619 (version (git-version "0.2" revision commit))
18620 (source
18621 (origin
18622 (method git-fetch)
18623 (uri (git-reference
18624 (url "https://github.com/sindikat/unidecode")
18625 (commit commit)))
18626 (file-name (git-file-name name version))
18627 (sha256
18628 (base32
18629 "03x3nakbhmakwm977mwrf8jifvjnfwzpjv6wrwpizbqjnkgfchmn"))))
18630 (build-system emacs-build-system)
18631 (arguments
18632 `(#:include (cons* "^tools/" "^data/" %default-include)
18633 #:tests? #t
18634 #:test-command '("emacs" "--batch"
18635 "-l" "unidecode-test.el"
18636 "-f" "ert-run-tests-batch-and-exit")
18637 #:phases
18638 (modify-phases %standard-phases
18639 (add-before 'check 'make-tests-writable
18640 (lambda _
18641 (make-file-writable "unidecode-test.el")
18642 #t))
18643 (add-before 'check 'add-require
18644 (lambda _
18645 (emacs-batch-edit-file "unidecode-test.el"
18646 `(progn (progn (goto-char (point-min))
18647 (re-search-forward
18648 "ert-deftest")
18649 (forward-line -1)
18650 (insert "(require 'unidecode)"))
18651 (basic-save-buffer)))
18652 #t)))))
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+))))
18657
18658 (define-public emacs-pubmed
18659 (package
18660 (name "emacs-pubmed")
18661 (version "0.6.2")
18662 (source
18663 (origin
18664 (method git-fetch)
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))
18669 (sha256
18670 (base32
18671 "05j4nhn2bgacc54pvmkhwgdsmzxzkcfn49a12k43wckrrf3izbqf"))))
18672 (build-system emacs-build-system)
18673 (propagated-inputs
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+)))
18680
18681 (define-public emacs-websocket
18682 (package
18683 (name "emacs-websocket")
18684 (version "1.13.1")
18685 (source
18686 (origin
18687 (method url-fetch)
18688 (uri (string-append "https://elpa.gnu.org/packages/"
18689 "websocket-" version ".tar"))
18690 (sha256
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")
18695 (description
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+)))
18701
18702 (define-public emacs-oauth2
18703 (package
18704 (name "emacs-oauth2")
18705 (version "0.16")
18706 (source
18707 (origin
18708 (method url-fetch)
18709 (uri (string-append "https://elpa.gnu.org/packages/"
18710 "oauth2-" version ".tar"))
18711 (sha256
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")
18716 (description
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+)))
18725
18726 (define-public emacs-auth-source-xoauth2
18727 (package
18728 (name "emacs-auth-source-xoauth2")
18729 (version "1.0")
18730 (source
18731 (origin
18732 (method git-fetch)
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))
18737 (sha256
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")
18742 (description
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)))
18747
18748 (define-public emacs-circe
18749 (package
18750 (name "emacs-circe")
18751 (version "2.12")
18752 (source
18753 (origin
18754 (method git-fetch)
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))
18759 (sha256
18760 (base32 "0lrxd4hanaxj85nafsc0wss677slmyaks3qb7a95mj7vic3ib937"))))
18761 (build-system emacs-build-system)
18762 (arguments
18763 `(#:tests? #t
18764 #:test-command '("buttercup" "-L" ".")
18765 #:emacs ,emacs ;requires gnutls
18766 #:phases
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
18771 (lambda _
18772 (setenv "HOME" "/tmp")))
18773 (add-before 'check 'remove-failing-tests
18774 (lambda _
18775 (make-file-writable "tests/test-circe.el")
18776 (emacs-batch-edit-file "tests/test-circe.el"
18777 `(progn
18778 (dolist (test
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)
18785 (kill-sexp))
18786 (basic-save-buffer))))))))
18787 (native-inputs
18788 (list emacs-buttercup))
18789 ;; In order to securely connect to an IRC server using TLS, Circe requires
18790 ;; the GnuTLS binary.
18791 (propagated-inputs
18792 (list gnutls))
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
18798 want to use it.")
18799 (license license:gpl3+)))
18800
18801 (define-public emacs-tracking
18802 (package
18803 (inherit emacs-circe)
18804 (name "emacs-tracking")
18805 (arguments
18806 ;; "tracking.el" is a library extracted from Circe package. It requires
18807 ;; "shorten.el".
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+)))
18816
18817 (define-public emacs-slack
18818 (let ((commit "ff46d88726482211e3ac3d0b9c95dd4fdffe11c2")
18819 (revision "10"))
18820 (package
18821 (name "emacs-slack")
18822 (version (git-version "0.0.2" revision commit))
18823 (source (origin
18824 (method git-fetch)
18825 (uri (git-reference
18826 (url "https://github.com/yuya373/emacs-slack")
18827 (commit commit)))
18828 (file-name (git-file-name name commit))
18829 (sha256
18830 (base32
18831 "15g4dmy4iqqpk8ivhkpsngzllbw0nc5d2sc9j36sdnhwkajzhidj"))))
18832 (build-system emacs-build-system)
18833 (arguments
18834 `(#:phases
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)))))
18839 (propagated-inputs
18840 (list emacs-alert
18841 emacs-emojify
18842 emacs-helm
18843 emacs-request
18844 emacs-websocket
18845 emacs-oauth2
18846 emacs-circe))
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+))))
18852
18853 (define-public emacs-helm-slack
18854 (let ((commit "465f6220f3f5bee4d95492991fca1290c89534eb")
18855 (revision "1"))
18856 (package
18857 (name "emacs-helm-slack")
18858 (version (git-version "0" revision commit))
18859 (source (origin
18860 (method git-fetch)
18861 (uri (git-reference
18862 (url "https://github.com/yuya373/helm-slack")
18863 (commit commit)))
18864 (file-name (git-file-name name commit))
18865 (sha256
18866 (base32
18867 "0p1s1kl8v68qjprqkf034cz911qzbqxbscqgpn0c3mbm3yfx81f7"))))
18868 (build-system emacs-build-system)
18869 (arguments
18870 `(#:phases
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
18879 Slack client.")
18880 (license license:gpl3+))))
18881
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
18885 ;; package
18886 (let ((commit "c5eaeed156ab906190c662d491269230967104b1")
18887 (revision "0"))
18888 (package
18889 (name "emacs-bash-completion")
18890 (version (git-version "3.1.0" revision commit))
18891 (source
18892 (origin
18893 (method git-fetch)
18894 (uri (git-reference
18895 (url "https://github.com/szermatt/emacs-bash-completion")
18896 (commit commit)))
18897 (file-name (git-file-name name version))
18898 (sha256
18899 (base32 "0r221iirqsbz13s76r68i496izbirrvcw8ql3wsh205zmxa3jqg1"))))
18900 (inputs (list bash))
18901 (build-system emacs-build-system)
18902 (arguments
18903 (list
18904 #:phases
18905 #~(modify-phases %standard-phases
18906 (add-after 'unpack 'make-git-checkout-writable
18907 (λ _
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")
18916 (description
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+))))
18920
18921 (define-public emacs-easy-kill
18922 (package
18923 (name "emacs-easy-kill")
18924 (version "0.9.5")
18925 (source (origin
18926 (method url-fetch)
18927 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
18928 version ".tar"))
18929 (sha256
18930 (base32
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")
18935 (description
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+)))
18939
18940 (define-public emacs-csv-mode
18941 (package
18942 (name "emacs-csv-mode")
18943 (version "1.21")
18944 (source
18945 (origin
18946 (method url-fetch)
18947 (uri (string-append "https://elpa.gnu.org/packages/"
18948 "csv-mode-" version ".tar"))
18949 (sha256
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")
18954 (description
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+)))
18958
18959 (define-public emacs-transmission
18960 (package
18961 (name "emacs-transmission")
18962 (version "0.12.2")
18963 (source
18964 (origin
18965 (method git-fetch)
18966 (uri (git-reference
18967 (url "https://github.com/holomorph/transmission")
18968 (commit version)))
18969 (file-name (git-file-name name version))
18970 (sha256
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.
18977
18978 Features:
18979
18980 @itemize
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
18984 contexts.
18985 @item Toggle downloading and set priorities for individual files.
18986 @end itemize\n")
18987 (license license:gpl3+)))
18988
18989 (define-public emacs-polymode
18990 (package
18991 (name "emacs-polymode")
18992 (version "0.2.2")
18993 (source
18994 (origin
18995 (method git-fetch)
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))
19000 (sha256
19001 (base32 "18ssl2h861dm2jkd3df6wkfr48p8zk337dbvpq5522kia7fq1lbn"))
19002 (patches
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")
19008 (description
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+)))
19015
19016 (define-public emacs-polymode-ansible
19017 (package
19018 (name "emacs-polymode-ansible")
19019 (version "0.3.0")
19020 (source
19021 (origin
19022 (method git-fetch)
19023 (uri (git-reference
19024 (url "https://gitlab.com/mavit/poly-ansible")
19025 (commit version)))
19026 (file-name (git-file-name name version))
19027 (sha256
19028 (base32 "0f0yq6gmkp194nxk90ipprglf1xkmxrgz1rkgrhfslvxq4q2l81h"))))
19029 (build-system emacs-build-system)
19030 (propagated-inputs
19031 (list emacs-ansible-doc emacs-jinja2-mode emacs-polymode
19032 emacs-yaml-mode))
19033 (properties '((upstream-name . "poly-ansible")))
19034 (home-page "https://gitlab.com/mavit/poly-ansible/")
19035 (synopsis "Polymode for Ansible - Jinja2 in YAML")
19036 (description
19037 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
19038 (license license:gpl3+)))
19039
19040 (define-public emacs-polymode-markdown
19041 (package
19042 (name "emacs-polymode-markdown")
19043 (version "0.2.2")
19044 (home-page "https://github.com/polymode/poly-markdown")
19045 (source
19046 (origin
19047 (method git-fetch)
19048 (uri (git-reference
19049 (url home-page)
19050 (commit (string-append "v" version))))
19051 (file-name (git-file-name name version))
19052 (sha256
19053 (base32 "1q4qq0ql08hxkdrd2aal03560k612my7bvnfpfij3g432hn0p7v6"))))
19054 (build-system emacs-build-system)
19055 (propagated-inputs
19056 (list emacs-markdown-mode emacs-polymode))
19057 (properties '((upstream-name . "poly-markdown")))
19058 (synopsis "Polymode for Markdown mode")
19059 (description
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+)))
19063
19064 (define-public emacs-poly-noweb
19065 (package
19066 (name "emacs-poly-noweb")
19067 (version "0.2.2")
19068 (source
19069 (origin
19070 (method git-fetch)
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))
19075 (sha256
19076 (base32 "1jl5h4nf10xd2gdlsxi6h2n3z5zh26ffcixn68xfp5q4zl34zk8p"))))
19077 (build-system emacs-build-system)
19078 (propagated-inputs
19079 (list emacs-polymode))
19080 (home-page "https://github.com/polymode/poly-noweb")
19081 (synopsis "Polymode for noweb")
19082 (description
19083 "This package provides @code{poly-noweb-mode}, a polymode for noweb
19084 files.")
19085 (license license:gpl3+)))
19086
19087 (define-public emacs-powershell
19088 ;; Tagged branch 0.1 is outdated (2015).
19089 (let ((revision "0")
19090 (commit "d1b3f95669343399f199f291ef76c09a0ede5e60"))
19091 (package
19092 (name "emacs-powershell")
19093 (build-system emacs-build-system)
19094 (version (git-version "0.3" revision commit))
19095 (source
19096 (origin
19097 (method git-fetch)
19098 (uri (git-reference
19099 (url "https://github.com/jschaf/powershell.el")
19100 (commit commit)))
19101 (file-name (git-file-name name version))
19102 (sha256
19103 (base32 "1cxhzaaig88zhylyycvb3849r85j1ijqklnh9zbqsfl2zhpb0g5c"))))
19104 (home-page "https://github.com/jschaf/powershell.el")
19105 (synopsis "Emacs mode for editing PowerShell scripts")
19106 (description
19107 "Powershell is an Emacs major mode for editing and running
19108 Microsoft PowerShell files.")
19109 (license license:gpl3+))))
19110
19111 (define-public emacs-polymode-org
19112 (package
19113 (name "emacs-polymode-org")
19114 (version "0.2.2")
19115 (source
19116 (origin
19117 (method git-fetch)
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))
19122 (sha256
19123 (base32 "1srnwcsn2bh8gqzxixkhffk7gbnk66kd4dgvxbnps5nxqc6v0qhc"))))
19124 (build-system emacs-build-system)
19125 (propagated-inputs
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")
19130 (description
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+)))
19135
19136 (define-public eless
19137 (package
19138 (name "eless")
19139 (version "0.7")
19140 (source
19141 (origin
19142 (method git-fetch)
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))
19147 (sha256
19148 (base32 "01gpzg35v972ik4bimcyhqabjca6sjj41kw2i15xj1k33p4sjqpf"))))
19149 (build-system copy-build-system)
19150 (inputs
19151 (list bash emacs))
19152 (arguments
19153 `(#:install-plan
19154 '(("eless" "bin/")
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.
19161
19162 Features:
19163
19164 @itemize
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.
19171 @item Info 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.
19177 @end itemize\n")
19178 (license license:expat)))
19179
19180 (define-public emacs-evil-matchit
19181 (package
19182 (name "emacs-evil-matchit")
19183 (version "3.0.0")
19184 (source
19185 (origin
19186 (method git-fetch)
19187 (uri (git-reference
19188 (url "https://github.com/redguardtoo/evil-matchit")
19189 (commit version)))
19190 (file-name (git-file-name name version))
19191 (sha256
19192 (base32 "0a55hhqi14g0hy80cfi5anxs44rcdxm1jkkyl561b4d4g823bpbi"))))
19193 (build-system emacs-build-system)
19194 (propagated-inputs
19195 (list emacs-evil))
19196 (home-page "https://github.com/redguardtoo/evil-matchit")
19197 (synopsis "Vim matchit ported into Emacs")
19198 (description
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+)))
19202
19203 (define-public emacs-evil-smartparens
19204 (package
19205 (name "emacs-evil-smartparens")
19206 (version "0.4.0")
19207 (source
19208 (origin
19209 (method git-fetch)
19210 (uri (git-reference
19211 (url "https://github.com/expez/evil-smartparens")
19212 (commit version)))
19213 (file-name (git-file-name name version))
19214 (sha256
19215 (base32 "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl"))))
19216 (build-system emacs-build-system)
19217 (propagated-inputs
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+)))
19225
19226 (define-public emacs-evil-quickscope
19227 (package
19228 (name "emacs-evil-quickscope")
19229 (version "0.1.4")
19230 (source
19231 (origin
19232 (method git-fetch)
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))
19237 (sha256
19238 (base32 "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"))))
19239 (build-system emacs-build-system)
19240 (propagated-inputs
19241 (list emacs-evil))
19242 (arguments
19243 `(#:tests? #t
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+)))
19254
19255 (define-public emacs-bongo
19256 (package
19257 (name "emacs-bongo")
19258 (version "1.1")
19259 (source
19260 (origin
19261 (method git-fetch)
19262 (uri (git-reference
19263 (url "https://github.com/dbrock/bongo")
19264 (commit version)))
19265 (file-name (git-file-name name version))
19266 (sha256
19267 (base32 "1nszph9mn98flyhn1jq3y6mdh6jymjkvj5ng36ql016dj92apvhv"))))
19268 (build-system emacs-build-system)
19269 (home-page "https://github.com/dbrock/bongo")
19270 (synopsis "Media player for Emacs")
19271 (description
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
19275 @code{afplay}.")
19276 (license license:gpl2+)))
19277
19278 (define-public emacs-groovy-modes
19279 (package
19280 (name "emacs-groovy-modes")
19281 (version "2.1")
19282 (source (origin
19283 (method git-fetch)
19284 (uri (git-reference
19285 (url "https://github.com/Groovy-Emacs-Modes\
19286 /groovy-emacs-modes")
19287 (commit version)))
19288 (file-name (git-file-name name version))
19289 (sha256
19290 (base32
19291 "1jpfyqnqd8nj0g8xbiw4ar2qzxx3pvhwibr6hdzhyy9mmc4yzdgk"))))
19292 (build-system emacs-build-system)
19293 (arguments
19294 `(#:tests? #t
19295 #:test-command '("ert-runner")))
19296 (native-inputs
19297 (list emacs-ert-runner emacs-undercover emacs-shut-up emacs-f))
19298 (propagated-inputs
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+)))
19306
19307 (define-public emacs-jenkinsfile-mode
19308 (let ((commit "65bf3925852c35c6bd499978f08f83c1193f4347")
19309 (revision "1"))
19310 (package
19311 (name "emacs-jenkinsfile-mode")
19312 (version (git-version "0.0.1" revision commit))
19313 (source (origin
19314 (method git-fetch)
19315 (uri (git-reference
19316 (url "https://github.com/john2x/jenkinsfile-mode")
19317 (commit commit)))
19318 (file-name (git-file-name name version))
19319 (sha256
19320 (base32
19321 "0w38g88yykslg71xr99ff4vx1ffgy90b7xqvvdflr189gwk3avx1"))))
19322 (propagated-inputs
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+))))
19330
19331 (define-public emacs-kotlin-mode
19332 (let ((commit "0e4bafb31d1fc2a0a420a521c2723d5526646c0b")
19333 (revision "1"))
19334 (package
19335 (name "emacs-kotlin-mode")
19336 (version (git-version "0.0.1" revision commit))
19337 (source
19338 (origin
19339 (method git-fetch)
19340 (uri (git-reference
19341 (url "https://github.com/Emacs-Kotlin-Mode-Maintainers/kotlin-mode")
19342 (commit commit)))
19343 (file-name (git-file-name name version))
19344 (sha256
19345 (base32 "09inpgwmnnqaakyn4r4xs8kax8b89dw94kvl521x6d43h9zl5i70"))))
19346 (build-system emacs-build-system)
19347 (arguments
19348 `(#:tests? #t
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")
19353 (description
19354 "This package provides a @code{kotlin-mode} for editing Kotlin files.")
19355 (license license:gpl3+))))
19356
19357 (define-public emacs-org-tree-slide
19358 (let ((commit "d6529bc2df727d09014e0e56abf4f15a8e8fc20f")
19359 (revision "0"))
19360 (package
19361 (name "emacs-org-tree-slide")
19362 (version (git-version "2.8.18" revision commit))
19363 (source (origin
19364 (method git-fetch)
19365 (uri (git-reference
19366 (url "https://github.com/takaxp/org-tree-slide")
19367 (commit commit)))
19368 (sha256
19369 (base32
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")
19375 (description
19376 "Org Tree Slide is a minor mode for using an Org document in
19377 presentations by progressively revealing individual subtrees of the
19378 document.")
19379 (license license:gpl3+))))
19380
19381 (define-public emacs-scratch-el
19382 (package
19383 (name "emacs-scratch-el")
19384 (version "1.4")
19385 (source
19386 (origin
19387 (method git-fetch)
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))
19392 (sha256
19393 (base32 "174d8ancnkgb7q62196kd6nrfib6rnwxw4visgbk1c6yd1w8kray"))))
19394 (build-system emacs-build-system)
19395 (native-inputs
19396 (list texinfo))
19397 (arguments
19398 '(#:phases
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")
19406 "/share/info"))
19407 #t)))))
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)))
19416
19417 (define-public emacs-kv
19418 (package
19419 (name "emacs-kv")
19420 (version "0.0.19")
19421 (source
19422 (origin
19423 (method git-fetch)
19424 (uri (git-reference
19425 (url "https://github.com/nicferrier/emacs-kv")
19426 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
19427 (file-name (git-file-name name version))
19428 (sha256
19429 (base32
19430 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))
19431 (patches
19432 (search-patches "emacs-kv-fix-tests.patch"))))
19433 (build-system emacs-build-system)
19434 (arguments
19435 `(#:tests? #t
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
19442 Lisp.")
19443 (license license:gpl3+)))
19444
19445 (define-public emacs-esxml
19446 (package
19447 (name "emacs-esxml")
19448 (version "0.3.7")
19449 (source (origin
19450 (method git-fetch)
19451 (uri (git-reference
19452 (url "https://github.com/tali713/esxml")
19453 (commit version)))
19454 (file-name (git-file-name name version))
19455 (sha256
19456 (base32
19457 "1xzxmgsg0j72sf1vjh9gjswz3c29js0kqhm7r3jrqrh3a5agdnml"))))
19458 (build-system emacs-build-system)
19459 (arguments
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")))
19464 (propagated-inputs
19465 (list emacs-kv))
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
19472 the format.")
19473 (license license:gpl3+)))
19474
19475 (define-public emacs-nov-el
19476 (package
19477 (name "emacs-nov-el")
19478 (version "0.4.0")
19479 (source
19480 (origin
19481 (method git-fetch)
19482 (uri (git-reference
19483 (url "https://depp.brause.cc/nov.el.git")
19484 (commit version)))
19485 (file-name (git-file-name name version))
19486 (sha256
19487 (base32
19488 "10507fdfx02wb3j7g34w4ii8rgnjbmriq63ir6x1agf38s3i9p52"))))
19489 (build-system emacs-build-system)
19490 (arguments
19491 (list
19492 #:emacs emacs ;need libxml
19493 #:phases
19494 #~(modify-phases %standard-phases
19495 (add-after 'unpack 'embed-path-to-unzip
19496 (lambda _
19497 (substitute* "nov.el"
19498 (("\\(executable-find \"unzip\"\\)")
19499 (string-append "\"" (which "unzip") "\""))))))))
19500 (propagated-inputs
19501 (list emacs-dash emacs-esxml))
19502 (inputs
19503 (list unzip))
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
19507 documents.
19508
19509 Features:
19510
19511 @itemize
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
19521 @end itemize
19522 ")
19523 (license license:gpl3+)))
19524
19525 (define-public epipe
19526 (package
19527 (name "epipe")
19528 (version "0.1.0")
19529 (source
19530 (origin
19531 (method git-fetch)
19532 (uri (git-reference
19533 (url "https://github.com/cute-jumper/epipe")
19534 (commit version)))
19535 (file-name (git-file-name name version))
19536 (sha256
19537 (base32 "0lkisi1s7sn12nx8zh58qmsxwnk1rjwryj18wcbr148xqz3swg57"))))
19538 (build-system trivial-build-system)
19539 (arguments
19540 `(#:modules
19541 ((guix build utils))
19542 #:builder
19543 (begin
19544 (use-modules (guix build utils))
19545 ;; Extract source.
19546 (copy-recursively (assoc-ref %build-inputs "source") "source")
19547 (chdir "source")
19548 ;; Patch shebangs.
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")
19554 "/bin")))
19555 ;; Install.
19556 (for-each (lambda (file)
19557 (install-file file (string-append %output "/bin")))
19558 '("epipe" "epipe.pl")))))
19559 (inputs
19560 (list bash perl))
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+)))
19566
19567 (define-public emacs-jupyter
19568 (package
19569 (name "emacs-jupyter")
19570 (version "0.8.2")
19571 (source
19572 (origin
19573 (method git-fetch)
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))
19578 (sha256
19579 (base32 "1sr007wsl2y6wqpzkmv3inbpwhvgdcb2nmqzgfg7w1awapi2r13p"))))
19580 (build-system emacs-build-system)
19581 (propagated-inputs
19582 (list emacs-company ;optional
19583 emacs-markdown-mode ;optional
19584 emacs-simple-httpd
19585 emacs-websocket
19586 emacs-zmq))
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+)))
19594
19595 (define-public emacs-hcl-mode
19596 (package
19597 (name "emacs-hcl-mode")
19598 (version "0.03")
19599 (source
19600 (origin
19601 (method git-fetch)
19602 (uri (git-reference
19603 (url "https://github.com/syohex/emacs-hcl-mode")
19604 (commit version)))
19605 (file-name (git-file-name name version))
19606 (sha256
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")
19611 (description
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+)))
19616
19617 (define-public emacs-terraform-mode
19618 (package
19619 (name "emacs-terraform-mode")
19620 (version "0.06")
19621 (source
19622 (origin
19623 (method git-fetch)
19624 (uri (git-reference
19625 (url "https://github.com/syohex/emacs-terraform-mode")
19626 (commit version)))
19627 (file-name (git-file-name name version))
19628 (sha256
19629 (base32 "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx"))))
19630 (build-system emacs-build-system)
19631 (propagated-inputs
19632 (list emacs-hcl-mode))
19633 (home-page "https://github.com/syohex/emacs-terraform-mode")
19634 (synopsis "Major mode for Terraform")
19635 (description
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+)))
19640
19641 (define-public emacs-exec-path-from-shell
19642 (package
19643 (name "emacs-exec-path-from-shell")
19644 (version "1.12")
19645 (source
19646 (origin
19647 (method git-fetch)
19648 (uri (git-reference
19649 (url "https://github.com/purcell/exec-path-from-shell")
19650 (commit version)))
19651 (file-name (git-file-name name version))
19652 (sha256
19653 (base32
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")
19658 (description
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+)))
19666
19667 (define-public emacs-frog-menu
19668 (package
19669 (name "emacs-frog-menu")
19670 (version "0.2.11")
19671 (source
19672 (origin
19673 (method url-fetch)
19674 (uri (string-append "https://elpa.gnu.org/packages/"
19675 "frog-menu-" version ".el"))
19676 (sha256
19677 (base32 "06iw11z61fd0g4w3562k3smcmzaq3nivvvc6gzm8y8k5pcrqzdff"))))
19678 (build-system emacs-build-system)
19679 (propagated-inputs
19680 (list emacs-avy emacs-posframe))
19681 (home-page "https://github.com/clemera/frog-menu")
19682 (synopsis "Quickly pick items from ad hoc menus")
19683 (description
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+)))
19687
19688 (define-public emacs-frog-jump-buffer
19689 (let ((commit "2d7b342785ae27d45f5d252272df6eb773c78e20")
19690 (revision "1"))
19691 (package
19692 (name "emacs-frog-jump-buffer")
19693 (version (git-version "0.1.4" revision commit))
19694 (source
19695 (origin
19696 (method git-fetch)
19697 (uri (git-reference
19698 (url "https://github.com/waymondo/frog-jump-buffer")
19699 (commit commit)))
19700 (file-name (git-file-name name version))
19701 (sha256
19702 (base32
19703 "1z00by8hiss1r2lwmzrl8pnz6jykia2849dqqm4l3z5rf6lwvc0f"))))
19704 (build-system emacs-build-system)
19705 (propagated-inputs
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")
19709 (description
19710 "This package provides a preview window of buffers that can be switched
19711 to with quicklink-style selections.")
19712 (license license:gpl3+))))
19713
19714 (define-public emacs-deft
19715 (package
19716 (name "emacs-deft")
19717 (version "0.8")
19718 (source
19719 (origin
19720 (method git-fetch)
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))
19725 (sha256
19726 (base32
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")
19731 (description
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)))
19735
19736 (define-public emacs-anzu
19737 (package
19738 (name "emacs-anzu")
19739 (version "0.64")
19740 (source
19741 (origin
19742 (method git-fetch)
19743 (uri (git-reference
19744 (url "https://github.com/syohex/emacs-anzu")
19745 (commit version)))
19746 (file-name (git-file-name name version))
19747 (sha256
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")
19752 (description
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
19755 Anzu.zim.")
19756 (license license:gpl3+)))
19757
19758 (define-public emacs-ascii-art-to-unicode
19759 (package
19760 (name "emacs-ascii-art-to-unicode")
19761 (version "1.13")
19762 (source
19763 (origin
19764 (method url-fetch)
19765 (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-"
19766 version ".el"))
19767 (sha256
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+)))
19777
19778 (define-public emacs-emmet-mode
19779 (let ((commit "1acb821e0142136344ccf40c1e5fb664d7db2e70")
19780 (revision "1"))
19781 (package
19782 (name "emacs-emmet-mode")
19783 (version (git-version "1.0.8" revision commit))
19784 (source (origin
19785 (method git-fetch)
19786 (uri (git-reference
19787 (url "https://github.com/smihica/emmet-mode")
19788 (commit commit)))
19789 (file-name (git-file-name name version))
19790 (sha256
19791 (base32
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")
19796 (description
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+))))
19800
19801 (define-public emacs-ergoemacs-mode
19802 (package
19803 (name "emacs-ergoemacs-mode")
19804 (version "5.22.2.23")
19805 (source
19806 (origin
19807 (method git-fetch)
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))
19812 (sha256
19813 (base32
19814 "1ipwzl0l26g5qvc1sgmz2ra5vn1j3hl0mnkgzpa3j4p8gsmxdiqr"))))
19815 (build-system emacs-build-system)
19816 (propagated-inputs
19817 (list emacs-undo-tree))
19818 (home-page "https://ergoemacs.github.io/")
19819 (synopsis "Emacs mode based on common modern interface and ergonomics")
19820 (description
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+)))
19825
19826 (define-public emacs-password-store
19827 (let ((commit "918992c19231b33b3d4a3288a7288a620e608cb4")
19828 (revision "1"))
19829 (package
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))
19835 (source (origin
19836 (method git-fetch)
19837 (uri (git-reference
19838 (url "git://git.zx2c4.com/password-store")
19839 (commit commit)))
19840 (file-name (git-file-name name version))
19841 (sha256
19842 (base32
19843 "0ni62f4pq96g0i0q66bch1dl9k4zqwhg7xaf746k3gbbqxcdh3vi"))))
19844 (build-system emacs-build-system)
19845 (arguments
19846 (list #:phases
19847 #~(modify-phases %standard-phases
19848 (add-after 'unpack 'extract-el-file
19849 (lambda _
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"))))))))
19861 (inputs
19862 (list password-store))
19863 (propagated-inputs
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")
19867 (description
19868 "This package provides functions for working with pass (\"the
19869 standard Unix password manager\").")
19870 (license license:gpl3+))))
19871
19872 (define-public emacs-password-store-otp
19873 (package
19874 (name "emacs-password-store-otp")
19875 (version "0.1.5")
19876 (source
19877 (origin
19878 (method git-fetch)
19879 (uri (git-reference
19880 (url "https://github.com/volrath/password-store-otp.el")
19881 (commit version)))
19882 (sha256
19883 (base32 "0gb48blvnn6ci2wl45z81p41ny7vbgl610hqy6b2hyr2171qjd60"))
19884 (file-name (git-file-name name version))))
19885 (build-system emacs-build-system)
19886 (propagated-inputs
19887 (list emacs-password-store emacs-s))
19888 (home-page "https://github.com/volrath/password-store-otp.el")
19889 (synopsis
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
19894 needed.")
19895 (license license:gpl3+)))
19896
19897 (define-public emacs-auth-source-pass
19898 (let ((commit "847a1f54ed48856b4dfaaa184583ef2c84173edf")
19899 (revision "2"))
19900 (package
19901 (name "emacs-auth-source-pass")
19902 (version (git-version "5.0.0" revision commit))
19903 (source
19904 (origin
19905 (method git-fetch)
19906 (uri (git-reference
19907 (url "https://github.com/DamienCassou/auth-password-store")
19908 (commit commit)))
19909 (file-name (git-file-name name version))
19910 (sha256
19911 (base32 "0g48z5w6n3c54zqfpx65dfyl9jqbl15idvbb1hhw2pd9f9r8fykk"))))
19912 (build-system emacs-build-system)
19913 (arguments
19914 `(#:tests? #t
19915 #:test-command '("emacs" "--batch"
19916 "-L" "."
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+))))
19924
19925 (define-public emacs-pass
19926 (package
19927 (name "emacs-pass")
19928 (version "2.0")
19929 (source
19930 (origin
19931 (method git-fetch)
19932 (uri (git-reference
19933 (url "https://github.com/NicolasPetton/pass")
19934 (commit version)))
19935 (file-name (git-file-name name version))
19936 (sha256
19937 (base32 "0jc8j421mlflspg24jvrqc2n3y5n3cpk3hjy560il8g36xi1049p"))))
19938 (build-system emacs-build-system)
19939 (propagated-inputs
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+)))
19947
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")
19952 (revision "2"))
19953 (package
19954 (name "emacs-psc-ide")
19955 (version (git-version "0.1.0" revision commit))
19956 (source
19957 (origin
19958 (method git-fetch)
19959 (uri
19960 (git-reference
19961 (url "https://github.com/purescript-emacs/psc-ide-emacs")
19962 (commit commit)))
19963 (file-name (git-file-name name version))
19964 (sha256
19965 (base32 "0xfw93pdf744h2yswc53qwyawfzkc31rv8dmha3irq7k1nklhq6y"))))
19966 (build-system emacs-build-system)
19967 (propagated-inputs
19968 (list emacs-company emacs-dash emacs-flycheck emacs-let-alist
19969 emacs-s))
19970 (home-page "https://github.com/purescript-emacs/psc-ide-emacs")
19971 (synopsis "Emacs integration for PureScript's psc-ide tool")
19972 (description
19973 "This package provices Emacs integration for @code{psc-ide}, an IDE
19974 protocol for PureScript programming language. It features:
19975
19976 @itemize
19977 @item Completions
19978 @item Type at point
19979 @item Go to definition
19980 @item Automatic imports
19981 @item Case split
19982 @item Build system integration, and
19983 @item Flycheck support
19984 @end itemize")
19985 (license license:gpl3+))))
19986
19987 (define-public emacs-evil-anzu
19988 (package
19989 (name "emacs-evil-anzu")
19990 (version "0.03")
19991 (source
19992 (origin
19993 (method git-fetch)
19994 (uri (git-reference
19995 (url "https://github.com/syohex/emacs-evil-anzu")
19996 (commit version)))
19997 (file-name (git-file-name name version))
19998 (sha256
19999 (base32 "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr"))))
20000 (build-system emacs-build-system)
20001 (propagated-inputs
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+)))
20008
20009 (define-public emacs-pg
20010 (package
20011 (name "emacs-pg")
20012 (version "0.20")
20013 (source (origin
20014 (method git-fetch)
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))
20018 (sha256
20019 (base32
20020 "0a38rvl5rwfb77p4xxmjhrs6s67pfkzjfm0pdxvf0b6xh7h404kh"))))
20021 (build-system emacs-build-system)
20022 (home-page "https://github.com/emarsden/pg-el")
20023 (synopsis "Emacs Lisp interface for PostgreSQL")
20024 (description
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
20029 end users.")
20030 (license license:gpl2+)))
20031
20032 (define-public emacs-finalize
20033 (package
20034 (name "emacs-finalize")
20035 (version "2.0.0")
20036 (source
20037 (origin
20038 (method git-fetch)
20039 (uri (git-reference
20040 (url "https://github.com/skeeto/elisp-finalize")
20041 (commit version)))
20042 (file-name (git-file-name name version))
20043 (sha256
20044 (base32 "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"))))
20045 (build-system emacs-build-system)
20046 (home-page "https://github.com/skeeto/elisp-finalize")
20047 (synopsis "Finalizers for Emacs Lisp")
20048 (description
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)))
20054
20055 (define-public emacs-emacsql
20056 (package
20057 (name "emacs-emacsql")
20058 (version "3.1.1")
20059 (source
20060 (origin
20061 (method git-fetch)
20062 (uri (git-reference
20063 (url "https://github.com/skeeto/emacsql")
20064 (commit (string-append version))))
20065 (file-name (git-file-name name version))
20066 (sha256
20067 (base32 "1xpmji2qgr9r38cdhws65x9s9jy7fk93q8g1j2fm7j8kcfjh9x3g"))))
20068 (build-system emacs-build-system)
20069 (arguments
20070 (list
20071 #:modules '((guix build emacs-build-system)
20072 (guix build utils)
20073 (guix build emacs-utils)
20074 (srfi srfi-26))
20075 #:phases
20076 #~(modify-phases %standard-phases
20077 (add-before 'install 'patch-elisp-shell-shebangs
20078 (lambda _
20079 (substitute* (find-files "." "\\.el")
20080 (("/bin/sh") (which "sh")))))
20081 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
20082 (lambda _
20083 (setenv "SHELL" "sh")))
20084 (add-after 'setenv-shell 'build-emacsql-sqlite
20085 (lambda _
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.
20089 (lambda _
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.
20095 (lambda _
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")))))))))
20102 (inputs
20103 (list emacs-minimal `(,mariadb "dev") `(,mariadb "lib") postgresql))
20104 (propagated-inputs
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+)))
20113
20114 (define-public emacs-emacsql-sqlite3
20115 (package
20116 (name "emacs-emacsql-sqlite3")
20117 (version "1.0.2")
20118 (source
20119 (origin
20120 (method git-fetch)
20121 (uri (git-reference
20122 (url "https://github.com/cireu/emacsql-sqlite3")
20123 (commit version)))
20124 (file-name (git-file-name name version))
20125 (sha256
20126 (base32 "1jzvvsvi8jm2ws3y49nmpmwd3zlvf8j83rl2vwizd1aplwwdnmd6"))))
20127 (build-system emacs-build-system)
20128 (arguments
20129 `(#:tests? #t
20130 #:test-command '("emacs" "-Q" "--batch" "-L" "."
20131 "--load" "emacsql-sqlite3-test.el"
20132 "-f" "ert-run-tests-batch-and-exit")
20133 #:phases
20134 (modify-phases %standard-phases
20135 (add-after 'unpack 'embed-path-to-sqlite3
20136 (lambda _
20137 (substitute* "emacsql-sqlite3.el"
20138 (("\\(executable-find \"sqlite3\"\\)")
20139 (string-append "\"" (which "sqlite3") "\""))))))))
20140 (native-inputs
20141 (list emacs-ert-runner))
20142 (inputs
20143 (list sqlite))
20144 (propagated-inputs
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+)))
20151
20152 (define-public emacs-closql
20153 (package
20154 (name "emacs-closql")
20155 (version "1.2.1")
20156 (source
20157 (origin
20158 (method git-fetch)
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))
20163 (sha256
20164 (base32
20165 "1s9riibws28xjn2bjn9qz3m2gvcmrn18b7g5y6am4sy7rgkx3nwx"))))
20166 (build-system emacs-build-system)
20167 (propagated-inputs
20168 (list emacs-emacsql))
20169 (home-page "https://github.com/emacscollective/closql")
20170 (synopsis "Store EIEIO objects using EmacSQL")
20171 (description
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)))
20178
20179 (define-public emacs-epkg
20180 (package
20181 (name "emacs-epkg")
20182 (version "3.3.3")
20183 (source
20184 (origin
20185 (method git-fetch)
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))
20190 (sha256
20191 (base32 "0d09ddlhvgp8rpybqmzvzpzdp1hjaq97wp2br4g90lpx2vclkgn7"))))
20192 (build-system emacs-build-system)
20193 (arguments
20194 `(#:phases
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")
20202 "/share/info")))
20203 (install-file "epkg.info" info)))))
20204 (add-after 'make-info 'move-to-lisp-directory
20205 ;; Source code is located in "lisp/".
20206 (lambda _
20207 (chdir "lisp")))
20208 (add-after 'expand-load-path 'add-el-dir-to-emacs-load-path
20209 (lambda _
20210 (setenv "EMACSLOADPATH"
20211 (string-append (getcwd)
20212 "/lisp:"
20213 (getenv "EMACSLOADPATH"))))))))
20214 (native-inputs
20215 (list texinfo))
20216 (propagated-inputs
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+)))
20225
20226 (define-public emacs-elisp-slime-nav
20227 (package
20228 (name "emacs-elisp-slime-nav")
20229 (version "0.10")
20230 (source
20231 (origin
20232 (method git-fetch)
20233 (uri (git-reference
20234 (url "https://github.com/purcell/elisp-slime-nav")
20235 (commit version)))
20236 (file-name (git-file-name name version))
20237 (sha256
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")
20242 (description
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+)))
20247
20248 (define-public emacs-dedicated
20249 (package
20250 (name "emacs-dedicated")
20251 (version "1.0.0")
20252 (source
20253 (origin
20254 (method git-fetch)
20255 (uri (git-reference
20256 (url "https://github.com/emacsorphanage/dedicated")
20257 (commit version)))
20258 (file-name (git-file-name name version))
20259 (sha256
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")
20264 (description
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
20270 the source file.")
20271 (license license:gpl2+)))
20272
20273 (define-public emacs-nnreddit
20274 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
20275 (revision "1"))
20276 (package
20277 (name "emacs-nnreddit")
20278 (version (string-append "0.0.1-" revision "."
20279 (string-take commit 7)))
20280 (source (origin
20281 (method git-fetch)
20282 (uri (git-reference
20283 (url "https://github.com/paul-issartel/nnreddit")
20284 (commit commit)))
20285 (file-name (git-file-name name version))
20286 (sha256
20287 (base32
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
20293 newsreader.")
20294 (license license:gpl3+))))
20295
20296 (define-public emacs-makey
20297 (package
20298 (name "emacs-makey")
20299 (version "0.3")
20300 (source
20301 (origin
20302 (method git-fetch)
20303 (uri (git-reference
20304 (url "https://github.com/mickeynp/makey")
20305 (commit version)))
20306 (file-name (git-file-name name version))
20307 (sha256
20308 (base32 "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"))))
20309 (build-system emacs-build-system)
20310 (home-page "https://github.com/mickeynp/makey")
20311 (synopsis "Emacs interactive command-line mode")
20312 (description
20313 "This package provides an Emacs interactive command-line mode.")
20314 (license license:gpl3+)))
20315
20316 (define-public emacs-outorg
20317 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
20318 (package
20319 (name "emacs-outorg")
20320 (version (git-version "2.0" "1" commit))
20321 (source
20322 (origin
20323 (method git-fetch)
20324 (uri (git-reference
20325 (url "https://github.com/alphapapa/outorg")
20326 (commit commit)))
20327 (file-name (git-file-name name version))
20328 (sha256
20329 (base32
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+))))
20340
20341 (define-public emacs-outshine
20342 (package
20343 (name "emacs-outshine")
20344 (version "3.0.1")
20345 (source (origin
20346 (method git-fetch)
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))
20351 (sha256
20352 (base32
20353 "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg"))))
20354 (build-system emacs-build-system)
20355 (propagated-inputs
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+)))
20365
20366 (define-public emacs-frecency
20367 (let ((commit "31ef9ff4af1a4fed3dcc24ea74037feea8795c87")
20368 (version "0.1-pre")
20369 (revision "1"))
20370 (package
20371 (name "emacs-frecency")
20372 (version (git-version version revision commit))
20373 (source (origin
20374 (method git-fetch)
20375 (uri (git-reference
20376 (url "https://github.com/alphapapa/frecency.el")
20377 (commit commit)))
20378 (sha256
20379 (base32
20380 "051aihjdg3x22svaxhwylpi8i6s2x9j8syvsj1jgilgjjdy15l6j"))
20381 (file-name (git-file-name name version))))
20382 (build-system emacs-build-system)
20383 (propagated-inputs
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+))))
20390
20391 (define-public emacs-org-recent-headings
20392 (let ((commit "97418d581ea030f0718794e50b005e9bae44582e")
20393 (revision "0"))
20394 (package
20395 (name "emacs-org-recent-headings")
20396 (version (git-version "0.1" revision commit))
20397 (source
20398 (origin
20399 (method git-fetch)
20400 (uri (git-reference
20401 (url "https://github.com/alphapapa/org-recent-headings")
20402 (commit commit)))
20403 (file-name (git-file-name name version))
20404 (sha256
20405 (base32 "1y11rlnhi36lzhc1cagninv6hlcwbvj88xfr0g0xzpbzy7hys021"))))
20406 (build-system emacs-build-system)
20407 (propagated-inputs
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")
20411 (description
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+))))
20415
20416 (define-public emacs-org-super-agenda
20417 (package
20418 (name "emacs-org-super-agenda")
20419 (version "1.2")
20420 (source
20421 (origin
20422 (method git-fetch)
20423 (uri (git-reference
20424 (url "https://github.com/alphapapa/org-super-agenda")
20425 (commit version)))
20426 (file-name (git-file-name name version))
20427 (sha256
20428 (base32 "10l9h2n09cql4ih7nc0ma3ghdsq9l5v9xlj1lg7kq67icdwjlsvy"))))
20429 (build-system emacs-build-system)
20430 (arguments
20431 `(#:tests? #f ;FIXNE: Tests try to read "~/org/test.org"
20432 #:test-command '("test/run" "--debug")
20433 #:phases
20434 (modify-phases %standard-phases
20435 (add-after 'unpack 'prepare-for-tests.el
20436 (lambda _
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"))))))))
20446 (native-inputs
20447 (list emacs-f util-linux))
20448 (propagated-inputs
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+)))
20455
20456 (define-public emacs-elegant-agenda-mode
20457 (let ((commit "c72f42e0f551c3dd81e68262f07a96c0ec90a589")
20458 (revision "1"))
20459 (package
20460 (name "emacs-elegant-agenda-mode")
20461 (version (git-version "0.1.0" revision commit))
20462 (source
20463 (origin
20464 (method git-fetch)
20465 (uri (git-reference
20466 (url "https://github.com/justinbarclay/elegant-agenda-mode")
20467 (commit commit)))
20468 (file-name (git-file-name name version))
20469 (sha256
20470 (base32
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")
20475 (description
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+))))
20480
20481 (define-public emacs-org-make-toc
20482 (package
20483 (name "emacs-org-make-toc")
20484 (version "0.5")
20485 (source (origin
20486 (method git-fetch)
20487 (uri (git-reference
20488 (url "https://github.com/alphapapa/org-make-toc")
20489 (commit version)))
20490 (file-name (git-file-name name version))
20491 (sha256
20492 (base32
20493 "180ji6nnj6qj0rs1rdp1zlcrfsqf7ikb44ym8icbp5d6al2s4hnr"))))
20494 (build-system emacs-build-system)
20495 (propagated-inputs
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+)))
20502
20503 (define-public emacs-ts
20504 ;; XXX: Upstream did not tag last release. Use commit matching version
20505 ;; bump.
20506 (let ((commit "552936017cfdec89f7fc20c254ae6b37c3f22c5b"))
20507 (package
20508 (name "emacs-ts")
20509 (version "0.3")
20510 (source
20511 (origin
20512 (method git-fetch)
20513 (uri (git-reference
20514 (url "https://github.com/alphapapa/ts.el")
20515 (commit commit)))
20516 (sha256
20517 (base32 "18lif159zndl19ddz9rfq12l90770858yasfns21ryl1yrq3aifr"))
20518 (file-name (git-file-name name version))))
20519 (build-system emacs-build-system)
20520 (arguments
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.
20524
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
20530 ;; seconds.
20531
20532 ;; The failing tests all have similar problems, but nothing else about
20533 ;; the library seems particularly off.
20534 (list
20535 #:tests? #t
20536 #:test-command #~(list "emacs" "--batch"
20537 "-l" "test/test.el"
20538 "-f" "ert-run-tests-batch-and-exit")
20539 #:phases
20540 #~(modify-phases %standard-phases
20541 (add-before 'check 'make-tests-writable
20542 (lambda _
20543 (make-file-writable "test/test.el")))
20544 (add-before 'check 'delete-failing-tests
20545 (lambda _
20546 (emacs-batch-edit-file "test/test.el"
20547 `(progn
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)
20556 (kill-sexp)
20557 (goto-char (point-min)))
20558 (basic-save-buffer))))))))
20559 (propagated-inputs
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+))))
20566
20567 (define-public emacs-circadian
20568 (package
20569 (name "emacs-circadian")
20570 (version "0.3.3")
20571 (source
20572 (origin
20573 (method git-fetch)
20574 (uri (git-reference
20575 (url "https://github.com/guidoschmidt/circadian.el")
20576 (commit version)))
20577 (file-name (git-file-name name version))
20578 (sha256
20579 (base32 "1hydxhmcchaprfmp08xr6nlksz6y97jbf4mswj69bgdfjfbf22km"))))
20580 (arguments
20581 (list
20582 #:tests? #t
20583 #:test-command
20584 #~(list "emacs" "--batch"
20585 "-l" "test.el"
20586 "--eval" "(ert-run-tests-batch-and-exit test-order)")))
20587 (build-system emacs-build-system)
20588 (native-inputs
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+
20597 license:expat))))
20598
20599 (define-public emacs-peg
20600 (package
20601 (name "emacs-peg")
20602 (version "1.0.1")
20603 (source
20604 (origin
20605 (method url-fetch)
20606 (uri (string-append "https://elpa.gnu.org/packages/peg-" version ".tar"))
20607 (sha256
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+)))
20615
20616 (define-public emacs-eldev
20617 (package
20618 (name "emacs-eldev")
20619 (version "1.3.1")
20620 (source
20621 (origin
20622 (method git-fetch)
20623 (uri (git-reference
20624 (url "https://github.com/doublep/eldev")
20625 (commit version)))
20626 (file-name (git-file-name name version))
20627 (sha256
20628 (base32 "14rrh5ycwd3r5k3df8aif4jii645m5jgplxky3hrjgr8vxd951h8"))))
20629 (build-system emacs-build-system)
20630 (arguments
20631 (list
20632 #:tests? #t
20633 #:test-command #~(list "./bin/eldev" "-p" "-dtTC" "test")
20634 #:phases
20635 #~(modify-phases %standard-phases
20636 (add-after 'unpack 'prepare-for-tests
20637 (lambda _
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.
20642 (lambda _
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.
20647 (lambda _
20648 (let ((bin (string-append #$output "/bin"))
20649 (site-lisp (elpa-directory #$output)))
20650 (mkdir-p bin)
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
20656 ;; invoked.
20657 (("export ELDEV_EMACS.*" all)
20658 (string-append "export ELDEV_LOCAL=" site-lisp "\n" all)))))))))
20659 (native-inputs
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+)))
20670
20671 (define-public emacs-with-simulated-input
20672 (package
20673 (name "emacs-with-simulated-input")
20674 (version "3.0")
20675 (source
20676 (origin
20677 (method git-fetch)
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))
20682 (sha256
20683 (base32
20684 "0n8h84whsh0aph8xhn9plprix9f6bysgvarz2anz7kwns19js6s4"))))
20685 (build-system emacs-build-system)
20686 (arguments
20687 ;; The test suite fails with error: "Spies can only be created in
20688 ;; ‘before-each’".
20689 `(#:tests? #f
20690 #:test-command '("buttercup" "-L" ".")))
20691 (native-inputs
20692 (list emacs-buttercup emacs-undercover))
20693 (propagated-inputs
20694 (list emacs-s))
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+)))
20704
20705 (define-public emacs-org-ql
20706 (package
20707 (name "emacs-org-ql")
20708 (version "0.6.2")
20709 (source (origin
20710 (method git-fetch)
20711 (uri (git-reference
20712 (url "https://github.com/alphapapa/org-ql")
20713 (commit version)))
20714 (sha256
20715 (base32
20716 "0iamqv5j43ngj1xdqr36rkgk9lqpk9bg8y531jsldnvwzrp3srpf"))
20717 (file-name (git-file-name name version))))
20718 (build-system emacs-build-system)
20719 (propagated-inputs
20720 (list emacs-dash
20721 emacs-f
20722 emacs-helm
20723 emacs-helm-org
20724 emacs-org
20725 emacs-org-super-agenda
20726 emacs-ov
20727 emacs-peg
20728 emacs-ts
20729 emacs-s))
20730 (native-inputs
20731 (list emacs-buttercup emacs-with-simulated-input))
20732 (arguments
20733 `(#:tests? #t
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+)))
20740
20741 (define-public emacs-bing-dict
20742 (package
20743 (name "emacs-bing-dict")
20744 (version "0.2.4")
20745 (source (origin
20746 (method git-fetch)
20747 (uri (git-reference
20748 (url "https://github.com/cute-jumper/bing-dict.el")
20749 (commit version)))
20750 (file-name (git-file-name name version))
20751 (sha256
20752 (base32
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")
20757 (description
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+)))
20762
20763 (define-public emacs-org-auto-tangle
20764 (package
20765 (name "emacs-org-auto-tangle")
20766 (version "0.6.0")
20767 (source (origin
20768 (method git-fetch)
20769 (uri (git-reference
20770 (url "https://github.com/yilkalargaw/org-auto-tangle")
20771 (commit version)))
20772 (file-name (git-file-name name version))
20773 (sha256
20774 (base32
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")
20780 (description
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)))
20784
20785 (define-public emacs-org-auto-expand
20786 (let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62")
20787 (revision "1"))
20788 (package
20789 (name "emacs-org-auto-expand")
20790 (version (git-version "0.1" revision commit))
20791 (source (origin
20792 (method git-fetch)
20793 (uri (git-reference
20794 (url "https://github.com/alphapapa/org-auto-expand")
20795 (commit commit)))
20796 (file-name (git-file-name name version))
20797 (sha256
20798 (base32
20799 "1my0c6xmkh37lwi6l472lz9d86lf20h6xcllzlxm1lxa24rhva6v"))))
20800 (build-system emacs-build-system)
20801 (propagated-inputs
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+))))
20808
20809 (define-public emacs-parsebib
20810 (package
20811 (name "emacs-parsebib")
20812 (version "4.3")
20813 (source
20814 (origin
20815 (method git-fetch)
20816 (uri (git-reference
20817 (url "https://github.com/joostkremers/parsebib")
20818 (commit version)))
20819 (file-name (git-file-name name version))
20820 (sha256
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")
20825 (description
20826 "This package provides an Emacs library for parsing @file{.bib} files.")
20827 (license license:gpl3+)))
20828
20829 (define-public emacs-ebib
20830 (package
20831 (name "emacs-ebib")
20832 (version "2.39.3")
20833 (source
20834 (origin
20835 (method git-fetch)
20836 (uri (git-reference
20837 (url "https://github.com/joostkremers/ebib")
20838 (commit version)))
20839 (file-name (git-file-name name version))
20840 (sha256
20841 (base32 "1azgsjf5j8k6llq74brykidcb2mnq6fghk8jyq7qad5afh7n0mrc"))))
20842 (build-system emacs-build-system)
20843 (propagated-inputs
20844 (list emacs-biblio emacs-ivy emacs-parsebib))
20845 (home-page "https://joostkremers.github.io/ebib/")
20846 (synopsis "BibTeX database manager for Emacs")
20847 (description
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
20855 ;; GPL.
20856 (license (list license:bsd-3
20857 license:gpl3+))))
20858
20859 (define-public emacs-biblio
20860 (package
20861 (name "emacs-biblio")
20862 (version "0.2")
20863 (source
20864 (origin
20865 (method git-fetch)
20866 (uri (git-reference
20867 (url "https://github.com/cpitclaudel/biblio.el")
20868 (commit version)))
20869 (file-name (git-file-name name version))
20870 (sha256
20871 (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"))))
20872 (build-system emacs-build-system)
20873 (propagated-inputs
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.
20879
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+)))
20884
20885 (define-public emacs-citar
20886 (package
20887 (name "emacs-citar")
20888 (version "1.0")
20889 (source (origin
20890 (method git-fetch)
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))
20895 (sha256
20896 (base32
20897 "1n69lkp7298gasm9hlbx9nhgp9ggh8w8ffyvi1rmbj96lcnpsyi9"))))
20898 (build-system emacs-build-system)
20899 (arguments
20900 `(#:phases (modify-phases %standard-phases
20901 (add-before 'build 'set-home
20902 (lambda _
20903 (setenv "HOME" "/tmp"))))))
20904 (propagated-inputs (list emacs-auctex
20905 emacs-citeproc-el
20906 emacs-embark
20907 emacs-org
20908 emacs-parsebib
20909 emacs-s))
20910 (home-page "https://github.com/bdarcus/citar")
20911 (synopsis "Emacs package to quickly find and act on bibliographic entries")
20912 (description
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.
20916
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.
20921
20922 With Embark, it also makes available at-point actions in Org
20923 citations.")
20924 (license license:gpl3+)))
20925
20926 (define-public emacs-citar-org-roam
20927 (package
20928 (name "emacs-citar-org-roam")
20929 (version "0.3")
20930 (source
20931 (origin
20932 (method git-fetch)
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))
20937 (sha256
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")
20943 (description "\
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:
20948 @itemize
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
20953 @end itemize")
20954 (license license:gpl3)))
20955
20956 (define-public emacs-helm-bibtex
20957 (let ((commit "aa775340ba691d2322948bfdc6a88158568a1399")
20958 (revision "3"))
20959 (package
20960 (name "emacs-helm-bibtex")
20961 (version (git-version "2.0.0" revision commit))
20962 (source
20963 (origin
20964 (method git-fetch)
20965 (uri (git-reference
20966 (url "https://github.com/tmalsburg/helm-bibtex")
20967 (commit commit)))
20968 (file-name (git-file-name name version))
20969 (sha256
20970 (base32 "1d3mc17ga09m41i06khghlvixr6gsiacifnhdbrfnp0w5592aprk"))))
20971 (build-system emacs-build-system)
20972 (propagated-inputs
20973 (list emacs-helm
20974 emacs-parsebib
20975 emacs-s
20976 emacs-dash
20977 emacs-f
20978 emacs-biblio
20979 emacs-ivy))
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.
20984
20985 Key features:
20986
20987 @itemize
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.
20999 @end itemize\n")
21000 (license license:gpl3+))))
21001
21002 (define-public emacs-ewmctrl
21003 (package
21004 (name "emacs-ewmctrl")
21005 (version "1.0.0")
21006 (source
21007 (origin
21008 (method git-fetch)
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))
21013 (sha256
21014 (base32
21015 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
21016 (build-system emacs-build-system)
21017 (arguments
21018 '(#:phases
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.
21023 (lambda _
21024 (let ((file "ewmctrl.el"))
21025 (chmod file #o644)
21026 (emacs-substitute-sexps file
21027 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
21028 (inputs
21029 (list 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+)))
21035
21036 (define-public emacs-erc-image
21037 (let ((commit "82fb3871f02e24b1e880770b9a3d187aab43d0f0")
21038 (revision "3"))
21039 (package
21040 (name "emacs-erc-image")
21041 (version (git-version "0" revision commit))
21042 (source
21043 (origin
21044 (method git-fetch)
21045 (uri (git-reference
21046 (url "https://github.com/kidd/erc-image.el")
21047 (commit commit)))
21048 (file-name (git-file-name name version))
21049 (sha256
21050 (base32
21051 "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i"))))
21052 (build-system emacs-build-system)
21053 (arguments
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+))))
21065
21066 (define-public emacs-helm-gtags
21067 (package
21068 (name "emacs-helm-gtags")
21069 (version "1.5.7")
21070 (source
21071 (origin
21072 (method git-fetch)
21073 (uri (git-reference
21074 (url "https://github.com/syohex/emacs-helm-gtags")
21075 (commit version)))
21076 (file-name (git-file-name name version))
21077 (sha256
21078 (base32 "1kc1jzk10nfd2v20g8dwnb6a944afrwdwnkzl06w4ba8k4yim7gi"))))
21079 (build-system emacs-build-system)
21080 (propagated-inputs
21081 (list emacs-helm))
21082 (home-page "https://github.com/syohex/emacs-helm-gtags")
21083 (synopsis "Emacs Helm interface to GNU Global")
21084 (description
21085 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
21086 (license license:gpl3+)))
21087
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"))
21092 (package
21093 (name "emacs-list-utils")
21094 (version (git-version "0.4.6" revision commit))
21095 (source (origin
21096 (method git-fetch)
21097 (uri (git-reference
21098 (url "https://github.com/rolandwalker/list-utils")
21099 (commit commit)))
21100 (file-name (git-file-name name version))
21101 (sha256
21102 (base32
21103 "11nm8649a131bn2kwj4fxkiijdx2d4f1byx7a985zlb3bzdwnaw8"))))
21104 (build-system emacs-build-system)
21105 (home-page "https://github.com/rolandwalker/list-utils")
21106 (synopsis "List-manipulation utility functions")
21107 (description
21108 "This package provides a list manipulation library for Emacs.")
21109 (license license:gpl3+))))
21110
21111 (define-public emacs-parsec
21112 (package
21113 (name "emacs-parsec")
21114 (version "0.1.4")
21115 (source
21116 (origin
21117 (method git-fetch)
21118 (uri (git-reference
21119 (url "https://github.com/cute-jumper/parsec.el")
21120 (commit version)))
21121 (file-name (git-file-name name version))
21122 (sha256
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")
21127 (description
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+)))
21135
21136 (define-public emacs-move-text
21137 (package
21138 (name "emacs-move-text")
21139 (version "2.0.10")
21140 (source
21141 (origin
21142 (method git-fetch)
21143 (uri (git-reference
21144 (url "https://github.com/emacsfodder/move-text")
21145 (commit version)))
21146 (file-name (git-file-name name version))
21147 (sha256
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
21154 region instead.")
21155 (license license:gpl3+)))
21156
21157 (define-public emacs-validate
21158 (package
21159 (name "emacs-validate")
21160 (version "1.0.5")
21161 (source (origin
21162 (method git-fetch)
21163 (uri (git-reference
21164 (url "https://github.com/Malabarba/validate.el")
21165 (commit version)))
21166 (file-name (git-file-name name version))
21167 (sha256
21168 (base32
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+)))
21176
21177 (define-public emacs-rainbow-blocks
21178 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
21179 (package
21180 (name "emacs-rainbow-blocks")
21181 (version (git-version "1.0.0" "1" commit))
21182 (source (origin
21183 (method git-fetch)
21184 (uri (git-reference
21185 (url "https://github.com/istib/rainbow-blocks")
21186 (commit commit)))
21187 (file-name (git-file-name name version))
21188 (sha256
21189 (base32
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+))))
21199
21200 (define-public emacs-tree-mode
21201 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
21202 (revision "1"))
21203 (package
21204 (name "emacs-tree-mode")
21205 (version (string-append "0.0.1" "-" revision "."
21206 (string-take commit 7)))
21207 (source
21208 (origin
21209 (method git-fetch)
21210 (uri (git-reference
21211 (url "https://github.com/emacsorphanage/tree-mode")
21212 (commit commit)))
21213 (file-name (git-file-name name version))
21214 (sha256
21215 (base32
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")
21220 (description
21221 "This package provides an Emacs library to manage tree widgets.")
21222 (license license:gpl3+))))
21223
21224 (define-public emacs-md4rd
21225 (package
21226 (name "emacs-md4rd")
21227 (version "0.3.1")
21228 (source (origin
21229 (method git-fetch)
21230 (uri (git-reference
21231 (url "https://github.com/ahungry/md4rd")
21232 (commit version)))
21233 (file-name (git-file-name name version))
21234 (sha256
21235 (base32
21236 "1n6g6k4adzkkn1g7z4j27s35xy12c1fg2r08gv345ddr3wplq4ri"))))
21237 (propagated-inputs
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")
21242 (description
21243 "This package allows reading Reddit from within Emacs interactively.")
21244 (license license:gpl3+)))
21245
21246 (define-public emacs-pulseaudio-control
21247 (let ((commit "a931533140547510decdc368f39b2d2b97ca725f")
21248 (revision "4"))
21249 (package
21250 (name "emacs-pulseaudio-control")
21251 (version (git-version "0.0.1" revision commit))
21252 (source
21253 (origin
21254 (method git-fetch)
21255 (uri (git-reference
21256 (url "https://github.com/flexibeast/pulseaudio-control")
21257 (commit commit)))
21258 (file-name (git-file-name name version))
21259 (sha256
21260 (base32
21261 "1jvjn9jszjjapi167an49jxcvr88cvgjwykglhp4b8lwhbjfqw76"))))
21262 (build-system emacs-build-system)
21263 (arguments
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")))
21272 #t))))))
21273 (inputs (list pulseaudio))
21274 (home-page "https://github.com/flexibeast/pulseaudio-control")
21275 (synopsis "Control @code{pulseaudio} from Emacs")
21276 (description
21277 "This package allows controlling @code{pulseaudio} from Emacs.")
21278 (license license:gpl3+))))
21279
21280 (define-public emacs-pulsar
21281 (package
21282 (name "emacs-pulsar")
21283 (version "0.5.0")
21284 (source (origin
21285 (method git-fetch)
21286 (uri (git-reference
21287 (url "https://git.sr.ht/~protesilaos/pulsar")
21288 (commit version)))
21289 (file-name (git-file-name name version))
21290 (sha256
21291 (base32
21292 "0wwj9civyidfcv0k859w0i2aqb75dypy7aihk3cnv1nv2q4m61j5"))))
21293 (native-inputs (list texinfo))
21294 (build-system emacs-build-system)
21295 (arguments
21296 (list
21297 #:phases
21298 #~(modify-phases %standard-phases
21299 (add-after 'install 'makeinfo
21300 (lambda _
21301 (invoke "emacs"
21302 "--batch"
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
21313
21314 (define-public emacs-datetime
21315 (package
21316 (name "emacs-datetime")
21317 (version "0.7.2")
21318 (source
21319 (origin
21320 (method git-fetch)
21321 (uri (git-reference
21322 (url "https://github.com/doublep/datetime")
21323 (commit version)))
21324 (file-name (git-file-name name version))
21325 (sha256
21326 (base32 "10nf3y4abwkwvi4g11mdwi0dydy4kzfyv21y06dsxm1hc1gmq7zx"))))
21327 (build-system emacs-build-system)
21328 (arguments
21329 `(#:include (cons "^[^/]*\\.extmap$" %default-include)))
21330 (inputs
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+)))
21337
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"))
21342 (package
21343 (name "emacs-org-mind-map")
21344 (version "0.4")
21345 (source
21346 (origin
21347 (method git-fetch)
21348 (uri (git-reference
21349 (url "https://github.com/theodorewiles/org-mind-map")
21350 (commit commit)))
21351 (file-name (git-file-name name version))
21352 (sha256
21353 (base32 "08sj43py6aid4vpqgsm0v5n94mcmcil0047qjk033492glz6q55c"))))
21354 (propagated-inputs
21355 (list emacs-dash))
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")
21359 (description
21360 "This package creates Graphviz directed graphs from Org files.")
21361 (license license:gpl3+))))
21362
21363 (define-public emacs-npm-mode
21364 (package
21365 (name "emacs-npm-mode")
21366 (version "0.6.0")
21367 (source
21368 (origin
21369 (method git-fetch)
21370 (uri (git-reference
21371 (url "https://github.com/mojochao/npm-mode")
21372 (commit version)))
21373 (file-name (git-file-name name version))
21374 (sha256
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")
21379 (description
21380 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
21381 (license license:gpl3+)))
21382
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"))
21387 (package
21388 (name "emacs-itail")
21389 (version "0.0.8")
21390 (source
21391 (origin
21392 (method git-fetch)
21393 (uri (git-reference
21394 (url "https://github.com/re5et/itail")
21395 (commit commit)))
21396 (file-name (git-file-name name version))
21397 (sha256
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+))))
21406
21407 (define-public emacs-loop
21408 (package
21409 (name "emacs-loop")
21410 (version "1.3")
21411 (source
21412 (origin
21413 (method git-fetch)
21414 (uri (git-reference
21415 (url "https://github.com/Wilfred/loop.el")
21416 (commit version)))
21417 (file-name (git-file-name name version))
21418 (sha256
21419 (base32 "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x"))))
21420 (build-system emacs-build-system)
21421 (native-inputs
21422 (list emacs-ert-runner emacs-undercover))
21423 (arguments
21424 `(#:tests? #t
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
21430 continue.")
21431 (license license:gpl3+)))
21432
21433 (define-public emacs-elisp-refs
21434 (package
21435 (name "emacs-elisp-refs")
21436 (version "1.4")
21437 (source
21438 (origin
21439 (method git-fetch)
21440 (uri (git-reference
21441 (url "https://github.com/Wilfred/elisp-refs")
21442 (commit version)))
21443 (file-name (git-file-name name version))
21444 (sha256
21445 (base32 "03p95kwvwb3apb3lhhdlaxs952x7sdlxa2qc1c77cjwrm5xzdg9z"))))
21446 (build-system emacs-build-system)
21447 (propagated-inputs
21448 (list emacs-dash
21449 emacs-f
21450 emacs-list-utils
21451 emacs-loop
21452 emacs-s
21453 emacs-shut-up))
21454 (native-inputs
21455 (list emacs-ert-runner emacs-undercover))
21456 (arguments
21457 (list
21458 #:tests? #t
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+)))
21466
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")
21471 (version "0.3.5"))
21472 (package
21473 (name "emacs-crdt")
21474 (version version)
21475 (source
21476 (origin
21477 (method git-fetch)
21478 (uri (git-reference
21479 (url "https://code.librehq.com/qhong/crdt.el")
21480 (commit commit)))
21481 (file-name (git-file-name name version))
21482 (sha256
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")
21487 (description
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
21492 mode.")
21493 (license license:gpl3+))))
21494
21495 (define-public emacs-crux
21496 (package
21497 (name "emacs-crux")
21498 (version "0.4.0")
21499 (source
21500 (origin
21501 (method git-fetch)
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))
21506 (sha256
21507 (base32
21508 "1h28chpyq61k72qh749r5kqq1y70wx3xw9c3zyfzmy750wlw6nyj"))))
21509 (build-system emacs-build-system)
21510 (home-page "https://github.com/bbatsov/crux")
21511 (synopsis "Collection of useful functions for Emacs")
21512 (description
21513 "@code{crux} provides a collection of useful functions for Emacs.")
21514 (license license:gpl3+)))
21515
21516 (define-public emacs-edit-server
21517 (package
21518 (name "emacs-edit-server")
21519 (version "1.16")
21520 (source
21521 (origin
21522 (method git-fetch)
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))
21527 (sha256
21528 (base32 "0m7gj224sqxjjw5sxky92fnrxg9jy4nf33kwf0aqxnfhqlgh545k"))))
21529 (build-system emacs-build-system)
21530 (arguments
21531 `(#:phases
21532 (modify-phases %standard-phases
21533 (add-after 'unpack 'chdir-elisp
21534 ;; Elisp directory is not in root of the source.
21535 (lambda _
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")
21540 (description
21541 "This package provides an edit server to respond to requests from Emacs.")
21542 (license license:gpl3+)))
21543
21544 (define-public emacs-m-buffer-el
21545 (package
21546 (name "emacs-m-buffer-el")
21547 (version "0.15")
21548 (source
21549 (origin
21550 (method git-fetch)
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))
21555 (sha256
21556 (base32
21557 "1sx76i59razwccvn6x7rx5a124bfyjw9fcbxf4gj7nsg33qiq809"))))
21558 (arguments
21559 (list
21560 #:phases
21561 #~(modify-phases %standard-phases
21562 (add-before 'install 'check
21563 (lambda* (#:key tests? #:allow-other-keys)
21564 (when tests?
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+)))
21575
21576 (define-public emacs-let-alist
21577 (package
21578 (name "emacs-let-alist")
21579 (version "1.0.6")
21580 (source
21581 (origin
21582 (method url-fetch)
21583 (uri (string-append
21584 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
21585 (sha256
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+)))
21593
21594 (define-public emacs-esup
21595 (let ((commit "0de8af8233d9ce1b67f05a50f25c481c4f1118d8")
21596 (revision "1"))
21597 (package
21598 (name "emacs-esup")
21599 (version (git-version "0.7.1" revision commit))
21600 (source
21601 (origin
21602 (method git-fetch)
21603 (uri (git-reference
21604 (url "https://github.com/jschaf/esup")
21605 (commit commit)))
21606 (file-name (git-file-name name version))
21607 (sha256
21608 (base32
21609 "01khb3xyj0ylwib6ryzzvqmkh5wvzxiq2n3l0s3h9zv7wx849bzv"))))
21610 (build-system emacs-build-system)
21611 (native-inputs
21612 (list emacs-noflet emacs-undercover emacs-buttercup))
21613 (propagated-inputs
21614 (list emacs-dash))
21615 (arguments
21616 `(#:tests? #t
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
21621 your Emacs.")
21622 (license license:gpl2+))))
21623
21624 (define-public emacs-restart-emacs
21625 (let ((commit "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9")
21626 (revision "1"))
21627 (package
21628 (name "emacs-restart-emacs")
21629 (version (git-version "0.1.1" revision commit))
21630 (source
21631 (origin
21632 (method git-fetch)
21633 (uri (git-reference
21634 (url "https://github.com/iqbalansari/restart-emacs")
21635 (commit commit)))
21636 (file-name (git-file-name name version))
21637 (sha256
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
21643 within Emacs.")
21644 (license license:gpl3+))))
21645
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"))
21650 (package
21651 (name "emacs-svg-lib")
21652 (version "0.2.5")
21653 (source
21654 (origin
21655 (method git-fetch)
21656 (uri (git-reference
21657 (url "https://github.com/rougier/svg-lib")
21658 (commit commit)))
21659 (file-name (git-file-name name version))
21660 (sha256
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")
21665 (description
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+))))
21671
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"))
21676 (package
21677 (name "emacs-svg-tag-mode")
21678 (version "0.3.2")
21679 (source
21680 (origin
21681 (method git-fetch)
21682 (uri (git-reference
21683 (url "https://github.com/rougier/svg-tag-mode")
21684 (commit commit)))
21685 (file-name (git-file-name name version))
21686 (sha256
21687 (base32 "0nc0y2dn67gy9cly3yamskfd9dd028xbask8gjxql934bq0ads2i"))))
21688 (build-system emacs-build-system)
21689 (propagated-inputs
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+))))
21696
21697 (define-public emacs-kind-icon
21698 (package
21699 (name "emacs-kind-icon")
21700 (version "0.1.9")
21701 (source
21702 (origin
21703 (method url-fetch)
21704 (uri (string-append "https://elpa.gnu.org/packages/kind-icon-"
21705 version ".tar"))
21706 (sha256
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
21715 functions.")
21716 (license license:gpl3+)))
21717
21718 (define-public emacs-svg-icon
21719 (let ((commit "ebc2b8d0f6c680fd575a90e683cc7b832acd1eb7")
21720 (revision "1"))
21721 (package
21722 (name "emacs-svg-icon")
21723 (version (git-version "0.1" revision commit))
21724 (source
21725 (origin
21726 (method git-fetch)
21727 (uri (git-reference
21728 (url "https://github.com/rougier/emacs-svg-icon")
21729 (commit commit)))
21730 (file-name (git-file-name name version))
21731 (sha256
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+)))))
21741
21742 (define-public emacs-sourcemap
21743 (package
21744 (name "emacs-sourcemap")
21745 (version "0.03")
21746 (source
21747 (origin
21748 (method git-fetch)
21749 (uri (git-reference
21750 (url "https://github.com/syohex/emacs-sourcemap")
21751 (commit version)))
21752 (file-name (git-file-name name version))
21753 (sha256
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+)))
21760
21761 (define-public emacs-macrostep
21762 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
21763 (package
21764 (name "emacs-macrostep")
21765 (version (git-version "0.9" "1" commit))
21766 (source (origin
21767 (method git-fetch)
21768 (uri (git-reference
21769 (url "https://github.com/joddie/macrostep")
21770 (commit commit)))
21771 (file-name (git-file-name name version))
21772 (sha256
21773 (base32
21774 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
21775 (build-system emacs-build-system)
21776 (arguments
21777 (list
21778 #:tests? #t
21779 #:phases
21780 #~(modify-phases %standard-phases
21781 (add-before 'check 'remove-test
21782 ;; Fails because of requirement ‘/bin/sh’.
21783 (lambda _
21784 (let ((file "macrostep-test.el"))
21785 (make-file-writable file)
21786 (emacs-batch-edit-file file
21787 `(progn (progn (goto-char (point-min))
21788 (re-search-forward
21789 "(ert-deftest macrostep-expand-c-macros")
21790 (beginning-of-line)
21791 (kill-sexp))
21792 (basic-save-buffer))))))
21793 (replace 'check
21794 (lambda* (#:key tests? #:allow-other-keys)
21795 (when tests?
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+))))
21809
21810 (define-public emacs-macrostep-geiser
21811 ;; XXX: Upstream does not tag commits (yet). The commit below matches the
21812 ;; version bump.
21813 (let ((commit "7927651b188cac07113bce5b2cd0de12b2b082f7"))
21814 (package
21815 (name "emacs-macrostep-geiser")
21816 (version "0.2.0")
21817 (source
21818 (origin
21819 (method git-fetch)
21820 (uri (git-reference
21821 (url "https://github.com/nbfalcon/macrostep-geiser")
21822 (commit commit)))
21823 (file-name (git-file-name name version))
21824 (sha256
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")
21830 (description
21831 "This plug-in implements a Macrostep back-end powered by Geiser.")
21832 (license license:gpl3+))))
21833
21834 (define-public emacs-parent-mode
21835 (package
21836 (name "emacs-parent-mode")
21837 (version "2.3")
21838 (source
21839 (origin
21840 (method git-fetch)
21841 (uri (git-reference
21842 (url "https://github.com/Fanael/parent-mode")
21843 (commit version)))
21844 (file-name (git-file-name name version))
21845 (sha256
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+)))
21852
21853 (define-public emacs-lacarte
21854 (package
21855 (name "emacs-lacarte")
21856 (version "0.1")
21857 (source (origin
21858 (method url-fetch)
21859 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
21860 (sha256
21861 (base32
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)))
21868
21869 (define-public emacs-latex-preview-pane
21870 (let ((commit "5297668a89996b50b2b62f99cba01cc544dbed2e")
21871 (revision "0"))
21872 (package
21873 (name "emacs-latex-preview-pane")
21874 (version (git-version "20151021" revision commit))
21875 (source (origin
21876 (method git-fetch)
21877 (uri (git-reference
21878 (url "https://github.com/jsinglet/latex-preview-pane")
21879 (commit commit)))
21880 (file-name (git-file-name name version))
21881 (sha256
21882 (base32
21883 "1m4f5p53275k8i9p0y105kkrp9nx1bwn6726my9s5dwnjhr5dnp2"))))
21884 (build-system emacs-build-system)
21885 (arguments
21886 (list
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
21894 buffer.")
21895 (license license:gpl3+))))
21896
21897 (define-public emacs-isearch-prop
21898 (let ((commit "4a2765f835dd115d472142da05215c4c748809f4")
21899 (revision "2"))
21900 (package
21901 (name "emacs-isearch-prop")
21902 (version (git-version "0" revision commit))
21903 (source
21904 (origin
21905 (method git-fetch)
21906 (uri (git-reference
21907 (url "https://github.com/emacsmirror/isearch-prop")
21908 (commit commit)))
21909 (file-name (git-file-name name version))
21910 (sha256
21911 (base32
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+))))
21922
21923 (define-public emacs-company-lua
21924 (let ((commit "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52")
21925 (revision "2"))
21926 (package
21927 (name "emacs-company-lua")
21928 (version (git-version "0.1" "2" commit))
21929 (source
21930 (origin
21931 (method git-fetch)
21932 (uri (git-reference
21933 (url "https://github.com/ptrv/company-lua")
21934 (commit commit)))
21935 (file-name (git-file-name name version))
21936 (sha256
21937 (base32
21938 "0ny2dcc7c585p7v3j6q0rpkbj1qmf2ismy8a5020jpr585xvz0hh"))))
21939 (build-system emacs-build-system)
21940 (propagated-inputs
21941 (list emacs-company emacs-s emacs-f emacs-lua-mode))
21942 (arguments
21943 `(#:include (cons* "^lua\\/" %default-include)))
21944 (home-page "https://github.com/ptrv/company-lua")
21945 (synopsis "Company backend for Lua")
21946 (description
21947 "This package provides Company backend for Lua programming language.")
21948 (license license:gpl3+))))
21949
21950 (define-public emacs-beginend
21951 (package
21952 (name "emacs-beginend")
21953 (version "2.3.0")
21954 (source
21955 (origin
21956 (method git-fetch)
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))
21961 (sha256
21962 (base32 "17r8v1sjvgcmprywny9fdg54x4pssp8p7a9ivv5mrygkqjz1vykk"))))
21963 ;; TODO: Run tests.
21964 (build-system emacs-build-system)
21965 (inputs
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
21972 key again.")
21973 (license license:gpl3+)))
21974
21975 (define-public emacs-mbsync
21976 (let ((commit "b62491c0e0d89eb9c66261a16d7ac81231c9c453")
21977 (revision "4"))
21978 (package
21979 (name "emacs-mbsync")
21980 (version (git-version "0.1.2" revision commit))
21981 (source
21982 (origin
21983 (method git-fetch)
21984 (uri (git-reference
21985 (url "https://github.com/dimitri/mbsync-el")
21986 (commit commit)))
21987 (file-name (git-file-name name version))
21988 (sha256
21989 (base32
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
21995 within Emacs.")
21996 (license license:gpl3+))))
21997
21998 (define-public emacs-ibuffer-projectile
21999 (package
22000 (name "emacs-ibuffer-projectile")
22001 (version "0.3")
22002 (source
22003 (origin
22004 (method git-fetch)
22005 (uri (git-reference
22006 (url "https://github.com/purcell/ibuffer-projectile")
22007 (commit version)))
22008 (file-name (git-file-name name version))
22009 (sha256
22010 (base32
22011 "18cqxnwzzbkcj9jcaw89b210432yzhrl1dwsv48p0jbhfnr17k41"))))
22012 (build-system emacs-build-system)
22013 (propagated-inputs
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+)))
22020
22021 (define-public emacs-ibuffer-vc
22022 (package
22023 (name "emacs-ibuffer-vc")
22024 (version "0.11")
22025 (source
22026 (origin
22027 (method git-fetch)
22028 (uri (git-reference
22029 (url "https://github.com/purcell/ibuffer-vc")
22030 (commit version)))
22031 (file-name (git-file-name name version))
22032 (sha256
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")
22037 (description
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+)))
22042
22043 (define-public emacs-elm-mode
22044 (package
22045 (name "emacs-elm-mode")
22046 (version "0.22.0")
22047 (source
22048 (origin
22049 (method git-fetch)
22050 (uri
22051 (git-reference
22052 (url "https://github.com/jcollard/elm-mode")
22053 (commit (string-append "v" version))))
22054 (file-name (git-file-name name version))
22055 (sha256
22056 (base32 "1gnr61ibzcznfqy5f8capmbz75rcfikwy106rjdmp45qz2jwp4di"))))
22057 (propagated-inputs
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")
22062 (description
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:
22065
22066 @itemize
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
22076 @end itemize")
22077 (license license:gpl3+)))
22078
22079 (define-public emacs-helm-mode-manager
22080 (package
22081 (name "emacs-helm-mode-manager")
22082 (version "1.0.0")
22083 (source
22084 (origin
22085 (method git-fetch)
22086 (uri (git-reference
22087 (url "https://github.com/istib/helm-mode-manager")
22088 (commit version)))
22089 (file-name (git-file-name name version))
22090 (sha256
22091 (base32
22092 "1srx5f0s9x7zan7ayqd6scxfhcvr3nkd4yzs96hphd87rb18apzk"))))
22093 (build-system emacs-build-system)
22094 (propagated-inputs
22095 (list emacs-helm))
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.
22100
22101 @itemize
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
22105 @end itemize\n
22106
22107 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
22108 documentation.")
22109 (license license:gpl3+)))
22110
22111 (define-public emacs-hy-mode
22112 (package
22113 (name "emacs-hy-mode")
22114 (version "1.0.4")
22115 (source
22116 (origin
22117 (method git-fetch)
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))
22122 (sha256
22123 (base32 "0gihxlmfminadaqdr8d2zccd7wwygl3m0gfzxsk5izi7f8hl4w7f"))))
22124 (build-system emacs-build-system)
22125 (propagated-inputs
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+)))
22131
22132 (define-public emacs-web-beautify
22133 (package
22134 (name "emacs-web-beautify")
22135 (version "0.3.2")
22136 (source
22137 (origin
22138 (method git-fetch)
22139 (uri (git-reference
22140 (url "https://github.com/yasuyk/web-beautify")
22141 (commit version)))
22142 (file-name (git-file-name name version))
22143 (sha256
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+)))
22151
22152 (define-public emacs-helm-shell-history
22153 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
22154 (package
22155 (name "emacs-helm-shell-history")
22156 (version (git-version "0.1" "1" commit))
22157 (source
22158 (origin
22159 (method git-fetch)
22160 (uri (git-reference
22161 (url "https://github.com/yuutayamada/helm-shell-history")
22162 (commit commit)))
22163 (file-name (git-file-name name version))
22164 (sha256
22165 (base32
22166 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
22167 (build-system emacs-build-system)
22168 (arguments
22169 '(#:phases
22170 (modify-phases %standard-phases
22171 (add-before 'check 'patch-helm-shell-history-file
22172 (lambda _
22173 (let ((file "helm-shell-history.el"))
22174 (chmod file #o644)
22175 (emacs-substitute-sexps file
22176 ("(defvar helm-shell-history-file"
22177 `(expand-file-name "~/.bash_history"))))
22178 #t)))))
22179 (propagated-inputs
22180 (list emacs-helm))
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+))))
22186
22187 (define-public emacs-discover-my-major
22188 (package
22189 (name "emacs-discover-my-major")
22190 (version "1.0")
22191 (source
22192 (origin
22193 (method git-fetch)
22194 (uri (git-reference
22195 (url "https://framagit.org/steckerhalter/discover-my-major.git/")
22196 (commit version)))
22197 (file-name (git-file-name name version))
22198 (sha256
22199 (base32
22200 "1wlqyl03hhnflbyay3qlvdzqzvv5rbybcjpfddggda7ias9h0pr4"))))
22201 (build-system emacs-build-system)
22202 (propagated-inputs
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+)))
22209
22210 (define-public emacs-org-ref
22211 (package
22212 (name "emacs-org-ref")
22213 (version "2.0.0")
22214 (source
22215 (origin
22216 (method git-fetch)
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))
22221 (sha256
22222 (base32 "0xd1qp8dfy8n8b2n3rsdzm8vrfl7dii142kw330s8jp3pavww1f6"))))
22223 (build-system emacs-build-system)
22224 (propagated-inputs
22225 (list emacs-dash
22226 emacs-f
22227 emacs-helm
22228 emacs-helm-bibtex
22229 emacs-htmlize
22230 emacs-hydra
22231 emacs-ivy
22232 emacs-key-chord
22233 emacs-pdf-tools
22234 emacs-s))
22235 (home-page "https://github.com/jkitchin/org-ref")
22236 (synopsis "Citations, cross-references and bibliographies in Org mode")
22237 (description
22238 "Org Ref is an Emacs library that provides rich support for citations,
22239 labels and cross-references in Org mode.
22240
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
22246 use RefTeX.
22247
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
22251 a DOI.
22252
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
22255 notes.")
22256 (license license:gpl3+)))
22257
22258 (define-public emacs-org-reveal
22259 (let ((commit "fe9148b670d144124d9697fcf5d0528f19025104"))
22260 (package
22261 (name "emacs-org-reveal")
22262 (version (git-version "20210902" "1" commit))
22263 (source (origin
22264 (method git-fetch)
22265 (uri (git-reference
22266 (url "https://github.com/yjwen/org-reveal")
22267 (commit commit)))
22268 (file-name (git-file-name name version))
22269 (sha256
22270 (base32
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+))))
22279
22280 (define-public emacs-org-re-reveal
22281 (package
22282 (name "emacs-org-re-reveal")
22283 (version "3.17.0")
22284 (source
22285 (origin
22286 (method git-fetch)
22287 (uri (git-reference
22288 (url "https://gitlab.com/oer/org-re-reveal")
22289 (commit version)))
22290 (file-name (git-file-name name version))
22291 (sha256
22292 (base32 "1bp3kz2awy2mizs59qsa2yl7wfa0197fklnramzifz6z2zv5kbrx"))))
22293 (build-system emacs-build-system)
22294 (propagated-inputs
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
22300 files.")
22301 (license license:gpl3+)))
22302
22303 (define-public emacs-add-hooks
22304 (package
22305 (name "emacs-add-hooks")
22306 (version "3.1.1")
22307 (source
22308 (origin
22309 (method git-fetch)
22310 (uri (git-reference
22311 (url "https://github.com/nickmccurdy/add-hooks")
22312 (commit version)))
22313 (file-name (git-file-name name version))
22314 (sha256
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+)))
22322
22323 (define-public emacs-fancy-battery
22324 (package
22325 (name "emacs-fancy-battery")
22326 (version "0.2")
22327 (source
22328 (origin
22329 (method git-fetch)
22330 (uri (git-reference
22331 (url "https://github.com/emacsorphanage/fancy-battery")
22332 (commit version)))
22333 (file-name (git-file-name name version))
22334 (sha256
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)))
22344
22345 (define-public emacs-fancy-narrow
22346 (package
22347 (name "emacs-fancy-narrow")
22348 (version "0.9.5")
22349 (source
22350 (origin
22351 (method git-fetch)
22352 (uri (git-reference
22353 (url "https://github.com/Malabarba/fancy-narrow")
22354 (commit version)))
22355 (file-name (git-file-name name version))
22356 (sha256
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")
22361 (description
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
22367 buffer.")
22368 (license license:gpl2+)))
22369
22370 (define-public emacs-hideshowvis
22371 (let ((commit "614e856620445166a60c00a1c4653dbd59c871c9")
22372 (revision "1"))
22373 (package
22374 (name "emacs-hideshowvis")
22375 (version (git-version "0.7" revision commit))
22376 (source (origin
22377 (method git-fetch)
22378 (uri (git-reference
22379 (url "https://github.com/sheijk/hideshowvis")
22380 (commit commit)))
22381 (file-name (git-file-name name version))
22382 (sha256
22383 (base32
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+))))
22391
22392 (define-public emacs-know-your-http-well
22393 (package
22394 (name "emacs-know-your-http-well")
22395 (version "0.5.0")
22396 (source
22397 (origin
22398 (method git-fetch)
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))
22403 (sha256
22404 (base32 "1lppggnii2r9fvlhh33gbdrwb50za8lnalavlq9s86ngndn4n94k"))))
22405 (arguments
22406 `(#:phases
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
22412 (string-append
22413 (assoc-ref outputs "out")
22414 directory)))
22415 '("js" "json"))))
22416 (add-after 'unpack 'chdir-elisp
22417 ;; Elisp directory is not in root of the source.
22418 (lambda _
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+)))
22425
22426 (define-public emacs-navi-mode
22427 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
22428 (package
22429 (name "emacs-navi-mode")
22430 (version (git-version "2.0" "1" commit))
22431 (source
22432 (origin
22433 (method git-fetch)
22434 (uri (git-reference
22435 (url "https://github.com/alphapapa/navi")
22436 (commit commit)))
22437 (file-name (git-file-name name version))
22438 (sha256
22439 (base32
22440 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
22441 (build-system emacs-build-system)
22442 (propagated-inputs
22443 (list emacs-outshine emacs-outorg))
22444 (home-page "https://github.com/alphapapa/navi")
22445 (synopsis "Emacs major-mode for easy buffer-navigation")
22446 (description
22447 "This package provides an Emacs major-mode for easy buffer-navigation")
22448 (license license:gpl3+))))
22449
22450 (define-public emacs-download-region
22451 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
22452 (revision "1"))
22453 (package
22454 (name "emacs-download-region")
22455 (version (string-append "0.0.1" "-" revision "."
22456 (string-take commit 7)))
22457 (source
22458 (origin
22459 (method git-fetch)
22460 (uri (git-reference
22461 (url "https://github.com/zk-phi/download-region")
22462 (commit commit)))
22463 (file-name (git-file-name name version))
22464 (sha256
22465 (base32
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+))))
22473
22474 (define-public emacs-helpful
22475 (package
22476 (name "emacs-helpful")
22477 (version "0.19")
22478 (source
22479 (origin
22480 (method git-fetch)
22481 (uri (git-reference
22482 (url "https://github.com/Wilfred/helpful")
22483 (commit version)))
22484 (file-name (git-file-name name version))
22485 (sha256
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)
22490 (propagated-inputs
22491 (list emacs-elisp-refs emacs-dash emacs-s emacs-f emacs-shut-up))
22492 (native-inputs
22493 (list emacs-ert-runner emacs-undercover))
22494 (arguments
22495 `(#:tests? #t
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.
22501
22502 @itemize
22503 @item Show the source code for interactively defined functions (unlike the
22504 built-in Help).
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
22511 optimisation.
22512 @item Provide a separate @code{helpful-command} function to view interactive
22513 functions.
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.
22517 @end itemize\n")
22518 (license license:gpl3+)))
22519
22520 (define-public emacs-logview
22521 (package
22522 (name "emacs-logview")
22523 (version "0.16")
22524 (source
22525 (origin
22526 (method git-fetch)
22527 (uri (git-reference
22528 (url "https://github.com/doublep/logview")
22529 (commit version)))
22530 (file-name (git-file-name name version))
22531 (sha256
22532 (base32 "0vw6brs76z7fkvlazakwhhgdcydjc099j150c7503kwi2hmmp0p8"))))
22533 (propagated-inputs
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+)))
22540
22541 (define-public emacs-suggest
22542 (package
22543 (name "emacs-suggest")
22544 (version "0.7")
22545 (home-page "https://github.com/Wilfred/suggest.el")
22546 (source
22547 (origin
22548 (method git-fetch)
22549 (uri (git-reference
22550 (url home-page)
22551 (commit version)))
22552 (file-name (git-file-name name version))
22553 (sha256
22554 (base32
22555 "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"))))
22556 (build-system emacs-build-system)
22557 (propagated-inputs
22558 (list emacs-loop
22559 emacs-dash
22560 emacs-s
22561 emacs-f
22562 emacs-spinner
22563 emacs-shut-up))
22564 (native-inputs
22565 (list emacs-ert-runner emacs-undercover))
22566 (arguments
22567 `(#:tests? #t
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
22572 functions.")
22573 (license license:gpl3+)))
22574
22575 (define-public emacs-benchmark-init
22576 (let ((commit "02435560415bbadbcf5051fb7042880549170e7e")
22577 (revision "1"))
22578 (package
22579 (name "emacs-benchmark-init")
22580 (version (git-version "1.0" revision commit))
22581 (source
22582 (origin
22583 (method git-fetch)
22584 (uri (git-reference
22585 (url "https://github.com/dholm/benchmark-init-el")
22586 (commit commit)))
22587 (file-name (git-file-name name version))
22588 (sha256
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+))))
22596
22597 (define-public emacs-magit-gerrit
22598 (package
22599 (name "emacs-magit-gerrit")
22600 (version "0.4")
22601 (source
22602 (origin
22603 (method git-fetch)
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))
22608 (sha256
22609 (base32 "1q4kcr2ha2kir7pj0cshmgllgq51543syxkkk5jk3ksfiaba4crj"))))
22610 (build-system emacs-build-system)
22611 (propagated-inputs
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
22617 Emacs.")
22618 (license license:gpl3+)))
22619
22620 (define-public emacs-magit-org-todos-el
22621 (package
22622 (name "emacs-magit-org-todos-el")
22623 (version "0.1.2")
22624 (source
22625 (origin
22626 (method git-fetch)
22627 (uri (git-reference
22628 (url "https://github.com/danielma/magit-org-todos.el")
22629 (commit version)))
22630 (file-name (git-file-name name version))
22631 (sha256
22632 (base32
22633 "07r5x256k1fjjxs1yfg41kc94nwvnjlk2vvknkra3j8v9p0j88m7"))))
22634 (propagated-inputs
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
22640 magit status.
22641
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+)))
22646
22647 (define-public emacs-vcsh
22648 (package
22649 (name "emacs-vcsh")
22650 (version "0.4.4")
22651 (source
22652 (origin
22653 (method git-fetch)
22654 (uri (git-reference
22655 (url "https://gitlab.com/stepnem/vcsh-el.git")
22656 (commit version)))
22657 (file-name (git-file-name name version))
22658 (sha256
22659 (base32 "183pffdiqb7qqmjq31wxl3fpv8qswqgg99gb716rddiyk15ysri7"))))
22660 (build-system emacs-build-system)
22661 (home-page "https://gitlab.com/stepnem/vcsh-el")
22662 (synopsis "Emacs VCSH integration")
22663 (description
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
22667 Magit.")
22668 (license license:public-domain)))
22669
22670 (define-public emacs-f3
22671 (package
22672 (name "emacs-f3")
22673 (version "0.1")
22674 (source
22675 (origin
22676 (method git-fetch)
22677 (uri (git-reference
22678 (url "https://github.com/cosmicexplorer/f3")
22679 (commit version)))
22680 (file-name (git-file-name name version))
22681 (sha256
22682 (base32 "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi"))))
22683 (build-system emacs-build-system)
22684 (propagated-inputs
22685 (list emacs-helm))
22686 (home-page "https://github.com/cosmicexplorer/f3")
22687 (synopsis "Fantastic File Finder for Emacs")
22688 (description
22689 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
22690 (license license:gpl3+)))
22691
22692 (define-public emacs-lice-el
22693 (package
22694 (name "emacs-lice-el")
22695 (version "0.3")
22696 (source (origin
22697 (method git-fetch)
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))
22702 (sha256
22703 (base32
22704 "06plnrxj6kgnl9mjcbc48mgagpa60yyyyribwicmcgg9pgrs0wad"))))
22705 (build-system emacs-build-system)
22706 (arguments
22707 (list
22708 #:include #~(cons "^template/" %default-include)
22709 #:phases
22710 #~(modify-phases %standard-phases
22711 (add-after 'unpack 'patch-template-directory
22712 (lambda _
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:
22719
22720 @itemize
22721 @item License template management.
22722 @item File header insertion.
22723 @end itemize\n")
22724 (license license:gpl3+)))
22725
22726 (define-public emacs-academic-phrases
22727 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
22728 (package
22729 (name "emacs-academic-phrases")
22730 (version (git-version "0.1" "1" commit))
22731 (source
22732 (origin
22733 (method git-fetch)
22734 (uri (git-reference
22735 (url "https://github.com/nashamri/academic-phrases")
22736 (commit commit)))
22737 (file-name (git-file-name name version))
22738 (sha256
22739 (base32
22740 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
22741 (build-system emacs-build-system)
22742 (propagated-inputs
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")
22746 (description
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.
22752
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+))))
22757
22758 (define-public emacs-auto-yasnippet
22759 (let ((commit "624b0d9711222073a2a3f2186e2605eb99fc83c9")
22760 (revision "2"))
22761 (package
22762 (name "emacs-auto-yasnippet")
22763 (version (git-version "0.3.0" revision commit))
22764 (source (origin
22765 (method git-fetch)
22766 (uri (git-reference
22767 (url "https://github.com/abo-abo/auto-yasnippet")
22768 (commit commit)))
22769 (file-name (git-file-name name version))
22770 (sha256
22771 (base32
22772 "15g8wi067f345xhpi0c12w0h04p4f4lpccwmdjdfj8hzfl4gyxy9"))))
22773 (build-system emacs-build-system)
22774 (arguments
22775 '(#:tests? #t
22776 #:test-command '("make" "test")))
22777 (propagated-inputs
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+))))
22787
22788 (define-public emacs-highlight-numbers
22789 (package
22790 (name "emacs-highlight-numbers")
22791 (version "0.2.3")
22792 (source
22793 (origin
22794 (method git-fetch)
22795 (uri (git-reference
22796 (url "https://github.com/Fanael/highlight-numbers")
22797 (commit version)))
22798 (file-name (git-file-name name version))
22799 (sha256
22800 (base32 "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"))))
22801 (build-system emacs-build-system)
22802 (propagated-inputs
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.
22808
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+)))
22812
22813 (define-public emacs-darkroom
22814 (package
22815 (name "emacs-darkroom")
22816 (version "0.3")
22817 (source
22818 (origin
22819 (method url-fetch)
22820 (uri (string-append "https://elpa.gnu.org/packages/"
22821 "darkroom-" version ".el"))
22822 (sha256
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.
22830
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+)))
22838
22839 (define-public emacs-rsw-elisp
22840 (package
22841 (name "emacs-rsw-elisp")
22842 (version "1.0.5")
22843 (source (origin
22844 (method git-fetch)
22845 (uri (git-reference
22846 (url "https://github.com/rswgnu/rsw-elisp")
22847 (commit version)))
22848 (file-name (git-file-name name version))
22849 (sha256
22850 (base32
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+)))
22861
22862 (define-public emacs-default-text-scale
22863 (package
22864 (name "emacs-default-text-scale")
22865 (version "0.2")
22866 (source (origin
22867 (method git-fetch)
22868 (uri (git-reference
22869 (url "https://github.com/purcell/default-text-scale")
22870 (commit version)))
22871 (file-name (git-file-name name version))
22872 (sha256
22873 (base32
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+)))
22881
22882 (define-public emacs-fixed-pitch
22883 (package
22884 (name "emacs-fixed-pitch")
22885 (version "0.1.0")
22886 (source
22887 (origin
22888 (method git-fetch)
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))
22893 (sha256
22894 (base32 "0qlavjvib0r71xdy6y6pan9dhr57lw7jhmqk60mwa8fq6km8kpkj"))))
22895 (build-system emacs-build-system)
22896 (home-page "https://github.com/cstby/fixed-pitch-mode")
22897 (synopsis
22898 "Use a monospaced typeface for code and a proportional one elsewhere")
22899 (description
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+)))
22904
22905 (define-public emacs-mixed-pitch
22906 (package
22907 (name "emacs-mixed-pitch")
22908 (version "1.1.1")
22909 (source
22910 (origin
22911 (method git-fetch)
22912 (uri (git-reference
22913 (url "https://gitlab.com/jabranham/mixed-pitch.git")
22914 (commit version)))
22915 (file-name (git-file-name name version))
22916 (sha256
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")
22921 (description
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+)))
22927
22928 (define-public emacs-visual-regexp
22929 (package
22930 (name "emacs-visual-regexp")
22931 (version "1.1.2")
22932 (source
22933 (origin
22934 (method git-fetch)
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))
22939 (sha256
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+)))
22947
22948 (define-public emacs-faceup
22949 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
22950 (revision "1"))
22951 (package
22952 (name "emacs-faceup")
22953 (version (string-append "0.0.1" "-" revision "."
22954 (string-take commit 7)))
22955 (source
22956 (origin
22957 (method git-fetch)
22958 (uri (git-reference
22959 (url "https://github.com/Lindydancer/faceup")
22960 (commit commit)))
22961 (file-name (git-file-name name version))
22962 (sha256
22963 (base32
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+))))
22972
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")
22978 (revision "7"))
22979 (package
22980 (name "emacs-racket-mode")
22981 (version (git-version "0.0.2" revision commit))
22982 (source
22983 (origin
22984 (method git-fetch)
22985 (uri (git-reference
22986 (url "https://github.com/greghendershott/racket-mode")
22987 (commit commit)))
22988 (file-name (git-file-name name version))
22989 (sha256
22990 (base32
22991 "0zzk0s4akx6ffsbhylgfflcypkkg36a3accxhmmdd11yn5rckv7f"))))
22992 (build-system emacs-build-system)
22993 (arguments
22994 (list
22995 #:include #~(list "\\.el$" "\\.rkt$")))
22996 (propagated-inputs
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+))))
23003
23004 (define-public emacs-grep-context
23005 (let ((commit "5a4e3efdf775755c1bbefcfe4b461c1166d81d7d")
23006 (revision "1"))
23007 (package
23008 (name "emacs-grep-context")
23009 (version (git-version "0.1.0" revision commit))
23010 (source
23011 (origin
23012 (method git-fetch)
23013 (uri (git-reference
23014 (url "https://github.com/mkcms/grep-context")
23015 (commit commit)))
23016 (file-name (git-file-name name version))
23017 (sha256
23018 (base32
23019 "00q7l4a3c0ay6g5ff9bfa2qgkiswsyh4s6pqnpg0zpzhvv5710f5"))))
23020 (build-system emacs-build-system)
23021 (propagated-inputs
23022 (list emacs-dash))
23023 (home-page "https://github.com/mkcms/grep-context")
23024 (synopsis "Increase context in compilation and grep buffers")
23025 (description
23026 "This package provides an Emacs package for more context in
23027 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
23028 @code{ivy}.")
23029 (license license:gpl3+))))
23030
23031 (define-public emacs-helm-firefox
23032 (package
23033 (name "emacs-helm-firefox")
23034 (version "1.3")
23035 (source
23036 (origin
23037 (method git-fetch)
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))
23042 (sha256
23043 (base32
23044 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
23045 (propagated-inputs
23046 (list emacs-helm))
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+)))
23052
23053 (define-public emacs-interactive-align
23054 (package
23055 (name "emacs-interactive-align")
23056 (version "0.4.2")
23057 (source
23058 (origin
23059 (method git-fetch)
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))
23064 (sha256
23065 (base32
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+)))
23072
23073 (define-public emacs-shift-number
23074 (package
23075 (name "emacs-shift-number")
23076 (version "0.1")
23077 (source
23078 (origin
23079 (method git-fetch)
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))
23084 (sha256
23085 (base32
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+)))
23094
23095 (define-public emacs-highlight-defined
23096 (package
23097 (name "emacs-highlight-defined")
23098 (version "0.1.6")
23099 (source
23100 (origin
23101 (method git-fetch)
23102 (uri (git-reference
23103 (url "https://github.com/Fanael/highlight-defined")
23104 (commit version)))
23105 (file-name (git-file-name name version))
23106 (sha256
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+)))
23115
23116 (define-public emacs-parinfer-mode
23117 (package
23118 (name "emacs-parinfer-mode")
23119 (version "0.4.10")
23120 (source
23121 (origin
23122 (method git-fetch)
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))
23127 (sha256
23128 (base32 "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"))))
23129 (propagated-inputs
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+)))
23138
23139 (define-public emacs-helm-eww
23140 (package
23141 (name "emacs-helm-eww")
23142 (version "1.2")
23143 (source (origin
23144 (method git-fetch)
23145 (uri (git-reference
23146 (url "https://github.com/emacs-helm/helm-eww")
23147 (commit version)))
23148 (file-name (git-file-name name version))
23149 (sha256
23150 (base32
23151 "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"))))
23152 (propagated-inputs
23153 (list emacs-helm))
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+)))
23160
23161 (define-public emacs-stumpwm-mode
23162 (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d6")
23163 (revision "3"))
23164 (package
23165 (name "emacs-stumpwm-mode")
23166 (version (git-version "0.0.1" revision commit))
23167 (source (origin
23168 (method git-fetch)
23169 (uri (git-reference
23170 (url "https://github.com/stumpwm/stumpwm-contrib")
23171 (commit commit)))
23172 (file-name (git-file-name name version))
23173 (sha256
23174 (base32
23175 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
23176 (build-system emacs-build-system)
23177 (arguments
23178 `(#:phases
23179 (modify-phases %standard-phases
23180 (add-after 'unpack 'chdir-elisp
23181 ;; Elisp directory is not in root of the source.
23182 (lambda _
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+))))
23188
23189 (define-public emacs-irfc
23190 (package
23191 (name "emacs-irfc")
23192 (version "20130824.507-1")
23193 (source
23194 (origin
23195 (method url-fetch)
23196 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
23197 (file-name (string-append "irfc-" version ".el"))
23198 (sha256
23199 (base32
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")
23204 (description
23205 "This package provides an Emacs interface for IETF RFC document.")
23206 (license license:gpl3+)))
23207
23208 (define-public emacs-ido-at-point
23209 (package
23210 (name "emacs-ido-at-point")
23211 (version "1.0.0")
23212 (source
23213 (origin
23214 (method git-fetch)
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))
23219 (sha256
23220 (base32 "1bii7vj8pmmijcpvq3a1scky4ais7k6d7zympb3m9dmz355m9rpp"))))
23221 (build-system emacs-build-system)
23222 (synopsis "Ido-style completion at point")
23223 (description
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+)))
23228
23229 (define-public emacs-ido-vertical-mode
23230 (package
23231 (name "emacs-ido-vertical-mode")
23232 (version "0.1.6")
23233 (source
23234 (origin
23235 (method git-fetch)
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))
23240 (sha256
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+)))
23247
23248 (define-public emacs-wordgen
23249 (package
23250 (name "emacs-wordgen")
23251 (version "0.1.4")
23252 (source
23253 (origin
23254 (method git-fetch)
23255 (uri (git-reference
23256 (url "https://github.com/Fanael/wordgen.el")
23257 (commit version)))
23258 (file-name (git-file-name name version))
23259 (sha256
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+)))
23267
23268 (define-public emacs-on
23269 (let ((commit "83baed07a105c135190d49d7ec77f95e8f38fa54")
23270 (revision "0"))
23271 (package
23272 (name "emacs-on")
23273 (version (git-version "0.1.0" revision commit))
23274 (source (origin
23275 (method git-fetch)
23276 (uri (git-reference
23277 (url "https://github.com/ajgrf/on.el")
23278 (commit commit)))
23279 (file-name (git-file-name name version))
23280 (sha256
23281 (base32
23282 "14ly3w89hf4jgd8wacirxgd8vrgj7vc0hpfn911w5wa4k2a6nzpp"))))
23283 (build-system emacs-build-system)
23284 (home-page "https://github.com/ajgrf/on.el")
23285 (synopsis "Hooks for faster Emacs startup")
23286 (description
23287 "This package exposes a number of utility hooks and functions ported
23288 from Doom Emacs.")
23289 (license license:expat))))
23290
23291 (define-public emacs-on-screen
23292 (package
23293 (name "emacs-on-screen")
23294 (version "1.3.3")
23295 (source
23296 (origin
23297 (method url-fetch)
23298 (uri (string-append
23299 "https://elpa.gnu.org/packages/on-screen-" version ".el"))
23300 (file-name (string-append name "-" version ".el"))
23301 (sha256
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")
23306 (description
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+)))
23311
23312 (define-public emacs-highlight-escape-sequences
23313 ;; No release upstream. Extract version from main file.
23314 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
23315 (revision "0"))
23316 (package
23317 (name "emacs-highlight-escape-sequences")
23318 (version (git-version "0.4" revision commit))
23319 (source
23320 (origin
23321 (method git-fetch)
23322 (uri (git-reference
23323 (url "https://github.com/dgutov/highlight-escape-sequences")
23324 (commit commit)))
23325 (file-name (git-file-name name version))
23326 (sha256
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+))))
23334
23335 (define-public emacs-dashboard
23336 (let ((version "1.7.0")
23337 (commit "a69cc103aebd957f967e431399681b6d9d6b52fc")
23338 (revision "0"))
23339 (package
23340 (name "emacs-dashboard")
23341 (version (git-version version revision commit))
23342 (source
23343 (origin
23344 (method git-fetch)
23345 (uri (git-reference
23346 (url "https://github.com/rakanalh/emacs-dashboard")
23347 (commit commit)))
23348 (file-name (git-file-name name version))
23349 (sha256
23350 (base32 "1c6snnpc9rp6zhhdz411wyh2wn56yq2cdmxxqsp1ibvac8cbb1pq"))))
23351 (build-system emacs-build-system)
23352 (arguments
23353 (list
23354 #:include #~(cons* "\\.txt$" "\\.png$" %default-include)
23355 #:phases
23356 #~(modify-phases %standard-phases
23357 (add-after 'unpack 'patch-dashboard-widgets
23358 ;; This phase fixes compilation error.
23359 (lambda _
23360 (emacs-substitute-variables "dashboard-widgets.el"
23361 ("dashboard-init-info"
23362 '(format "Loaded in %s" (emacs-init-time)))))))))
23363 (propagated-inputs
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+))))
23370
23371 (define-public emacs-slime-company
23372 (package
23373 (name "emacs-slime-company")
23374 (version "1.6")
23375 (source
23376 (origin
23377 (method git-fetch)
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))
23382 (sha256
23383 (base32 "05dnnc4ms5c9yp9h65k2gbkg3pw9k38nx5wzlwdlfr4shqmw54w0"))))
23384 (build-system emacs-build-system)
23385 (propagated-inputs
23386 (list emacs-slime emacs-company))
23387 (home-page "https://company-mode.github.io")
23388 (synopsis "SLIME completion backend for @code{company-mode}")
23389 (description
23390 "This is a backend implementation for the completion package
23391 @code{company-mode} which supports the normal and the fuzzy completion
23392 modes of SLIME.")
23393 (license license:gpl3+)))
23394
23395 (define-public emacs-sml-mode
23396 (package
23397 (name "emacs-sml-mode")
23398 (version "6.10")
23399 (source
23400 (origin
23401 (method url-fetch)
23402 (uri (string-append "https://elpa.gnu.org/packages/sml-mode-"
23403 version ".el"))
23404 (sha256
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+)))
23414
23415 (define-public emacs-eros
23416 (let ((commit "dd8910279226259e100dab798b073a52f9b4233a")
23417 (revision "2"))
23418 (package
23419 (name "emacs-eros")
23420 (version (git-version "0.0.1" revision commit))
23421 (source
23422 (origin
23423 (method git-fetch)
23424 (uri (git-reference
23425 (url "https://github.com/xiongtx/eros")
23426 (commit commit)))
23427 (file-name (git-file-name name version))
23428 (sha256
23429 (base32
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+))))
23436
23437 (define-public emacs-stickyfunc-enhance
23438 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
23439 (revision "1"))
23440 (package
23441 (name "emacs-stickyfunc-enhance")
23442 (version "0.1")
23443 (source
23444 (origin
23445 (method git-fetch)
23446 (uri (git-reference
23447 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance")
23448 (commit commit)))
23449 (file-name (git-file-name name version))
23450 (sha256
23451 (base32
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}")
23456 (description
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+))))
23462
23463 (define-public emacs-git-auto-commit-mode
23464 (package
23465 (name "emacs-git-auto-commit-mode")
23466 (version "4.7.0")
23467 (source
23468 (origin
23469 (method git-fetch)
23470 (uri (git-reference
23471 (url "https://github.com/ryuslash/git-auto-commit-mode")
23472 (commit version)))
23473 (file-name (git-file-name name version))
23474 (sha256
23475 (base32 "0gpib57f7xza04g3iyihw5v15hb7pncqsmvyggib902yvcxlkvqf"))))
23476 (build-system emacs-build-system)
23477 (native-inputs
23478 (list emacs-buttercup git))
23479 (arguments
23480 `(#:tests? #t
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.
23486
23487 When @code{gac-automatically-push-p} is non-nil, it also tries to push to the
23488 current upstream.")
23489 (license license:gpl3+)))
23490
23491 (define-public emacs-scroll-on-drag
23492 (let ((commit "888abd04c34753b1fc4b2fe541bc004ebec5c996")
23493 (revision "1"))
23494 (package
23495 (name "emacs-scroll-on-drag")
23496 (version (git-version "0.1" revision commit))
23497 (source
23498 (origin
23499 (method git-fetch)
23500 (uri (git-reference
23501 (url "https://gitlab.com/ideasman42/emacs-scroll-on-drag.git")
23502 (commit commit)))
23503 (file-name (git-file-name name version))
23504 (sha256
23505 (base32
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+))))
23513
23514 (define-public emacs-company-restclient
23515 (package
23516 (name "emacs-company-restclient")
23517 (version "0.3.0")
23518 (source
23519 (origin
23520 (method git-fetch)
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))
23525 (sha256
23526 (base32 "0yp0hlrgcr6yy1xkjvfckys2k24x9xg7y6336ma61bdwn5lpv0x0"))))
23527 (build-system emacs-build-system)
23528 (propagated-inputs
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}.
23534
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+)))
23539
23540 (define-public emacs-noflet
23541 (let ((version "20170629")
23542 (revision "1")
23543 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
23544 (package
23545 (name "emacs-noflet")
23546 (version (git-version version revision commit))
23547 (source
23548 (origin
23549 (method git-fetch)
23550 (uri (git-reference
23551 (url "https://github.com/nicferrier/emacs-noflet")
23552 (commit commit)))
23553 (file-name (git-file-name name version))
23554 (sha256
23555 (base32
23556 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
23557 (build-system emacs-build-system)
23558 (arguments
23559 `(#:phases
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.
23564 (lambda _
23565 (substitute* "noflet.el"
23566 ((";;; Code:") ";;; Code:\n(require 'dash)"))
23567 #t)))))
23568 (propagated-inputs
23569 (list emacs-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+))))
23576
23577 (define-public emacs-dumb-jump
23578 (package
23579 (name "emacs-dumb-jump")
23580 (version "0.5.4")
23581 (source
23582 (origin
23583 (method git-fetch)
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))
23588 (sha256
23589 (base32 "18d2ll5wlll6pm909hiw8w9ijdbrjvy86q6ljzx8yyrjphgn0y1y"))))
23590 (build-system emacs-build-system)
23591 (arguments
23592 `(#:tests? #f ; FIXME: Tests freeze when run.
23593 #:test-command '("ert-runner")
23594 #:phases
23595 (modify-phases %standard-phases
23596 (add-after 'unpack 'set-shell
23597 (lambda _
23598 ;; Setting the SHELL environment variable is required for the
23599 ;; tests to find sh.
23600 (setenv "SHELL" (which "sh")))))))
23601 (native-inputs
23602 (list emacs-el-mock emacs-ert-runner emacs-noflet emacs-undercover))
23603 (propagated-inputs
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+)))
23614
23615 (define-public emacs-dts-mode
23616 (package
23617 (name "emacs-dts-mode")
23618 (version "1.0")
23619 (source (origin
23620 (method url-fetch)
23621 (uri (string-append "https://elpa.gnu.org/packages/dts-mode-"
23622 version ".tar"))
23623 (sha256
23624 (base32
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")
23629 (description
23630 "This package provides an Emacs minor mode for highlighting
23631 device tree files.")
23632 (license license:gpl3+)))
23633
23634 (define-public emacs-daemons
23635 (package
23636 (name "emacs-daemons")
23637 (version "2.0.0")
23638 (source
23639 (origin
23640 (method git-fetch)
23641 (uri (git-reference
23642 (url "https://github.com/cbowdon/daemons.el")
23643 (commit version)))
23644 (file-name (git-file-name name version))
23645 (sha256
23646 (base32
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")
23651 (description
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
23655 systems.")
23656 (license license:gpl3+)))
23657
23658 (define-public emacs-isearch+
23659 (let ((commit "7c251b91a67bf914066e23e269ba52fda5b45f5f")
23660 (revision "2"))
23661 (package
23662 (name "emacs-isearch+")
23663 (version (git-version "0" revision commit))
23664 (source
23665 (origin
23666 (method git-fetch)
23667 (uri (git-reference
23668 (url "https://github.com/emacsmirror/isearch-plus")
23669 (commit commit)))
23670 (file-name (git-file-name name version))
23671 (sha256
23672 (base32
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+))))
23680
23681 (define-public emacs-eshell-bookmark
23682 (package
23683 (name "emacs-eshell-bookmark")
23684 (version "2.0.0")
23685 (source
23686 (origin
23687 (method git-fetch)
23688 (uri (git-reference
23689 (url "https://github.com/Fuco1/eshell-bookmark")
23690 (commit version)))
23691 (file-name (git-file-name name version))
23692 (sha256
23693 (base32
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}")
23698 (description
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+)))
23703
23704 (define-public emacs-eshell-syntax-highlighting
23705 (package
23706 (name "emacs-eshell-syntax-highlighting")
23707 (version "0.3")
23708 (source
23709 (origin
23710 (method git-fetch)
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))
23715 (sha256
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")
23720 (description
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+)))
23724
23725 (define-public emacs-eshell-z
23726 (package
23727 (name "emacs-eshell-z")
23728 (version "0.4")
23729 (source
23730 (origin
23731 (method git-fetch)
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))
23736 (sha256
23737 (base32
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")
23742 (description
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+)))
23747
23748 (define-public emacs-esh-autosuggest
23749 (package
23750 (name "emacs-esh-autosuggest")
23751 (version "2.0.1")
23752 (source
23753 (origin
23754 (method git-fetch)
23755 (uri (git-reference
23756 (url "https://github.com/dieggsy/esh-autosuggest")
23757 (commit version)))
23758 (file-name (git-file-name name version))
23759 (sha256
23760 (base32
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")
23766 (description
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.
23771
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+)))
23776
23777 (define-public emacs-desktop-environment
23778 (package
23779 (name "emacs-desktop-environment")
23780 (version "0.5.0")
23781 (source
23782 (origin
23783 (method git-fetch)
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))
23788 (sha256
23789 (base32
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")
23794 (description
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+)))
23801
23802 (define-public emacs-org-caldav
23803 (let ((commit "8569941a0a5a9393ba51afc8923fd7b77b73fa7a")
23804 (revision "2"))
23805 (package
23806 (name "emacs-org-caldav")
23807 (version (git-version "0.0.0" revision commit))
23808 (source
23809 (origin
23810 (method git-fetch)
23811 (uri (git-reference
23812 (url "https://github.com/dengste/org-caldav")
23813 (commit commit)))
23814 (file-name (git-file-name name version))
23815 (sha256
23816 (base32 "05lgxqaffnqaqnzl24frafdkskran88hl2ml05qvyjhs4jjbgw9g"))))
23817 (build-system emacs-build-system)
23818 (arguments
23819 ;; Tests require to have two specific calendars on a test server.
23820 `(#:exclude '("^org-caldav-testsuite\\.el")))
23821 (propagated-inputs
23822 (list emacs-org))
23823 (home-page "https://github.com/dengste/org-caldav")
23824 (synopsis "Sync Org files with external calendars via the CalDAV protocol")
23825 (description
23826 "Org CalDAV synchronizes events between Org files and a CalDAV
23827 calendar.")
23828 (license license:gpl3+))))
23829
23830 (define-public emacs-zotxt
23831 (package
23832 (name "emacs-zotxt")
23833 (version "5.0.5")
23834 (source
23835 (origin
23836 (method git-fetch)
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))
23841 (sha256
23842 (base32 "1zr67h0w49rsi84mgf6jdili28h8782q6vjl8za0iq1hcx9zqxyf"))))
23843 (build-system emacs-build-system)
23844 (propagated-inputs
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+)))
23852
23853 (define-public emacs-evil-multiedit
23854 (package
23855 (name "emacs-evil-multiedit")
23856 (version "1.4.3")
23857 (source
23858 (origin
23859 (method git-fetch)
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))
23864 (sha256
23865 (base32 "08ycwss58zh2zikk79jfj074q78yjcd7vbjgv5ssqvws09x5rgfq"))))
23866 (build-system emacs-build-system)
23867 (propagated-inputs
23868 (list emacs-evil emacs-iedit))
23869 (native-inputs
23870 (list emacs-ert-runner))
23871 (arguments
23872 `(#:phases
23873 (modify-phases %standard-phases
23874 (add-before 'check 'fix-checks
23875 (lambda _
23876 (substitute* "Makefile"
23877 (("@cask exec ") ""))
23878 (substitute* "test/test-helper.el"
23879 (("'\\(evil iedit\\)") "nil")))))
23880 #:tests? #t
23881 #:test-command '("make" "test")))
23882 (home-page "https://github.com/hlissner/evil-multiedit")
23883 (synopsis "Multiple cursors for Evil mode")
23884 (description
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
23888 defaults.")
23889 (license license:gpl3+)))
23890
23891 (define-public emacs-evil-mc
23892 (let ((commit "1cabb869fe70cef49f7dc06f015c3ade1a969c8c")
23893 (revision "2"))
23894 (package
23895 (name "emacs-evil-mc")
23896 (version (git-version "0.0.3" revision commit))
23897 (source
23898 (origin
23899 (method git-fetch)
23900 (uri (git-reference
23901 (url "https://github.com/gabesoft/evil-mc")
23902 (commit commit)))
23903 (file-name (git-file-name name version))
23904 (sha256
23905 (base32 "0p83p90faq1p02lmsfs7zrnky3cyzgy8z4m83a81r9kakjzhkrnb"))))
23906 (build-system emacs-build-system)
23907 (propagated-inputs
23908 (list emacs-evil))
23909 (native-inputs
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))))
23916
23917 (define-public emacs-evil-org
23918 (let ((commit "0d10ff7bb9a3a93d25cd91018b17f0a052b335f3")
23919 (revision "2"))
23920 (package
23921 (name "emacs-evil-org")
23922 (version (git-version "1.0.3" revision commit))
23923 (source
23924 (origin
23925 (method git-fetch)
23926 (uri (git-reference
23927 (url "https://github.com/Somelauw/evil-org-mode")
23928 (commit commit)))
23929 (file-name (git-file-name name version))
23930 (sha256
23931 (base32
23932 "15g47xgpswzc8lz7qdbbzfcq1n9m4474qa2jkg43l8d5ali8qa7z"))))
23933 (build-system emacs-build-system)
23934 (propagated-inputs (list emacs-evil))
23935 (home-page
23936 "https://github.com/Somelauw/evil-org-mode")
23937 (synopsis "Evil keybindings for Org mode")
23938 (description
23939 "This package adds supplemental Evil mode key-bindings to Emacs
23940 Org-mode. It features:
23941 @itemize
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.
23949 @end itemize\n")
23950 (license license:gpl3+))))
23951
23952 (define-public emacs-debpaste
23953 (package
23954 (name "emacs-debpaste")
23955 (version "0.1.5")
23956 (home-page "https://github.com/alezost/debpaste.el")
23957 (source
23958 (origin
23959 (method git-fetch)
23960 (uri (git-reference (url home-page)
23961 (commit (string-append "v" version))))
23962 (file-name (git-file-name name version))
23963 (sha256
23964 (base32
23965 "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
23966 (build-system emacs-build-system)
23967 (propagated-inputs
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+)))
23974
23975 (define-public emacs-xml-rpc
23976 (package
23977 (name "emacs-xml-rpc")
23978 (version "1.6.15")
23979 (source
23980 (origin
23981 (method git-fetch)
23982 (uri (git-reference
23983 (url "https://github.com/hexmode/xml-rpc-el")
23984 (commit version)))
23985 (file-name (git-file-name name version))
23986 (sha256
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+)))
23998
23999 (define-public emacs-xpm
24000 (package
24001 (name "emacs-xpm")
24002 (version "1.0.5")
24003 (source
24004 (origin
24005 (method url-fetch)
24006 (uri (string-append "https://elpa.gnu.org/packages/xpm-"
24007 version ".tar"))
24008 (sha256
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+)))
24017
24018 (define-public emacs-fish-completion
24019 (package
24020 (name "emacs-fish-completion")
24021 (version "1.2")
24022 (source
24023 (origin
24024 (method git-fetch)
24025 (uri (git-reference
24026 (url "https://gitlab.com/Ambrevar/emacs-fish-completion.git")
24027 (commit version)))
24028 (file-name (git-file-name name version))
24029 (sha256
24030 (base32
24031 "17lqip1i1rrsvxzz4bx9rqf1fvwd3hriwg3sj6qxmfc8pylnp37q"))))
24032 (build-system emacs-build-system)
24033 (inputs (list fish))
24034 (arguments
24035 `(#:phases
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")))))))))
24047 (home-page
24048 "https://gitlab.com/Ambrevar/emacs-fish-completion")
24049 (synopsis "Fish completion for Emacs pcomplete")
24050 (description
24051 "This package provides completion for the Fish shell to pcomplete (used
24052 by shell and Eshell). You can set it up globally with:
24053
24054 @example
24055 (when (and (executable-find \"fish\")
24056 (require 'fish-completion nil t))
24057 (global-fish-completion-mode))
24058 @end example
24059
24060 Alternatively, you can call the @code{fish-completion-mode} manually or in
24061 shell/Eshell mode hook.
24062
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+)))
24067
24068 (define-public emacs-gif-screencast
24069 (package
24070 (name "emacs-gif-screencast")
24071 (version "1.2")
24072 (source
24073 (origin
24074 (method git-fetch)
24075 (uri (git-reference
24076 (url "https://gitlab.com/Ambrevar/emacs-gif-screencast.git")
24077 (commit version)))
24078 (file-name (git-file-name name version))
24079 (sha256
24080 (base32
24081 "1yf6yipvhhna29mzaan5vb3d5qvbrkp2awr5diyf381mvxgk8akh"))))
24082 (build-system emacs-build-system)
24083 (inputs
24084 (list scrot imagemagick gifsicle))
24085 (arguments
24086 `(#:phases
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")))))))))
24106 (home-page
24107 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
24108 (synopsis "One-frame-per-action GIF recording")
24109 (description
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
24113 the GIF result.")
24114 (license license:gpl3+)))
24115
24116 (define-public emacs-google-translate
24117 (package
24118 (name "emacs-google-translate")
24119 (version "0.12.0")
24120 (source
24121 (origin
24122 (method git-fetch)
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))
24127 (sha256
24128 (base32
24129 "0rwpij2bm8d4jq2w5snkp88mfryplw8166dsrjm407n2p6xr48zx"))))
24130 (build-system emacs-build-system)
24131 (home-page "https://github.com/atykhonov/google-translate")
24132 (synopsis "Emacs interface to Google Translate")
24133 (description
24134 "This package provides an Emacs interface to the Google Translate
24135 on-line service.")
24136 (license license:gpl3+)))
24137
24138 (define-public emacs-helm-company
24139 (package
24140 (name "emacs-helm-company")
24141 (version "0.2.5")
24142 (source
24143 (origin
24144 (method git-fetch)
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))
24149 (sha256
24150 (base32
24151 "1ci37w6ahnqrfpb284gjvxmimlf61sdxb9k192yy9q983cksv2hx"))))
24152 (build-system emacs-build-system)
24153 (propagated-inputs
24154 (list emacs-helm emacs-company))
24155 (native-inputs
24156 (list emacs-ert-runner))
24157 (arguments
24158 `(#:tests? #t
24159 #:test-command '("ert-runner")))
24160 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
24161 (synopsis "Helm interface for company-mode")
24162 (description
24163 "This is a Helm interface to company-mode, a text completion
24164 framework.")
24165 (license license:gpl3+)))
24166
24167 (define-public emacs-helm-descbinds
24168 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
24169 (package
24170 (name "emacs-helm-descbinds")
24171 (version (git-version "1.13" "1" commit))
24172 (source
24173 (origin
24174 (method git-fetch)
24175 (uri (git-reference
24176 (url "https://github.com/emacs-helm/helm-descbinds")
24177 (commit commit)))
24178 (file-name (git-file-name name version))
24179 (sha256
24180 (base32
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")
24186 (description
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+))))
24194
24195 (define-public emacs-helm-emms
24196 (let ((commit "37e5aa029abfa5a5c48636314de8157142944fa2"))
24197 (package
24198 (name "emacs-helm-emms")
24199 (version (git-version "1.3" "3" commit))
24200 (source
24201 (origin
24202 (method git-fetch)
24203 (uri (git-reference
24204 (url "https://github.com/emacs-helm/helm-emms")
24205 (commit commit)))
24206 (file-name (git-file-name name version))
24207 (sha256
24208 (base32
24209 "0r1ai6xhzayyik30w2sx9n62bxxwm12vfmjspv0daqif9az8y3vg"))))
24210 (build-system emacs-build-system)
24211 (propagated-inputs
24212 (list emacs-helm emacs-emms))
24213 (home-page
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+))))
24219
24220 (define-public emacs-helm-exwm
24221 (package
24222 (name "emacs-helm-exwm")
24223 (version "0.0.2")
24224 (source
24225 (origin
24226 (method git-fetch)
24227 (uri (git-reference
24228 (url "https://github.com/emacs-helm/helm-exwm")
24229 (commit version)))
24230 (file-name (git-file-name name version))
24231 (sha256
24232 (base32 "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v"))))
24233 (build-system emacs-build-system)
24234 (propagated-inputs
24235 (list emacs-helm emacs-exwm))
24236 (home-page
24237 "https://github.com/emacs-helm/helm-exwm")
24238 (synopsis "Helm for EXWM buffers")
24239 (description
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+)))
24245
24246 (define-public emacs-helm-flycheck
24247 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
24248 (package
24249 (name "emacs-helm-flycheck")
24250 (version (git-version "0.4" "1" commit))
24251 (source
24252 (origin
24253 (method git-fetch)
24254 (uri (git-reference
24255 (url "https://github.com/yasuyk/helm-flycheck")
24256 (commit commit)))
24257 (file-name (git-file-name name version))
24258 (sha256
24259 (base32
24260 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
24261 (build-system emacs-build-system)
24262 (propagated-inputs
24263 (list emacs-dash emacs-flycheck emacs-helm))
24264 (home-page "https://github.com/yasuyk/helm-flycheck")
24265 (synopsis "Show Flycheck errors with Helm")
24266 (description
24267 "This integrates Flycheck with Helm.")
24268 (license license:gpl3+))))
24269
24270 (define-public emacs-helm-ls-git
24271 (package
24272 (name "emacs-helm-ls-git")
24273 (version "1.9.4")
24274 (source
24275 (origin
24276 (method git-fetch)
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))
24281 (sha256
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")
24287 (description
24288 "This package provides a Helm interface for Git files.
24289 @itemize
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.
24302 @end itemize\n")
24303 (license license:gpl3+)))
24304
24305 (define-public emacs-helm-mu
24306 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
24307 (package
24308 (name "emacs-helm-mu")
24309 (version (git-version "20180513" "1" commit))
24310 (source
24311 (origin
24312 (method git-fetch)
24313 (uri (git-reference
24314 (url "https://github.com/emacs-helm/helm-mu")
24315 (commit commit)))
24316 (file-name (git-file-name name version))
24317 (sha256
24318 (base32 "1lh0ahxdc5b2z18m9p30gwg8sbg33sjwkjr38p7h5xsm5fm7i0fz"))))
24319 (build-system emacs-build-system)
24320 (propagated-inputs
24321 (list emacs-helm mu))
24322 (home-page
24323 "https://github.com/emacs-helm/helm-mu")
24324 (synopsis
24325 "Helm sources for searching emails and contacts")
24326 (description
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+))))
24333
24334 (define-public emacs-helm-pass
24335 (package
24336 (name "emacs-helm-pass")
24337 (version "0.4")
24338 (source
24339 (origin
24340 (method git-fetch)
24341 (uri (git-reference
24342 (url "https://github.com/emacs-helm/helm-pass")
24343 (commit version)))
24344 (file-name (git-file-name name version))
24345 (sha256
24346 (base32
24347 "19w24isddzamkikq17vbv3y7ha22i7wc09d2nqw1j0qwhrrfkng9"))))
24348 (build-system emacs-build-system)
24349 (propagated-inputs
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")
24353 (description
24354 "Users of @code{helm-pass} may also be interested in functionality
24355 provided by other Emacs packages dealing with pass:
24356 @itemize
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+).
24361 @end itemize\n")
24362 (license license:gpl3+)))
24363
24364 (define-public emacs-image+
24365 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
24366 (package
24367 (name "emacs-image+")
24368 (version (git-version "0.6.2" "1" commit))
24369 (source
24370 (origin
24371 (method git-fetch)
24372 (uri (git-reference
24373 (url "https://github.com/mhayashi1120/Emacs-imagex")
24374 (commit commit)))
24375 (file-name (git-file-name name version))
24376 (sha256
24377 (base32
24378 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
24379 (build-system emacs-build-system)
24380 (inputs (list imagemagick))
24381 (arguments
24382 `(#:phases
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
24391 "image+.el"
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")
24398 (description
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+))))
24402
24403 (define-public emacs-package-lint
24404 (package
24405 (name "emacs-package-lint")
24406 (version "0.16")
24407 (source
24408 (origin
24409 (method git-fetch)
24410 (uri (git-reference
24411 (url "https://github.com/purcell/package-lint")
24412 (commit version)))
24413 (file-name (git-file-name name version))
24414 (sha256
24415 (base32
24416 "0srqcrhbdmd39jdsvh8k3nbrkqrl4nlic59dp5bal5vj495j7126"))))
24417 (arguments
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")
24422 (description
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
24427 file.")
24428 (license license:gpl3+)))
24429
24430 (define-public emacs-packed
24431 (package
24432 (name "emacs-packed")
24433 (version "3.1.0")
24434 (source
24435 (origin
24436 (method git-fetch)
24437 (uri (git-reference
24438 (url "https://github.com/emacscollective/packed")
24439 (commit version)))
24440 (file-name (git-file-name name version))
24441 (sha256
24442 (base32 "0i2j5yk6xhv4rh3317f241y9llwf4wk18a6a4lkqrvbjpvi9yvn0"))))
24443 (build-system emacs-build-system)
24444 (propagated-inputs
24445 (list emacs-compat))
24446 (home-page "https://github.com/emacscollective/packed")
24447 (synopsis "Package manager agnostic Emacs Lisp package utilities")
24448 (description
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
24454 filename).
24455
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
24459 package recipes.")
24460 (license license:gpl3+)))
24461
24462 (define-public emacs-dpd
24463 (package
24464 (name "emacs-dpd")
24465 (version "0.2.1")
24466 (source
24467 (origin
24468 (method git-fetch)
24469 (uri (git-reference
24470 (url "https://gitlab.com/lilyp/emacs-dpd")
24471 (commit version)))
24472 (file-name (git-file-name name version))
24473 (sha256
24474 (base32 "0wrqmpfcqp87dr5blpskf9kvm9slvffldqfxx77n15gcw516zzc8"))))
24475 (build-system emacs-build-system)
24476 (propagated-inputs
24477 (list emacs-packed))
24478 (home-page "https://gitlab.com/lilyp/emacs-dpd")
24479 (synopsis "Deliver packages to package.el")
24480 (description
24481 "This package provides tools for generating package-desc structures and
24482 feeding them to package.el library.")
24483 (license license:gpl3+)))
24484
24485 (define-public emacs-picpocket
24486 (let ((version "41")
24487 (commit "fa3a49f011b5ae139728548fec7375743f61c7c7"))
24488 (package
24489 (name "emacs-picpocket")
24490 (version version)
24491 (source
24492 (origin
24493 (method git-fetch)
24494 (uri (git-reference
24495 (url "https://github.com/johanclaesson/picpocket")
24496 (commit commit)))
24497 (file-name (git-file-name name version))
24498 (sha256
24499 (base32 "1vb358jyfs3px70ah60dmlz5azdfkva9xrw3mgrr4060vcy7w4q1"))))
24500 (build-system emacs-build-system)
24501 (arguments ; needed for running tests
24502 `(#:tests? #t
24503 #:emacs ,emacs
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")
24509 (description
24510 "Picpocket is an image viewer for GNU Emacs. It has commands for:
24511 @itemize
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.
24518 @end itemize")
24519 (license license:gpl3+))))
24520
24521 (define-public emacs-mu4e-conversation
24522 (let ((commit "98110bb9c300fc9866dee8e0023355f9f79c9b96")
24523 (revision "5"))
24524 (package
24525 (name "emacs-mu4e-conversation")
24526 (version (git-version "0.0.1" revision commit))
24527 (source
24528 (origin
24529 (method git-fetch)
24530 (uri (git-reference
24531 (url "https://gitlab.com/Ambrevar/mu4e-conversation.git")
24532 (commit commit)))
24533 (file-name (git-file-name name version))
24534 (sha256
24535 (base32
24536 "080s96jkcw2p288sp1vgds91rgl693iz6hi2dv56p2ih0nnivwlg"))))
24537 (build-system emacs-build-system)
24538 (propagated-inputs
24539 (list mu))
24540 (home-page
24541 "https://gitlab.com/Ambrevar/mu4e-conversation")
24542 (synopsis
24543 "Show a complete thread in a single buffer")
24544 (description
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+))))
24551
24552 (define-public emacs-pinentry
24553 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
24554 (revision "1"))
24555 (package
24556 (name "emacs-pinentry")
24557 (version (git-version "0.1" revision commit))
24558 (source
24559 (origin
24560 (method url-fetch)
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"))
24565 (sha256
24566 (base32
24567 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
24568 (build-system emacs-build-system)
24569 (propagated-inputs
24570 (list gnupg))
24571 (home-page "https://elpa.gnu.org/packages/pinentry.html")
24572 (synopsis "GnuPG Pinentry server implementation")
24573 (description
24574 "This package allows GnuPG passphrase to be prompted through the
24575 minibuffer instead of graphical dialog.
24576
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+))))
24581
24582 (define-public emacs-so-long
24583 (package
24584 (name "emacs-so-long")
24585 (version "1.1.2")
24586 (source
24587 (origin
24588 (method git-fetch)
24589 (uri (git-reference
24590 (url "https://git.savannah.gnu.org/git/so-long")
24591 (commit version)))
24592 (file-name (git-file-name name version))
24593 (sha256
24594 (base32
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
24601 later.")
24602 (license license:gpl3+)))
24603
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")
24608 (revision "0"))
24609 (package
24610 (name "emacs-srfi")
24611 (version (git-version "0.3" revision commit))
24612 (source (origin
24613 (method git-fetch)
24614 (uri (git-reference
24615 (url "https://github.com/srfi-explorations/emacs-srfi")
24616 (commit commit)))
24617 (file-name (git-file-name name version))
24618 (sha256
24619 (base32
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")
24624 (description
24625 "This package shows a list of all SRFIs and provides commands to visit
24626 them in your web browser.")
24627 (license license:expat))))
24628
24629 (define-public emacs-github-review
24630 (let ((commit "a13a3b4f1b6114a32af843971a145ab880f51232")
24631 (revision "2"))
24632 (package
24633 (name "emacs-github-review")
24634 (version (git-version "0.1" revision commit))
24635 (source
24636 (origin
24637 (method git-fetch)
24638 (uri (git-reference
24639 (url "https://github.com/charignon/github-review")
24640 (commit commit)))
24641 (file-name (git-file-name name version))
24642 (sha256
24643 (base32
24644 "0injfpxzgfhmqalba845j5l5cdcxxqz43knhxwinf36g52nfabl0"))))
24645 (build-system emacs-build-system)
24646 (inputs
24647 (list emacs-dash emacs-s emacs-ghub))
24648 (native-inputs
24649 (list emacs-buttercup emacs-undercover))
24650 (arguments
24651 `(#:tests? #t
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+))))
24658
24659 (define-public emacs-deadgrep
24660 (package
24661 (name "emacs-deadgrep")
24662 (version "0.12")
24663 (source
24664 (origin
24665 (method git-fetch)
24666 (uri (git-reference
24667 (url "https://github.com/Wilfred/deadgrep")
24668 (commit version)))
24669 (file-name (git-file-name name version))
24670 (sha256
24671 (base32
24672 "0bwf8gsqw7hsmacqd34piwgv066ijfclmxaigkvhvpac0lpsmi79"))))
24673 (build-system emacs-build-system)
24674 (arguments
24675 (list
24676 #:tests? #t
24677 #:test-command #~(list "ert-runner")
24678 #:phases
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))))))))
24687 (native-inputs
24688 (list emacs-ert-runner emacs-undercover))
24689 (inputs
24690 (list ripgrep))
24691 (propagated-inputs
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+)))
24698
24699 (define-public emacs-focus
24700 (package
24701 (name "emacs-focus")
24702 (version "1.0.1")
24703 (source
24704 (origin
24705 (method git-fetch)
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))
24710 (sha256
24711 (base32
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+)))
24719
24720 (define-public emacs-pandoc-mode
24721 (package
24722 (name "emacs-pandoc-mode")
24723 (version "2.32")
24724 (source
24725 (origin
24726 (method git-fetch)
24727 (uri (git-reference
24728 (url "https://github.com/joostkremers/pandoc-mode")
24729 (commit version)))
24730 (file-name (git-file-name name version))
24731 (sha256
24732 (base32
24733 "1yn9mdlxcv9d33nvgy3wp09qhynb2m50cyhsv1xf77wyzlwdlb2p"))))
24734 (build-system emacs-build-system)
24735 (propagated-inputs
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)))
24742
24743 (define-public emacs-hlint-refactor-mode
24744 (let ((commit "c4307f86aad6d02e32e9b30cb6edc115584c791c")
24745 (revision "1"))
24746 (package
24747 (name "emacs-hlint-refactor-mode")
24748 (version (git-version "0.0.1" revision commit))
24749 (source
24750 (origin
24751 (method git-fetch)
24752 (uri (git-reference
24753 (url "https://github.com/mpickering/hlint-refactor-mode")
24754 (commit commit)))
24755 (file-name (git-file-name name version))
24756 (sha256
24757 (base32
24758 "1c71w9s34n0i7mm4njchxn6s3ri1y6mh3akgbg4nq41d42h8iap3"))))
24759 (build-system emacs-build-system)
24760 (propagated-inputs
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
24765 @code{hlint}.")
24766 (license license:expat))))
24767
24768 (define-public emacs-ccls
24769 (let ((commit "675a5704c14a27931e835a431beea3631d92e8e6")
24770 (revision "5"))
24771 (package
24772 (name "emacs-ccls")
24773 (version (git-version "0.1" revision commit))
24774 (source
24775 (origin
24776 (method git-fetch)
24777 (uri (git-reference
24778 (url "https://github.com/MaskRay/emacs-ccls")
24779 (commit commit)))
24780 (file-name (git-file-name name version))
24781 (sha256
24782 (base32
24783 "0l4bhyr9d8ljz1f0cfg1s2cjcmh6fiwbk5mdlvc7rrwz5hxc21is"))))
24784 (build-system emacs-build-system)
24785 (propagated-inputs
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))))
24792
24793 (define-public emacs-cpreproc
24794 (package
24795 (name "emacs-cpreproc")
24796 (version "1.0.0")
24797 (source
24798 (origin
24799 (method git-fetch)
24800 (uri (git-reference
24801 (url "https://git.sr.ht/~plattfot/cpreproc")
24802 (commit version)))
24803 (sha256
24804 (base32
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")
24810 (description
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+)))
24815
24816 (define-public emacs-cpreproc-openvdb
24817 (package
24818 (name "emacs-cpreproc-openvdb")
24819 (version "3.0.0")
24820 (source
24821 (origin
24822 (method git-fetch)
24823 (uri (git-reference
24824 (url "https://git.sr.ht/~plattfot/cpreproc-openvdb")
24825 (commit version)))
24826 (sha256
24827 (base32
24828 "0n1y8cxx6xipvip8y6nk9ig1dpjdksz77956wlql3lhqcrcn5hzg"))
24829 (file-name (git-file-name name version))))
24830 (build-system emacs-build-system)
24831 (propagated-inputs
24832 (list emacs-cpreproc))
24833 (home-page "https://sr.ht/~plattfot/cpreproc")
24834 (synopsis "Create preprocessor macros for C++ that uses OpenVDB")
24835 (description
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+)))
24840
24841 (define-public emacs-org-brain
24842 (package
24843 (name "emacs-org-brain")
24844 (version "0.5")
24845 (source
24846 (origin
24847 (method git-fetch)
24848 (uri (git-reference
24849 (url "https://github.com/Kungsgeten/org-brain")
24850 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
24851 (file-name (git-file-name name version))
24852 (sha256
24853 (base32
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
24864 wiki.")
24865 (license license:expat)))
24866
24867 (define-public emacs-recent-addresses
24868 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
24869 (revision "1"))
24870 (package
24871 (name "emacs-recent-addresses")
24872 (home-page "https://nschum.de/src/emacs/recent-addresses/")
24873 (version (git-version "0.1" revision commit))
24874 (source (origin
24875 (method git-fetch)
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")
24880 (commit commit)))
24881 (sha256
24882 (base32
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")
24887 (description
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
24890 email client.")
24891 (license license:gpl2+))))
24892
24893 (define-public emacs-fold-dwim
24894 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
24895 (revision "0"))
24896 (package
24897 (name "emacs-fold-dwim")
24898 (version (git-version "1.2" revision commit))
24899 (home-page "https://github.com/emacsattic/fold-dwim")
24900 (source (origin
24901 (method git-fetch)
24902 (uri (git-reference (url home-page) (commit commit)))
24903 (sha256
24904 (base32
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")
24909 (description
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+))))
24915
24916 (define-public emacs-markup-faces
24917 (package
24918 (name "emacs-markup-faces")
24919 (version "1.0.0")
24920 (source
24921 (origin
24922 (method url-fetch)
24923 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
24924 version ".el"))
24925 (sha256
24926 (base32
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+)))
24937
24938 (define-public emacs-adoc-mode
24939 (package
24940 (name "emacs-adoc-mode")
24941 (version "0.6.6")
24942 (source
24943 (origin
24944 (method git-fetch)
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))
24949 (sha256
24950 (base32
24951 "0kp2aafjhqxz3mjr9hkkss85r4n51chws5a2qj1xzb63dh36liwm"))))
24952 (build-system emacs-build-system)
24953 (arguments
24954 `(#:phases
24955 (modify-phases %standard-phases
24956 ;; See: https://github.com/sensorflo/adoc-mode/issues/39.
24957 (add-after 'unpack 'disable-failing-tests
24958 (lambda _
24959 (let-syntax
24960 ((disable-tests
24961 (syntax-rules ()
24962 ((_ file ())
24963 (syntax-error "test names list must not be empty"))
24964 ((_ file (test-name ...))
24965 (substitute* file
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")))
24974 #t)))
24975 #:tests? #t
24976 #:test-command '("emacs" "-Q" "-batch"
24977 "-l" "adoc-mode-test.el"
24978 "-f" "ert-run-tests-batch-and-exit")))
24979 (propagated-inputs
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+)))
24986
24987 (define-public emacs-racer
24988 (let ((commit "1e63e98626737ea9b662d4a9b1ffd6842b1c648c")
24989 (revision "0"))
24990 (package
24991 (name "emacs-racer")
24992 (version (git-version "1.2" revision commit))
24993 (source
24994 (origin
24995 (method git-fetch)
24996 (uri
24997 (git-reference
24998 (url "https://github.com/racer-rust/emacs-racer")
24999 (commit commit)))
25000 (file-name (git-file-name name version))
25001 (sha256
25002 (base32 "12a429lajk09qp1jxgig54p8z6wndfgr4jwdmgkc9s2df9sw02d3"))))
25003 (arguments
25004 `(#:tests? #t
25005 #:test-command '("ert-runner")))
25006 (native-inputs
25007 (list emacs-ert-runner emacs-undercover))
25008 (propagated-inputs
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")
25013 (description
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))))
25019
25020 (define-public emacs-rust-mode
25021 (package
25022 (name "emacs-rust-mode")
25023 (version "1.0.5")
25024 (source
25025 (origin
25026 (method git-fetch)
25027 (uri (git-reference
25028 (url "https://github.com/rust-lang/rust-mode")
25029 (commit version)))
25030 (file-name (git-file-name name version))
25031 (sha256
25032 (base32 "0sjhssxaqdd9mayfcjaf6pb0z4sv0xm5wjaqmk6wdmh543m2v1s8"))))
25033 (build-system emacs-build-system)
25034 (arguments
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
25040 source code.")
25041 (license (list license:expat
25042 license:asl2.0))))
25043
25044 (define-public emacs-rustic
25045 (package
25046 (name "emacs-rustic")
25047 (version "3.4")
25048 (source
25049 (origin
25050 (method git-fetch)
25051 (uri (git-reference
25052 (url "https://github.com/brotzeit/rustic")
25053 (commit version)))
25054 (file-name (git-file-name name version))
25055 (sha256
25056 (base32 "16vsv4fhj8zq9g4zrsmipdb1nydxgw3dhh5s3wawpvx2rcg6gx2l"))))
25057 (build-system emacs-build-system)
25058 (propagated-inputs
25059 (list emacs-dash
25060 emacs-f
25061 emacs-flycheck
25062 emacs-lsp-mode
25063 emacs-markdown-mode
25064 emacs-project
25065 emacs-rust-mode
25066 emacs-s
25067 emacs-spinner
25068 emacs-xterm-color))
25069 (arguments
25070 ;; Tests require rust, cargo, rustfmt, and various crates to be
25071 ;; vendored.
25072 `(#:tests? #f
25073 #:phases
25074 (modify-phases %standard-phases
25075 (add-before 'check 'set-without-cask
25076 (lambda _
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:
25082 @itemize
25083 @item Flycheck integration,
25084 @item Cargo popup,
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,
25092 @item etc.
25093 @end itemize")
25094 (license (list license:expat
25095 license:asl2.0))))
25096
25097 (define-public emacs-ztree
25098 ;; Upstream provides no tag, but the commit below matches latest release.
25099 (let ((commit "c9ad9136d52ca5a81475693864e255d29448f43f"))
25100 (package
25101 (name "emacs-ztree")
25102 (version "1.0.6")
25103 (source
25104 (origin
25105 (method git-fetch)
25106 (uri (git-reference
25107 (url "https://github.com/fourier/ztree")
25108 (commit commit)))
25109 (file-name (git-file-name name version))
25110 (sha256
25111 (base32
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))))
25121
25122 (define-public emacs-helm-org-contacts
25123 (let ((commit "741eca6239684950219c9a12802386a132491b8c")
25124 (revision "2"))
25125 (package
25126 (name "emacs-helm-org-contacts")
25127 (version (git-version "20201202" revision commit))
25128 (source
25129 (origin
25130 (method git-fetch)
25131 (uri (git-reference
25132 (url "https://github.com/tmalsburg/helm-org-contacts")
25133 (commit commit)))
25134 (file-name (git-file-name name version))
25135 (sha256
25136 (base32
25137 "1xy51hc3az8bc9sj71sjzy03xpkfa4v3cdcv3gpq3cj2zhk9gr8h"))))
25138 (build-system emacs-build-system)
25139 (propagated-inputs
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}
25146 was called.")
25147 (license license:gpl3))))
25148
25149 (define-public emacs-dired-du
25150 (package
25151 (name "emacs-dired-du")
25152 (version "0.5.2")
25153 (source
25154 (origin
25155 (method url-fetch)
25156 (uri (string-append
25157 "https://elpa.gnu.org/packages/dired-du-" version ".tar"))
25158 (sha256
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")
25163 (description
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+)))
25173
25174 (define-public emacs-dired-rsync
25175 (package
25176 (name "emacs-dired-rsync")
25177 (version "0.6")
25178 (source (origin
25179 (method git-fetch)
25180 (uri (git-reference
25181 (url "https://github.com/stsquad/dired-rsync")
25182 (commit version)))
25183 (file-name (git-file-name name version))
25184 (sha256
25185 (base32
25186 "19za6i96xrmczdh928n5ixd7j7pvy175sz1msaiwvdjwysjr8k51"))))
25187 (build-system emacs-build-system)
25188 (propagated-inputs
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+)))
25198
25199 (define-public emacs-pcre2el
25200 ;; Last release is very old so we get the latest commit.
25201 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
25202 (package
25203 (name "emacs-pcre2el")
25204 (version (git-version "1.8" "1" commit))
25205 (source
25206 (origin
25207 (method git-fetch)
25208 (uri (git-reference
25209 (url "https://github.com/joddie/pcre2el")
25210 (commit commit)))
25211 (file-name (git-file-name name version))
25212 (sha256
25213 (base32
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:
25222
25223 @itemize
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).
25232 @end itemize\n")
25233 (license license:gpl3))))
25234
25235 (define-public emacs-magit-todos
25236 (package
25237 (name "emacs-magit-todos")
25238 (version "1.5.3")
25239 (source
25240 (origin
25241 (method git-fetch)
25242 (uri (git-reference
25243 (url "https://github.com/alphapapa/magit-todos")
25244 (commit version)))
25245 (file-name (git-file-name name version))
25246 (sha256
25247 (base32
25248 "12ay02vk6bk77k33mhlqi41m03a77y80b15rj1dbh1n6jfrjwkfy"))))
25249 (build-system emacs-build-system)
25250 (propagated-inputs
25251 (list emacs-async
25252 emacs-dash
25253 emacs-f
25254 emacs-hl-todo
25255 emacs-magit
25256 emacs-pcre2el
25257 emacs-s))
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
25263 few (like NOTE).")
25264 (license license:gpl3)))
25265
25266 (define-public emacs-git-annex
25267 ;; Unreleased version has a fontification fix.
25268 (let ((commit "1324d3f23c534fe79391a2c256bb8803054e383b")
25269 (revision "2"))
25270 (package
25271 (name "emacs-git-annex")
25272 (version (git-version "1.1" revision commit))
25273 (source
25274 (origin
25275 (method git-fetch)
25276 (uri (git-reference
25277 (url "https://github.com/jwiegley/git-annex-el")
25278 (commit commit)))
25279 (file-name (git-file-name name version))
25280 (sha256
25281 (base32
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+))))
25292
25293 (define-public emacs-hackernews
25294 (package
25295 (name "emacs-hackernews")
25296 (version "0.6.1")
25297 (source
25298 (origin
25299 (method git-fetch)
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))
25304 (sha256
25305 (base32
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
25313 News homepage.")
25314 (license license:gpl3)))
25315
25316 (define-public emacs-tokei
25317 (package
25318 (name "emacs-tokei")
25319 (version "0.2")
25320 (source
25321 (origin
25322 (method git-fetch)
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))
25327 (sha256
25328 (base32
25329 "0gcjlcfxd4bg123gjf7d0vfvfd6zpd0da8svynglca1qhp77jkx1"))))
25330 (build-system emacs-build-system)
25331 (arguments
25332 (list
25333 #:phases
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"
25342 ("tokei-program"
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")
25348 (description
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+)))
25352
25353 (define-public emacs-youtube-dl
25354 (let ((commit "af877b5bc4f01c04fccfa7d47a2c328926f20ef4")
25355 (revision "2"))
25356 (package
25357 (name "emacs-youtube-dl")
25358 (version (git-version "1.0" "2" commit))
25359 (source
25360 (origin
25361 (method git-fetch)
25362 (uri (git-reference
25363 (url "https://github.com/skeeto/youtube-dl-emacs/")
25364 (commit commit)))
25365 (file-name (git-file-name name version))
25366 (sha256
25367 (base32
25368 "0zkl9jkjbx0lmp9ylv4rqg1zwqibk053s4rp7s1h0i18nzk7vn8j"))))
25369 (build-system emacs-build-system)
25370 (inputs
25371 (list youtube-dl))
25372 (arguments
25373 `(#:phases
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
25383 "youtube-dl.el"
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))))
25393
25394 (define-public emacs-ytdl
25395 (package
25396 (name "emacs-ytdl")
25397 (version "1.3.6")
25398 (source
25399 (origin
25400 (method git-fetch)
25401 (uri (git-reference
25402 (url "https://gitlab.com/tuedachu/ytdl")
25403 (commit version)))
25404 (file-name (git-file-name name version))
25405 (sha256
25406 (base32 "010arhvibyw50lqhsr8bm0vj3pzry1h1vgcvxnmyryirk3dv40jl"))))
25407 (build-system emacs-build-system)
25408 (arguments
25409 `(#:phases
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"
25418 ("ytdl-command"
25419 (search-input-file inputs "/bin/youtube-dl"))))))))
25420 (inputs
25421 (list youtube-dl))
25422 (propagated-inputs
25423 (list emacs-async emacs-dash))
25424 (home-page "https://gitlab.com/tuedachu/ytdl")
25425 (synopsis "Emacs interface for youtube-dl")
25426 (description
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+)))
25432
25433 (define-public emacs-ytel
25434 ;; No tagged releases. Using version from main file.
25435 (let ((commit "d40bc7ead8d4d7e4d16b03b66a93d63bef51cc5f")
25436 (revision "0"))
25437 (package
25438 (name "emacs-ytel")
25439 (version (git-version "0.1.0" revision commit))
25440 (source
25441 (origin
25442 (method git-fetch)
25443 (uri (git-reference
25444 (url "https://github.com/grastello/ytel")
25445 (commit commit)))
25446 (file-name (git-file-name name version))
25447 (sha256
25448 (base32 "0pxzfsxzrpv59dssrgx2mmwkm6rzk49ffjkgsa3wks7rdyfil3kf"))))
25449 (build-system emacs-build-system)
25450 (arguments
25451 `(#:phases
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\"")))))))))
25458 (inputs
25459 (list curl))
25460 (home-page "https://github.com/grastello/ytel")
25461 (synopsis "Youtube front-end for Emacs")
25462 (description
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+))))
25468
25469 (define-public emacs-ytel-show
25470 ;; No tagged releases. Version extracted from main file.
25471 (let ((commit "8b999484eb447ecdb741b24cbef2b5a7260a53e6")
25472 (revision "0"))
25473 (package
25474 (name "emacs-ytel-show")
25475 (version (git-version "0.1.0" revision commit))
25476 (source
25477 (origin
25478 (method git-fetch)
25479 (uri (git-reference
25480 (url "https://github.com/xFA25E/ytel-show")
25481 (commit commit)))
25482 (file-name (git-file-name name version))
25483 (sha256
25484 (base32 "0nhgzfzq1bgpbdbljx5z2hzr8ia7ybsyvvr66yj4klz0zj97rghj"))))
25485 (build-system emacs-build-system)
25486 (propagated-inputs
25487 (list emacs-ytel))
25488 (home-page "https://github.com/xFA25E/ytel-show")
25489 (synopsis "Browse YouTube in Emacs")
25490 (description
25491 "This package provides an Emacs interface for browsing YouTube videos
25492 and comments.")
25493 (license license:gpl3+))))
25494
25495 (define-public emacs-org-web-tools
25496 (package
25497 (name "emacs-org-web-tools")
25498 (version "1.1.1")
25499 (source
25500 (origin
25501 (method git-fetch)
25502 (uri (git-reference
25503 (url "https://github.com/alphapapa/org-web-tools")
25504 (commit version)))
25505 (file-name (git-file-name name version))
25506 (sha256
25507 (base32
25508 "0v4qad54r0z7dr7kg5lpfdsazi44qvrbybx9aciyl4w9grfajphb"))))
25509 (build-system emacs-build-system)
25510 (propagated-inputs
25511 (list emacs-dash emacs-esxml emacs-request emacs-s))
25512 (inputs
25513 (list pandoc))
25514 (arguments
25515 `(#:phases
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\"")))
25522 #t))))))
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.
25527
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+)))
25534
25535 (define-public emacs-blimp
25536 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
25537 (package
25538 (name "emacs-blimp")
25539 (version (git-version "0.0.0" "1" commit))
25540 (source
25541 (origin
25542 (method git-fetch)
25543 (uri (git-reference
25544 (url "https://github.com/walseb/blimp")
25545 (commit commit)))
25546 (file-name (git-file-name name version))
25547 (sha256
25548 (base32
25549 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
25550 (build-system emacs-build-system)
25551 (propagated-inputs
25552 (list emacs-eimp))
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+))))
25560
25561 (define-public emacs-synosaurus
25562 (package
25563 (name "emacs-synosaurus")
25564 (version "0.2.0")
25565 (source
25566 (origin
25567 (method git-fetch)
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))
25572 (sha256
25573 (base32
25574 "14dd6p89pmpf1w3nx4f9mzm4sn2b64nicws436ck7pmp223pwciv"))))
25575 (build-system emacs-build-system)
25576 (propagated-inputs
25577 (list wordnet))
25578 (arguments
25579 `(#:phases
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+)))
25596
25597 (define-public emacs-editorconfig
25598 (package
25599 (name "emacs-editorconfig")
25600 (version "0.9.1")
25601 (source
25602 (origin
25603 (method git-fetch)
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))
25608 (sha256
25609 (base32
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
25614 editors and IDEs")
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+)))
25620
25621 (define-public emacs-all-the-icons
25622 (package
25623 (name "emacs-all-the-icons")
25624 (version "5.0.0")
25625 (source
25626 (origin
25627 (method git-fetch)
25628 (uri (git-reference
25629 (url "https://github.com/domtronn/all-the-icons.el")
25630 (commit version)))
25631 (file-name (git-file-name name version))
25632 (sha256
25633 (base32 "0lwgvgnqf7vihglm0c5bwsxbl4x7f641289cji5s7jwy2dbsqk7g"))))
25634 (build-system emacs-build-system)
25635 (arguments
25636 `(#:include '("\\.el$" "^data/")
25637 #:exclude '("^test/")
25638 #:phases
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")
25643 "/share/fonts")))
25644 (mkdir-p fonts)
25645 (with-directory-excursion "fonts"
25646 (install-file "all-the-icons.ttf" fonts)
25647 ;; TODO: Unbundle.
25648 (install-file "file-icons.ttf" fonts)
25649 (install-file "octicons.ttf" fonts)
25650 (install-file "weathericons.ttf" fonts)))))
25651 (replace 'check
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"))))))))
25656 (native-inputs
25657 (list emacs-f emacs-ert-runner))
25658 (propagated-inputs
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")
25662 (description
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".
25672 (license
25673 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
25674
25675 (define-public emacs-all-the-icons-completion
25676 ;; XXX: No tags. Extract version from keyword in main file.
25677 (let ((commit "9e7d456b0934ecb568b6f05a8445e3f4ce32261f")
25678 (revision "0"))
25679 (package
25680 (name "emacs-all-the-icons-completion")
25681 (version (git-version "0.0.1" revision commit))
25682 (source
25683 (origin
25684 (method git-fetch)
25685 (uri (git-reference
25686 (url "https://github.com/iyefrat/all-the-icons-completion")
25687 (commit commit)))
25688 (file-name (git-file-name name version))
25689 (sha256
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
25698 type.")
25699 (license license:gpl3+))))
25700
25701 (define-public emacs-wttrin
25702 (let ((commit "df5427ce2a5ad4dab652dbb1c4a1834d7ddc2abc")
25703 (revision "1"))
25704 (package
25705 (name "emacs-wttrin")
25706 (version (git-version "0.2.0" revision commit))
25707 (source (origin
25708 (method git-fetch)
25709 (uri (git-reference
25710 (url "https://github.com/bcbcarl/emacs-wttrin")
25711 (commit commit)))
25712 (file-name (git-file-name name version))
25713 (sha256
25714 (base32
25715 "1ai655f10iayb4vw0ass2j3x83f4vsv90326mnywkzfl3sxd432z"))))
25716 (build-system emacs-build-system)
25717 (propagated-inputs
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
25722 @url{wttr.in}.")
25723 (license license:expat))))
25724
25725 (define-public emacs-browse-kill-ring
25726 (let ((commit "1ef72cc6accd94cd7032c02b1b2c78ae7f1d1965")
25727 (revision "0"))
25728 (package
25729 (name "emacs-browse-kill-ring")
25730 (version (git-version "2.0.0" revision commit))
25731 (source
25732 (origin
25733 (method git-fetch)
25734 (uri (git-reference
25735 (url "https://github.com/browse-kill-ring/browse-kill-ring")
25736 (commit commit)))
25737 (file-name (git-file-name name version))
25738 (sha256
25739 (base32
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")
25744 (description
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+))))
25749
25750 (define-public emacs-powerline
25751 (package
25752 (name "emacs-powerline")
25753 (version "2.4")
25754 (source
25755 (origin
25756 (method git-fetch)
25757 (uri (git-reference
25758 (url "https://github.com/milkypostman/powerline")
25759 (commit version)))
25760 (file-name (git-file-name name version))
25761 (sha256
25762 (base32
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+)))
25771
25772 (define-public emacs-spaceline
25773 (package
25774 (name "emacs-spaceline")
25775 (version "2.0.1")
25776 (source
25777 (origin
25778 (method git-fetch)
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))
25783 (sha256
25784 (base32
25785 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
25786 (build-system emacs-build-system)
25787 (propagated-inputs
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.
25793
25794 @itemize
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.
25800 @end itemize")
25801 (license license:gpl3+)))
25802
25803 (define-public emacs-spaceline-next
25804 (let ((commit "1b26af2c1a701481ac5d90928fe0200e389756c3")
25805 (last-release-version "2.0.1")
25806 (revision "0"))
25807 (package
25808 (inherit emacs-spaceline)
25809 (name "emacs-spaceline-next")
25810 (version (git-version last-release-version revision commit))
25811 (source
25812 (origin
25813 (method git-fetch)
25814 (uri (git-reference
25815 (url "https://github.com/TheBB/spaceline")
25816 (commit commit)))
25817 (sha256
25818 (base32 "11lwckqcgzsahrkkm5wk1ph4kc7d4yz05r7251g8c9f0q6vdj9dp"))
25819 (file-name (git-file-name name version)))))))
25820
25821 (define-public emacs-column-marker
25822 (package
25823 (name "emacs-column-marker")
25824 (version "9")
25825 (source
25826 (origin
25827 (method url-fetch)
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")
25833 (description
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
25839 correctly.")
25840 (license license:gpl2+)))
25841
25842 (define-public emacs-slime-repl-ansi-color
25843 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
25844 (package
25845 (name "emacs-slime-repl-ansi-color")
25846 (version (git-version "0.0.0" "1" commit))
25847 (source (origin
25848 (method git-fetch)
25849 (uri (git-reference
25850 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
25851 (commit commit)))
25852 (file-name (git-file-name name version))
25853 (sha256
25854 (base32
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+))))
25861
25862 (define-public emacs-helm-slime
25863 (package
25864 (name "emacs-helm-slime")
25865 (version "0.4.0")
25866 (source (origin
25867 (method git-fetch)
25868 (uri (git-reference
25869 (url "https://github.com/emacs-helm/helm-slime")
25870 (commit version)))
25871 (file-name (git-file-name name version))
25872 (sha256
25873 (base32
25874 "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"))))
25875 (build-system emacs-build-system)
25876 (propagated-inputs
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:
25881
25882 @itemize
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.
25887 @end itemize\n")
25888 (license license:gpl3+)))
25889
25890 (define-public emacs-helm-sly
25891 (package
25892 (name "emacs-helm-sly")
25893 (version "0.7.2")
25894 (source (origin
25895 (method git-fetch)
25896 (uri (git-reference
25897 (url "https://github.com/emacs-helm/helm-sly")
25898 (commit version)))
25899 (file-name (git-file-name name version))
25900 (sha256
25901 (base32
25902 "06x8wyx1r0s7askkvlbklgz1cszv34qsvv3gryndw350smk1v8kx"))))
25903 (build-system emacs-build-system)
25904 (propagated-inputs
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:
25909
25910 @itemize
25911 @item @code{helm-sly-list-connections}: Yet another Lisp connection list with
25912 Helm.
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
25916 scratch buffer.
25917 @end itemize\n")
25918 (license license:gpl3+)))
25919
25920 (define-public emacs-gtk-look
25921 (package
25922 (name "emacs-gtk-look")
25923 (version "29")
25924 (source (origin
25925 (method url-fetch)
25926 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
25927 (sha256
25928 (base32
25929 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
25930 (build-system emacs-build-system)
25931 (arguments
25932 `(#:phases
25933 (modify-phases %standard-phases
25934 (add-after 'unpack 'configure
25935 (lambda _
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*"))))
25941 #t)))))
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
25949
25950 @itemize
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>}.
25955 @end itemize\n")
25956 (license license:gpl3+)))
25957
25958 (define-public emacs-ov
25959 (package
25960 (name "emacs-ov")
25961 (version "1.0.6")
25962 (source (origin
25963 (method git-fetch)
25964 (uri (git-reference
25965 (url "https://github.com/ShingoFukuyama/ov.el")
25966 (commit version)))
25967 (file-name (git-file-name name version))
25968 (sha256
25969 (base32
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
25975 Emacs.")
25976 (license license:gpl3+)))
25977
25978 (define-public emacs-matrix-client
25979 (let ((commit "d2ac55293c96d4c95971ed8e2a3f6f354565c5ed"))
25980 (package
25981 (name "emacs-matrix-client")
25982 (version (git-version "0.0.0" "6" commit))
25983 (source (origin
25984 (method git-fetch)
25985 (uri (git-reference
25986 (url "https://github.com/jgkamat/matrix-client-el")
25987 (commit commit)))
25988 (file-name (git-file-name name version))
25989 (sha256
25990 (base32
25991 "1scfv1502yg7x4bsl253cpr6plml1j4d437vci2ggs764sh3rcqq"))))
25992 (build-system emacs-build-system)
25993 (propagated-inputs
25994 (list emacs-a
25995 emacs-anaphora
25996 emacs-dash
25997 emacs-esxml
25998 emacs-f
25999 emacs-frame-purpose
26000 emacs-ht
26001 emacs-ov
26002 emacs-rainbow-identifiers
26003 emacs-request
26004 emacs-s
26005 emacs-tracking))
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+))))
26012
26013 (define-public emacs-sesman
26014 (package
26015 (name "emacs-sesman")
26016 (version "0.3.4")
26017 (source
26018 (origin
26019 (method git-fetch)
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))
26024 (sha256
26025 (base32
26026 "0z5jb4vpbjsi63w3wjy6d2lgz33qdfvrgfb3bszv4hcf6a96y7fc"))))
26027 (build-system emacs-build-system)
26028 (arguments
26029 `(#:phases
26030 (modify-phases %standard-phases
26031 (add-after 'unpack 'set-shell
26032 ;; Setting the SHELL environment variable is required for the tests
26033 ;; to find sh.
26034 (lambda _
26035 (setenv "SHELL" (which "sh"))
26036 #t)))
26037 #:tests? #t
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+)))
26046
26047 (define-public emacs-buttercup
26048 (package
26049 (name "emacs-buttercup")
26050 (version "1.29")
26051 (source
26052 (origin
26053 (method git-fetch)
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))
26058 (sha256
26059 (base32
26060 "0a5wvm7nh4748wzvp2b9jll74ifqz22bicxkl5fwp4di4vrqpd47"))))
26061 (build-system emacs-build-system)
26062 (arguments
26063 (list
26064 #:tests? #t
26065 #:test-command #~(list "make" "test")
26066 #:phases
26067 #~(modify-phases %standard-phases
26068 (add-after 'install 'install-bin
26069 (lambda _
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+)))
26079
26080 ;;; Required by emacs-lua-mode
26081 (define emacs-buttercup-1.25
26082 (package
26083 (inherit emacs-buttercup)
26084 (name "emacs-buttercup")
26085 (version "1.25")
26086 (source
26087 (origin
26088 (method git-fetch)
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))
26093 (sha256
26094 (base32
26095 "0fsysvsypda6b7azc15bpaprq3bwx4gb6rlq2mj6f8rgwdqc8153"))))))
26096
26097 (define-public emacs-cort
26098 (package
26099 (name "emacs-cort")
26100 (version "7.1.0")
26101 (source (origin
26102 (method git-fetch)
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))
26107 (sha256
26108 (base32
26109 "03c223nczpbdkjmq69panhbsq2a0zj20w329jgj4c0zsj8m1a32a"))))
26110 (build-system emacs-build-system)
26111 (propagated-inputs
26112 (list emacs-ansi))
26113 (arguments
26114 `(#:tests? #t
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+)))
26122
26123 (define-public emacs-wordnut
26124 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
26125 (revision "0"))
26126 (package
26127 (name "emacs-wordnut")
26128 (version (git-version "0.1" revision commit))
26129 (home-page "https://github.com/gromnitsky/wordnut")
26130 (source (origin
26131 (method git-fetch)
26132 (uri (git-reference (url home-page) (commit commit)))
26133 (sha256
26134 (base32
26135 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
26136 (patches
26137 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
26138 (file-name (git-file-name name version))))
26139 (build-system emacs-build-system)
26140 (propagated-inputs
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+))))
26147
26148 (define-public emacs-frame-local
26149 ;; There is no release yet. Version is extracted from the main
26150 ;; file.
26151 (let ((version "0.0.1")
26152 (revision "0")
26153 (commit "7ee1106c3bcd4022f48421f8cb1ef4f995da816e"))
26154 (package
26155 (name "emacs-frame-local")
26156 (version (git-version version revision commit))
26157 (source
26158 (origin
26159 (method git-fetch)
26160 (uri (git-reference
26161 (url "https://github.com/sebastiencs/frame-local")
26162 (commit commit)))
26163 (file-name (git-file-name name version))
26164 (sha256
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")
26169 (description
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+))))
26175
26176 (define-public emacs-frame-purpose
26177 (package
26178 (name "emacs-frame-purpose")
26179 (version "1.0")
26180 (source (origin
26181 (method git-fetch)
26182 (uri (git-reference
26183 (url "https://github.com/alphapapa/frame-purpose.el")
26184 (commit version)))
26185 (sha256
26186 (base32
26187 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
26188 (file-name (git-file-name name version))))
26189 (build-system emacs-build-system)
26190 (inputs
26191 (list emacs-dash))
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+)))
26199
26200 (define-public emacs-arduino-mode
26201 (let ((commit "652c6a328fa8f2db06534d5f231c6b6933be3edc")
26202 (revision "0"))
26203 (package
26204 (name "emacs-arduino-mode")
26205 (version (git-version "1.3.0" revision commit))
26206 (source
26207 (origin
26208 (method git-fetch)
26209 (uri (git-reference
26210 (url "https://repo.or.cz/arduino-mode")
26211 (commit commit)))
26212 (sha256
26213 (base32 "16izwrk1dfsa14kylfhsxdwkx76g0jdk0znl1z7cypxh5q9ijy1x"))
26214 (file-name (git-file-name name version))))
26215 (build-system emacs-build-system)
26216 (inputs
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+))))
26223
26224 (define-public emacs-annalist
26225 (package
26226 (name "emacs-annalist")
26227 (version "1.0.1")
26228 (source (origin
26229 (method git-fetch)
26230 (uri (git-reference
26231 (url "https://github.com/noctuid/annalist.el")
26232 (commit version)))
26233 (sha256
26234 (base32
26235 "1jlb5w4972l8m2aa18q2l6arfpm65g4nk21dn1yi8c9dbpk2g67c"))
26236 (file-name (git-file-name name version))))
26237 (build-system emacs-build-system)
26238 (native-inputs
26239 (list emacs-buttercup emacs-lispy emacs-evil))
26240 (arguments
26241 `(#:phases
26242 (modify-phases %standard-phases
26243 (add-before 'check 'fix-makefile
26244 (lambda _
26245 (substitute* "Makefile"
26246 (("cask exec ") ""))
26247 #t)))
26248 #:tests? #t
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+)))
26255
26256 (define-public emacs-general
26257 (let ((commit "a0b17d207badf462311b2eef7c065b884462cb7c")
26258 (revision "4"))
26259 (package
26260 (name "emacs-general")
26261 (version (git-version "0" revision commit))
26262 (source
26263 (origin
26264 (method git-fetch)
26265 (uri (git-reference
26266 (url "https://github.com/noctuid/general.el")
26267 (commit commit)))
26268 (sha256
26269 (base32 "0wn5rk3gkimdklip392mnjrmkymgrb7q9skifi03cbpjam1anzvv"))
26270 (file-name (git-file-name name version))))
26271 (build-system emacs-build-system)
26272 (native-inputs
26273 (list emacs-buttercup emacs-evil emacs-which-key emacs-use-package))
26274 (arguments
26275 `(#:tests? #t
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+))))
26292
26293 (define-public emacs-tldr
26294 (let ((commit "7203d1be3dcbf12131846ffe06601933fa874d74"))
26295 (package
26296 (name "emacs-tldr")
26297 (version (git-version "0" "1" commit))
26298 (home-page "https://github.com/kuanyui/tldr.el")
26299 (source (origin
26300 (method git-fetch)
26301 (uri (git-reference
26302 (url (string-append home-page ".git"))
26303 (commit commit)))
26304 (sha256
26305 (base32
26306 "1bw6la463l2yfm7rp76ga4makfy4kpxgwi7ni5gxk31w11g26ryk"))
26307 (file-name (git-file-name name version))))
26308 (build-system emacs-build-system)
26309 (propagated-inputs
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))))
26316
26317 (define-public emacs-window-layout
26318 (package
26319 (name "emacs-window-layout")
26320 (version "1.4")
26321 (home-page "https://github.com/kiwanami/emacs-window-layout")
26322 (source (origin
26323 (method git-fetch)
26324 (uri (git-reference
26325 (url home-page)
26326 (commit (string-append "v" version))))
26327 (sha256
26328 (base32
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+)))
26336
26337 (define-public emacs-e2wm
26338 (package
26339 (name "emacs-e2wm")
26340 (version "1.4")
26341 (home-page "https://github.com/kiwanami/emacs-window-manager")
26342 (source (origin
26343 (method git-fetch)
26344 (uri (git-reference
26345 (url home-page)
26346 (commit (string-append "v" version))))
26347 (sha256
26348 (base32
26349 "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
26350 (file-name (git-file-name name version))))
26351 (build-system emacs-build-system)
26352 (propagated-inputs
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+)))
26360
26361 (define-public emacs-ctable
26362 ;; Latest release is not tagged. Use commit matching version bump.
26363 (let ((commit "04dbcddeba1da1f39e885bc0d36240ff37d829e9")
26364 (version "0.1.3"))
26365 (package
26366 (name "emacs-ctable")
26367 (version version)
26368 (home-page "https://github.com/kiwanami/emacs-ctable")
26369 (source (origin
26370 (method git-fetch)
26371 (uri (git-reference
26372 (url home-page)
26373 (commit commit)))
26374 (sha256
26375 (base32
26376 "16yrx1z44xs24z2a0gwzf1xhhks1wrzafc5ihf6lbw843rq2jar0"))
26377 (file-name (git-file-name name version))))
26378 (build-system emacs-build-system)
26379 (arguments
26380 ;; XXX: The following file does not compile. It is not useful, so
26381 ;; remove it.
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+))))
26387
26388 (define-public emacs-leetcode
26389 (let ((commit "8624496af9e105c3e07d88844b37ede87540d604")
26390 (revision "1"))
26391 (package
26392 (name "emacs-leetcode")
26393 (version (git-version "0" "1" commit))
26394 (home-page "https://github.com/ginqi7/leetcode-emacs")
26395 (source (origin
26396 (method git-fetch)
26397 (uri (git-reference
26398 (url "https://github.com/ginqi7/leetcode-emacs")
26399 (commit commit)))
26400 (sha256
26401 (base32
26402 "11pp7ydlmwrv7djf9mwk4xzn295xbmdnj5x13bfj5yjpjr89p531"))
26403 (file-name (git-file-name name version))))
26404 (build-system emacs-build-system)
26405 (propagated-inputs
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))))
26411
26412 (define-public emacs-epc
26413 (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
26414 (package
26415 (name "emacs-epc")
26416 (version (git-version "0.1.1" "1" commit))
26417 (home-page "https://github.com/kiwanami/emacs-epc")
26418 (source (origin
26419 (method git-fetch)
26420 (uri (git-reference
26421 (url home-page)
26422 (commit commit)))
26423 (sha256
26424 (base32
26425 "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
26426 (file-name (git-file-name name version))))
26427 (build-system emacs-build-system)
26428 (propagated-inputs
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+))))
26436
26437 (define-public emacs-edbi
26438 (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
26439 (package
26440 (name "emacs-edbi")
26441 (version (git-version "0.1.3" "1" commit))
26442 (home-page "https://github.com/kiwanami/emacs-edbi")
26443 (source (origin
26444 (method git-fetch)
26445 (uri (git-reference
26446 (url home-page)
26447 (commit commit)))
26448 (sha256
26449 (base32
26450 "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
26451 (file-name (git-file-name name version))))
26452 (build-system emacs-build-system)
26453 (inputs
26454 (list perl
26455 perl-rpc-epc-service
26456 perl-dbi
26457 ;; TODO: Adding support for perl-dbd-mysql and others would
26458 ;; dramatically increase the closure size. Make several packages?
26459 perl-dbd-sqlite))
26460 (propagated-inputs
26461 (list emacs-e2wm emacs-epc))
26462 (arguments
26463 `(#:include '("\\.el$" "\\.pl$")
26464 #:phases
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\"")))
26471 #t)))
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")))))
26480 #t)))))
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+))))
26485
26486 (define-public emacs-edbi-sqlite
26487 (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
26488 (package
26489 (name "emacs-edbi-sqlite")
26490 (version (git-version "0.1.1" "1" commit))
26491 (home-page "https://github.com/proofit404/edbi-sqlite")
26492 (source (origin
26493 (method git-fetch)
26494 (uri (git-reference
26495 (url home-page)
26496 (commit commit)))
26497 (sha256
26498 (base32
26499 "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
26500 (file-name (git-file-name name version))))
26501 (build-system emacs-build-system)
26502 (propagated-inputs
26503 (list emacs-edbi))
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+))))
26508
26509 (define-public emacs-nice-citation
26510 (let ((commit "1013b56d9d1495a335f40a5f76203034dc5fa0ea")
26511 (revision "0"))
26512 (package
26513 (name "emacs-nice-citation")
26514 (version (git-version "0.0.2" revision commit))
26515 (source
26516 (origin
26517 (method git-fetch)
26518 (uri (git-reference
26519 (url "https://github.com/damiencollard/nice-citation")
26520 (commit commit)))
26521 (sha256
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")
26527 (description
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.
26530
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
26533 chevron marks.")
26534 (license license:gpl3+))))
26535
26536 (define-public emacs-nix-mode
26537 (package
26538 (name "emacs-nix-mode")
26539 (version "1.5.0")
26540 (source
26541 (origin
26542 (method git-fetch)
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))
26547 (sha256
26548 (base32 "1xvrnpk7cnjm55ja6j7bdnszkzj914gmyzb12r89jh0z25r09crq"))))
26549 (build-system emacs-build-system)
26550 (propagated-inputs
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
26556 comments.")
26557 (license license:lgpl2.1+)))
26558
26559 (define-public emacs-libmpdel
26560 (package
26561 (name "emacs-libmpdel")
26562 (version "2.0.0")
26563 (source (origin
26564 (method git-fetch)
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))
26569 (sha256
26570 (base32
26571 "03bavca89cf7dsjmg7hb48qnvca41ndiij33iw5yjjhbq1zyj8r4"))))
26572 (build-system emacs-build-system)
26573 (arguments
26574 (list
26575 #:tests? #t
26576 #:test-command #~(list "ert-runner")))
26577 (native-inputs
26578 (list emacs-ert-runner))
26579 (home-page "https://github.com/mpdel/libmpdel")
26580 (synopsis "Emacs library to communicate with Music Player Daemon (MPD)")
26581 (description
26582 "LibMPDel is an Emacs library client to communicate with Music Player
26583 Daemon (MPD), a flexible, powerful, server-side application for playing
26584 music.")
26585 (license license:gpl3+)))
26586
26587 (define-public emacs-mpdel
26588 (package
26589 (name "emacs-mpdel")
26590 (version "2.0.0")
26591 (source
26592 (origin
26593 (method git-fetch)
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))
26598 (sha256
26599 (base32
26600 "1wg48z0g6qqsd38r2ydba8dp7cq72cnkzshmhj6900xak6f5ywfd"))))
26601 (build-system emacs-build-system)
26602 (propagated-inputs
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)")
26606 (description
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+)))
26611
26612 (define-public emacs-navigel
26613 (package
26614 (name "emacs-navigel")
26615 (version "0.7.0")
26616 (source (origin
26617 (method git-fetch)
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))
26622 (sha256
26623 (base32
26624 "0v9f7wb6yghds3hjj8x5di6gfa8n5kjwhav7la1ca2zwgs2c1a9p"))))
26625 (build-system emacs-build-system)
26626 (arguments
26627 (list
26628 #:tests? #t
26629 #:test-command #~(list "ert-runner")))
26630 (native-inputs
26631 (list emacs-ert-runner))
26632 (propagated-inputs
26633 (list emacs-tablist))
26634 (home-page "https://github.com/DamienCassou/navigel")
26635 (synopsis "Emacs library for creating tabulated-list based user-interfaces")
26636 (description
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+)))
26641
26642 (define-public emacs-eat
26643 (package
26644 (name "emacs-eat")
26645 (version "0.4")
26646 (source
26647 (origin
26648 (method git-fetch)
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))
26653 (sha256
26654 (base32
26655 "0zs1fwbapgsap8vai97f1inginb896gl15kyjm521nvaywk4rc12"))
26656 (modules '((guix build utils)))
26657 (snippet
26658 #~(begin
26659 ;; Remove generated terminfo database.
26660 (delete-file-recursively "terminfo")))))
26661 (build-system emacs-build-system)
26662 (arguments
26663 (list
26664 #:tests? #t
26665 #:include #~(cons* "^term/"
26666 "^terminfo/"
26667 "^integration/"
26668 "\\.ti$"
26669 %default-include)
26670 #:phases
26671 #~(modify-phases %standard-phases
26672 (add-before 'install 'build-info
26673 (lambda _
26674 (invoke "make" "info")))
26675 (add-before 'install 'build-terminfo-database
26676 (lambda _
26677 (invoke "make" "terminfo"))))))
26678 (native-inputs
26679 (list ncurses texinfo))
26680 (home-page "https://codeberg.org/akib/emacs-eat")
26681 (synopsis "Terminal emulator in Emacs")
26682 (description
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
26685 integration.")
26686 (license license:gpl3+)))
26687
26688 (define-public emacs-vterm
26689 (let ((commit "e19dc2bb9859a75616bf068c341a540d0d329e4d"))
26690 (package
26691 (name "emacs-vterm")
26692 (version "0.0.2")
26693 (source (origin
26694 (method git-fetch)
26695 (uri (git-reference
26696 (url "https://github.com/akermu/emacs-libvterm")
26697 (commit commit)))
26698 (file-name (git-file-name name version))
26699 (sha256
26700 (base32
26701 "0iqlzpy83ra6xz406fmddfj72bmkdb5b1j59m1dbxf3wxn55320d"))))
26702 (build-system emacs-build-system)
26703 (arguments
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))
26710 #:phases
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)"
26717 `(module-load
26718 ,(string-append (assoc-ref outputs "out")
26719 "/lib/vterm-module.so"))))))
26720 (add-after 'build 'configure
26721 ;; Run cmake.
26722 (lambda* (#:key outputs #:allow-other-keys)
26723 ((assoc-ref cmake:%standard-phases 'configure)
26724 #:outputs outputs
26725 #:out-of-source? #f
26726 #:configure-flags '("-DUSE_SYSTEM_LIBVTERM=ON"))))
26727 (add-after 'configure 'make
26728 ;; Run 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.
26733 (install-file
26734 "vterm-module.so"
26735 (string-append (assoc-ref outputs "out") "/lib")))))
26736 #:tests? #f))
26737 (native-inputs
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+))))
26744
26745 (define-public emacs-vterm-toggle
26746 ;; There have been no releases.
26747 (let ((commit "d10239b7bb89b78dddb82f66ac2286bc0b02747b")
26748 (revision "1"))
26749 (package
26750 (name "emacs-vterm-toggle")
26751 (version (git-version "0.0.4" revision commit))
26752 (source
26753 (origin
26754 (method git-fetch)
26755 (uri (git-reference
26756 (url "https://github.com/jixiuf/vterm-toggle")
26757 (commit commit)))
26758 (file-name (git-file-name name version))
26759 (sha256
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")
26765 (description
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+))))
26769
26770 (define-public emacs-multi-vterm
26771 (let ((commit "a3df7218c1ecadef779e2c47815201052283f9ea")
26772 (revision "1"))
26773 (package
26774 (name "emacs-multi-vterm")
26775 (version (git-version "1.0" revision commit))
26776 (source (origin
26777 (method git-fetch)
26778 (uri (git-reference
26779 (url "https://github.com/suonlight/multi-vterm")
26780 (commit commit)))
26781 (file-name (git-file-name name version))
26782 (sha256
26783 (base32
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")
26789 (description
26790 "This package provides an Emacs library to manage vterm buffers.")
26791 (license license:gpl3+))))
26792
26793 (define-public emacs-simple-mpc
26794 ;; There have been no releases.
26795 (let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
26796 (revision "1"))
26797 (package
26798 (name "emacs-simple-mpc")
26799 (version (git-version "0" revision commit))
26800 (source
26801 (origin
26802 (method git-fetch)
26803 (uri (git-reference
26804 (url "https://github.com/jorenvo/simple-mpc")
26805 (commit commit)))
26806 (file-name (git-file-name name version))
26807 (sha256
26808 (base32
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+))))
26817
26818 (define-public emacs-mkmcc-gnuplot-mode
26819 (package
26820 (name "emacs-mkmcc-gnuplot-mode")
26821 (version "1.2.0")
26822 (source
26823 (origin
26824 (method git-fetch)
26825 (uri (git-reference
26826 (url "https://github.com/mkmcc/gnuplot-mode")
26827 (commit "601f6392986f0cba332c87678d31ae0d0a496ce7")))
26828 (file-name (git-file-name name version))
26829 (sha256
26830 (base32
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+)))
26839
26840 (define-public emacs-cmake-font-lock
26841 ;; Upstream does not tag commits. The commit hash below matches version
26842 ;; bump.
26843 (let ((commit "0d6111b36a66013aa9b452e664c93308df3b07e1"))
26844 (package
26845 (name "emacs-cmake-font-lock")
26846 (version "0.1.12")
26847 (source (origin
26848 (method git-fetch)
26849 (uri (git-reference
26850 (url "https://github.com/Lindydancer/cmake-font-lock")
26851 (commit commit)))
26852 (file-name (git-file-name name version))
26853 (sha256
26854 (base32
26855 "12ga8ri7v9r5y46pghk80ww27i7nhbrg0r3s2ina42drlkkliqj4"))))
26856 (build-system emacs-build-system)
26857 (native-inputs
26858 (list emacs-faceup))
26859 (arguments
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+))))
26866
26867 (define-public emacs-detached
26868 (package
26869 (name "emacs-detached")
26870 (version "0.10.1")
26871 (source (origin
26872 (method git-fetch)
26873 (uri (git-reference
26874 (url "https://git.sr.ht/~niklaseklund/detached.el")
26875 (commit version)))
26876 (file-name (git-file-name name version))
26877 (sha256
26878 (base32
26879 "0dvvyqc0nw9has54vps10f5iv831cb29vqvbvx0m2djv9pacqp17"))))
26880 (arguments
26881 (list
26882 #:tests? #t
26883 #:test-command #~(list "ert-runner")
26884 #:phases
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")
26898 (description
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+)))
26903
26904 (define-public emacs-dtache
26905 (deprecated-package "emacs-dtache" emacs-detached))
26906
26907 (define-public emacs-dtrt-indent
26908 (package
26909 (name "emacs-dtrt-indent")
26910 (version "1.8")
26911 (source (origin
26912 (method git-fetch)
26913 (uri (git-reference
26914 (url "https://github.com/jscheid/dtrt-indent")
26915 (commit version)))
26916 (file-name (git-file-name name version))
26917 (sha256
26918 (base32
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+)))
26928
26929 (define-public emacs-repo
26930 (package
26931 (name "emacs-repo")
26932 (version "0.2.0")
26933 (source (origin
26934 (method git-fetch)
26935 (uri (git-reference
26936 (url "https://github.com/canatella/repo-el")
26937 (commit version)))
26938 (file-name (git-file-name name version))
26939 (sha256
26940 (base32
26941 "0jgiawdnzjlrpx2j1y6djwbqncdpmyfd31q1qf1890049y8ppxnb"))))
26942 (build-system emacs-build-system)
26943 (native-inputs
26944 (list emacs-el-mock emacs-ert-runner))
26945 (propagated-inputs
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+)))
26953
26954 (define-public emacs-repology
26955 (package
26956 (name "emacs-repology")
26957 (version "1.2.3")
26958 (source
26959 (origin
26960 (method url-fetch)
26961 (uri (string-append "https://elpa.gnu.org/packages/"
26962 "repology-" version ".tar"))
26963 (sha256
26964 (base32 "1ngx23b7dilyps20nznrrn867kbxyn6nryf4p1sy5m576hkw18kn"))))
26965 (build-system emacs-build-system)
26966 (arguments
26967 (list
26968 #:tests? #t
26969 #:test-command
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")
26975 (description
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+)))
26979
26980 (define-public emacs-alect-themes
26981 (package
26982 (name "emacs-alect-themes")
26983 (version "0.10")
26984 (source
26985 (origin
26986 (method git-fetch)
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))
26991 (sha256
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
26998 GUI.")
26999 (license license:gpl3+)))
27000
27001 (define-public emacs-google-c-style
27002 (let ((commit "6271f3f473ceb3a7fef99388a3040903b1a145f1")
27003 (revision "0"))
27004 (package
27005 (name "emacs-google-c-style")
27006 (version (git-version "0.1" revision commit))
27007 (source (origin
27008 (method git-fetch)
27009 (uri (git-reference
27010 (url "https://github.com/google/styleguide")
27011 (commit commit)))
27012 (file-name (git-file-name name version))
27013 (sha256
27014 (base32
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+))))
27022
27023 (define-public emacs-redshank
27024 (let ((commit "f98e68f532e622bcd464292ca4a9cf5fbea14ebb")
27025 (revision "1"))
27026 (package
27027 (name "emacs-redshank")
27028 (version (git-version "0.1" revision commit))
27029 (source (origin
27030 (method git-fetch)
27031 (uri (git-reference
27032 (url "http://www.foldr.org/~michaelw/projects/redshank.git")
27033 (commit commit)))
27034 (file-name (git-file-name name version))
27035 (sha256
27036 (base32
27037 "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"))))
27038 (build-system emacs-build-system)
27039 (propagated-inputs
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+))))
27048
27049 (define-public emacs-disk-usage
27050 (package
27051 (name "emacs-disk-usage")
27052 (version "1.3.3")
27053 (source
27054 (origin
27055 (method git-fetch)
27056 (uri (git-reference
27057 (url "https://gitlab.com/Ambrevar/emacs-disk-usage")
27058 (commit version)))
27059 (file-name (git-file-name name version))
27060 (sha256
27061 (base32
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+)))
27070
27071 (define-public emacs-orgit
27072 (package
27073 (name "emacs-orgit")
27074 (version "1.8.0")
27075 (home-page "https://github.com/magit/orgit")
27076 (source (origin
27077 (method git-fetch)
27078 (uri (git-reference
27079 (url home-page)
27080 (commit (string-append "v" version))))
27081 (file-name (git-file-name name version))
27082 (sha256
27083 (base32
27084 "1hjfsj12qx06m8ji4l2sg502a55sabar4h6c2b2i9nmp1xf5889l"))))
27085 (build-system emacs-build-system)
27086 (propagated-inputs
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+)))
27095
27096 (define-public emacs-amx
27097 (package
27098 (name "emacs-amx")
27099 (version "3.4")
27100 (source
27101 (origin
27102 (method git-fetch)
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))
27107 (sha256
27108 (base32 "0h1cxqqf0hixh25j679r57bq9dv0b20icf268wbnsim5xp88ngf8"))))
27109 (build-system emacs-build-system)
27110 (propagated-inputs
27111 (list emacs-s))
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+)))
27120
27121 (define-public emacs-lorem-ipsum
27122 (let ((commit "4b39f6fed455d67f635b3837cf5668bf74d0f6cd"))
27123 (package
27124 (name "emacs-lorem-ipsum")
27125 (version (git-version "0.2" "1" commit))
27126 (home-page "https://github.com/jschaf/emacs-lorem-ipsum/")
27127 (source (origin
27128 (method git-fetch)
27129 (uri (git-reference
27130 (url home-page)
27131 (commit commit)))
27132 (file-name (git-file-name name version))
27133 (sha256
27134 (base32
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+))))
27142
27143 (define-public emacs-lisp-extra-font-lock
27144 (let ((commit "4605eccbe1a7fcbd3cacf5b71249435413b4db4f"))
27145 (package
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")
27149 (source (origin
27150 (method git-fetch)
27151 (uri (git-reference
27152 (url home-page)
27153 (commit commit)))
27154 (file-name (git-file-name name version))
27155 (sha256
27156 (base32
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+))))
27164
27165 (define-public emacs-docker-tramp
27166 (package
27167 (name "emacs-docker-tramp")
27168 (version "0.1.1")
27169 (source
27170 (origin
27171 (method git-fetch)
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))
27176 (sha256
27177 (base32
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")
27182 (description
27183 "This package provides a TRAMP method for Docker containers.")
27184 (license license:gpl3+)))
27185
27186 (define-public emacs-docker
27187 (package
27188 (name "emacs-docker")
27189 (version "2.2.0")
27190 (source
27191 (origin
27192 (method git-fetch)
27193 (uri (git-reference
27194 (url "https://github.com/Silex/docker.el")
27195 (commit version)))
27196 (file-name (git-file-name name version))
27197 (sha256
27198 (base32 "1743x2s7ss7h329yayima3pqi62f0qjv56g5y6b7iwk40wpnhv9v"))))
27199 (inputs
27200 (list emacs-undercover))
27201 (propagated-inputs
27202 (list emacs-aio
27203 emacs-dash
27204 emacs-docker-tramp
27205 emacs-json-mode
27206 emacs-s
27207 emacs-tablist))
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+)))
27214
27215 (define-public emacs-dockerfile-mode
27216 (package
27217 (name "emacs-dockerfile-mode")
27218 (version "1.8")
27219 (source
27220 (origin
27221 (method git-fetch)
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))
27226 (sha256
27227 (base32
27228 "0bv19mii4h47jllps72h69nwrlbfvwxgca1cl4cdxvpx0zkr6qx7"))))
27229 (build-system emacs-build-system)
27230 (propagated-inputs
27231 (list emacs-s))
27232 (home-page "https://github.com/spotify/dockerfile-mode")
27233 (synopsis "Major mode for editing Dockerfile")
27234 (description
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)))
27238
27239 (define-public emacs-lsp-mode
27240 (let ((commit "26c4d3e54ad2956623e64132312fe864274d346f")
27241 (revision "1"))
27242 (package
27243 (name "emacs-lsp-mode")
27244 (version (git-version "8.0.1" revision commit))
27245 (source
27246 (origin
27247 (method git-fetch)
27248 (uri (git-reference
27249 (url "https://github.com/emacs-lsp/lsp-mode")
27250 (commit commit)))
27251 (file-name (git-file-name name version))
27252 (sha256
27253 (base32 "0klnik69b5y6s2q00vyshxymlg7k4x9x6m7wpsf7z9w12qn27alx"))))
27254 (build-system emacs-build-system)
27255 (arguments
27256 `(#:emacs ,emacs ;need libxml support
27257 #:phases
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
27261 ;; MELPA.
27262 (lambda _
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.
27269 (lambda _
27270 (substitute* '("clients/lsp-csharp.el" "clients/lsp-fsharp.el")
27271 (("/bin/ksh") "ksh")))))))
27272 (propagated-inputs
27273 (list emacs-dash
27274 emacs-f
27275 emacs-ht
27276 emacs-hydra
27277 emacs-markdown-mode
27278 emacs-spinner))
27279 (home-page "https://emacs-lsp.github.io/lsp-mode/")
27280 (synopsis "Emacs client and library for the Language Server Protocol")
27281 (description
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,
27285 and Projectile.")
27286 (license license:gpl3+))))
27287
27288 (define-public emacs-lsp-treemacs
27289 (package
27290 (name "emacs-lsp-treemacs")
27291 (version "0.4")
27292 (source
27293 (origin
27294 (method git-fetch)
27295 (uri (git-reference
27296 (url "https://github.com/emacs-lsp/lsp-treemacs")
27297 (commit version)))
27298 (file-name (git-file-name name version))
27299 (sha256
27300 (base32 "05ivqa5900139jzjhwc3nggwznhm8564dz4ydcxym2ddd63571k0"))))
27301 (build-system emacs-build-system)
27302 (propagated-inputs
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")
27306 (description
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+)))
27310
27311 (define-public emacs-dap-mode
27312 (package
27313 (name "emacs-dap-mode")
27314 (version "0.7")
27315 (source
27316 (origin
27317 (method git-fetch)
27318 (uri (git-reference
27319 (url "https://github.com/emacs-lsp/dap-mode")
27320 (commit version)))
27321 (file-name (git-file-name name version))
27322 (sha256
27323 (base32 "1zczmcv8562lachkvcwy6njn7zkgny08iznpmrx821wr8mh52wnn"))))
27324 (build-system emacs-build-system)
27325 (propagated-inputs
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")
27329 (description
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
27333 Debug server.")
27334 (license license:gpl3+)))
27335
27336 (define-public emacs-bfuture
27337 (package
27338 (name "emacs-bfuture")
27339 (version "1.0.2")
27340 (source
27341 (origin
27342 (method git-fetch)
27343 (uri (git-reference
27344 (url "https://git.sr.ht/~plattfot/bfuture")
27345 (commit (string-append "v" version))))
27346 (sha256
27347 (base32
27348 "1qflkyr7fafw84mksxs25mka133y8ak8nsga3al29014pshbvzxn"))
27349 (file-name (git-file-name name version))))
27350 (build-system emacs-build-system)
27351 (arguments
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")
27357 (description
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+)))
27363
27364 (define-public emacs-pfuture
27365 (package
27366 (name "emacs-pfuture")
27367 (version "1.10.3")
27368 (source
27369 (origin
27370 (method git-fetch)
27371 (uri (git-reference
27372 (url "https://github.com/Alexander-Miller/pfuture")
27373 (commit version)))
27374 (file-name (git-file-name name version))
27375 (sha256
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+)))
27383
27384 (define-public emacs-treemacs
27385 (package
27386 (name "emacs-treemacs")
27387 (version "3.0")
27388 (source
27389 (origin
27390 (method git-fetch)
27391 (uri (git-reference
27392 (url "https://github.com/Alexander-Miller/treemacs")
27393 (commit version)))
27394 (file-name (git-file-name name version))
27395 (sha256
27396 (base32 "0l6pbfrkl0v1iyc43vyhchbcfy7cjhinn8pw07aq4ssh6lxil7kp"))))
27397 (build-system emacs-build-system)
27398 (propagated-inputs
27399 (list emacs-ace-window
27400 emacs-dash
27401 emacs-f
27402 emacs-ht
27403 emacs-hydra
27404 emacs-pfuture
27405 emacs-s))
27406 (native-inputs
27407 (list emacs-buttercup emacs-el-mock))
27408 (inputs
27409 (list python))
27410 (arguments
27411 (list
27412 #:tests? #t
27413 #:test-command #~(list "make" "-C" "../.." "test")
27414 #:phases
27415 #~(modify-phases %standard-phases
27416 (add-after 'unpack 'fix-makefile
27417 (lambda _
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.
27424 (lambda _
27425 (chdir "src/elisp")))
27426 (add-before 'check 'delete-failing-tests
27427 ;; FIXME: 4 tests out of 254 are failing.
27428 (lambda _
27429 (emacs-batch-edit-file "../../test/treemacs-test.el"
27430 '(progn
27431 (goto-char (point-min))
27432 (re-search-forward "describe \"treemacs--parent\"")
27433 (beginning-of-line)
27434 (kill-sexp)
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"
27443 (("icons/default")
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"
27451 (("src/scripts")
27452 (string-append (elpa-directory #$output) "/scripts")))))
27453 (add-after 'install 'install-data
27454 (lambda _
27455 (with-directory-excursion "../.." ;treemacs root
27456 (copy-recursively
27457 "icons/default"
27458 (string-append (elpa-directory #$output) "/icons/default"))
27459 (copy-recursively
27460 "src/scripts"
27461 (string-append (elpa-directory #$output) "/scripts"))))))))
27462 (home-page "https://github.com/Alexander-Miller/treemacs")
27463 (synopsis "Emacs tree style file explorer")
27464 (description
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
27469 utilities.")
27470 (license license:gpl3+)))
27471
27472 (define-public emacs-treemacs-extra
27473 (package
27474 (inherit emacs-treemacs)
27475 (name "emacs-treemacs-extra")
27476 (propagated-inputs
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)
27484 ("mu" ,mu)))
27485 (arguments
27486 (substitute-keyword-arguments
27487 (package-arguments emacs-treemacs)
27488 ((#:phases phases)
27489 `(modify-phases ,phases
27490 (add-after 'chdir-elisp 'copy-extra
27491 (lambda _
27492 (copy-recursively "../extra" ".")))))))))
27493
27494 (define-public emacs-libyaml
27495 ;; Upstream made no release so far.
27496 (let ((version "0.1")
27497 (revision "1")
27498 (commit "961e0d8b9ef47464c049e07be7fcefd3903f8cbc"))
27499 (package
27500 (name "emacs-libyaml")
27501 (version (git-version version revision commit))
27502 (source
27503 (origin
27504 (method git-fetch)
27505 (uri (git-reference
27506 (url "https://github.com/syohex/emacs-libyaml")
27507 (commit commit)))
27508 (file-name (git-file-name name version))
27509 (sha256
27510 (base32 "1c85583r47yjbpzbjgjzrwzqdlmy229xx9az2r18smcyd9da92c3"))))
27511 (build-system emacs-build-system)
27512 (arguments
27513 (list
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))
27520 #:phases
27521 #~(modify-phases %standard-phases
27522 (add-after 'unpack 'substitute-libyaml-core-path
27523 (lambda _
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
27530 ;; Run 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")
27540 (description
27541 "This package implements bindings for LibYAML to be able to parse YAML
27542 files in Elisp.")
27543 (license license:gpl3+))))
27544
27545 (define-public emacs-lsp-java
27546 (package
27547 (name "emacs-lsp-java")
27548 (version "3.1")
27549 (source (origin
27550 (method git-fetch)
27551 (uri (git-reference
27552 (url "https://github.com/emacs-lsp/lsp-java")
27553 (commit version)))
27554 (file-name (git-file-name name version))
27555 (sha256
27556 (base32
27557 "1h0hqgjpk5mbylma1fkva0vx45achf0k7ab2c5y8a2449niww90h"))))
27558 (build-system emacs-build-system)
27559 (propagated-inputs
27560 (list emacs-dap-mode
27561 emacs-lsp-mode
27562 emacs-markdown-mode
27563 emacs-dash
27564 emacs-f
27565 emacs-ht
27566 emacs-request
27567 emacs-treemacs))
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+)))
27572
27573 (define-public emacs-lsp-metals
27574 (package
27575 (name "emacs-lsp-metals")
27576 (version "1.2.0")
27577 (source (origin
27578 (method git-fetch)
27579 (uri (git-reference
27580 (url "https://github.com/emacs-lsp/lsp-metals")
27581 (commit version)))
27582 (file-name (git-file-name name version))
27583 (sha256
27584 (base32
27585 "0ca5xq1l3lscx36pcdnpy2axgyikjrl18naqr140kr1y500sy37s"))))
27586 (build-system emacs-build-system)
27587 (propagated-inputs
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
27592 to Metals.")
27593 (license license:gpl3+)))
27594
27595 (define-public emacs-lsp-ui
27596 (package
27597 (name "emacs-lsp-ui")
27598 (version "8.0.1")
27599 (source (origin
27600 (method git-fetch)
27601 (uri (git-reference
27602 (url "https://github.com/emacs-lsp/lsp-ui")
27603 (commit version)))
27604 (file-name (git-file-name name version))
27605 (sha256
27606 (base32
27607 "1pd5lvjlmd6zq64py21yi5zxhcza9g5q48ngfivv7fi7pf3vsv00"))))
27608 (build-system emacs-build-system)
27609 (propagated-inputs
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}")
27613 (description
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+)))
27618
27619 (define-public emacs-lsp-lua-emmy
27620 (let ((commit "ab53fb2a8b8942804eb75bab5624fd19f1d360bf"))
27621 (package
27622 (name "emacs-lsp-lua-emmy")
27623 (version (git-version "0.1.0" "1" commit))
27624 (source (origin
27625 (method git-fetch)
27626 (uri (git-reference
27627 (url "https://github.com/phenix3443/lsp-lua-emmy")
27628 (commit commit)))
27629 (file-name (git-file-name name version))
27630 (sha256
27631 (base32
27632 "0rbizis73n1w5ig07fj1han74chbc1zpbp5bn37rj0gz608aqka8"))))
27633 (build-system emacs-build-system)
27634 (propagated-inputs
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+))))
27641
27642 (define-public emacs-lsp-ivy
27643 (package
27644 (name "emacs-lsp-ivy")
27645 (version "0.5")
27646 (source
27647 (origin
27648 (method git-fetch)
27649 (uri (git-reference
27650 (url "https://github.com/emacs-lsp/lsp-ivy")
27651 (commit version)))
27652 (file-name (git-file-name name version))
27653 (sha256
27654 (base32 "0nb9ypa8hyx7i38rbywh8hn2i5f9l2l567hvdr9767fk279yr97n"))))
27655 (build-system emacs-build-system)
27656 (propagated-inputs
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")
27660 (description
27661 "This package enhances @code{ivy} with completion for symbols from
27662 workspaces with a LSP-compliant server running.")
27663 (license license:gpl3+)))
27664
27665 (define-public emacs-helm-lsp
27666 (package
27667 (name "emacs-helm-lsp")
27668 (version "0.2")
27669 (source (origin
27670 (method git-fetch)
27671 (uri (git-reference
27672 (url "https://github.com/emacs-lsp/helm-lsp")
27673 (commit version)))
27674 (file-name (git-file-name name version))
27675 (sha256
27676 (base32
27677 "1vq3qpqm3ndqyvf5bk8qhqcr60x9ykc0ipk2a43rr3yjm4z1b6s9"))))
27678 (build-system emacs-build-system)
27679 (propagated-inputs
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")
27683 (description
27684 "This package enhances @code{helm} with completion for symbols from
27685 workspaces with a LSP-compliant server running.")
27686 (license license:gpl3+)))
27687
27688 (define-public emacs-helm-notmuch
27689 (package
27690 (name "emacs-helm-notmuch")
27691 (version "1.2")
27692 (home-page "https://github.com/emacs-helm/helm-notmuch/")
27693 (source (origin
27694 (method git-fetch)
27695 (uri (git-reference
27696 (url home-page)
27697 (commit version)))
27698 (file-name (git-file-name name version))
27699 (sha256
27700 (base32
27701 "1k038dbdpaa411gl4071x19fklhnizhr346plxw23lsnxir9dhqc"))))
27702 (build-system emacs-build-system)
27703 (propagated-inputs
27704 (list emacs-helm emacs-notmuch))
27705 (synopsis "Search emails with Emacs Notmuch and Helm")
27706 (description
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
27709 real search.")
27710 (license license:gpl3+)))
27711
27712 (define-public emacs-notmuch-maildir
27713 (package
27714 (name "emacs-notmuch-maildir")
27715 (version "0.2.1")
27716 (source
27717 (origin
27718 (method git-fetch)
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))
27723 (sha256
27724 (base32 "1fqnx6hhg0cqj82yjpl7llg6vvppc3y8q9k6g67mqr7z3712bw0x"))))
27725 (build-system emacs-build-system)
27726 (propagated-inputs
27727 (list emacs-notmuch))
27728 (home-page "https://git.sr.ht/~tarsius/notmuch-maildir")
27729 (synopsis "Visualize maildirs as a tree")
27730 (description
27731 "This package can visualize maildirs hierarchically in Notmuch's ``hello
27732 buffer''.")
27733 (license license:gpl3+)))
27734
27735 (define-public emacs-elmacro
27736 (package
27737 (name "emacs-elmacro")
27738 (version "1.1.1")
27739 (home-page "https://github.com/Silex/elmacro")
27740 (source (origin
27741 (method git-fetch)
27742 (uri (git-reference
27743 (url home-page)
27744 (commit version)))
27745 (file-name (git-file-name name version))
27746 (sha256
27747 (base32
27748 "1x4wnsshf9h10mp51x92vs5rxw5had4gmw6zz4f53czx1ymcv16a"))))
27749 (build-system emacs-build-system)
27750 (propagated-inputs
27751 (list emacs-s emacs-dash))
27752 (synopsis "Convert keyboard macros to Emacs Lisp")
27753 (description
27754 "This package displays keyboard macros or latest interactive commands
27755 as Emacs Lisp.")
27756 (license license:gpl3+)))
27757
27758 (define-public emacs-transient
27759 (package
27760 (name "emacs-transient")
27761 (version "0.3.7")
27762 (source
27763 (origin
27764 (method git-fetch)
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))
27769 (sha256
27770 (base32 "0c7wbd0j0b802bzdpdkrx2q7wm7b9s56rk554dnadkpywhmdiqwn"))))
27771 (build-system emacs-build-system)
27772 (arguments
27773 `(#:tests? #f ;no test suite
27774 #:phases
27775 (modify-phases %standard-phases
27776 (add-after 'unpack 'build-info-manual
27777 (lambda _
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
27783 (lambda _
27784 (chdir "lisp"))))))
27785 (native-inputs
27786 (list texinfo))
27787 (propagated-inputs
27788 (list emacs-dash))
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+)))
27797
27798 (define-public emacs-forge
27799 (package
27800 (name "emacs-forge")
27801 (version "0.3.2")
27802 (source
27803 (origin
27804 (method git-fetch)
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))
27809 (sha256
27810 (base32 "0p1jlq169hpalhzmjm3h4q3x5xr9kdmz0qig8jwfvisyqay5vbih"))))
27811 (build-system emacs-build-system)
27812 (arguments
27813 `(#:tests? #f ;no tests
27814 #:phases
27815 (modify-phases %standard-phases
27816 (add-after 'unpack 'build-info-manual
27817 (lambda _
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
27823 (lambda _
27824 (chdir "lisp"))))))
27825 (native-inputs
27826 (list texinfo))
27827 (propagated-inputs
27828 (list emacs-closql
27829 emacs-dash
27830 emacs-emacsql
27831 emacs-ghub
27832 emacs-let-alist
27833 emacs-magit
27834 emacs-markdown-mode
27835 emacs-yaml))
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+)))
27841
27842 (define-public emacs-matcha
27843 (let ((commit "c7df5cf5cdac9ae369e241342389ccda0205eab9"))
27844 (package
27845 (name "emacs-matcha")
27846 (version (git-version "0.0.1" "1" commit)) ;no upstream release
27847 (source (origin
27848 (method git-fetch)
27849 (uri (git-reference
27850 (url "https://github.com/jojojames/matcha")
27851 (commit commit)))
27852 (file-name (git-file-name name version))
27853 (sha256
27854 (base32
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+))))
27863
27864 (define-public emacs-undo-propose-el
27865 (let ((commit "f80baee566807d733fbacbab08a897bcd62579c3")
27866 (revision "3"))
27867 (package
27868 (name "emacs-undo-propose-el")
27869 (version (git-version "3.0.0" revision commit))
27870 (source
27871 (origin
27872 (method git-fetch)
27873 (uri (git-reference
27874 (url "https://github.com/jackkamm/undo-propose-el")
27875 (commit commit)))
27876 (file-name (git-file-name name version))
27877 (sha256
27878 (base32
27879 "00rqz63bhh66q78l646q3w16gydygj8h4d8np0dpbifgzciak90b"))))
27880 (build-system emacs-build-system)
27881 (arguments
27882 `(#:tests? #t
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+))))
27891
27892 (define-public emacs-elisp-docstring-mode
27893 (let ((commit "f512e509dd690f65133e55563ebbfd2dede5034f")
27894 (version "0.0.1")
27895 (revision "1"))
27896 (package
27897 (name "emacs-elisp-docstring-mode")
27898 (version (git-version version revision commit))
27899 (source
27900 (origin
27901 (method git-fetch)
27902 (uri (git-reference
27903 (url "https://github.com/Fuco1/elisp-docstring-mode")
27904 (commit commit)))
27905 (file-name (git-file-name name version))
27906 (sha256
27907 (base32
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+))))
27915
27916 (define-public emacs-vimrc-mode
27917 (let ((commit "13bc150a870d5d4a95f1111e4740e2b22813c30e")
27918 (version "0.3.1")
27919 (revision "1"))
27920 (package
27921 (name "emacs-vimrc-mode")
27922 (version (git-version version revision commit))
27923 (source
27924 (origin
27925 (method git-fetch)
27926 (uri (git-reference
27927 (url "https://github.com/mcandre/vimrc-mode")
27928 (commit commit)))
27929 (file-name (git-file-name name version))
27930 (sha256
27931 (base32
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+))))
27939
27940 (define-public emacs-flycheck-elm
27941 (let ((revision "0")
27942 (commit "1b60050efd4729bfba548f3e5adbcb58436667cb"))
27943 (package
27944 (name "emacs-flycheck-elm")
27945 (version (git-version "0" revision commit))
27946 (source
27947 (origin
27948 (method git-fetch)
27949 (uri
27950 (git-reference
27951 (url "https://github.com/bsermons/flycheck-elm")
27952 (commit commit)))
27953 (file-name (git-file-name name version))
27954 (sha256
27955 (base32 "1kjms9d2c98ffd1qxs879qhg0n4jzic0r5kni9y4gz3v09ww8zms"))))
27956 (build-system emacs-build-system)
27957 (propagated-inputs
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+))))
27963
27964 (define-public emacs-flycheck-haskell
27965 (let ((commit "32ddff87165a7d3a35e7318bee997b5b4bd41278")
27966 (revision "2"))
27967 (package
27968 (name "emacs-flycheck-haskell")
27969 (version (git-version "0.8" revision commit))
27970 (source
27971 (origin
27972 (method git-fetch)
27973 (uri (git-reference
27974 (url "https://github.com/flycheck/flycheck-haskell")
27975 (commit commit)))
27976 (file-name (git-file-name name version))
27977 (sha256
27978 (base32
27979 "10pgsbagq6qj4mshq5sypv0q0khck92b30sc793b4g1pfpsxvgjn"))))
27980 (build-system emacs-build-system)
27981 (propagated-inputs
27982 (list emacs-dash emacs-flycheck emacs-haskell-mode emacs-let-alist))
27983 (arguments
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
27988 buffers.")
27989 (license license:gpl3+))))
27990
27991 (define-public emacs-js2-refactor-el
27992 (let ((commit "d4c40b5fc86d3edd7c6a7d83ac86483ee1cb7a28")
27993 (revision "2"))
27994 (package
27995 (name "emacs-js2-refactor-el")
27996 (version (git-version "0.9.0" revision commit))
27997 (source
27998 (origin
27999 (method git-fetch)
28000 (uri (git-reference
28001 (url "https://github.com/magnars/js2-refactor.el")
28002 (commit commit)))
28003 (file-name (git-file-name name version))
28004 (sha256
28005 (base32
28006 "08b25y3raz0p98zxk9xdd8nj9shqd6mzrqhbq1gg4cwsmi7h7ly1"))))
28007 (build-system emacs-build-system)
28008 (propagated-inputs
28009 (list emacs-dash emacs-s emacs-js2-mode emacs-yasnippet
28010 emacs-multiple-cursors))
28011 (native-inputs
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
28016 JavaScript.")
28017 (license license:gpl3+))))
28018
28019 (define-public emacs-prettier
28020 (let ((commit "e9b73e81d3e1642aec682195f127a42dfb0b5774")
28021 (version "0.1.0")
28022 (revision "1"))
28023 (package
28024 (name "emacs-prettier")
28025 (version (git-version version revision commit))
28026 (source
28027 (origin
28028 (method git-fetch)
28029 (uri (git-reference
28030 (url "https://github.com/prettier/prettier-emacs")
28031 (commit commit)))
28032 (file-name (git-file-name name version))
28033 (sha256
28034 (base32
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))))
28042
28043 (define-public emacs-fish-mode
28044 (package
28045 (name "emacs-fish-mode")
28046 (version "0.1.6")
28047 (source
28048 (origin
28049 (method git-fetch)
28050 (uri (git-reference
28051 (url "https://github.com/wwwjfy/emacs-fish")
28052 (commit version)))
28053 (file-name (git-file-name name version))
28054 (sha256
28055 (base32
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+)))
28063
28064 (define-public emacs-eshell-up
28065 (let ((commit "9c100bae5c3020e8d9307e4332d3b64e7dc28519")
28066 (version "0.0.3")
28067 (revision "12"))
28068 (package
28069 (name "emacs-eshell-up")
28070 (version (git-version version revision commit))
28071 (source
28072 (origin
28073 (method git-fetch)
28074 (uri (git-reference
28075 (url "https://github.com/peterwvj/eshell-up")
28076 (commit commit)))
28077 (file-name (git-file-name name version))
28078 (sha256
28079 (base32
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+))))
28087
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")
28092 (version "1.0")
28093 (revision "1"))
28094 (package
28095 (name "emacs-springboard")
28096 (version (git-version version revision commit))
28097 (source
28098 (origin
28099 (method git-fetch)
28100 (uri (git-reference
28101 (url "https://github.com/jwiegley/springboard")
28102 (commit commit)))
28103 (file-name (git-file-name name version))
28104 (sha256
28105 (base32 "0fn8c4hqblfjvcpg68kj2dmdjqsdnxddqbzgvakl43zckjg8pi01"))))
28106 (build-system emacs-build-system)
28107 (propagated-inputs
28108 (list emacs-helm emacs-ivy))
28109 (home-page "https://github.com/jwiegley/springboard")
28110 (synopsis "Change the Emacs default directory quickly")
28111 (description
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+))))
28116
28117 (define-public emacs-tco-el
28118 (let ((commit "482db5313f090b17ed22ccd856f0e141dc75afe6")
28119 (revision "1"))
28120 (package
28121 (name "emacs-tco-el")
28122 (version (git-version "0.3" revision commit))
28123 (source
28124 (origin
28125 (method git-fetch)
28126 (uri (git-reference
28127 (url "https://github.com/Wilfred/tco.el")
28128 (commit commit)))
28129 (file-name (git-file-name name version))
28130 (sha256
28131 (base32
28132 "1z7xkbrqznk6ni687qqknp8labcyhl8y6576hjfri89fn21385y9"))))
28133 (build-system emacs-build-system)
28134 (propagated-inputs
28135 (list emacs-dash))
28136 (native-inputs
28137 (list emacs-ert-runner emacs-undercover))
28138 (arguments
28139 `(#:tests? #t
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+))))
28146
28147 (define-public emacs-equake
28148 ;; Upstream provides no tagged releases, but the commit below matches an
28149 ;; exact release.
28150 (let ((commit "4d6ef75a4d91ded22caad220909518ccb67b7b87"))
28151 (package
28152 (name "emacs-equake")
28153 (version "0.985")
28154 (source
28155 (origin
28156 (method git-fetch)
28157 (uri (git-reference
28158 (url "https://gitlab.com/emacsomancer/equake")
28159 (commit commit)))
28160 (file-name (git-file-name name version))
28161 (sha256
28162 (base32 "11xfr71y78idcn461p4pz7b0k01nhz15cyl97bjqq6ii5xhbhvdx"))))
28163 (build-system emacs-build-system)
28164 (propagated-inputs
28165 (list emacs-dash))
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+))))
28171
28172 (define-public emacs-vdiff
28173 ;; There is no proper tag, but the commit below matches the version bump.
28174 (let ((commit "007e44be19d068fd6b49874b6e9b8df8b1f552bd"))
28175 (package
28176 (name "emacs-vdiff")
28177 (version "0.2.4")
28178 (source
28179 (origin
28180 (method git-fetch)
28181 (uri (git-reference
28182 (url "https://github.com/justbur/emacs-vdiff")
28183 (commit commit)))
28184 (file-name (git-file-name name version))
28185 (sha256
28186 (base32 "197xrwph1llrzjgkhlvagiwdgfp68pb45w5afg89ndahpqc2725s"))))
28187 (build-system emacs-build-system)
28188 (propagated-inputs
28189 (list emacs-hydra))
28190 (arguments
28191 `(#:tests? #t
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")
28197 (description
28198 "This package permits comparisons of two or three buffers based on diff
28199 output.")
28200 (license license:gpl3+))))
28201
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")
28206 (version "0.3.2")
28207 (revision "8"))
28208 (package
28209 (name "emacs-vdiff-magit")
28210 (version (git-version version revision commit))
28211 (source
28212 (origin
28213 (method git-fetch)
28214 (uri (git-reference
28215 (url "https://github.com/justbur/emacs-vdiff-magit/")
28216 (commit commit)))
28217 (file-name (git-file-name name version))
28218 (sha256
28219 (base32
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+))))
28228
28229 (define-public emacs-all-the-icons-dired
28230 (package
28231 (name "emacs-all-the-icons-dired")
28232 (version "2.0")
28233 (source
28234 (origin
28235 (method git-fetch)
28236 (uri (git-reference
28237 (url "https://github.com/wyuenho/all-the-icons-dired")
28238 (commit version)))
28239 (file-name (git-file-name name version))
28240 (sha256
28241 (base32
28242 "1shla7nyhml9m3g81p6yy8k4pdq289gb42900xzfp7zl4qvnm2vy"))))
28243 (build-system emacs-build-system)
28244 (propagated-inputs
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+)))
28251
28252 (define-public emacs-all-the-icons-ibuffer
28253 (package
28254 (name "emacs-all-the-icons-ibuffer")
28255 (version "1.3.0")
28256 (source
28257 (origin
28258 (method git-fetch)
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))
28263 (sha256
28264 (base32
28265 "1c1fkkwzxxa90fd5q5x6xlj48p8rhj4bs7h8wxx41w6wsggk2fm2"))))
28266 (build-system emacs-build-system)
28267 (propagated-inputs
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")
28271 (description
28272 "This package uses @code{emacs-all-the-icons} to display icons in Ibuffer
28273 buffers.")
28274 (license license:gpl3+)))
28275
28276 (define-public emacs-exwm-edit
28277 (let ((commit "e1291e311840f1049106fe98cec032a1c75efd2b")
28278 (version "0.0.1")
28279 (revision "3"))
28280 (package
28281 (name "emacs-exwm-edit")
28282 (version (git-version version revision commit))
28283 (source
28284 (origin
28285 (method git-fetch)
28286 (uri (git-reference
28287 (url "https://github.com/agzam/exwm-edit/")
28288 (commit commit)))
28289 (file-name (git-file-name name version))
28290 (sha256
28291 (base32
28292 "031cb8fvv5n30djr9lpl6vz3rl15zykfvjlgkjc8l33a3l5mw8j0"))))
28293 (build-system emacs-build-system)
28294 (propagated-inputs
28295 (list emacs-exwm))
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
28300 invoked.")
28301 (license license:gpl3+))))
28302
28303 (define-public emacs-ert-async
28304 (package
28305 (name "emacs-ert-async")
28306 (version "0.1.2")
28307 (source
28308 (origin
28309 (method git-fetch)
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))
28314 (sha256
28315 (base32
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+)))
28322
28323 (define-public emacs-prodigy
28324 (package
28325 (name "emacs-prodigy")
28326 (version "1.0.0")
28327 (source
28328 (origin
28329 (method git-fetch)
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))
28334 (sha256
28335 (base32
28336 "04xspdj67nas1ivv0ldlmmkr6v7zd7y3k346pnfgvq8wzqi6x4vz"))))
28337 (build-system emacs-build-system)
28338 (propagated-inputs
28339 (list emacs-dash emacs-f emacs-s))
28340 (native-inputs
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+)))
28346
28347 (define-public emacs-prodigy-el
28348 (deprecated-package "emacs-prodigy-el" emacs-prodigy))
28349
28350 (define-public emacs-web-server
28351 (package
28352 (name "emacs-web-server")
28353 (version "0.1.2")
28354 (source
28355 (origin
28356 (method url-fetch)
28357 (uri (string-append "https://elpa.gnu.org/packages/"
28358 "web-server-" version ".tar"))
28359 (sha256
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+)))
28367
28368 (define-public emacs-markdown-preview-mode
28369 (package
28370 (name "emacs-markdown-preview-mode")
28371 (version "0.9.4")
28372 (source
28373 (origin
28374 (method git-fetch)
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))
28379 (sha256
28380 (base32
28381 "0a0qskhy6jil583hq3mgbzdsi3m1schzyzrd46yfxdsvqiczg170"))))
28382 (build-system emacs-build-system)
28383 (propagated-inputs
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+)))
28391
28392 (define-public emacs-dotenv-mode
28393 (package
28394 (name "emacs-dotenv-mode")
28395 (version "0.2.5")
28396 (source
28397 (origin
28398 (method git-fetch)
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))
28403 (sha256
28404 (base32
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}
28410 files.")
28411 (license license:gpl3+)))
28412
28413 (define-public emacs-add-node-modules-path
28414 (package
28415 (name "emacs-add-node-modules-path")
28416 (version "1.3.1")
28417 (source
28418 (origin
28419 (method git-fetch)
28420 (uri (git-reference
28421 (url "https://github.com/codesuki/add-node-modules-path")
28422 (commit version)))
28423 (file-name (git-file-name name version))
28424 (sha256
28425 (base32
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)))
28435
28436 (define-public emacs-flow-minor-mode
28437 (let ((commit "d1b32a7dd0d33c6a00a106da5f4b2323602cbd3e")
28438 (version "0.3")
28439 (revision "4"))
28440 (package
28441 (name "emacs-flow-minor-mode")
28442 (version (git-version version revision commit))
28443 (source
28444 (origin
28445 (method git-fetch)
28446 (uri (git-reference
28447 (url "https://github.com/an-sh/flow-minor-mode")
28448 (commit commit)))
28449 (file-name (git-file-name name version))
28450 (sha256
28451 (base32
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))))
28459
28460 (define-public emacs-rjsx-mode
28461 (package
28462 (name "emacs-rjsx-mode")
28463 (version "0.5.0")
28464 (source
28465 (origin
28466 (method git-fetch)
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))
28471 (sha256
28472 (base32
28473 "08b4hdgq4hc1yfd9pvyir2j3cqqdqa3j5svgaba97x5fzhsz7y8i"))))
28474 (build-system emacs-build-system)
28475 (propagated-inputs
28476 (list emacs-js2-mode))
28477 (arguments
28478 `(#:tests? #t
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)))
28485
28486 (define-public emacs-origami-el
28487 (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366")
28488 (version "1.0")
28489 (revision "1"))
28490 (package
28491 (name "emacs-origami-el")
28492 (version (git-version version revision commit))
28493 (source
28494 (origin
28495 (method git-fetch)
28496 (uri (git-reference
28497 (url "https://github.com/gregsexton/origami.el")
28498 (commit commit)))
28499 (file-name (git-file-name name version))
28500 (sha256
28501 (base32
28502 "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x"))))
28503 (build-system emacs-build-system)
28504 (propagated-inputs
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))))
28511
28512 (define-public emacs-peep-dired
28513 (let ((commit "c88a9a3050197840edfe145f11e0bb9488de32f4")
28514 (version "0")
28515 (revision "1"))
28516 (package
28517 (name "emacs-peep-dired")
28518 (version (git-version version revision commit))
28519 (source
28520 (origin
28521 (method git-fetch)
28522 (uri (git-reference
28523 (url "https://github.com/asok/peep-dired")
28524 (commit commit)))
28525 (file-name (git-file-name name version))
28526 (sha256
28527 (base32
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+))))
28535
28536 (define-public emacs-counsel-etags
28537 (package
28538 (name "emacs-counsel-etags")
28539 (version "1.10.1")
28540 (source
28541 (origin
28542 (method git-fetch)
28543 (uri (git-reference
28544 (url "https://github.com/redguardtoo/counsel-etags")
28545 (commit version)))
28546 (file-name (git-file-name name version))
28547 (sha256
28548 (base32 "1v77lpp0nij1rjg2k9wj42kqk7xqg1dzs9vmadha6f2j8j6375m8"))))
28549 (build-system emacs-build-system)
28550 (propagated-inputs
28551 (list emacs-counsel))
28552 (arguments
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+)))
28560
28561 (define-public emacs-ivy-clipmenu
28562 (let ((commit "d2071f2c5043a05d610cd1952e84176ca78c31dc"))
28563 (package
28564 (name "emacs-ivy-clipmenu")
28565 (version (git-version "0.0.1" "1" commit))
28566 (source (origin
28567 (method git-fetch)
28568 (uri (git-reference
28569 (url "https://github.com/wpcarro/ivy-clipmenu.el")
28570 (commit commit)))
28571 (file-name (git-file-name name version))
28572 (sha256
28573 (base32
28574 "0npd8glzk5z4n7y9mzbsbzi0cf3by19fqcki052jr3dga363lds7"))))
28575 (propagated-inputs
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))))
28582
28583 (define-public emacs-org-download
28584 (let ((commit "42ac361ef5502017e6fc1bceb00333eba90402f4")
28585 (revision "3"))
28586 (package
28587 (name "emacs-org-download")
28588 (version (git-version "0.1.0" revision commit))
28589 (source (origin
28590 (method git-fetch)
28591 (uri (git-reference
28592 (url "https://github.com/abo-abo/org-download")
28593 (commit commit)))
28594 (file-name (git-file-name name version))
28595 (sha256
28596 (base32 "0cg4y7hy7xbq4vrbdicfzgvyaf3cjbx2zkqd4yl0y2garz71j99l"))))
28597 (build-system emacs-build-system)
28598 (propagated-inputs
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+))))
28605
28606 (define-public emacs-org-drill-table
28607 ;; No releases or tags.
28608 (let ((commit "096387d929bcf3eb479e0a9d5da9cf32c756a759")
28609 (revision "0"))
28610 (package
28611 (name "emacs-org-drill-table")
28612 (version (git-version "0.1" revision commit))
28613 (source
28614 (origin
28615 (method git-fetch)
28616 (uri (git-reference
28617 (url "https://github.com/chrisbarrett/org-drill-table.git")
28618 (commit commit)))
28619 (file-name (git-file-name name version))
28620 (sha256
28621 (base32 "1a8ygrcag8i9hdpy2vsn0sh8lwhl9b56rv91j3rddy1jv5qx1ipb"))))
28622 (build-system emacs-build-system)
28623 (propagated-inputs
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")
28627 (description
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
28630 current tree.")
28631 (license license:gpl3+))))
28632
28633 (define-public emacs-dash-docs
28634 (let ((commit "dafc8fc9f1ddb2e4e39e0b8d066c42d5d7ce8d06")
28635 (revision "2"))
28636 (package
28637 (name "emacs-dash-docs")
28638 (version (git-version "1.4.0" revision commit))
28639 (source
28640 (origin
28641 (method git-fetch)
28642 (uri (git-reference
28643 (url "https://github.com/dash-docs-el/dash-docs")
28644 (commit commit)))
28645 (file-name (git-file-name name version))
28646 (sha256
28647 (base32
28648 "0n6d3mm43gj16v8kjjradcfik93wb89dsqnfcbskb28bvcamafid"))))
28649 (build-system emacs-build-system)
28650 (propagated-inputs
28651 (list emacs-async))
28652 (native-inputs
28653 (list emacs-undercover emacs-ert-runner))
28654 (arguments
28655 `(#:tests? #t
28656 #:test-command '("ert-runner")
28657 #:phases
28658 ;; this test requires network access, so remove it
28659 (modify-phases %standard-phases
28660 (add-before 'check 'make-tests-writable
28661 (lambda _
28662 (make-file-writable "test/dash-docs-test.el")
28663 #t))
28664 (add-before 'check 'delete-test
28665 (lambda _
28666 (emacs-batch-edit-file "test/dash-docs-test.el"
28667 `(progn (progn
28668 (goto-char (point-min))
28669 (re-search-forward "ert-deftest dash-docs-official-docsets-test")
28670 (beginning-of-line)
28671 (kill-sexp))
28672 (basic-save-buffer)))
28673 #t)))))
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+))))
28678
28679 (define-public emacs-helm-dash
28680 (let ((commit "7f853bd34da666f0e9a883011c80f451b06f6c59")
28681 (revision "2"))
28682 (package
28683 (name "emacs-helm-dash")
28684 (version (git-version "1.3.0" revision commit))
28685 (source
28686 (origin
28687 (method git-fetch)
28688 (uri (git-reference
28689 (url "https://github.com/areina/helm-dash")
28690 (commit commit)))
28691 (file-name (git-file-name name version))
28692 (sha256
28693 (base32
28694 "0r192vzry1212ihabg9pgw9xar8zdgnbgy0vsgvfm8s5wj6ny7jp"))))
28695 (build-system emacs-build-system)
28696 (propagated-inputs
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
28701 Dash docsets.")
28702 (license license:gpl3+))))
28703
28704 (define-public emacs-counsel-dash
28705 (let ((commit "370d5f6f14b5294d0eb717f7b2a6a8e93df1ed24")
28706 (revision "4"))
28707 (package
28708 (name "emacs-counsel-dash")
28709 (version (git-version "0.1.3" revision commit))
28710 (source
28711 (origin
28712 (method git-fetch)
28713 (uri (git-reference
28714 (url "https://github.com/dash-docs-el/counsel-dash")
28715 (commit commit)))
28716 (file-name (git-file-name name version))
28717 (sha256
28718 (base32 "1fn38vbz46ijarjvhgw7iy7dj9s2a2miy95fyy9f8b5sj8nrdfvz"))))
28719 (build-system emacs-build-system)
28720 (propagated-inputs
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))))
28727
28728 (define-public emacs-devdocs
28729 (package
28730 (name "emacs-devdocs")
28731 (version "0.5")
28732 (source
28733 (origin
28734 (method url-fetch)
28735 (uri (string-append
28736 "https://elpa.gnu.org/packages/"
28737 "devdocs-" version ".tar"))
28738 (sha256
28739 (base32 "0qyp8lhf76yv2ym7cryvygvf2m9jah5nsl1g79gqjrsin6vlhqka"))))
28740 (build-system emacs-build-system)
28741 (home-page "https://github.com/astoff/devdocs.el")
28742 (synopsis "Emacs viewer for DevDocs")
28743 (description
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+)))
28748
28749 (define-public emacs-cascading-dir-locals
28750 (let ((release "0.1")
28751 (revision "0")
28752 (commit "efdf5e6d62b955ee0ca3c170eae1d388799f9fa0"))
28753 (package
28754 (name "emacs-cascading-dir-locals")
28755 (version (git-version release revision commit))
28756 (home-page "https://github.com/fritzgrabo/cascading-dir-locals")
28757 (source
28758 (origin
28759 (method git-fetch)
28760 (uri (git-reference
28761 (url home-page)
28762 (commit commit)))
28763 (file-name (git-file-name name version))
28764 (sha256
28765 (base32 "1jwd99kk5l588n7wwi1x3b4bgimm66x1icna3n20pwaj49kf0zy8"))))
28766 (build-system emacs-build-system)
28767 (synopsis "Apply all @file{.dir-locals.el} from root to current directory")
28768 (description
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.
28774
28775 Values specified in files nearer to the current directory take precedence over
28776 values in files farther away from it.
28777
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+))))
28781
28782 (define-public emacs-calibredb
28783 (package
28784 (name "emacs-calibredb")
28785 (version "2.12.0")
28786 (source
28787 (origin
28788 (method git-fetch)
28789 (uri (git-reference
28790 (url "https://github.com/chenyanming/calibredb.el")
28791 (commit version)))
28792 (file-name (git-file-name name version))
28793 (sha256
28794 (base32 "1l30s3wv21mpybbxni5fziq2awai9k60i87s6fid56hg262r7jp0"))))
28795 (build-system emacs-build-system)
28796 (arguments
28797 (list
28798 #:phases
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))))))))
28809 (inputs
28810 (list calibre))
28811 (propagated-inputs
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.
28816 @enumerate
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.
28823 @end enumerate")
28824 (license license:gpl3)))
28825
28826 (define-public emacs-el-patch
28827 (package
28828 (name "emacs-el-patch")
28829 (version "3.0")
28830 (source
28831 (origin
28832 (method git-fetch)
28833 (uri (git-reference
28834 (url "https://github.com/raxod502/el-patch")
28835 (commit version)))
28836 (file-name (git-file-name name version))
28837 (sha256
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)))
28846
28847 (define-public emacs-info-plus
28848 (let ((commit "29811edf7a71764ac343631facc00268d9483146")
28849 (revision "3"))
28850 (package
28851 (name "emacs-info-plus")
28852 (version (git-version "0" revision commit))
28853 (source
28854 (origin
28855 (method git-fetch)
28856 (uri (git-reference
28857 (url "https://github.com/emacsmirror/info-plus")
28858 (commit commit)))
28859 (file-name (git-file-name name version))
28860 (sha256
28861 (base32
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
28868 nodes, and more.")
28869 (license license:gpl2+))))
28870
28871 (define-public emacs-eval-in-repl
28872 (package
28873 (name "emacs-eval-in-repl")
28874 (version "0.9.7")
28875 (source
28876 (origin
28877 (method git-fetch)
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))
28882 (sha256
28883 (base32 "1mrssbl0wyc6iij8zk1y3h9bd3rv53nnrxsij7fn67l1m4z0clyn"))))
28884 (build-system emacs-build-system)
28885 (arguments
28886 (list #:include
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")
28891 (description
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)))
28898
28899 (define* (make-emacs-eval-in-repl repl #:key
28900 (eval-in-repl-package emacs-eval-in-repl)
28901 (language (string-capitalize repl))
28902 (inputs '()))
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."
28905 (package
28906 (inherit eval-in-repl-package)
28907 (name (string-append "emacs-eval-in-repl-" repl))
28908 (arguments
28909 (list #:include
28910 #~(list #$(string-append "eval-in-repl-" repl "\\.el"))))
28911 (propagated-inputs (cons* eval-in-repl-package
28912 (cond
28913 ((procedure? inputs) (inputs))
28914 ((promise? inputs) (force inputs))
28915 (else inputs))))
28916 (description
28917 (format #f (G_ "This package provides an ESS-like binding to send lines
28918 or regions to a REPL from ~a buffers.") language))))
28919
28920 (define-public emacs-eval-in-repl-cider
28921 (make-emacs-eval-in-repl "cider" #:language "Clojure"
28922 #:inputs (list emacs-cider)))
28923
28924 (define-public emacs-eval-in-repl-elm
28925 (make-emacs-eval-in-repl "elm" #:inputs (list emacs-elm-mode)))
28926
28927 (define-public emacs-eval-in-repl-erlang
28928 (make-emacs-eval-in-repl "erlang" #:inputs (delay (list emacs-erlang))))
28929
28930 (define-public emacs-eval-in-repl-geiser
28931 (make-emacs-eval-in-repl "geiser" #:language "Scheme"
28932 #:inputs (list emacs-geiser)))
28933
28934 (define-public emacs-eval-in-repl-hy
28935 (make-emacs-eval-in-repl "hy" #:inputs (list emacs-hy-mode)))
28936
28937 (define-public emacs-eval-in-repl-ielm
28938 (make-emacs-eval-in-repl "ielm" #:language "Emacs Lisp"))
28939
28940 (define-public emacs-eval-in-repl-iex
28941 (make-emacs-eval-in-repl
28942 "iex" #:language "Elixir"
28943 #:inputs (delay
28944 (list emacs-elixir-mode emacs-alchemist))))
28945
28946 (define-public emacs-eval-in-repl-javascript
28947 (make-emacs-eval-in-repl "javascript"
28948 #:inputs (list emacs-js2-mode emacs-js-comint)))
28949
28950 (define-public emacs-eval-in-repl-lua
28951 (make-emacs-eval-in-repl "lua" #:inputs (list emacs-lua-mode)))
28952
28953 (define-public emacs-eval-in-repl-ocaml
28954 (make-emacs-eval-in-repl "ocaml" #:language "OCaml"
28955 #:inputs (delay (list emacs-tuareg))))
28956
28957 (define-public emacs-eval-in-repl-prolog
28958 (make-emacs-eval-in-repl "prolog"))
28959
28960 (define-public emacs-eval-in-repl-python
28961 (make-emacs-eval-in-repl "python"))
28962
28963 (define-public emacs-eval-in-repl-racket
28964 (make-emacs-eval-in-repl "racket" #:inputs (list emacs-racket-mode)))
28965
28966 (define-public emacs-eval-in-repl-ruby
28967 (make-emacs-eval-in-repl "ruby" #:inputs (list emacs-inf-ruby)))
28968
28969 (define-public emacs-eval-in-repl-scheme
28970 (make-emacs-eval-in-repl "scheme"))
28971
28972 (define-public emacs-eval-in-repl-shell
28973 (make-emacs-eval-in-repl "shell"))
28974
28975 (define-public emacs-eval-in-repl-slime
28976 (make-emacs-eval-in-repl "slime" #:language "Common Lisp"
28977 #:inputs (list emacs-slime)))
28978
28979 (define-public emacs-eval-in-repl-sly
28980 (make-emacs-eval-in-repl "sly" #:language "Common Lisp"
28981 #:inputs (list emacs-sly)))
28982
28983 (define-public emacs-eval-in-repl-sml
28984 (make-emacs-eval-in-repl "sml" #:language "Standard ML"
28985 #:inputs (list emacs-sml-mode)))
28986
28987 (define-public emacs-ob-elm
28988 (let ((commit "d3a9fbc2f56416894c9aed65ea9a20cc1d98f15d")
28989 (revision "0"))
28990 (package
28991 (name "emacs-ob-elm")
28992 (version (git-version "0.0" revision commit))
28993 (source
28994 (origin
28995 (method git-fetch)
28996 (uri (git-reference
28997 (url "https://github.com/BonfaceKilz/ob-elm")
28998 (commit commit)))
28999 (file-name (git-file-name name version))
29000 (sha256
29001 (base32
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")
29006 (description
29007 "This package adds support to Org-Babel for evaluating Elm code.")
29008 (license license:gpl3+))))
29009
29010 (define-public emacs-org-babel-eval-in-repl
29011 (package
29012 (name "emacs-org-babel-eval-in-repl")
29013 (version "1.6")
29014 (source
29015 (origin
29016 (method url-fetch)
29017 (uri (string-append "https://stable.melpa.org/packages/"
29018 "org-babel-eval-in-repl-" version ".tar"))
29019 (sha256
29020 (base32 "0bdnps6m3kcvsagz8cfm3kf2rvxzl2p252pfggwbdbl43kzvl35h"))
29021 (modules '((guix build utils)))
29022 (snippet
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")
29028 (description
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)))
29033
29034 (define-public emacs-eval-sexp-fu-el
29035 (package
29036 (name "emacs-eval-sexp-fu-el")
29037 (version "0.6.0")
29038 (source
29039 (origin
29040 (method git-fetch)
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))
29045 (sha256
29046 (base32
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+)))
29055
29056 (define-public emacs-counsel-tramp
29057 (package
29058 (name "emacs-counsel-tramp")
29059 (version "0.7.6")
29060 (source
29061 (origin
29062 (method git-fetch)
29063 (uri (git-reference
29064 (url "https://github.com/masasam/emacs-counsel-tramp")
29065 (commit version)))
29066 (file-name (git-file-name name version))
29067 (sha256
29068 (base32 "02dhchmyaqv6855mafjxizzgpl32rmnwdmw0nbm6rkckr13cgjl1"))))
29069 (build-system emacs-build-system)
29070 (propagated-inputs
29071 (list emacs-counsel))
29072 (home-page "https://github.com/masasam/emacs-counsel-tramp")
29073 (synopsis "Ivy interface for TRAMP")
29074 (description
29075 "This package allows @code{ivy-mode} to display and filter SSH servers.")
29076 (license license:gpl3+)))
29077
29078 (define-public emacs-tramp
29079 (package
29080 (name "emacs-tramp")
29081 (version "2.6.0")
29082 (source
29083 (origin
29084 (method url-fetch)
29085 (uri (string-append "https://elpa.gnu.org/packages/"
29086 "tramp-" version ".tar"))
29087 (sha256
29088 (base32 "1y58k0qdc9i3av61p9ks7hg5vynsi2zslv5mswcbd1wf23iggr7c"))))
29089 (build-system emacs-build-system)
29090 (arguments
29091 (list
29092 #:emacs emacs ;need D-Bus
29093 #:phases
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"))))))))
29103 (inputs
29104 (list bash))
29105 (home-page "https://savannah.gnu.org/projects/tramp")
29106 (synopsis "Remote file editing package for Emacs")
29107 (description
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+)))
29113
29114 (define-public emacs-tramp-auto-auth
29115 (let ((commit "f15a12dfab651aff60f4a9d70f868030a12344ac"))
29116 (package
29117 (name "emacs-tramp-auto-auth")
29118 (version (git-version "20191027" "1" commit))
29119 (source
29120 (origin
29121 (method git-fetch)
29122 (uri (git-reference
29123 (url "https://github.com/oitofelix/tramp-auto-auth")
29124 (commit commit)))
29125 (file-name (git-file-name name version))
29126 (sha256
29127 (base32
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+))))
29136
29137 (define-public emacs-eacl
29138 (package
29139 (name "emacs-eacl")
29140 (version "2.2.0")
29141 (source
29142 (origin
29143 (method git-fetch)
29144 (uri (git-reference
29145 (url "https://github.com/redguardtoo/eacl")
29146 (commit version)))
29147 (file-name (git-file-name name version))
29148 (sha256
29149 (base32 "1d2krw9x1mw6jn1q07nbq2qi92fms85q3i9wa2q5drs3368l55vr"))))
29150 (build-system emacs-build-system)
29151 (propagated-inputs
29152 (list emacs-ivy))
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+)))
29158
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"))
29163 (package
29164 (name "emacs-semantic-refactor")
29165 (version (git-version "0.5" "1" commit))
29166 (source
29167 (origin
29168 (method git-fetch)
29169 (uri (git-reference
29170 (url "https://github.com/tuhdo/semantic-refactor")
29171 (commit commit)))
29172 (file-name (git-file-name name version))
29173 (sha256
29174 (base32
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:
29181
29182 @enumerate
29183 @item Generating class implementations
29184 @item Generating function prototypes
29185 @item Converting functions to function pointers
29186 @item Moving semantic units
29187 @item etc...
29188 @end enumerate
29189
29190 For Lisp dialects like Clojure, ELisp, and Scheme, it supports operations such
29191 as:
29192
29193 @enumerate
29194 @item Formatting the whole buffer
29195 @item Converting sexpressions to one or multiple lines
29196 @item etc...
29197 @end enumerate\n")
29198 (license license:gpl3+))))
29199
29200 (define-public emacs-nhexl-mode
29201 (package
29202 (name "emacs-nhexl-mode")
29203 (version "1.5")
29204 (source
29205 (origin
29206 (method url-fetch)
29207 (uri (string-append "https://elpa.gnu.org/packages/"
29208 "nhexl-mode-" version ".el"))
29209 (sha256
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")
29214 (description
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}.
29217
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.
29222
29223 It also comes with:
29224
29225 @itemize
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.
29234 @end itemize")
29235 (license license:gpl3+)))
29236
29237 (define-public emacs-helm-wikipedia
29238 (let ((commit "126f044e0a0e1432e0791c33ce2a41875d704a9b"))
29239 (package
29240 (name "emacs-helm-wikipedia")
29241 (version (git-version "0.0.0" "1" commit))
29242 (home-page "https://github.com/emacs-helm/helm-wikipedia/")
29243 (source
29244 (origin
29245 (method git-fetch)
29246 (uri (git-reference
29247 (url home-page)
29248 (commit commit)))
29249 (file-name (git-file-name name version))
29250 (sha256
29251 (base32
29252 "148a5xsnbsiddhf9cl7yxdk41lrv38h0pip91kcflw9d7l0dp7pr"))))
29253 (build-system emacs-build-system)
29254 (inputs
29255 (list emacs-helm))
29256 (synopsis "Search suggestions and article extracts from Wikipedia for Emacs")
29257 (description
29258 "This package provides an Emacs Helm interface for search suggestions
29259 and article extracts for Wikipedia.")
29260 (license license:gpl3+))))
29261
29262 (define-public emacs-webfeeder
29263 (package
29264 (name "emacs-webfeeder")
29265 (version "1.1.2")
29266 (source
29267 (origin
29268 (method url-fetch)
29269 (uri (string-append
29270 "https://elpa.gnu.org/packages/webfeeder-"
29271 version
29272 ".tar"))
29273 (sha256
29274 (base32
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")
29279 (description
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+)))
29284
29285 (define-public emacs-evil-numbers
29286 ;; XXX: Upstream did not tag latest release. Use commit matching exact
29287 ;; version bump.
29288 (let ((commit "61dde4e3715fd1255df8f87a37d9c8022e909bf4"))
29289 (package
29290 (name "emacs-evil-numbers")
29291 (version "0.7")
29292 (source
29293 (origin
29294 (method git-fetch)
29295 (uri (git-reference
29296 (url "https://github.com/juliapath/evil-numbers")
29297 (commit commit)))
29298 (file-name (git-file-name name version))
29299 (sha256
29300 (base32
29301 "006s8azhypp5n7jnvqkb4rmzqmnsdwj87c3r97zhjzgi2jq953gx"))))
29302 (build-system emacs-build-system)
29303 (arguments
29304 (list
29305 #:tests? #t
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")
29314 (description
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+))))
29318
29319 (define-public emacs-janpath-evil-numbers
29320 (deprecated-package "emacs-janpath-evil-numbers" emacs-evil-numbers))
29321
29322 (define-public emacs-rotate-text
29323 (package
29324 (name "emacs-rotate-text")
29325 (version "0.1")
29326 (source (origin
29327 (method git-fetch)
29328 (uri (git-reference
29329 (url "https://github.com/nschum/rotate-text.el")
29330 (commit version)))
29331 (file-name (git-file-name name version))
29332 (sha256
29333 (base32
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
29342 \"variableN\".")
29343 (license license:gpl2+)))
29344
29345 (define-public emacs-ediprolog
29346 (package
29347 (name "emacs-ediprolog")
29348 (version "2.2")
29349 (source
29350 (origin
29351 (method url-fetch)
29352 (uri (string-append
29353 "https://elpa.gnu.org/packages/ediprolog-"
29354 version ".tar"))
29355 (sha256
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+)))
29366
29367 (define-public emacs-evil-cleverparens
29368 (let ((commit "8c45879d49bfa6d4e414b6c1df700a4a51cbb869")
29369 (revision "1"))
29370 (package
29371 (name "emacs-evil-cleverparens")
29372 (version (git-version "2017-07-17" revision commit))
29373 (source (origin
29374 (method git-fetch)
29375 (uri (git-reference
29376 (url "https://github.com/luxbock/evil-cleverparens")
29377 (commit commit)))
29378 (sha256 (base32 "0lhnybpnk4n2yhlcnj9zxn0vi5hpjfaqfhvyfy7ckzz74g8v7iyw"))
29379 (file-name (git-file-name name version))))
29380 (build-system emacs-build-system)
29381 (propagated-inputs
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))))
29391
29392 (define-public emacs-ntlm
29393 (package
29394 (name "emacs-ntlm")
29395 (version "2.1.0")
29396 (source
29397 (origin
29398 (method url-fetch)
29399 (uri (string-append "https://elpa.gnu.org/packages/ntlm-" version ".el"))
29400 (sha256
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")
29405 (description
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+)))
29409
29410 (define-public emacs-nadvice
29411 (package
29412 (name "emacs-nadvice")
29413 (version "0.3")
29414 (source
29415 (origin
29416 (method url-fetch)
29417 (uri (string-append "https://elpa.gnu.org/packages/"
29418 "nadvice-" version ".el"))
29419 (sha256
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")
29424 (description
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+)))
29429
29430 (define-public emacs-url-http-ntlm
29431 (package
29432 (name "emacs-url-http-ntlm")
29433 (version "2.0.4")
29434 (source
29435 (origin
29436 (method url-fetch)
29437 (uri (string-append "https://elpa.gnu.org/packages/"
29438 "url-http-ntlm-" version ".el"))
29439 (sha256
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+)))
29447
29448 (define-public emacs-soap-client
29449 (package
29450 (name "emacs-soap-client")
29451 (version "3.2.1")
29452 (source
29453 (origin
29454 (method url-fetch)
29455 (uri (string-append "https://elpa.gnu.org/packages/"
29456 "soap-client-" version ".tar"))
29457 (sha256
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")
29462 (description
29463 "This package provides a SOAP client to access web services.")
29464 (license license:gpl3+)))
29465
29466 (define-public emacs-fsm
29467 (package
29468 (name "emacs-fsm")
29469 (version "0.2.1")
29470 (source
29471 (origin
29472 (method url-fetch)
29473 (uri (string-append "https://elpa.gnu.org/packages/fsm-" version ".el"))
29474 (sha256
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")
29479 (description
29480 "This package provides Finite State Machine library to make asynchronous
29481 programming in Emacs Lisp easy and fun.")
29482 (license license:gpl3+)))
29483
29484 (define-public emacs-excorporate
29485 (package
29486 (name "emacs-excorporate")
29487 (version "1.0.0")
29488 (source
29489 (origin
29490 (method url-fetch)
29491 (uri (string-append "https://elpa.gnu.org/packages/"
29492 "excorporate-" version ".tar"))
29493 (sha256
29494 (base32 "1g0wc2kp15ra323b4rxvdh58q9c4h7m20grw6a0cs53m7l9xi62f"))))
29495 (build-system emacs-build-system)
29496 (propagated-inputs
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+)))
29502
29503 (define-public emacs-evil-traces
29504 ;; XXX: Upstream does not tag releases. Use commit matching exact version
29505 ;; bump.
29506 (let ((commit "05e201cd63b549e3c88b5c3fc9b264bd6fe5a42c"))
29507 (package
29508 (name "emacs-evil-traces")
29509 (version "0.2.0")
29510 (source (origin
29511 (method git-fetch)
29512 (uri (git-reference
29513 (url "https://github.com/mamapanda/evil-traces")
29514 (commit commit)))
29515 (file-name (git-file-name name version))
29516 (sha256
29517 (base32
29518 "0vadpy2whcgx08blyb4vw6wq3nrxdl03zv85lp37pf3mdk9kwmga"))))
29519 (build-system emacs-build-system)
29520 (arguments
29521 (list
29522 #:tests? #t
29523 #:test-command #~(list "make" "test")
29524 #:phases
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.
29529 (lambda _
29530 (setenv "SHELL" (which "sh")))))))
29531 (propagated-inputs
29532 (list emacs-evil))
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
29536 Evil mode.")
29537 (license license:gpl3+))))
29538
29539 (define-public emacs-evil-tmux-navigator
29540 (package
29541 (name "emacs-evil-tmux-navigator")
29542 (version "0.1.5")
29543 (source
29544 (origin
29545 (method git-fetch)
29546 (uri
29547 (git-reference
29548 (url "https://github.com/keith/evil-tmux-navigator")
29549 (commit version)))
29550 (file-name (git-file-name name version))
29551 (sha256
29552 (base32
29553 "1na44rbc03sr5b4z9pvnps6n4nmrqcz58nywix9825l74a419ijx"))))
29554 (propagated-inputs
29555 (list emacs-evil))
29556 (build-system emacs-build-system)
29557 (home-page "https://github.com/keith/evil-tmux-navigator")
29558 (synopsis
29559 "Navigate seamlessly between emacs windows and tmux panes")
29560 (description
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)))
29564
29565 (define-public emacs-everywhere
29566 ;; No upstream release. Extract version from main file.
29567 (let ((commit "ace53396a66ed4b753f42c04a5a0db2bcd770423")
29568 (revision "0"))
29569 (package
29570 (name "emacs-everywhere")
29571 (version (git-version "0.0.1" revision commit))
29572 (source (origin
29573 (method git-fetch)
29574 (uri (git-reference
29575 (url "https://github.com/tecosaur/emacs-everywhere")
29576 (commit commit)))
29577 (file-name (git-file-name name version))
29578 (sha256
29579 (base32
29580 "0p55shxvqm1713af33mfglny7rpi31d42wvgwylcsfy4jvnsq8bb"))))
29581 (arguments
29582 (list
29583 #:phases
29584 #~(modify-phases %standard-phases
29585 (add-after 'unpack 'patch-exec-paths
29586 (lambda* (#:key inputs #:allow-other-keys)
29587 (substitute* "emacs-everywhere.el"
29588 (("\"xclip\"")
29589 (string-append "\""
29590 (search-input-file inputs "/bin/xclip")
29591 "\""))
29592 (("\"xdotool\"")
29593 (string-append "\""
29594 (search-input-file inputs "/bin/xdotool")
29595 "\""))
29596 (("\"xprop\"")
29597 (string-append "\""
29598 (search-input-file inputs "/bin/xprop")
29599 "\""))
29600 (("\"xwininfo\"")
29601 (string-append "\""
29602 (search-input-file inputs "/bin/xwininfo")
29603 "\""))))))))
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+))))
29612
29613 (define-public emacs-xclip
29614 (package
29615 (name "emacs-xclip")
29616 (version "1.11")
29617 (source
29618 (origin
29619 (method url-fetch)
29620 (uri (string-append "https://elpa.gnu.org/packages/"
29621 "xclip-" version ".tar"))
29622 (sha256
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")
29627 (description
29628 "This package allows Emacs to copy to and paste from the GUI clipboard
29629 when running in text terminal.
29630
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
29633 work.")
29634 (license license:gpl3+)))
29635
29636 (define-public emacs-xterm-color
29637 (package
29638 (name "emacs-xterm-color")
29639 (version "2.0")
29640 (source
29641 (origin
29642 (method git-fetch)
29643 (uri (git-reference
29644 (url "https://github.com/atomontage/xterm-color")
29645 (commit version)))
29646 (file-name (git-file-name name version))
29647 (sha256
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)))
29655
29656 (define-public emacs-org-noter
29657 (package
29658 (name "emacs-org-noter")
29659 (version "1.4.1")
29660 (source
29661 (origin
29662 (method git-fetch)
29663 (uri (git-reference
29664 (url "https://github.com/weirdNox/org-noter")
29665 (commit version)))
29666 (file-name (git-file-name name version))
29667 (sha256
29668 (base32
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")
29674 (description
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+)))
29681
29682 (define-public emacs-org-redmine
29683 (let ((commit "e77d013bc3784947c46a5c53f03cd7d3c68552fc"))
29684 (package
29685 (name "emacs-org-redmine")
29686 (version (git-version "0.1" "1" commit))
29687 (source (origin
29688 (method git-fetch)
29689 (uri (git-reference
29690 (url "https://github.com/gongo/org-redmine")
29691 (commit commit)))
29692 (file-name (git-file-name name version))
29693 (sha256
29694 (base32
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+))))
29701
29702 (define-public emacs-multi-term
29703 ;; No upstream release. Extract version from main file.
29704 (let ((commit "017c77c550115936860e2ea71b88e585371475d5")
29705 (revision "0"))
29706 (package
29707 (name "emacs-multi-term")
29708 (version (git-version "1.5" revision commit))
29709 (source
29710 (origin
29711 (method git-fetch)
29712 (uri (git-reference
29713 (url "https://github.com/manateelazycat/multi-term")
29714 (commit commit)))
29715 (file-name (git-file-name name version))
29716 (sha256
29717 (base32 "043dqd8i8h6hbcg11rzprxin2yq5lb902zlrb7mxah44vyp8wrdi"))))
29718 (build-system emacs-build-system)
29719 (inputs
29720 (list zsh))
29721 (home-page "https://github.com/manateelazycat/multi-term")
29722 (synopsis "Manage multiple terminal buffers in Emacs")
29723 (description
29724 "This package enhances @code{term.el} with the following features:
29725
29726 @enumerate
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
29732 it forcibly
29733 @item Dedicated window for debugging program.
29734 @end enumerate")
29735 (license license:gpl3+))))
29736
29737 (define-public emacs-elpher
29738 (package
29739 (name "emacs-elpher")
29740 (version "3.4.2")
29741 (source
29742 (origin
29743 (method git-fetch)
29744 (uri (git-reference
29745 (url "git://thelambdalab.xyz/elpher")
29746 (commit (string-append "v" version))))
29747 (file-name (git-file-name name version))
29748 (sha256
29749 (base32 "1c6pid2ip2c2lpww42wxgq4qflx1m8vxilyva03h8xzgr39kwq64"))))
29750 (build-system emacs-build-system)
29751 (arguments
29752 (list
29753 #:emacs emacs-no-x ;need libxml support
29754 #:phases
29755 #~(modify-phases %standard-phases
29756 (add-before 'install 'build-doc
29757 (lambda _
29758 (invoke "makeinfo" "elpher.texi"))))))
29759 (native-inputs
29760 (list texinfo))
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+)))
29771
29772 (define-public emacs-zerodark-theme
29773 (package
29774 (name "emacs-zerodark-theme")
29775 (version "4.7")
29776 (source
29777 (origin
29778 (method git-fetch)
29779 (uri (git-reference
29780 (url "https://github.com/NicolasPetton/zerodark-theme")
29781 (commit version)))
29782 (file-name (git-file-name name version))
29783 (sha256
29784 (base32
29785 "1r5s4mvwlxsb9ylr6dkfxpm1l0pbqkmn5gwjdcfk762cnxlam8cm"))))
29786 (build-system emacs-build-system)
29787 (propagated-inputs
29788 (list emacs-flycheck emacs-all-the-icons))
29789 (home-page
29790 "https://gitlab.petton.fr/nico/zerodark-theme")
29791 (synopsis
29792 "Dark, medium contrast theme for Emacs")
29793 (description
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+)))
29797
29798 (define-public emacs-gnus-alias
29799 (package
29800 (name "emacs-gnus-alias")
29801 (version "20150316")
29802 (source (origin
29803 (method git-fetch)
29804 (uri (git-reference
29805 (url "https://github.com/hexmode/gnus-alias")
29806 (commit "9447d3ccb4c0e75d0468899cccff7aa249657bac")))
29807 (file-name (git-file-name name version))
29808 (sha256
29809 (base32
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:
29818
29819 @itemize
29820 @item Switch Identities in a message buffer.
29821 @item Access original message to help determine Identity of the followup/reply
29822 message.
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.
29825 @end itemize")
29826 (license license:gpl2+)))
29827
29828 (define-public emacs-ox-epub
29829 (package
29830 (name "emacs-ox-epub")
29831 (version "0.3")
29832 (source (origin
29833 (method git-fetch)
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))
29838 (sha256
29839 (base32
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+)))
29850
29851 (define-public emacs-ox-gemini
29852 ;; No releases yet
29853 (let ((commit "168f820ea401fb813435a3a55af295873a4c110b")
29854 (revision "1"))
29855 (package
29856 (name "emacs-ox-gemini")
29857 (version (git-version "0" revision commit))
29858 (source
29859 (origin
29860 (method git-fetch)
29861 (uri (git-reference
29862 (url "https://git.sr.ht/~abrahms/ox-gemini")
29863 (commit commit)))
29864 (file-name (git-file-name name version))
29865 (sha256
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")
29870 (description
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+))))
29875
29876 (define-public emacs-ox-haunt
29877 (package
29878 (name "emacs-ox-haunt")
29879 (version "0.2")
29880 (source
29881 (origin
29882 (method git-fetch)
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))
29887 (sha256
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")
29892 (description
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+)))
29896
29897 (define-public emacs-ox-hugo
29898 (package
29899 (name "emacs-ox-hugo")
29900 (version "0.12.2")
29901 (source
29902 (origin
29903 (method git-fetch)
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))
29908 (sha256
29909 (base32
29910 "054ln6x92qyicvc5l1m9yjqqzwpg3j66v0shxsypp97vfw2d3ww6"))))
29911 (build-system emacs-build-system)
29912 (propagated-inputs
29913 (list emacs-tomelr))
29914 (home-page "https://ox-hugo.scripter.co")
29915 (synopsis "Hugo markdown back-end for Org export engine")
29916 (description
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
29919 format.")
29920 (license license:gpl3+)))
29921
29922 (define-public emacs-ox-pandoc
29923 (package
29924 (name "emacs-ox-pandoc")
29925 (version "20180510")
29926 (source (origin
29927 (method git-fetch)
29928 (uri (git-reference
29929 (url "https://github.com/kawabata/ox-pandoc")
29930 (commit "aa37dc7e94213d4ebedb85c384c1ba35007da18e")))
29931 (file-name (git-file-name name version))
29932 (sha256
29933 (base32
29934 "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"))))
29935 (build-system emacs-build-system)
29936 (inputs
29937 (list pandoc))
29938 (propagated-inputs
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+)))
29945
29946 (define-public emacs-ox-reveal
29947 (let ((commit "07900f29fada581d0e1b0f1e2057cea5e1ba8ce1")
29948 (revision "0"))
29949 (package
29950 (name "emacs-ox-reveal")
29951 (version (git-version "1.0" revision commit))
29952 (source
29953 (origin
29954 (method git-fetch)
29955 (uri (git-reference
29956 (url "https://github.com/hexmode/ox-reveal")
29957 (commit commit)))
29958 (file-name (git-file-name name version))
29959 (sha256
29960 (base32
29961 "132b0llxda8jivabvm2ssbrdny7q2q1c0z4ikb12k4kia3fvg6cg"))))
29962 (build-system emacs-build-system)
29963 (propagated-inputs
29964 (list emacs-org))
29965 (home-page "https://github.com/hexmode/ox-reveal")
29966 (synopsis "reveal.js Presentation Back-End for Org export engine")
29967 (description
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+))))
29972
29973 (define-public emacs-ox-rss
29974 ;; XXX: Upstream provides no version nor tags whatsoever.
29975 (let ((commit "83dc898fa5493925b01716e5dd495d5e07c3d41a")
29976 (revision "0"))
29977 (package
29978 (name "emacs-ox-rss")
29979 (version (git-version "0" revision commit))
29980 (source (origin
29981 (method git-fetch)
29982 (uri (git-reference
29983 (url "https://gitlab.com/nsavage/ox-rss")
29984 (commit commit)))
29985 (file-name (git-file-name name version))
29986 (sha256
29987 (base32
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")
29992 (description
29993 "This library implements an RSS 2.0 back-end for Org exporter, based
29994 on the HTML back-end.")
29995 (license license:gpl3+))))
29996
29997 (define-public emacs-wc-mode
29998 (package
29999 (name "emacs-wc-mode")
30000 (version "1.4.1")
30001 (source (origin
30002 (method git-fetch)
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))
30007 (sha256
30008 (base32
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
30018 time.")
30019 (license license:gpl3+)))
30020
30021 (define-public emacs-mastodon
30022 (package
30023 (name "emacs-mastodon")
30024 (version "1.0.0")
30025 (source (origin
30026 (method git-fetch)
30027 (uri (git-reference
30028 (url "https://codeberg.org/martianh/mastodon.el")
30029 (commit version)))
30030 (file-name (git-file-name name version))
30031 (sha256
30032 (base32
30033 "13swcbvwhjl8ksrgzvmfafkgd3iz8znk49bs1n48w3g9qvh097w7"))))
30034 (build-system emacs-build-system)
30035 (arguments
30036 (list #:phases
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
30041 (lambda _
30042 (let ((el-files (find-files "./lisp" ".*\\.el$")))
30043 (for-each (lambda (f)
30044 (rename-file f (basename f)))
30045 el-files)))))))
30046 (propagated-inputs
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+)))
30053
30054 (define-public emacs-ebdb
30055 (package
30056 (name "emacs-ebdb")
30057 (version "0.8.16")
30058 (source
30059 (origin
30060 (method url-fetch)
30061 (uri (string-append "https://elpa.gnu.org/packages/"
30062 "ebdb-" version ".tar"))
30063 (sha256
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")
30068 (description
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+)))
30073
30074 (define-public emacs-refactor
30075 (package
30076 (name "emacs-refactor")
30077 (version "0.4")
30078 (source (origin
30079 (method git-fetch)
30080 (uri (git-reference
30081 (url "https://github.com/Wilfred/emacs-refactor")
30082 (commit version)))
30083 (file-name (git-file-name name version))
30084 (sha256
30085 (base32
30086 "1yky7vlv91501xb43xk19rr8mxlvrsxhawsc98jivf64nad5dqay"))))
30087 (build-system emacs-build-system)
30088 (propagated-inputs
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+)))
30096
30097 (define-public emacs-flyspell-correct
30098 (package
30099 (name "emacs-flyspell-correct")
30100 (version "0.6.1")
30101 (source
30102 (origin
30103 (method git-fetch)
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))
30108 (sha256
30109 (base32 "1m5da6r82hk0c2x3lw03qnkk79sx67875afw0ybblj3cmfk6szd1"))))
30110 (build-system emacs-build-system)
30111 ;; XXX: emacs-avy-menu is not packaged, so we ignore the file below.
30112 (arguments
30113 `(#:exclude '("flyspell-correct-avy-menu\\.el")))
30114 (propagated-inputs
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")
30118 (description
30119 "This package provides functionality for correcting words via custom
30120 interfaces. Several interfaces are supported beside the classic Ido: Popup,
30121 Helm and Ivy.")
30122 (license license:gpl3+)))
30123
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"))
30128 (package
30129 (name "emacs-spell-fu")
30130 (version (git-version "0.3" revision commit))
30131 (source (origin
30132 (method git-fetch)
30133 (uri (git-reference
30134 (url "https://gitlab.com/ideasman42/emacs-spell-fu")
30135 (commit commit)))
30136 (file-name (git-file-name name version))
30137 (sha256
30138 (base32
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")
30143 (description
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+))))
30147
30148 (define-public emacs-org-emms
30149 (let ((commit "07a8917f3d628c32e5de1dbd118ac08203772533")
30150 (revision "1"))
30151 (package
30152 (name "emacs-org-emms")
30153 (version
30154 (git-version "0.1" revision commit))
30155 (source
30156 (origin
30157 (method git-fetch)
30158 (uri (git-reference
30159 (url "https://gitlab.com/jagrg/org-emms.git")
30160 (commit commit)))
30161 (file-name (git-file-name name commit))
30162 (sha256
30163 (base32
30164 "1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d"))))
30165 (build-system emacs-build-system)
30166 (propagated-inputs
30167 (list emacs-emms emacs-org))
30168 (home-page "https://gitlab.com/jagrg/org-emms")
30169 (synopsis "Play multimedia files from org-mode")
30170 (description
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+))))
30175
30176 (define-public emacs-org-jira
30177 (package
30178 (name "emacs-org-jira")
30179 (version "4.4.0")
30180 (source
30181 (origin
30182 (method git-fetch)
30183 (uri (git-reference
30184 (url "https://github.com/ahungry/org-jira")
30185 (commit version)))
30186 (file-name (git-file-name name version))
30187 (sha256
30188 (base32
30189 "1s91l4ibjvvc7rfvd8gldxqrcgjq00q83fdww217ck2ps5yrzyjl"))))
30190 (build-system emacs-build-system)
30191 (propagated-inputs
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")
30195 (description
30196 "This package provides an extension to org-mode for syncing issues with
30197 JIRA issue servers.")
30198 (license license:gpl3+)))
30199
30200 (define-public emacs-slime-volleyball
30201 (package
30202 (name "emacs-slime-volleyball")
30203 (version "1.2.0")
30204 (source
30205 (origin
30206 (method url-fetch)
30207 (uri (string-append "https://elpa.gnu.org/packages/"
30208 "slime-volleyball-" version ".tar"))
30209 (sha256
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")
30215 (description
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+)))
30222
30223 (define-public emacs-syslog-mode
30224 (package
30225 (name "emacs-syslog-mode")
30226 (version "20210910.1952")
30227 (source (origin
30228 (method git-fetch)
30229 (uri (git-reference
30230 (url "https://github.com/vapniks/syslog-mode.git")
30231 (commit "072664784dae41a573a9de8d178bf577b7526b82")))
30232 (sha256
30233 (base32
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+)))
30244
30245 (define-public emacs-systemd-mode
30246 (package
30247 (name "emacs-systemd-mode")
30248 (version "1.6")
30249 (source (origin
30250 (method git-fetch)
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))
30255 (sha256
30256 (base32
30257 "0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq"))))
30258 (build-system emacs-build-system)
30259 (arguments '(#:include '("\\.el$" "\\.txt$")))
30260 (home-page "https://github.com/holomorph/systemd-mode")
30261 (synopsis
30262 "Major mode for editing systemd units")
30263 (description
30264 "Major mode for editing systemd units in GNU Emacs.")
30265 (license license:gpl3+)))
30266
30267 (define-public emacs-ssh-config-mode
30268 (let ((commit "4c1dfa57d452cb5654453bf186c8ff63e1e71b56")
30269 (revision "1"))
30270 (package
30271 (name "emacs-ssh-config-mode")
30272 (version (git-version "8.0" revision commit))
30273 (source
30274 (origin
30275 (method git-fetch)
30276 (uri
30277 (git-reference
30278 (url "https://github.com/jhgorrell/ssh-config-mode-el")
30279 (commit commit)))
30280 (file-name (git-file-name name commit))
30281 (sha256
30282 (base32
30283 "0crglfdazzckizbwzmgl2rn6j85avfzkr1q7ijxd17rp2anvr9bd"))))
30284 (build-system emacs-build-system)
30285 (arguments '(#:include '("\\.el$" "\\.txt$")))
30286 (home-page
30287 "https://github.com/jhgorrell/ssh-config-mode-el")
30288 (synopsis
30289 "Mode for fontification of ~/.ssh/config")
30290 (description
30291 "This package fontifies the ssh config keywords and creates
30292 keybindings for skipping from host section to host section.")
30293 (license license:gpl3+))))
30294
30295 (define-public emacs-ssh-agency
30296 (package
30297 (name "emacs-ssh-agency")
30298 (version "0.4.1")
30299 (source (origin
30300 (method git-fetch)
30301 (uri (git-reference
30302 (url "https://github.com/magit/ssh-agency")
30303 (commit version)))
30304 (file-name (git-file-name name version))
30305 (sha256
30306 (base32
30307 "1i3zmsn0w2k7p2hlzssibckm32kf05l56mkhg96x4sf06g3pwq1d"))))
30308 (build-system emacs-build-system)
30309 (propagated-inputs
30310 (list emacs-dash))
30311 (home-page "https://github.com/magit/ssh-agency")
30312 (synopsis "Manage @code{ssh-agent} from Emacs")
30313 (description
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
30317 passphrase.
30318
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+)))
30322
30323 (define-public emacs-super-save
30324 (package
30325 (name "emacs-super-save")
30326 (version "0.3.0")
30327 (source
30328 (origin
30329 (method git-fetch)
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))
30334 (sha256
30335 (base32
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+)))
30345
30346 (define-public emacs-tao-theme
30347 (let ((commit "468ee4f6ba7afb9dbfc8855ae2c333cb16ca4408")
30348 (revision "1"))
30349 (package
30350 (name "emacs-tao-theme")
30351 (version (git-version "1.1.1" revision commit))
30352 (source
30353 (origin
30354 (method git-fetch)
30355 (uri (git-reference
30356 (url "https://github.com/11111000000/tao-theme-emacs")
30357 (commit commit)))
30358 (file-name (git-file-name name version))
30359 (sha256
30360 (base32
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")
30365 (description
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}.
30369
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+))))
30374
30375 (define-public emacs-almost-mono-themes
30376 (let ((commit "c3a85c1a665530a5d830665969725cdba8eceb75")
30377 (revision "0"))
30378 (package
30379 (name "emacs-almost-mono-themes")
30380 (version (git-version "0" revision commit))
30381 (source
30382 (origin
30383 (method git-fetch)
30384 (uri (git-reference
30385 (url "https://github.com/cryon/almost-mono-themes")
30386 (commit commit)))
30387 (file-name (git-file-name name version))
30388 (sha256
30389 (base32
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")
30394 (description
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+))))
30398
30399 (define-public emacs-quasi-monochrome
30400 (let ((commit "68060dbbc0bbfe4924387392874186c5a29bb434")
30401 (revision "0"))
30402 (package
30403 (name "emacs-quasi-monochrome")
30404 (version (git-version "1.2" revision commit))
30405 (source
30406 (origin
30407 (method git-fetch)
30408 (uri (git-reference
30409 (url "https://github.com/lbolla/emacs-quasi-monochrome")
30410 (commit commit)))
30411 (file-name (git-file-name name version))
30412 (sha256
30413 (base32
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")
30418 (description
30419 "This package provides a dark color theme with a black background, high
30420 contrast and few colors.")
30421 (license license:gpl3+))))
30422
30423 (define-public emacs-doom-themes
30424 (package
30425 (name "emacs-doom-themes")
30426 (version "2.3.0")
30427 (source (origin
30428 (method git-fetch)
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))
30433 (sha256
30434 (base32 "120pcas0l1m6w551qxfcl2fx0aysjqp91nn47zdxrr8rs01654wr"))))
30435 (build-system emacs-build-system)
30436 (native-inputs
30437 (list emacs-ert-runner))
30438 (arguments
30439 (list #:tests? #t
30440 #:test-command #~(list "ert-runner")
30441 #:modules '((guix build emacs-build-system)
30442 (guix build utils)
30443 (guix build emacs-utils)
30444 (srfi srfi-1))
30445 #:phases
30446 #~(modify-phases %standard-phases
30447 (add-after 'unpack 'move-themes
30448 (lambda _
30449 ;; Move the source files to the top level, which is in the
30450 ;; EMACSLOADPATH.
30451 (for-each (lambda (f)
30452 (rename-file f (basename f)))
30453 (append
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)))
30461
30462 (define-public emacs-modus-themes
30463 (package
30464 (name "emacs-modus-themes")
30465 (version "4.0.1")
30466 (source
30467 (origin
30468 (method git-fetch)
30469 (uri (git-reference
30470 (url "https://git.sr.ht/~protesilaos/modus-themes")
30471 (commit version)))
30472 (file-name (git-file-name name version))
30473 (sha256
30474 (base32 "16m8y56jyf44rj541fqb243pmbz9bk5py5zl1xhzal4fsk5bsfrg"))))
30475 (native-inputs (list texinfo))
30476 (build-system emacs-build-system)
30477 (arguments
30478 (list
30479 #:phases
30480 #~(modify-phases %standard-phases
30481 (add-after 'install 'makeinfo
30482 (lambda _
30483 (invoke "emacs"
30484 "--batch"
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)")
30492 (description
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.
30497
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
30506
30507 (define-public emacs-punpun-theme
30508 (let ((commit "7026684cd568cb691af3ced5de14c375fe6f5a1a")
30509 (revision "0"))
30510 (package
30511 (name "emacs-punpun-theme")
30512 (version (git-version "0" revision commit))
30513 (source
30514 (origin
30515 (method git-fetch)
30516 (uri (git-reference
30517 (url "https://depp.brause.cc/punpun-theme")
30518 (commit commit)))
30519 (file-name (git-file-name name version))
30520 (sha256
30521 (base32
30522 "1nwvlp93l5lj259mchd1a2glq3jxd0h1vazsbjqfi07hsg86xjp0"))))
30523 (build-system emacs-build-system)
30524 (home-page "https://depp.brause.cc/punpun-theme")
30525 (synopsis "Bleak Emacs theme")
30526 (description
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+))))
30530
30531 (define-public emacs-spacemacs-theme
30532 (package
30533 (name "emacs-spacemacs-theme")
30534 (version "0.3")
30535 (source
30536 (origin
30537 (method git-fetch)
30538 (uri (git-reference
30539 (url "https://github.com/nashamri/spacemacs-theme")
30540 (commit version)))
30541 (file-name (git-file-name name version))
30542 (sha256
30543 (base32 "1yz8xg9ni9290nly5b93djkzk9235q6k4lhb5ghs6snr0r39157n"))))
30544 (build-system emacs-build-system)
30545 (home-page "https://github.com/nashamri/spacemacs-theme")
30546 (synopsis
30547 "Light and dark theme for spacemacs that supports GUI and terminal")
30548 (description
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+)))
30553
30554 (define-public emacs-elixir-mode
30555 (package
30556 (name "emacs-elixir-mode")
30557 (version "2.3.2")
30558 (source
30559 (origin
30560 (method git-fetch)
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))
30565 (sha256
30566 (base32 "0f2a360h8bizvqk6bmgxm59g8n7id5rzwlbv6d383h15w298mcga"))))
30567 (build-system emacs-build-system)
30568 (propagated-inputs
30569 (list emacs-pkg-info))
30570 (home-page
30571 "https://github.com/elixir-editors/emacs-elixir")
30572 (synopsis "Major mode for editing Elixir files")
30573 (description
30574 "Elixir-Mode provides font-locking, indentation and navigation support
30575 for the Elixir programming language.")
30576 (license license:gpl3+)))
30577
30578 (define-public emacs-dimmer
30579 (let ((commit "2f915b100044e09dd647b22085e1696249c4b115")
30580 (revision "1"))
30581 (package
30582 (name "emacs-dimmer")
30583 (version (git-version "0.4.2" revision commit))
30584 (source
30585 (origin
30586 (method git-fetch)
30587 (uri (git-reference
30588 (url "https://github.com/gonewest818/dimmer.el")
30589 (commit commit)))
30590 (file-name (git-file-name name version))
30591 (sha256
30592 (base32
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+))))
30603
30604 (define-public emacs-minibuffer-line
30605 (package
30606 (name "emacs-minibuffer-line")
30607 (version "0.1")
30608 (source
30609 (origin
30610 (method url-fetch)
30611 (uri (string-append
30612 "https://elpa.gnu.org/packages/minibuffer-line-"
30613 version
30614 ".el"))
30615 (sha256
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")
30620 (description
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).
30625
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+)))
30629
30630 (define-public emacs-minimap
30631 (package
30632 (name "emacs-minimap")
30633 (version "1.4")
30634 (source
30635 (origin
30636 (method url-fetch)
30637 (uri (string-append
30638 "https://elpa.gnu.org/packages/minimap-"
30639 version
30640 ".el"))
30641 (sha256
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")
30646 (description
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+)))
30654
30655 (define-public emacs-eshell-prompt-extras
30656 (package
30657 (name "emacs-eshell-prompt-extras")
30658 (version "1.0")
30659 (home-page "https://github.com/zwild/eshell-prompt-extras")
30660 (source
30661 (origin
30662 (method git-fetch)
30663 (uri (git-reference
30664 (url home-page)
30665 (commit version)))
30666 (file-name (git-file-name name version))
30667 (sha256
30668 (base32
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
30675 available.")
30676 (license license:gpl3+)))
30677
30678 (define-public emacs-eshell-did-you-mean
30679 (package
30680 (name "emacs-eshell-did-you-mean")
30681 (version "0.2")
30682 (source
30683 (origin
30684 (method git-fetch)
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))
30689 (sha256
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+)))
30698
30699 (define-public emacs-unfill
30700 (package
30701 (name "emacs-unfill")
30702 (version "0.3")
30703 (home-page "https://github.com/purcell/unfill")
30704 (source
30705 (origin
30706 (method git-fetch)
30707 (uri (git-reference
30708 (url home-page)
30709 (commit version)))
30710 (file-name (git-file-name name version))
30711 (sha256
30712 (base32 "0pg64nza2mp4xyr69pjq51jsq1aaym0g38g4jzaxr0hh3w0ris1n"))))
30713 (build-system emacs-build-system)
30714 (synopsis "Inverse of Emacs' @code{fill-paragraph} and @code{fill-region}")
30715 (description
30716 "The functions in this package provide the inverse of Emacs'
30717 @code{fill-paragraph} and @code{fill-region}.")
30718 (license license:gpl3+)))
30719
30720 (define-public emacs-windower
30721 (package
30722 (name "emacs-windower")
30723 (version "0.0.1")
30724 (home-page "https://gitlab.com/ambrevar/emacs-windower")
30725 (source
30726 (origin
30727 (method git-fetch)
30728 (uri (git-reference
30729 (url home-page)
30730 (commit version)))
30731 (file-name (git-file-name name version))
30732 (sha256
30733 (base32 "0h24gb1ip0czfasxm8wwcc3v19g7mznzw2sxkmmfb5iis59p7dfy"))))
30734 (build-system emacs-build-system)
30735 (synopsis "Helper functions for window manipulation in Emacs")
30736 (description
30737 "This package provides helper functions for window manipulation in Emacs,
30738 such as:
30739
30740 @itemize
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}.
30746 @end itemize")
30747 (license license:gpl3+)))
30748
30749 (define-public emacs-flycheck-cpplint
30750 (package
30751 (name "emacs-flycheck-cpplint")
30752 (version "1.0.2")
30753 (source
30754 (origin
30755 (method git-fetch)
30756 (uri (git-reference
30757 (url "https://github.com/flycheck/flycheck-google-cpplint")
30758 (commit version)))
30759 (file-name (git-file-name name version))
30760 (sha256
30761 (base32 "1nlyv81pyqmyz18dlzw5h23prhkvyzb0aasjxba8mm33avx0fvvb"))))
30762 (build-system emacs-build-system)
30763 (arguments
30764 `(#:phases
30765 (modify-phases %standard-phases
30766 (add-after 'unpack 'set-cpplint-path
30767 (lambda _
30768 (substitute* "flycheck-google-cpplint.el"
30769 (("\"cpplint.py\"")
30770 (string-append "\"" (which "cpplint") "\""))))))))
30771 (inputs
30772 (list cpplint))
30773 (propagated-inputs
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+)))
30781
30782 (define-public emacs-highlight-doxygen
30783 ;; Upstream does not tag releases. Commit below matches version bump.
30784 (let ((commit "eec4874e2e89d4eb39091aad89a67dff8f8ec84c"))
30785 (package
30786 (name "emacs-highlight-doxygen")
30787 (version "0.0.2")
30788 (source
30789 (origin
30790 (method git-fetch)
30791 (uri (git-reference
30792 (url "https://github.com/Lindydancer/highlight-doxygen")
30793 (commit commit)))
30794 (sha256
30795 (base32
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")
30801 (description
30802 "This package highlights Doxygen comments.
30803
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+))))
30809
30810 (define-public emacs-helm-fish-completion
30811 (package
30812 (name "emacs-helm-fish-completion")
30813 (version "0.6")
30814 (home-page "https://github.com/emacs-helm/helm-fish-completion")
30815 (source
30816 (origin
30817 (method git-fetch)
30818 (uri (git-reference
30819 (url home-page)
30820 (commit version)))
30821 (file-name (git-file-name name version))
30822 (sha256
30823 (base32 "1j2vfngq3512naaayv9kx0d1q2zg1xgs69l8afc7swg72h0l0imw"))))
30824 (build-system emacs-build-system)
30825 (propagated-inputs
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+)))
30831
30832 (define-public emacs-helm-switch-to-repl
30833 (package
30834 (name "emacs-helm-switch-to-repl")
30835 (version "0.1.2")
30836 (home-page "https://github.com/emacs-helm/helm-switch-to-repl")
30837 (source
30838 (origin
30839 (method git-fetch)
30840 (uri (git-reference
30841 (url home-page)
30842 (commit version)))
30843 (file-name (git-file-name name version))
30844 (sha256
30845 (base32 "0n8qa549c5syvgqw1h2zrakjjbygddpxzaifaq5irscgdcajrads"))))
30846 (build-system emacs-build-system)
30847 (propagated-inputs
30848 (list emacs-helm))
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+)))
30855
30856 (define-public emacs-telega-server
30857 (package
30858 (name "emacs-telega-server")
30859 (version "0.8.03")
30860 (source
30861 (origin
30862 (method git-fetch)
30863 (uri (git-reference
30864 (url "https://github.com/zevlg/telega.el")
30865 (commit (string-append "v" version))))
30866 (sha256
30867 (base32 "1ffy17i5fi1bw5r5m6x372c52hc1k83wxdxvi4z0hixyklj48nsv"))
30868 (file-name (git-file-name "emacs-telega" version))
30869 (patches
30870 (search-patches "emacs-telega-path-placeholder.patch"
30871 "emacs-telega-test-env.patch"))))
30872 (build-system gnu-build-system)
30873 (arguments
30874 (list
30875 #:make-flags
30876 #~(list (string-append "CC=" #$(cc-for-target))
30877 (string-append "INSTALL_PREFIX=" #$output "/bin"))
30878 #:phases
30879 #~(modify-phases %standard-phases
30880 (add-before 'configure 'enter-subdirectory
30881 (lambda _ (chdir "server")))
30882 (replace 'configure
30883 (lambda _
30884 (substitute* "run_tests.py"
30885 (("^(TELEGA_SERVER = ).*$" _all prefix)
30886 (string-append prefix
30887 "\"" #$output "/bin/telega-server\"\n")))))
30888 (delete 'check)
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"))
30894 (inputs
30895 (list tdlib-1.8.0 libappindicator))
30896 (native-inputs
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+)))
30903
30904 (define-public emacs-telega
30905 (package
30906 (inherit emacs-telega-server)
30907 (name "emacs-telega")
30908 (build-system emacs-build-system)
30909 (arguments
30910 (list
30911 #:emacs (if (target-64bit?)
30912 emacs-minimal
30913 ;; Require wide-int support for 32-bit platform.
30914 emacs-wide-int)
30915 #:include #~(cons "^etc\\/" %default-include)
30916 #:phases
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)"
30925 all func cmd)
30926 (string-append func " \""
30927 (search-input-file
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"))
30943 "/etc"))))))))
30944 (inputs
30945 (list emacs-telega-server ffmpeg))
30946 (native-inputs '())
30947 (propagated-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.")))
30953
30954 (define-public emacs-telega-contrib
30955 (package
30956 (inherit emacs-telega)
30957 (name "emacs-telega-contrib")
30958 (arguments
30959 (list
30960 #:exclude #~(list "telega-live-location.el")
30961 #:phases
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 ".."))))))
30967 (inputs '())
30968 (native-inputs '())
30969 (propagated-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.")))
30974
30975 (define-public emacs-doom-modeline
30976 (package
30977 (name "emacs-doom-modeline")
30978 (version "3.3.2")
30979 (source
30980 (origin
30981 (method git-fetch)
30982 (uri (git-reference
30983 (url "https://github.com/seagle0128/doom-modeline")
30984 (commit (string-append "v" version))))
30985 (sha256
30986 (base32 "1v24hiqs4zbq613vanixgng9cx697di63jpafpmjlsripjfvk1qp"))
30987 (file-name (git-file-name name version))))
30988 (build-system emacs-build-system)
30989 (arguments
30990 `(#:test-command '("ert-runner")))
30991 (native-inputs (list emacs-ert-runner))
30992 (propagated-inputs
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+)))
31000
31001 (define-public emacs-mood-line
31002 (package
31003 (name "emacs-mood-line")
31004 (version "2.1.0")
31005 (source
31006 (origin
31007 (method git-fetch)
31008 (uri (git-reference
31009 (url "https://gitlab.com/jessieh/mood-line")
31010 (commit version)))
31011 (file-name (git-file-name name version))
31012 (sha256
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")
31017 (description
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+)))
31021
31022 (define-public emacs-simple-modeline
31023 (package
31024 (name "emacs-simple-modeline")
31025 (version "1.4")
31026 (source
31027 (origin
31028 (method git-fetch)
31029 (uri (git-reference
31030 (url "https://github.com/gexplorer/simple-modeline")
31031 (commit version)))
31032 (file-name (git-file-name name version))
31033 (sha256
31034 (base32
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")
31039 (description
31040 "This package provides a simple mode-line configuration for Emacs.")
31041 (license license:gpl3+)))
31042
31043 (define-public emacs-frames-only-mode
31044 (package
31045 (name "emacs-frames-only-mode")
31046 (version "1.0.0")
31047 (source
31048 (origin
31049 (method git-fetch)
31050 (uri (git-reference
31051 (url "https://github.com/davidshepherd7/frames-only-mode")
31052 (commit version)))
31053 (file-name (git-file-name name version))
31054 (sha256
31055 (base32 "0y0sdjixaxvywrlp2sw51wnczhk51q1svl5aghbk9rkxpwv9ys9v"))))
31056 (build-system emacs-build-system)
31057 (propagated-inputs
31058 (list emacs-dash emacs-s))
31059 (home-page "https://github.com/davidshepherd7/frames-only-mode")
31060 (synopsis "Use frames instead of Emacs windows")
31061 (description
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+)))
31066
31067 (define-public emacs-modalka
31068 (package
31069 (name "emacs-modalka")
31070 (version "0.1.5")
31071 (source
31072 (origin
31073 (method git-fetch)
31074 (uri (git-reference
31075 (url "https://github.com/mrkkrp/modalka")
31076 (commit version)))
31077 (file-name (git-file-name name version))
31078 (sha256
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")
31083 (description
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+)))
31089
31090 (define-public emacs-shrink-path
31091 (package
31092 (name "emacs-shrink-path")
31093 (version "0.3.1")
31094 (source
31095 (origin
31096 (method git-fetch)
31097 (uri (git-reference
31098 (url "https://gitlab.com/bennya/shrink-path.el.git")
31099 (commit (string-append "v" version))))
31100 (sha256
31101 (base32
31102 "0kx0c4syd7k6ff9j463bib32pz4wq0rzjlg6b0yqnymlzfr1mbki"))
31103 (file-name (git-file-name name version))))
31104 (build-system emacs-build-system)
31105 (propagated-inputs
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+)))
31112
31113 (define-public emacs-org-present
31114 (let ((commit "d13acd70eff6a1608bc991920232146a0de76b21"))
31115 (package
31116 (name "emacs-org-present")
31117 (version "0.0.1")
31118 (source
31119 (origin
31120 (method git-fetch)
31121 (uri (git-reference
31122 (url "https://github.com/rlister/org-present")
31123 (commit commit)))
31124 (file-name (git-file-name name version))
31125 (sha256
31126 (base32
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))))
31136
31137 (define-public emacs-fullframe
31138 (package
31139 (name "emacs-fullframe")
31140 (version "0.5.1")
31141 (source
31142 (origin
31143 (method git-fetch)
31144 (uri (git-reference
31145 (url "https://git.sr.ht/~tomterl/fullframe")
31146 (commit version)))
31147 (sha256
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")
31153 (description
31154 "This library provides helpers for single-window-per-frame execution of
31155 buffer-exposing commands.")
31156 (license license:gpl3+)))
31157
31158 (define-public emacs-eshell-toggle
31159 (let ((commit "ddfbe0a693497c4d4bc5494a19970ba4f6ab9033")
31160 (revision "1"))
31161 (package
31162 (name "emacs-eshell-toggle")
31163 (version (git-version "0.10.0" revision commit))
31164 (source
31165 (origin
31166 (method git-fetch)
31167 (uri (git-reference
31168 (url "https://github.com/4DA/eshell-toggle")
31169 (commit commit)))
31170 (sha256
31171 (base32
31172 "0xqrp8pwbmfxjdqipgpw5nw633mvhjjjm3k3j9sh9xdpmw05hhws"))
31173 (file-name (git-file-name name version))))
31174 (build-system emacs-build-system)
31175 (propagated-inputs
31176 (list emacs-dash))
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
31180 current buffer.")
31181 (license license:gpl3+))))
31182
31183 (define-public emacs-repl-toggle
31184 (package
31185 (name "emacs-repl-toggle")
31186 (version "0.7.2")
31187 (source
31188 (origin
31189 (method git-fetch)
31190 (uri (git-reference
31191 (url "https://git.sr.ht/~tomterl/repl-toggle")
31192 (commit version)))
31193 (sha256
31194 (base32
31195 "18dpy7a7yrn7m7qifrjk5zcr6zbd3kwp9pb55la9052vwipxxvfk"))
31196 (file-name (git-file-name name version))))
31197 (build-system emacs-build-system)
31198 (propagated-inputs
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+)))
31205
31206 (define-public emacs-rime
31207 (package
31208 (name "emacs-rime")
31209 (version "1.0.5")
31210 (source
31211 (origin
31212 (method git-fetch)
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))
31217 (sha256
31218 (base32 "0z0iwsqr92g8ykxb51gkawwxwzx0faw0027zgdi7c38ngjqld237"))))
31219 (build-system emacs-build-system)
31220 (arguments
31221 '(#:include (cons "\\.so$" %default-include)
31222 #:phases
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
31232 (lambda _
31233 (invoke "make" "lib"))))))
31234 (inputs
31235 (list librime rime-data))
31236 (propagated-inputs
31237 (list emacs-dash emacs-popup emacs-posframe))
31238 (home-page "https://github.com/DogLooksGood/emacs-rime")
31239 (synopsis "Rime input method in Emacs")
31240 (description
31241 "Rime is an Emacs input method built upon Rime input method engine.")
31242 (license license:gpl3+)))
31243
31244 (define-public emacs-bison-mode
31245 (package
31246 (name "emacs-bison-mode")
31247 (version "0.4")
31248 (source
31249 (origin
31250 (method url-fetch)
31251 (uri (string-append
31252 "https://elpa.nongnu.org/nongnu/bison-mode-"
31253 version ".tar"))
31254 (sha256
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")
31259 (description
31260 "This Emacs package provides a major mode for editing Bison, Yacc, and
31261 Lex files.")
31262 (license license:gpl2+)))
31263
31264 (define-public emacs-blackout
31265 (let ((commit "4bac44671fca4c98d96aa94c79946bf4d4baf0ee")
31266 (revision "1"))
31267 (package
31268 (name "emacs-blackout")
31269 (version (git-version "1.0" revision commit))
31270 (source
31271 (origin
31272 (method git-fetch)
31273 (uri (git-reference
31274 (url "https://github.com/raxod502/blackout")
31275 (commit commit)))
31276 (sha256
31277 (base32
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+))))
31286
31287 (define-public emacs-ivy-omni-org
31288 (let ((commit "5460a9fc061a4a5ae8372dc8df966ced94abab58")
31289 (revision "1"))
31290 (package
31291 (name "emacs-ivy-omni-org")
31292 (version (git-version "0.2.1" revision commit))
31293 (source
31294 (origin
31295 (method git-fetch)
31296 (uri (git-reference
31297 (url "https://github.com/akirak/ivy-omni-org")
31298 (commit commit)))
31299 (file-name (git-file-name name version))
31300 (sha256
31301 (base32
31302 "1np1f51hc3phkl5w02a9a79gl38ra2d535i784fn4pqaasvm0rq8"))))
31303 (build-system emacs-build-system)
31304 (propagated-inputs
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
31308 interface.")
31309 (home-page "https://github.com/akirak/ivy-omni-org")
31310 (license license:gpl3+))))
31311
31312 (define-public emacs-ivy-posframe
31313 (package
31314 (name "emacs-ivy-posframe")
31315 (version "0.6.3")
31316 (source
31317 (origin
31318 (method url-fetch)
31319 (uri (string-append "https://elpa.gnu.org/packages/"
31320 "ivy-posframe-" version ".tar"))
31321 (sha256
31322 (base32 "0b498qzaydjrhplx4d7zcrs883dlrhfiz812sv4m3pmhfwifcchh"))))
31323 (build-system emacs-build-system)
31324 (propagated-inputs
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")
31328 (description
31329 "This package provides an Emacs Ivy extension, which let Ivy use
31330 posframe to show its candidate menu.")
31331 (license license:gpl3+)))
31332
31333 (define-public emacs-shackle
31334 (package
31335 (name "emacs-shackle")
31336 (version "1.0.4")
31337 (source
31338 (origin
31339 (method git-fetch)
31340 (uri (git-reference
31341 (url "https://depp.brause.cc/shackle.git")
31342 (commit version)))
31343 (file-name (git-file-name name version))
31344 (sha256
31345 (base32 "0s4br59zpd5qq7z9074ddq9lmwnddq2ixijwi666wp5gxw45fpgg"))))
31346 (build-system emacs-build-system)
31347 (synopsis "Enforce rules for popups")
31348 (description
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+)))
31353
31354 (define-public emacs-showtip
31355 (let ((commit "930da302809a4257e8d69425455b29e1cc91949b")
31356 (revision "0"))
31357 (package
31358 (name "emacs-showtip")
31359 (version (git-version "0.01" revision commit))
31360 (source
31361 (origin
31362 (method git-fetch)
31363 (uri (git-reference
31364 (url "https://github.com/emacsorphanage/showtip")
31365 (commit commit)))
31366 (file-name (git-file-name name version))
31367 (sha256
31368 (base32 "01zak0zhha6dp7a2hm28d065gjnc462iwpsfyxhbxgfzcdlicqc7"))))
31369 (build-system emacs-build-system)
31370 (home-page "https://github.com/emacsorphanage/showtip")
31371 (synopsis "Show tip at cursor")
31372 (description
31373 "This library provide one function to show tooltip near the cursor.")
31374 (license license:gpl2+))))
31375
31376 (define-public emacs-sdcv
31377 ;; No tagged version upstream.
31378 (let ((commit "943ae3e90cc9a0a88a37cc710acd7424fd4defc4" )
31379 (revision "0"))
31380 (package
31381 (name "emacs-sdcv")
31382 (version (git-version "1.5.2" revision commit))
31383 (source
31384 (origin
31385 (method git-fetch)
31386 (uri (git-reference
31387 (url "https://github.com/stardiviner/sdcv.el")
31388 (commit commit)))
31389 (file-name (git-file-name name version))
31390 (sha256
31391 (base32 "0i1ylvw7p46pkf3yyyzcdmdhsspzymnnnvx8s0i7vynngr5x0vzh"))))
31392 (build-system emacs-build-system)
31393 (propagated-inputs
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}")
31397 (description
31398 "This plugin translates words with @code{sdcv}, and displays
31399 translation using a tooltip or in a dedicated buffer.")
31400 (license license:gpl3+))))
31401
31402 (define-public emacs-helm-lacarte
31403 (let ((commit "40a6c449720be521435b6b1da7911af3a0b9dca0")
31404 (revision "1"))
31405 (package
31406 (name "emacs-helm-lacarte")
31407 (version (git-version "0" revision commit))
31408 (source
31409 (origin
31410 (method git-fetch)
31411 (uri (git-reference
31412 (url "https://github.com/emacs-helm/helm-lacarte")
31413 (commit commit)))
31414 (file-name (git-file-name name version))
31415 (sha256
31416 (base32
31417 "0dkfd3lap2v7b4nckzv8v7hczmzwzhbl75haqkra107ln91ldbwc"))))
31418 (build-system emacs-build-system)
31419 (propagated-inputs
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
31424 items.")
31425 (home-page "https://github.com/emacs-helm/helm-lacarte")
31426 (license license:gpl3+))))
31427
31428 (define-public emacs-esh-help
31429 (let ((commit "417673ed18a983930a66a6692dbfb288a995cb80")
31430 (revision "1"))
31431 (package
31432 (name "emacs-esh-help")
31433 (version (git-version "1.0.1" revision commit))
31434 (source
31435 (origin
31436 (method git-fetch)
31437 (uri (git-reference
31438 (url "https://github.com/tom-tan/esh-help")
31439 (commit commit)))
31440 (file-name (git-file-name name version))
31441 (sha256
31442 (base32
31443 "0x7d51a6ljl014zy7mi27vzcqqbcwg9z4drq29fr2ajk82mqhlgd"))))
31444 (build-system emacs-build-system)
31445 (propagated-inputs
31446 (list emacs-dash))
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+))))
31452
31453 (define-public emacs-isearch-dabbrev
31454 (let ((commit "1efe7abba4923015cbc2462395deaec5446a9cc8")
31455 (revision "1"))
31456 (package
31457 (name "emacs-isearch-dabbrev")
31458 (version (git-version "0.1" revision commit))
31459 (source
31460 (origin
31461 (method git-fetch)
31462 (uri (git-reference
31463 (url "https://github.com/Dewdrops/isearch-dabbrev")
31464 (commit commit)))
31465 (file-name (git-file-name name version))
31466 (sha256
31467 (base32
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+))))
31475
31476 (define-public emacs-helm-linux-disks
31477 (let ((commit "2cdc8116a08534289eb0dc76461d0f93a0bdf231")
31478 (revision "1"))
31479 (package
31480 (name "emacs-helm-linux-disks")
31481 (version (git-version "0.1" revision commit))
31482 (source
31483 (origin
31484 (method git-fetch)
31485 (uri (git-reference
31486 (url "https://github.com/Akirak/helm-linux-disks")
31487 (commit commit)))
31488 (file-name (git-file-name name version))
31489 (sha256
31490 (base32
31491 "1limw82zd8jz3mhh9rqlmhj4cjhfgybs9argfjid1an3vpyhc85i"))))
31492 (build-system emacs-build-system)
31493 (propagated-inputs
31494 (list emacs-helm))
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+))))
31500
31501 (define-public emacs-psession
31502 (let ((commit "3e97267c92b164584e06a6c70ee7491714c7c12c")
31503 (revision "1"))
31504 (package
31505 (name "emacs-psession")
31506 (version (git-version "1.5" revision commit))
31507 (source
31508 (origin
31509 (method git-fetch)
31510 (uri (git-reference
31511 (url "https://github.com/thierryvolpiatto/psession")
31512 (commit commit)))
31513 (file-name (git-file-name name version))
31514 (sha256
31515 (base32
31516 "15frl618393bc891d0yi3mdxzvbq790a86vfvp3dyd5riz4ddg95"))))
31517 (build-system emacs-build-system)
31518 (propagated-inputs
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+))))
31525
31526 (define-public emacs-parseedn
31527 (package
31528 (name "emacs-parseedn")
31529 (version "1.1.0")
31530 (source
31531 (origin
31532 (method git-fetch)
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))
31537 (sha256
31538 (base32 "01j8nrkcm2s0ps277b5zb4pys29lk4cq49rlcqpj19gbfpkwcvdv"))))
31539 (build-system emacs-build-system)
31540 (propagated-inputs
31541 (list emacs-a emacs-parseclj))
31542 (home-page "https://cider.mx")
31543 (synopsis "EDN parser for Emacs Lisp")
31544 (description
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+)))
31548
31549 (define-public emacs-parseclj
31550 (package
31551 (name "emacs-parseclj")
31552 (version "1.1.0")
31553 (source
31554 (origin
31555 (method git-fetch)
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))
31560 (sha256
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")
31566 (description
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+)))
31571
31572 (define-public emacs-hide-mode-line
31573 (package
31574 (name "emacs-hide-mode-line")
31575 (version "1.0.2")
31576 (source (origin
31577 (method git-fetch)
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))
31582 (sha256
31583 (base32
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)))
31592
31593 (define-public emacs-helm-cider
31594 (package
31595 (name "emacs-helm-cider")
31596 (version "0.5.0")
31597 (source (origin
31598 (method git-fetch)
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))
31603 (sha256
31604 (base32
31605 "0jjjy68pmmsx0biawyi5581cqh2b4zb0q8f5vs49ihpzn6zc04vk"))))
31606 (build-system emacs-build-system)
31607 (propagated-inputs
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).
31614
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+)))
31619
31620 (define-public emacs-edn
31621 ;; No release since February 2016
31622 (let ((commit "be9e32d1b49e35247b263b0243df7cfdc8d413ab"))
31623 (package
31624 (name "emacs-edn")
31625 (version (git-version "1.1.2" "1" commit))
31626 (home-page "https://github.com/expez/edn.el")
31627 (source (origin
31628 (method git-fetch)
31629 (uri (git-reference
31630 (url home-page)
31631 (commit commit)))
31632 (file-name (git-file-name name version))
31633 (sha256
31634 (base32
31635 "1xp2hjhn52k6l1g6ypva6dsklpawni7gvjafbz6404f9dyxflh7l"))))
31636 (build-system emacs-build-system)
31637 (propagated-inputs
31638 (list emacs-peg))
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+))))
31643
31644 (define-public emacs-ednc
31645 (let ((commit "940a4adbbeb3b6b1a72270a814d52770dd89a997")
31646 (revision "1"))
31647 (package
31648 (name "emacs-ednc")
31649 (version (git-version "0.1" revision commit))
31650 (source
31651 (origin
31652 (method git-fetch)
31653 (uri (git-reference
31654 (url "https://github.com/sinic/ednc")
31655 (commit commit)))
31656 (file-name (git-file-name name version))
31657 (sha256
31658 (base32 "1gsx2qgv5xm9r0i0axd4hf31g2rq2m4a1hvnif48g4xb0llss73c"))))
31659 (build-system emacs-build-system)
31660 (home-page "https://github.com/sinic/ednc")
31661 (synopsis "Emacs Desktop Notification Center")
31662 (description
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+))))
31668
31669 (define-public emacs-helm-clojuredocs
31670 (let ((commit "5a7f0f2cb401be0b09e73262a1c18265ab9a3cea"))
31671 (package
31672 (name "emacs-helm-clojuredocs")
31673 (version (git-version "0.3" "1" commit))
31674 (home-page "https://github.com/mbuczko/helm-clojuredocs")
31675 (source (origin
31676 (method git-fetch)
31677 (uri (git-reference
31678 (url home-page)
31679 (commit commit)))
31680 (file-name (git-file-name name version))
31681 (sha256
31682 (base32
31683 "015b8zxh91ljhqvn6z43gy08di54xcw9skw0i7frj3d7gk984qhl"))))
31684 (build-system emacs-build-system)
31685 (propagated-inputs
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.
31690
31691 Two function are exposed:
31692 @itemize
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.
31697 @end itemize\n")
31698 (license license:gpl3+))))
31699
31700 (define-public emacs-helm-selector
31701 (package
31702 (name "emacs-helm-selector")
31703 (version "0.6.1")
31704 (home-page "https://github.com/emacs-helm/helm-selector")
31705 (source
31706 (origin
31707 (method git-fetch)
31708 (uri (git-reference
31709 (url home-page)
31710 (commit version)))
31711 (file-name (git-file-name name version))
31712 (sha256
31713 (base32
31714 "01lh1df0bnas1p7xlqc4i1jd67f8lxgq0q2zsvx10z8828i76j3v"))))
31715 (build-system emacs-build-system)
31716 (propagated-inputs
31717 (list emacs-helm))
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.
31721
31722 It is especially helpful to create Helm sessions to navigate buffers of a
31723 given mode in a “do what I mean” fashion:
31724
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+)))
31730
31731 (define-public emacs-helm-wordnut
31732 (let ((commit "9681a9535a839cd5d042c302945ae595852fe7bf"))
31733 (package
31734 (name "emacs-helm-wordnut")
31735 (version (git-version "0.1" "1" commit))
31736 (home-page "https://github.com/emacs-helm/helm-wordnut")
31737 (source
31738 (origin
31739 (method git-fetch)
31740 (uri (git-reference
31741 (url home-page)
31742 (commit commit)))
31743 (file-name (git-file-name name version))
31744 (sha256
31745 (base32
31746 "0msj7nbsb363pxamxi7n2z08cp5jizkpjbwia8f5a161wjglrihs"))))
31747 (build-system emacs-build-system)
31748 (inputs
31749 (list wordnet))
31750 (propagated-inputs
31751 (list emacs-helm))
31752 (arguments
31753 `(#:phases
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
31770 Wordnet.")
31771 (license license:gpl3+))))
31772
31773 (define-public emacs-helm-xref
31774 (package
31775 (name "emacs-helm-xref")
31776 (version "1.0")
31777 (source
31778 (origin
31779 (method git-fetch)
31780 (uri (git-reference
31781 (url "https://github.com/brotzeit/helm-xref")
31782 (commit version)))
31783 (file-name (git-file-name name version))
31784 (sha256
31785 (base32 "0v0wm1x11r1h9p139c5rl0r4s5q6092bmwrsnr2140ddbq34mnvy"))))
31786 (build-system emacs-build-system)
31787 (propagated-inputs
31788 (list emacs-helm))
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+)))
31794
31795 (define-public emacs-metal-mercury-mode
31796 (let ((commit "99e2d8fb7177cae3bfa2dec2910fc28216d5f5a8")
31797 (revision "1")
31798 (version "0.0.0"))
31799 (package
31800 (name "emacs-metal-mercury-mode")
31801 (version (git-version version revision commit))
31802 (source
31803 (origin
31804 (method git-fetch)
31805 (uri (git-reference
31806 (url "https://github.com/ahungry/metal-mercury-mode")
31807 (commit commit)))
31808 (sha256
31809 (base32
31810 "0iil5k3rgifz2vqwsy12rbv5rzyvidq4sgwazsb2hzys8xynmfn5"))
31811 (file-name (git-file-name name version))))
31812 (build-system emacs-build-system)
31813 (propagated-inputs
31814 (list emacs-dash))
31815 (synopsis "Major mode for editing Mercury files")
31816 (description
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+))))
31821
31822 (define-public emacs-boxquote
31823 (package
31824 (name "emacs-boxquote")
31825 (version "2.3")
31826 (source
31827 (origin
31828 (method git-fetch)
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))
31833 (sha256
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
31841 example code.")
31842 (license license:gpl3+)))
31843
31844 (define-public emacs-buffer-env
31845 (package
31846 (name "emacs-buffer-env")
31847 (version "0.4")
31848 (source (origin
31849 (method url-fetch)
31850 (uri (string-append "https://elpa.gnu.org/packages/buffer-env-"
31851 version ".tar"))
31852 (sha256
31853 (base32
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
31862 basis.")
31863 (license license:gpl3+)))
31864
31865 (define-public emacs-buffer-move
31866 (package
31867 (name "emacs-buffer-move")
31868 (version "0.6.2")
31869 (source
31870 (origin
31871 (method git-fetch)
31872 (uri (git-reference
31873 (url "https://github.com/lukhas/buffer-move")
31874 (commit version)))
31875 (file-name (git-file-name name version))
31876 (sha256
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")
31881 (description
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
31885 window.")
31886 (license license:gpl3+)))
31887
31888 (define-public emacs-company-ebdb
31889 (package
31890 (name "emacs-company-ebdb")
31891 (version "1.1")
31892 (source
31893 (origin
31894 (method url-fetch)
31895 (uri (string-append "https://elpa.gnu.org/packages/"
31896 "company-ebdb-" version ".el"))
31897 (sha256
31898 (base32 "146qpiigz12zp1823ggxfrx090g0mxs7gz1ba7sa0iq6ibgzwwm9"))))
31899 (build-system emacs-build-system)
31900 (propagated-inputs
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
31906 by Jan Tatarik.")
31907 (license license:gpl3+)))
31908
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")
31913 (revision "0"))
31914 (package
31915 (name "emacs-mwim")
31916 (version (git-version "0.4" revision commit))
31917 (source
31918 (origin
31919 (method git-fetch)
31920 (uri (git-reference
31921 (url "https://github.com/alezost/mwim.el")
31922 (commit commit)))
31923 (file-name (git-file-name name version))
31924 (sha256
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
31931 comment.")
31932 (license license:gpl3+))))
31933
31934 (define-public emacs-delight
31935 (package
31936 (name "emacs-delight")
31937 (version "1.7")
31938 (source
31939 (origin
31940 (method url-fetch)
31941 (uri (string-append "https://elpa.gnu.org/packages/"
31942 "delight-" version ".el"))
31943 (sha256
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+)))
31951
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")
31957 (revision "0"))
31958 (package
31959 (name "emacs-unkillable-scratch")
31960 (version (git-version "1.0.0" revision commit))
31961 (source
31962 (origin
31963 (method git-fetch)
31964 (uri (git-reference
31965 (url "https://github.com/EricCrosson/unkillable-scratch")
31966 (commit commit)))
31967 (file-name (git-file-name name version))
31968 (sha256
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+))))
31976
31977 (define-public emacs-switch-buffer-functions
31978 (package
31979 (name "emacs-switch-buffer-functions")
31980 (version "0.0.1")
31981 (source
31982 (origin
31983 (method git-fetch)
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))
31988 (sha256
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)))
31999
32000 (define-public emacs-erc-scrolltoplace
32001 (package
32002 (name "emacs-erc-scrolltoplace")
32003 (version "0.1.0")
32004 (source
32005 (origin
32006 (method git-fetch)
32007 (uri (git-reference
32008 (url "https://gitlab.com/jgkamat/erc-scrolltoplace.git")
32009 (commit version)))
32010 (file-name (git-file-name name version))
32011 (sha256
32012 (base32 "11zpqwh1mlfifbgnvhc63bvnhg340jgxssm3m43hr1sxsyb52lh6"))))
32013 (build-system emacs-build-system)
32014 (propagated-inputs
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+)))
32021
32022 (define-public emacs-dmenu
32023 ;; Use the latest commit, as there are no tagged releases.
32024 (let ((commit "e8cc9b27c79d3ecc252267c082ab8e9c82eab264")
32025 (revision "0"))
32026 (package
32027 (name "emacs-dmenu")
32028 (version (git-version "0.1" revision commit))
32029 (source
32030 (origin
32031 (method git-fetch)
32032 (uri (git-reference
32033 (url "https://github.com/lujun9972/el-dmenu")
32034 (commit commit)))
32035 (file-name (git-file-name name version))
32036 (sha256
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+))))
32045
32046 (define-public emacs-no-littering
32047 (package
32048 (name "emacs-no-littering")
32049 (version "1.2.7")
32050 (source
32051 (origin
32052 (method git-fetch)
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))
32057 (sha256
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+)))
32069
32070 (define-public emacs-meson-mode
32071 (package
32072 (name "emacs-meson-mode")
32073 (version "0.3")
32074 (source
32075 (origin
32076 (method git-fetch)
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))
32081 (sha256
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")
32086 (description
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+)))
32091
32092 (define-public emacs-message-x
32093 ;; Use the latest commit, as there are no tagged releases.
32094 (let ((commit "5524de7bbfdd8749c110f48de5afb024d9f83133")
32095 (revision "0"))
32096 (package
32097 (name "emacs-message-x")
32098 (version (git-version "1.23" revision commit))
32099 (source
32100 (origin
32101 (method git-fetch)
32102 (uri (git-reference
32103 (url "https://github.com/emacsmirror/message-x")
32104 (commit commit)))
32105 (file-name (git-file-name name version))
32106 (sha256
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+))))
32118
32119 (define-public emacs-glsl-mode
32120 ;; No tag, version grabbed from source .el file.
32121 (let ((commit "b07112016436d9634cd4ef747f9af6b01366d136")
32122 (revision "0"))
32123 (package
32124 (name "emacs-glsl-mode")
32125 (version (git-version "2.4" revision commit))
32126 (source
32127 (origin
32128 (method git-fetch)
32129 (uri (git-reference
32130 (url "https://github.com/jimhourihan/glsl-mode")
32131 (commit commit)))
32132 (file-name (git-file-name name version))
32133 (sha256
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")
32138 (description
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
32142 fontifications.")
32143 (license license:gpl3+))))
32144
32145 (define-public emacs-gnus-harvest
32146 (let ((commit "feda071a87b799bd5d23cacde3ee71f0b166e75d")
32147 (revision "0"))
32148 (package
32149 (name "emacs-gnus-harvest")
32150 (version (git-version "1.0" revision commit))
32151 (source
32152 (origin
32153 (method git-fetch)
32154 (uri (git-reference
32155 (url "https://github.com/jwiegley/gnus-harvest")
32156 (commit commit)))
32157 (file-name (git-file-name name version))
32158 (sha256
32159 (base32 "08zb7vc3v3wdxkzgi902vlc5ybfvm8fxrvm5drnwfsjj9873pbcb"))))
32160 (build-system emacs-build-system)
32161 (inputs
32162 (list sqlite))
32163 (arguments
32164 `(#:phases
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"))))
32174 #t)))))
32175 (home-page "https://github.com/jwiegley/gnus-harvest")
32176 (synopsis
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+))))
32183
32184 (define-public emacs-auto-dictionary-mode
32185 (package
32186 (name "emacs-auto-dictionary-mode")
32187 (version "1.1")
32188 (source
32189 (origin
32190 (method git-fetch)
32191 (uri (git-reference
32192 (url "https://github.com/nschum/auto-dictionary-mode")
32193 (commit version)))
32194 (file-name (git-file-name name version))
32195 (sha256
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+)))
32205
32206 (define-public emacs-persist
32207 (package
32208 (name "emacs-persist")
32209 (version "0.5")
32210 (source
32211 (origin
32212 (method url-fetch)
32213 (uri (string-append "https://elpa.gnu.org/packages/"
32214 "persist-" version ".tar"))
32215 (sha256
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")
32220 (description
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
32224 variables.")
32225 (license license:gpl3+)))
32226
32227 (define-public emacs-company-emoji
32228 (package
32229 (name "emacs-company-emoji")
32230 (version "2.7.0")
32231 (source
32232 (origin
32233 (method git-fetch)
32234 (uri (git-reference
32235 (url "https://github.com/dunn/company-emoji/")
32236 (commit version)))
32237 (file-name (git-file-name name version))
32238 (sha256
32239 (base32 "1prcjdqm4djp5nr93m2axddhhdmn1s0y157px9zsk7g5yi36dn6q"))))
32240 (build-system emacs-build-system)
32241 (propagated-inputs
32242 (list emacs-company))
32243 (home-page "https://github.com/dunn/company-emoji/")
32244 (synopsis "Company completion back-end for emoji")
32245 (description
32246 "This library is a Company back-end providing auto-completion for
32247 emoji.")
32248 (license license:gpl3+)))
32249
32250 (define-public emacs-exiftool
32251 (package
32252 (name "emacs-exiftool")
32253 (version "0.3.2")
32254 (source
32255 (origin
32256 (method git-fetch)
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))
32261 (sha256
32262 (base32
32263 "0bv58is66cz21yhc0qqkp1z4nk13zfi2l7i6pjbhyi0g1n88qqyv"))))
32264 (build-system emacs-build-system)
32265 (arguments
32266 `(#:tests? #t
32267 #:test-command '("make" "-C" "tests")
32268 #:phases
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"))))))))
32276 (inputs
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+)))
32284
32285 (define-public emacs-password-generator
32286 (package
32287 (name "emacs-password-generator")
32288 (version "1.01")
32289 (home-page "https://github.com/zargener/emacs-password-genarator")
32290 (source
32291 (origin
32292 (method git-fetch)
32293 (uri (git-reference
32294 (url home-page)
32295 (commit "904cdb591a04305ba882ce19e1d117f5fa60f7d3")))
32296 (file-name (git-file-name name version))
32297 (sha256
32298 (base32
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)))
32306
32307 (define-public emacs-csv
32308 (package
32309 (name "emacs-csv")
32310 (version "2.1")
32311 (home-page "https://gitlab.com/u11/csv.el")
32312 (source
32313 (origin
32314 (method git-fetch)
32315 (uri (git-reference
32316 (url home-page)
32317 (commit (string-append "V" version))))
32318 (file-name (git-file-name name version))
32319 (sha256
32320 (base32
32321 "1vmazjrfcsa9aa9aw8bq5sazdhqvhxyj837dyw5lmh8gk7z0xdaa"))))
32322 (build-system emacs-build-system)
32323 (synopsis "Elisp functions for reading and parsing CSV files")
32324 (description
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+)))
32330
32331 (define-public emacs-org-journal
32332 (package
32333 (name "emacs-org-journal")
32334 (version "2.1.2")
32335 (source
32336 (origin
32337 (method git-fetch)
32338 (uri (git-reference
32339 (url "https://github.com/bastibe/org-journal")
32340 (commit version)))
32341 (file-name (git-file-name name version))
32342 (sha256
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")
32347 (description
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)))
32356
32357 (define-public emacs-org-static-blog
32358 (package
32359 (name "emacs-org-static-blog")
32360 (version "1.6.0")
32361 (source
32362 (origin
32363 (method git-fetch)
32364 (uri (git-reference
32365 (url "https://github.com/bastibe/org-static-blog")
32366 (commit version)))
32367 (file-name (git-file-name name version))
32368 (sha256
32369 (base32 "0p3bhnp91x65xr5d40kdmyj7vgyq62bvq3b1gfwv7881sh8p6hr9"))))
32370 (build-system emacs-build-system)
32371 (home-page "https://github.com/bastibe/org-static-blog")
32372 (synopsis
32373 "Simple Org mode based static blog generator")
32374 (description
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)))
32380
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"))
32386 (package
32387 (name "emacs-ddskk")
32388 (version version)
32389 (source
32390 (origin
32391 (method git-fetch)
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))
32396 (sha256
32397 (base32 "0xm53rybxki2784gyjkafg6956viyhhcq51kbmnrwc6aw3yzh7aw"))))
32398 (build-system gnu-build-system)
32399 (arguments
32400 `(#:modules ((guix build gnu-build-system)
32401 (guix build utils)
32402 (guix build emacs-utils))
32403 #:imported-modules (,@%gnu-build-system-modules
32404 (guix build emacs-utils))
32405 #:test-target "test"
32406 #:phases
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))
32414 ("SKK_PREFIX" "")
32415 ("SKK_INFODIR" '(expand-file-name "info" PREFIX)))
32416 (for-each make-file-writable (find-files "./doc"))
32417 #t))
32418 (add-after 'unpack 'fix-test
32419 (lambda _
32420 (substitute* "Makefile"
32421 (("/bin/rm") (which "rm"))))))))
32422 (native-inputs
32423 (list emacs-minimal ruby))
32424 (home-page "https://github.com/skk-dev/ddskk")
32425 (synopsis "Simple Kana to Kanji conversion program")
32426 (description
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+))))
32430
32431 (define-public emacs-ddskk-nicola
32432 (package
32433 (inherit emacs-ddskk)
32434 (name "emacs-ddskk-nicola")
32435 (propagated-inputs
32436 (list emacs-ddskk))
32437 (arguments
32438 `(#:make-flags
32439 (let ((out (assoc-ref %outputs "out")))
32440 (append
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)
32445 ((#:phases phases)
32446 `(modify-phases ,phases
32447 (add-after 'unpack 'chdir
32448 (lambda _
32449 (chdir "nicola")
32450 #t))
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" ""))
32456 #t)))))))
32457 (synopsis "Nicola layout for Daredevil SKK")
32458 (description
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.")))
32462
32463 (define-public emacs-tamil99
32464 (package
32465 (name "emacs-tamil99")
32466 (version "0.1.2")
32467 (source (origin
32468 (method git-fetch)
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))
32473 (sha256
32474 (base32
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+)))
32484
32485 (define-public emacs-objed
32486 (package
32487 (name "emacs-objed")
32488 (version "0.8.3")
32489 (source
32490 (origin
32491 (method url-fetch)
32492 (uri (string-append
32493 "https://elpa.gnu.org/packages/objed-" version ".tar"))
32494 (sha256
32495 (base32
32496 "1s38d6bvggdk5p45ww1jb4gxifzgjwgw1m6ar920nlg0j4fgbcvr"))))
32497 (build-system emacs-build-system)
32498 (home-page "https://github.com/clemera/objed")
32499 (synopsis "Navigate and edit text objects")
32500 (description
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
32504 conventions.")
32505 (license license:gpl3+)))
32506
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"))
32511 (package
32512 (name "emacs-haskell-snippets")
32513 (version (git-version "0.1.0" "1" commit))
32514 (source
32515 (origin
32516 (method git-fetch)
32517 (uri
32518 (git-reference
32519 (url "https://github.com/haskell/haskell-snippets")
32520 (commit commit)))
32521 (file-name (git-file-name name version))
32522 (sha256
32523 (base32 "1lwnggarmavyf164cfzbzzkq9ffahhd3bz7gw644czs49sndcawf"))))
32524 (build-system emacs-build-system)
32525 (arguments
32526 (list
32527 #:phases
32528 #~(modify-phases %standard-phases
32529 (add-after 'install 'install-snippets
32530 (lambda _
32531 (let ((snippets
32532 (string-append
32533 #$output "/share/emacs/site-lisp/snippets/haskell-mode")))
32534 (mkdir-p snippets)
32535 (copy-recursively "snippets/haskell-mode" snippets)))))))
32536 (propagated-inputs
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))))
32543
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")
32548 (revision "0"))
32549 (package
32550 (name "emacs-orca")
32551 (version (git-version "0.1.0" revision commit))
32552 (source
32553 (origin
32554 (method git-fetch)
32555 (uri (git-reference
32556 (url "https://github.com/abo-abo/orca")
32557 (commit commit)))
32558 (file-name (git-file-name name version))
32559 (sha256
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")
32565 (description
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+))))
32572
32573 (define-public emacs-org-roam
32574 (package
32575 (name "emacs-org-roam")
32576 (version "2.2.2")
32577 (source
32578 (origin
32579 (method git-fetch)
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))
32584 (sha256
32585 (base32 "09wcqdqy2gcsyd1mbcm90b70y3qj921m4ky8l3avhzpdwgyw8wy5"))))
32586 (build-system emacs-build-system)
32587 (arguments
32588 (list
32589 #:phases
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
32594 (lambda _
32595 (let ((el-files (find-files "./extensions" ".*\\.el$")))
32596 (for-each (lambda (f)
32597 (rename-file f (basename f)))
32598 el-files))))
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"))))))))
32615 (inputs
32616 (list graphviz))
32617 (native-inputs
32618 (list texinfo))
32619 (propagated-inputs
32620 (list emacs-dash
32621 emacs-emacsql-sqlite3
32622 emacs-f
32623 emacs-magit
32624 emacs-org
32625 emacs-s))
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
32632 personal wiki.")
32633 (license license:gpl3+)))
32634
32635 (define-public emacs-org-roam-bibtex
32636 (package
32637 (name "emacs-org-roam-bibtex")
32638 (version "0.6.2")
32639 (source
32640 (origin
32641 (method git-fetch)
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))
32646 (sha256
32647 (base32 "166n1q30xamms4lfqq9vp0yknq33gwlk54qaravxxwz01fdpgb25"))))
32648 (build-system emacs-build-system)
32649 (propagated-inputs
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")
32653 (description
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+)))
32659
32660 (define-public emacs-org-generate
32661 (package
32662 (name "emacs-org-generate")
32663 (version "1.0.0")
32664 (source (origin
32665 (method git-fetch)
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))
32670 (sha256
32671 (base32
32672 "0z2frp5mn3lp2xskwanw2rncrwa50x3aphy87vfxmhx4fqlqrzy8"))))
32673 (inputs
32674 (list emacs-cort emacs-with-simulated-input))
32675 (propagated-inputs
32676 (list emacs-mustache))
32677 (arguments
32678 ;; FIXME: Tests fail with "Wrong type argument: sequencep, :equal". It
32679 ;; seems to be an issue with Cort library.
32680 `(#:tests? #f
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+)))
32690
32691 (define-public emacs-uml-mode
32692 ;; Package has no release. Version is extracted from "Version:" keyword in
32693 ;; main file.
32694 (let ((commit "4c37ac1c4424b2313cd8f16ba48a98a4cc214200")
32695 (revision "1"))
32696 (package
32697 (name "emacs-uml-mode")
32698 (version (git-version "0.0.4" revision commit))
32699 (source
32700 (origin
32701 (method git-fetch)
32702 (uri (git-reference
32703 (url "https://github.com/ianxm/emacs-uml")
32704 (commit commit)))
32705 (file-name (git-file-name name version))
32706 (sha256
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+))))
32715
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"))
32721 (package
32722 (name "emacs-ukrainian-holidays")
32723 (version (git-version "1.0" revision commit))
32724 (source
32725 (origin
32726 (method git-fetch)
32727 (uri
32728 (git-reference
32729 (url "https://github.com/abo-abo/ukrainian-holidays")
32730 (commit commit)))
32731 (file-name (git-file-name name version))
32732 (sha256
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")
32737 (description
32738 "This package provides Ukrainian holidays for Emacs calendar.")
32739 (license license:gpl3+))))
32740
32741 (define-public emacs-trashed
32742 (package
32743 (name "emacs-trashed")
32744 (version "2.1.3")
32745 (source
32746 (origin
32747 (method git-fetch)
32748 (uri (git-reference
32749 (url "https://github.com/shingo256/trashed/")
32750 (commit version)))
32751 (file-name (git-file-name name version))
32752 (sha256
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
32762 files.")
32763 (license license:gpl3+)))
32764
32765 (define-public emacs-placeholder
32766 ;; No tags.
32767 (let ((commit "b80cb152ddd63db40cc581eafee9d2ac08328df8"))
32768 (package
32769 (name "emacs-placeholder")
32770 (version "0.1")
32771 (source (origin
32772 (method git-fetch)
32773 (uri (git-reference
32774 (url "https://github.com/oantolin/placeholder")
32775 (commit commit)))
32776 (file-name (git-file-name name version))
32777 (sha256
32778 (base32
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")
32783 (description
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+))))
32793
32794 (define-public emacs-plantuml-mode
32795 (package
32796 (name "emacs-plantuml-mode")
32797 (version "1.4.1")
32798 (source
32799 (origin
32800 (method git-fetch)
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))
32805 (sha256
32806 (base32 "0yp41d2dmf3sx7qnl5x0zdjcr9y71b2wwc9m0q31v22xqn938ipc"))))
32807 (arguments
32808 '(#:phases
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"))
32814 (chmod file #o644)
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
32823 `(progn (progn
32824 (goto-char (point-min))
32825 (re-search-forward "(defun plantuml-download-jar")
32826 (beginning-of-line)
32827 (kill-sexp))
32828 (basic-save-buffer)))
32829 #t))))))
32830 (inputs
32831 (list plantuml))
32832 (propagated-inputs
32833 (list emacs-dash))
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+)))
32841
32842 (define-public emacs-execline
32843 (package
32844 (name "emacs-execline")
32845 (version "1.1")
32846 (source (origin
32847 (method git-fetch)
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))
32852 (sha256
32853 (base32
32854 "02q531c9wvdwflhggflnci4a36h2bb90bq25bbhw6i2lvrd9sk55"))))
32855 (build-system emacs-build-system)
32856 (propagated-inputs
32857 (list emacs-s))
32858 (arguments
32859 `(#:tests? #t
32860 #:test-command '("emacs" "-Q" "-batch" "-L" "."
32861 "-l" "t/indent.el"
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")
32865 (description
32866 "This package provides a major mode for editing execline scripts.
32867
32868 Features:
32869 @itemize
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.
32876 @end itemize\n")
32877 (license license:gpl3+)))
32878
32879 (define-public emacs-pcmpl-args
32880 (package
32881 (name "emacs-pcmpl-args")
32882 (version "0.1.3")
32883 (source
32884 (origin
32885 (method git-fetch)
32886 (uri (git-reference
32887 (url "https://github.com/JonWaltman/pcmpl-args.el")
32888 (commit version)))
32889 (sha256
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")
32895 (description
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+)))
32900
32901 (define-public emacs-shell-command+
32902 (package
32903 (name "emacs-shell-command+")
32904 (version "2.4.1")
32905 (source (origin
32906 (method git-fetch)
32907 (uri (git-reference
32908 (url "https://git.sr.ht/~pkal/shell-command-plus")
32909 (commit version)))
32910 (file-name (git-file-name name version))
32911 (sha256
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}")
32916 (description
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+)))
32922
32923 (define-public emacs-shell-pop
32924 (let ((commit "4b4394037940a890a313d715d203d9ead2d156a6")
32925 (revision "0"))
32926 (package
32927 (name "emacs-shell-pop")
32928 (version (git-version "0.64" revision commit))
32929 (source
32930 (origin
32931 (method git-fetch)
32932 (uri (git-reference
32933 (url "https://github.com/kyagi/shell-pop-el")
32934 (commit commit)))
32935 (file-name (git-file-name name version))
32936 (sha256
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")
32941 (description
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+))))
32947
32948 (define-public emacs-tshell
32949 ;; XXX: Upstream has no tagged release. Version is extracted from keyword
32950 ;; in main file.
32951 (let ((commit "47ef3a6c537b06eb422d9a124e1c44062223e323")
32952 (revision "0"))
32953 (package
32954 (name "emacs-tshell")
32955 (version (git-version "0.1.0" revision commit))
32956 (source
32957 (origin
32958 (method git-fetch)
32959 (uri (git-reference
32960 (url "https://github.com/TatriX/tshell")
32961 (commit commit)))
32962 (file-name (git-file-name name version))
32963 (sha256
32964 (base32 "0yv38bqdp6b614lbj4v408vv5mlic3vs1v7266xrfxm1cm903apj"))))
32965 (build-system emacs-build-system)
32966 (home-page "https://github.com/TatriX/tshell")
32967 (synopsis "Experimental buffer-oriented Emacs shell")
32968 (description
32969 "Tshell is an experimental buffer-oriented shell. It supports shell
32970 and Emacs lisp commands.")
32971 (license license:gpl3+))))
32972
32973 (define-public emacs-extmap
32974 (package
32975 (name "emacs-extmap")
32976 (version "1.2.1")
32977 (source
32978 (origin
32979 (method git-fetch)
32980 (uri (git-reference
32981 (url "https://github.com/doublep/extmap")
32982 (commit version)))
32983 (file-name (git-file-name name version))
32984 (sha256
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+)))
32993
32994 (define-public emacs-csound-mode
32995 ;; XXX: Upstream did not tag last release. Using the commit matching
32996 ;; version bump.
32997 (let ((commit "44c49e5a9262ede4b4477bafb13b42b1ba047b9c"))
32998 (package
32999 (name "emacs-csound-mode")
33000 (version "0.2.3")
33001 (source
33002 (origin
33003 (method git-fetch)
33004 (uri (git-reference
33005 (url "https://github.com/hlolli/csound-mode")
33006 (commit commit)))
33007 (file-name (git-file-name name version))
33008 (sha256
33009 (base32
33010 "0kfhca1n0iv1400jf4ggjbarg7ry8ccd5bs7cf2brjdiqp74cvwb"))))
33011 (build-system emacs-build-system)
33012 (arguments
33013 (list
33014 #:phases
33015 #~(modify-phases %standard-phases
33016 (add-after 'unpack 'disable-breaking-compilation
33017 (lambda _
33018 (let ((file "csound-font-lock.el"))
33019 (make-file-writable file)
33020 (emacs-batch-disable-compilation file)))))))
33021 (propagated-inputs
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+))))
33029
33030 (define-public emacs-multi
33031 (package
33032 (name "emacs-multi")
33033 (version "2.0.1")
33034 (source
33035 (origin
33036 (method git-fetch)
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))
33041 (sha256
33042 (base32
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)))
33053
33054 (define-public emacs-highlight
33055 (let ((commit "24366dfd5062a6902a13a03d724fc099db3121b8")
33056 (revision "2"))
33057 (package
33058 (name "emacs-highlight")
33059 (version (git-version "0" revision commit))
33060 (source
33061 (origin
33062 (method git-fetch)
33063 (uri (git-reference
33064 (url "https://github.com/emacsmirror/highlight/")
33065 (commit commit)))
33066 (file-name (git-file-name name commit))
33067 (sha256
33068 (base32
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+))))
33078
33079 (define-public emacs-org-webring
33080 (package
33081 (name "emacs-org-webring")
33082 (version "2.0.0")
33083 (source
33084 (origin
33085 (method git-fetch)
33086 (uri (git-reference
33087 (url "https://git.sr.ht/~brettgilio/org-webring")
33088 (commit version)))
33089 (file-name (git-file-name name version))
33090 (sha256
33091 (base32
33092 "1si0jah7n2gvlvghjy5dpannqpkxni5rczfp1x2a4z6ydalr3bn5"))))
33093 (build-system emacs-build-system)
33094 (arguments
33095 `(#:phases
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"))
33100 (assets
33101 (string-append out "/share/emacs/org-webring-assets")))
33102 (mkdir-p assets)
33103 (copy-recursively "assets" assets)
33104 #t))))))
33105 (propagated-inputs
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+)))
33116
33117 (define-public emacs-orglink
33118 (package
33119 (name "emacs-orglink")
33120 (version "1.2.0")
33121 (source
33122 (origin
33123 (method git-fetch)
33124 (uri (git-reference
33125 (url "https://github.com/tarsius/orglink")
33126 (commit version)))
33127 (file-name (git-file-name name version))
33128 (sha256
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+)))
33136
33137 (define-public emacs-scpaste
33138 (let ((commit "cd4fa0aafecd839736e0b6cba68b4fc4d7045472")
33139 (revision "0"))
33140 (package
33141 (name "emacs-scpaste")
33142 (version "0.6.5")
33143 (source
33144 (origin
33145 (method git-fetch)
33146 (uri (git-reference
33147 (url "https://git.sr.ht/~technomancy/scpaste")
33148 (commit commit)))
33149 (file-name (git-file-name name commit))
33150 (sha256
33151 (base32
33152 "1nvwbwl26z03963g9c82b3ggm39r95z1vp7c9qsa9mjm46dyq27w"))))
33153 (build-system emacs-build-system)
33154 (propagated-inputs
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+))))
33164
33165 (define-public emacs-company-reftex
33166 (package
33167 (name "emacs-company-reftex")
33168 (version "0.1.0")
33169 (source
33170 (origin
33171 (method git-fetch)
33172 (uri (git-reference
33173 (url "https://github.com/TheBB/company-reftex")
33174 (commit "275ef708f08d3bf0eb30632148e5c6184eeaacdb")))
33175 (file-name (git-file-name name version))
33176 (sha256
33177 (base32
33178 "118cgw5lsffqdqz95mnkw36mmnsbg9m52r2np4m7v14mjjwr9fby"))))
33179 (build-system emacs-build-system)
33180 (propagated-inputs
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+)))
33188
33189 (define-public emacs-company-org-block
33190 (let ((commit "115af0a3625f4669358eca568466d468cacc78bd")
33191 (revision "1"))
33192 (package
33193 (name "emacs-company-org-block")
33194 (version (git-version "0.3" revision commit))
33195 (source (origin
33196 (method git-fetch)
33197 (uri (git-reference
33198 (url "https://github.com/xenodium/company-org-block")
33199 (commit commit)))
33200 (file-name (git-file-name name version))
33201 (sha256
33202 (base32
33203 "13kdwi4d1pvba6wv9yn1s0dl4cnq61zwf3j647d1s5ybqlrw5f4r"))))
33204 (build-system emacs-build-system)
33205 (propagated-inputs
33206 (list emacs-company))
33207 (home-page "https://github.com/xenodium/company-org-block")
33208 (synopsis "Emacs @code{company-complete} for Org blocks")
33209 (description
33210 "Insert Emacs Org blocks with completion via @code{company} mode.")
33211 (license license:gpl3+))))
33212
33213 (define-public emacs-html-to-hiccup
33214 ;; Package has no release. Version is extracted from "Version:" keyword in
33215 ;; main file.
33216 (let ((commit "50a52e2b0d13d865187acdf775b8203d5003f2f1")
33217 (revision "0"))
33218 (package
33219 (name "emacs-html-to-hiccup")
33220 (version (git-version "1" revision commit))
33221 (source
33222 (origin
33223 (method git-fetch)
33224 (uri (git-reference
33225 (url "https://github.com/plexus/html-to-hiccup")
33226 (commit commit)))
33227 (file-name (git-file-name name version))
33228 (sha256
33229 (base32 "1qi092mw2n08v6yr0j6hlpx0pnlcnhxjqbsrlw9pn4yin6zk91yp"))))
33230 (build-system emacs-build-system)
33231 (propagated-inputs
33232 (list emacs-dash emacs-s))
33233 (home-page "https://github.com/plexus/html-to-hiccup")
33234 (synopsis "Turn HTML into Hiccup syntax")
33235 (description
33236 "This is an Emacs package that turns HTML into Hiccup syntax
33237 which is a popular notation to use when doing Clojure/ClojureScript
33238 web development.")
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+)))))
33243
33244 (define-public emacs-iter2
33245 (package
33246 (name "emacs-iter2")
33247 (version "1.4")
33248 (source
33249 (origin
33250 (method git-fetch)
33251 (uri (git-reference
33252 (url "https://github.com/doublep/iter2")
33253 (commit version)))
33254 (file-name (git-file-name name version))
33255 (sha256
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+)))
33267
33268 (define-public emacs-bind-map
33269 (let ((commit "510a24138d8de3b8df0783f1ac493a551fc9bd74")
33270 (revision "0"))
33271 (package
33272 (name "emacs-bind-map")
33273 (version (git-version "1.1.2" revision commit))
33274 (source
33275 (origin
33276 (method git-fetch)
33277 (uri (git-reference
33278 (url "https://github.com/justbur/emacs-bind-map")
33279 (commit commit)))
33280 (file-name (git-file-name name version))
33281 (sha256
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")
33286 (description
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+))))
33293
33294 (define-public emacs-spaceleader
33295 (let ((commit "5d88d120494623d6777d464ec40ff4bb7d6b1d57")
33296 (revision "1"))
33297 (package
33298 (name "emacs-spaceleader")
33299 (version (git-version "0.0.3" revision commit))
33300 (source
33301 (origin
33302 (method git-fetch)
33303 (uri (git-reference
33304 (url "https://github.com/mohkale/spaceleader")
33305 (commit commit)))
33306 (file-name (git-file-name name version))
33307 (sha256
33308 (base32 "1prnjf7zs49z5a8qwhn8d0qnp60b3l0xhjkqg6v237acvk2axixr"))))
33309 (build-system emacs-build-system)
33310 (propagated-inputs
33311 (list emacs-dash
33312 emacs-general
33313 emacs-which-key
33314 emacs-use-package
33315 emacs-bind-map))
33316 (home-page "https://github.com/mohkale/spaceleader")
33317 (synopsis "Emacs leader key implementation from Spacemacs")
33318 (description
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+))))
33323
33324 (define-public emacs-promise
33325 (package
33326 (name "emacs-promise")
33327 (version "1.1")
33328 (source
33329 (origin
33330 (method git-fetch)
33331 (uri (git-reference
33332 (url "https://github.com/chuntaro/emacs-promise")
33333 (commit version)))
33334 (file-name (git-file-name name version))
33335 (sha256
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+.
33341
33342 This implementation ports the following Promises/A+ features
33343 faithfully. See @url{https://github.com/then/promise}.
33344
33345 @itemize
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\".
33352 @end itemize\n")
33353 (license license:gpl3+)))
33354
33355 (define-public emacs-async-await
33356 (package
33357 (name "emacs-async-await")
33358 (version "1.1")
33359 (source
33360 (origin
33361 (method git-fetch)
33362 (uri (git-reference
33363 (url "https://github.com/chuntaro/emacs-async-await")
33364 (commit version)))
33365 (file-name (git-file-name name version))
33366 (sha256
33367 (base32 "0aav9qdswnw7ynqlzn0sm34as5fj2d85syxgg8zjabzp6646ay29"))))
33368 (build-system emacs-build-system)
33369 (propagated-inputs
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+)))
33376
33377 (define-public emacs-rocket-chat
33378 ;; No release.
33379 (let ((commit "96fe27a8678de5ae4061f635108a7192eee13f98"))
33380 (package
33381 (name "emacs-rocket-chat")
33382 (version (git-version "0.0.0" "1" commit))
33383 (source
33384 (origin
33385 (method git-fetch)
33386 (uri (git-reference
33387 (url "https://github.com/4hiziri/rocket-chat")
33388 (commit commit)))
33389 (file-name (git-file-name name version))
33390 (sha256
33391 (base32 "02a4j0yy7330kfr3rd3k2agdj01ii6989nki598anbamq6xvj5ql"))))
33392 (build-system emacs-build-system)
33393 (propagated-inputs
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
33398 service.")
33399 (license license:expat))))
33400
33401 (define-public emacs-monokai-theme
33402 (package
33403 (name "emacs-monokai-theme")
33404 (version "3.5.3")
33405 (source
33406 (origin
33407 (method git-fetch)
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))
33412 (sha256
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")
33417 (description
33418 "Monokai theme is a port of the popular TextMate Monokai theme for
33419 Emacs.")
33420 (license license:gpl3+)))
33421
33422 (define-public emacs-nord-theme
33423 (package
33424 (name "emacs-nord-theme")
33425 (version "0.5.0")
33426 (source
33427 (origin
33428 (method git-fetch)
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))
33433 (sha256
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")
33438 (description
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)))
33443
33444 (define-public emacs-janet-mode
33445 (let ((commit "2f5bcabcb6953e1ed1926ba6a2328c453e8b4ac7"))
33446 (package
33447 (name "emacs-janet-mode")
33448 (version (git-version "0.1.0" "1" commit))
33449 (source
33450 (origin
33451 (method git-fetch)
33452 (uri (git-reference
33453 (url "https://github.com/ALSchwalm/janet-mode")
33454 (commit commit)))
33455 (file-name (git-file-name name version))
33456 (sha256
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")
33461 (description
33462 "This package provides an Emacs major mode for editing Janet files.")
33463 (license license:gpl3))))
33464
33465 (define-public emacs-inf-janet
33466 (let ((commit "df46651d3aad32593b2195c80ca91fb64d571fb7"))
33467 (package
33468 (name "emacs-inf-janet")
33469 (version (git-version "0.1.0" "1" commit))
33470 (source
33471 (origin
33472 (method git-fetch)
33473 (uri (git-reference
33474 (url "https://github.com/velkyel/inf-janet")
33475 (commit commit)))
33476 (file-name (git-file-name name version))
33477 (sha256
33478 (base32 "0g0y7q62667j0p32md1h6zb2cap9fga9qgdg7138xwjqnk0328v7"))))
33479 (build-system emacs-build-system)
33480 (arguments
33481 `(#:phases
33482 (modify-phases %standard-phases
33483 (add-after 'unpack 'fix-program-name
33484 (lambda _
33485 (make-file-writable "inf-janet.el")
33486 (emacs-substitute-variables "inf-janet.el"
33487 ("inf-janet-program" "janet")))))))
33488 (propagated-inputs
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")
33492 (description
33493 "This Emacs package provides a Janet REPL to evaluate @code{janet-mode}
33494 s-expression.")
33495 (license license:expat))))
33496
33497 (define-public emacs-map
33498 (package
33499 (name "emacs-map")
33500 (version "3.3.1")
33501 (source
33502 (origin
33503 (method url-fetch)
33504 (uri (string-append "https://elpa.gnu.org/packages/map-"
33505 version ".tar"))
33506 (sha256
33507 (base32
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
33514 @code{map-}.")
33515 (license license:gpl3+)))
33516
33517 (define-public emacs-xref
33518 (package
33519 (name "emacs-xref")
33520 (version "1.6.0")
33521 (source
33522 (origin
33523 (method url-fetch)
33524 (uri (string-append "https://elpa.gnu.org/packages/xref-"
33525 version ".tar"))
33526 (sha256
33527 (base32 "0vqs2l4gypdx475yi0yic0mnsg1f9nm698gi90kh7xfcpmkfcgb4"))))
33528 (build-system emacs-build-system)
33529 (home-page "http://elpa.gnu.org/packages/xref.html")
33530 (synopsis "Cross-referencing commands")
33531 (description
33532 "This library provides a generic infrastructure for cross referencing
33533 commands, in particular @code{find-definition}.")
33534 (license license:gpl3+)))
33535
33536 (define-public emacs-burly
33537 (package
33538 (name "emacs-burly")
33539 (version "0.2")
33540 (source
33541 (origin
33542 (method git-fetch)
33543 (uri (git-reference
33544 (url "https://github.com/alphapapa/burly.el")
33545 (commit version)))
33546 (file-name (git-file-name name version))
33547 (sha256
33548 (base32 "0zaknazhi8if38rmy9irnqwagsl76pqlxnzawzgn1vlv3aawivdk"))))
33549 (build-system emacs-build-system)
33550 (propagated-inputs
33551 (list emacs-map))
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+)))
33560
33561 (define-public emacs-smart-hungry-delete
33562 (let ((commit "7c1d56a92481594e14d40b5fdf6c48657a0108a0"))
33563 (package
33564 (name "emacs-smart-hungry-delete")
33565 (version "0.1")
33566 (source
33567 (origin
33568 (method git-fetch)
33569 (uri (git-reference
33570 (url "https://github.com/hrehfeld/emacs-smart-hungry-delete")
33571 (commit commit)))
33572 (file-name (git-file-name name version))
33573 (sha256
33574 (base32
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+))))
33583
33584 (define-public emacs-seriestracker
33585 (package
33586 (name "emacs-seriestracker")
33587 (version "1.1")
33588 (source
33589 (origin
33590 (method git-fetch)
33591 (uri (git-reference
33592 (url "https://github.com/MaximeWack/seriesTracker")
33593 (commit version)))
33594 (file-name (git-file-name name version))
33595 (sha256
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")
33601 (description
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+)))
33609
33610 (define-public emacs-webpaste
33611 (package
33612 (name "emacs-webpaste")
33613 (version "3.2.2")
33614 (source
33615 (origin
33616 (method git-fetch)
33617 (uri (git-reference
33618 (url "https://github.com/etu/webpaste.el")
33619 (commit version)))
33620 (file-name (git-file-name name version))
33621 (sha256
33622 (base32 "07hj9nr7x6c9w2dnvc58cfbprgp9cqzdxflp5qlpglzdw0bi9s3c"))))
33623 (build-system emacs-build-system)
33624 (arguments
33625 `(#:tests? #t
33626 #:test-command '("make" "unit" "integration")
33627 #:phases
33628 (modify-phases %standard-phases
33629 (add-after 'unpack 'fix-tests
33630 (lambda _
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")))))))
33638 (native-inputs
33639 (list emacs-buttercup))
33640 (propagated-inputs
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+)))
33649
33650 (define-public emacs-keystore-mode
33651 (let ((release "0.0.1")
33652 (revision "0")
33653 (commit "43bd5926348298d077c7221f37902c990df3f951"))
33654 (package
33655 (name "emacs-keystore-mode")
33656 (version (git-version release revision commit))
33657 (home-page "https://github.com/peterpaul/keystore-mode")
33658 (source
33659 (origin
33660 (method git-fetch)
33661 (uri (git-reference
33662 (url home-page)
33663 (commit commit)))
33664 (file-name (git-file-name name version))
33665 (sha256
33666 (base32 "06cznkqkm04zz5lqfb514aqvsr2p13arzysixv0ss0bqpvdq7cv7"))))
33667 (build-system emacs-build-system)
33668 (arguments
33669 `(#:tests? #t
33670 #:test-command
33671 '("emacs" "--no-init-file" "--batch"
33672 "--eval=(require 'ecukes)" "--eval=(ecukes)")))
33673 (native-inputs
33674 (list emacs-ecukes emacs-espuds emacs-undercover openjdk9))
33675 (propagated-inputs
33676 (list emacs-origami-el emacs-s))
33677 (synopsis "Major mode for viewing and managing Java keystores")
33678 (description
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))))
33682
33683 (define-public emacs-ivy-avy
33684 (package
33685 (name "emacs-ivy-avy")
33686 (version "0.13.4")
33687 (source
33688 (origin
33689 (method url-fetch)
33690 (uri (string-append
33691 "https://elpa.gnu.org/packages/"
33692 "ivy-avy-" version ".tar"))
33693 (sha256
33694 (base32 "1q5caxm4rnh4jy5n88dhkdbx1afsshmfki5dl8xsqbdb3y0zq7yi"))))
33695 (build-system emacs-build-system)
33696 (propagated-inputs
33697 (list emacs-ivy emacs-avy))
33698 (home-page "https://github.com/abo-abo/swiper")
33699 (synopsis "Avy integration for Ivy")
33700 (description
33701 "This package adds a \"C-'\" binding to Ivy minibuffer that uses Avy.")
33702 (license license:gpl3+)))
33703
33704 (define-public emacs-vertico
33705 (package
33706 (name "emacs-vertico")
33707 (version "1.0")
33708 (source
33709 (origin
33710 (method git-fetch)
33711 (uri (git-reference
33712 (url "https://github.com/minad/vertico")
33713 (commit version)))
33714 (file-name (git-file-name name version))
33715 (sha256
33716 (base32 "0g2zy70gks24g7i4qj1ijx57g016svbymb8l493j81c4bhc88mjl"))))
33717 (build-system emacs-build-system)
33718 (arguments
33719 `(#:phases
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
33724 (lambda _
33725 (let ((el-files (find-files "./extensions" ".*\\.el$")))
33726 (for-each (lambda (f)
33727 (rename-file f (basename f)))
33728 el-files)))))))
33729 (native-inputs
33730 (list texinfo))
33731 (home-page "https://github.com/minad/vertico")
33732 (synopsis "Vertical interactive completion")
33733 (description
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+)))
33741
33742 (define-public emacs-wisp-mode
33743 (package
33744 (name "emacs-wisp-mode")
33745 (version "1.0.8")
33746 (source
33747 (origin
33748 (method hg-fetch)
33749 (uri (hg-reference
33750 (url "https://hg.sr.ht/~arnebab/wisp")
33751 (changeset (string-append "v" version))))
33752 (file-name (git-file-name name version))
33753 (sha256
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")
33758 (description
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+)))
33762
33763 (define-public emacs-ivy-hydra
33764 (package
33765 (name "emacs-ivy-hydra")
33766 (version "0.13.5")
33767 (source
33768 (origin
33769 (method url-fetch)
33770 (uri (string-append
33771 "https://elpa.gnu.org/packages/"
33772 "ivy-hydra-" version ".tar"))
33773 (sha256
33774 (base32 "06rln9bnq5hli5rqlm47fb68b8llpqrmzwqqv4rn7mx3854i9a5x"))))
33775 (build-system emacs-build-system)
33776 (propagated-inputs
33777 (list emacs-ivy emacs-hydra))
33778 (home-page "https://github.com/abo-abo/swiper")
33779 (synopsis "Additional key bindings for Ivy")
33780 (description
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+)))
33785
33786 (define-public emacs-cwl-mode
33787 (package
33788 (name "emacs-cwl-mode")
33789 (version "0.2.6")
33790 (source
33791 (origin
33792 (method git-fetch)
33793 (uri (git-reference
33794 (url "https://github.com/tom-tan/cwl-mode")
33795 (commit version)))
33796 (file-name (git-file-name name version))
33797 (sha256
33798 (base32
33799 "0507acyr9h4646scx316niq27vir6hl2gsgz7wdbiw0cb2drfkd1"))))
33800 (build-system emacs-build-system)
33801 (propagated-inputs
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+)))
33808
33809 (define-public emacs-dictionary
33810 (package
33811 (name "emacs-dictionary")
33812 (version "1.11")
33813 (source
33814 (origin
33815 (method git-fetch)
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))
33820 (sha256
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+)))
33829
33830 (define-public emacs-multitran
33831 (package
33832 (name "emacs-multitran")
33833 (version "0.4.16")
33834 (source
33835 (origin
33836 (method git-fetch)
33837 (uri (git-reference
33838 (url "https://github.com/zevlg/multitran.el")
33839 (commit version)))
33840 (file-name (git-file-name name version))
33841 (sha256
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+)))
33849
33850 (define-public emacs-blacken
33851 (package
33852 (name "emacs-blacken")
33853 (version "0.2.0")
33854 (source
33855 (origin
33856 (method git-fetch)
33857 (uri
33858 (git-reference
33859 (url "https://github.com/pythonic-emacs/blacken")
33860 (commit (string-append "v" version))))
33861 (file-name (git-file-name name version))
33862 (sha256
33863 (base32 "0pf9yllx0h78m925sdrg6hbv54ky2pi7cpkdsnx891qjsahvjnpy"))))
33864 (build-system emacs-build-system)
33865 (inputs
33866 (list python-black))
33867 (arguments
33868 `(#:phases
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")
33878 (description
33879 "Use the @command{python} @command{black} package to reformat
33880 @command{python} buffers.")
33881 (license license:gpl3)))
33882
33883 (define-public emacs-code-cells
33884 ;; XXX: Upstream does not tag releases. The commit below matches version
33885 ;; bump.
33886 (let ((commit "fd68a33eb43b3cbd44fed767f48e230382903592"))
33887 (package
33888 (name "emacs-code-cells")
33889 (version "0.3")
33890 (source
33891 (origin
33892 (method git-fetch)
33893 (uri (git-reference
33894 (url "https://github.com/astoff/code-cells.el")
33895 (commit commit)))
33896 (file-name (git-file-name name version))
33897 (sha256
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
33902 notebooks")
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+))))
33906
33907 (define-public emacs-kibit-helper
33908 (package
33909 (name "emacs-kibit-helper")
33910 (version "0.1.1")
33911 (source
33912 (origin
33913 (method git-fetch)
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))
33918 (sha256
33919 (base32 "0ky167xh1hrmqsldybzjhyqjizgjzs1grn5mf8sm2j9qwcvjw2zv"))))
33920 (build-system emacs-build-system)
33921 (propagated-inputs
33922 (list emacs-s))
33923 (home-page "http://www.github.com/brunchboy/kibit-helper")
33924 (synopsis "Use the Kibit Leiningen plugin from Emacs")
33925 (description
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+)))
33929
33930 (define-public emacs-mint-mode
33931 (package
33932 (name "emacs-mint-mode")
33933 (version "2.0.0")
33934 (source
33935 (origin
33936 (method git-fetch)
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))
33941 (sha256
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+)))
33948
33949 (define-public emacs-seeing-is-believing
33950 (let ((version "1.2.0") ; from .el file
33951 (commit "fbbe246c0fda87bb26227bb826eebadb418a220f")
33952 (revision "0"))
33953 (package
33954 (name "emacs-seeing-is-believing")
33955 (home-page "https://github.com/jcinnamond/seeing-is-believing")
33956 (version (git-version version revision commit))
33957 (source
33958 (origin
33959 (method git-fetch)
33960 (uri (git-reference
33961 (url home-page)
33962 (commit commit)))
33963 (file-name (git-file-name name version))
33964 (sha256
33965 (base32
33966 "1h1b48s2iirswdlvfz41jbflm4x09ksc2lycrc1awzlwd6r8hdhg"))))
33967 (build-system emacs-build-system)
33968 (synopsis
33969 "Minor mode for running the seeing-is-believing Ruby gem")
33970 (description
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+))))
33976
33977 (define-public emacs-nasm-mode
33978 (package
33979 (name "emacs-nasm-mode")
33980 (version "1.1.1")
33981 (source
33982 (origin
33983 (method git-fetch)
33984 (uri (git-reference
33985 (url "https://github.com/skeeto/nasm-mode")
33986 (commit version)))
33987 (file-name (git-file-name name version))
33988 (sha256
33989 (base32
33990 "1dyc50a1zskx9fqxl2iy2x74f3bkb2ccz908v0aj13rqfqqnns9j"))))
33991 (build-system emacs-build-system)
33992 (home-page "https://github.com/skeeto/nasm-mode")
33993 (synopsis "NASM x86 assembly major mode")
33994 (description
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)))
33999
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"))
34004 (package
34005 (name "emacs-validate-html")
34006 (version "1.3")
34007 (source
34008 (origin
34009 (method git-fetch)
34010 (uri
34011 (git-reference
34012 (url "https://github.com/arthurgleckler/validate-html")
34013 (commit commit)))
34014 (file-name (git-file-name name version))
34015 (sha256
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")
34020 (description
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+))))
34025
34026 (define-public emacs-volatile-highlights
34027 ;; XXX: Upstream does not tag releases. Commit below matches version bump.
34028 (let ((commit "9a20091f0ce7fc0a6b3e641a6a46d5f3ac4d8392"))
34029 (package
34030 (name "emacs-volatile-highlights")
34031 (version "1.15")
34032 (source (origin
34033 (method git-fetch)
34034 (uri (git-reference
34035 (url "http://github.com/k-talo/volatile-highlights.el")
34036 (commit commit)))
34037 (file-name (git-file-name name version))
34038 (sha256
34039 (base32
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
34047 executed.")
34048 (license license:gpl3+))))
34049
34050 (define-public emacs-global-tags
34051 (let ((commit "06db25d91cc8bfb5e24e02adc04de1226c7e742d")
34052 (revision "0"))
34053 (package
34054 (name "emacs-global-tags")
34055 (version (git-version "0.7" revision commit))
34056 (home-page "https://git.launchpad.net/global-tags.el/")
34057 (source (origin
34058 (method git-fetch)
34059 (uri (git-reference
34060 (url home-page)
34061 (commit commit)))
34062 (file-name (git-file-name name version))
34063 (sha256
34064 (base32
34065 "1q30cbqq0h1gfwlcbnx9s930li7w7a0y8sx2ivbvvyyc2j5gsk4j"))))
34066 (build-system emacs-build-system)
34067 (propagated-inputs
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+))))
34074
34075 (define-public emacs-seq
34076 (package
34077 (name "emacs-seq")
34078 (version "2.23")
34079 (source
34080 (origin
34081 (method url-fetch)
34082 (uri (string-append "https://elpa.gnu.org/packages/seq-" version ".tar"))
34083 (sha256
34084 (base32 "1lbxnrzq88z8k9dyylg2636pg9vc8bzfprs1hxwp9ah0zkvsn52p"))))
34085 (build-system emacs-build-system)
34086 (home-page "https://elpa.gnu.org/packages/seq.html")
34087 (synopsis "Sequence manipulation functions")
34088 (description
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+)))
34093
34094 (define-public emacs-setup
34095 (package
34096 (name "emacs-setup")
34097 (version "1.3.2")
34098 (source
34099 (origin
34100 (method url-fetch)
34101 (uri (string-append "https://elpa.gnu.org/packages/setup-"
34102 version ".tar"))
34103 (sha256
34104 (base32 "1sr514w4mn0fbdawjb5p0fd6i6q2zi9737rbwcgakb1l9cqvb5qy"))))
34105 (build-system emacs-build-system)
34106 (home-page "https://git.sr.ht/~pkal/setup")
34107 (synopsis "Helpful configuration macro")
34108 (description
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+)))
34116
34117 (define-public emacs-tomelr
34118 (package
34119 (name "emacs-tomelr")
34120 (version "0.4.3")
34121 (source
34122 (origin
34123 (method git-fetch)
34124 (uri (git-reference
34125 (url "https://github.com/kaushalmodi/tomelr/")
34126 (commit (string-append "v" version))))
34127 (sha256
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")
34134 (description
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+)))
34138
34139 (define-public emacs-ed-mode
34140 ;; XXX: Upstream did not tag any commits yet.
34141 (let ((commit "69f4fb34eca8df6a3bfe24bd8d8075551f0264ac")
34142 (revision "0"))
34143 (package
34144 (name "emacs-ed-mode")
34145 (version (git-version "0" revision commit))
34146 (source
34147 (origin
34148 (method git-fetch)
34149 (uri
34150 (git-reference
34151 (url "https://github.com/ryanprior/ed-mode")
34152 (commit commit)))
34153 (file-name (git-file-name name version))
34154 (sha256
34155 (base32 "058siccx6znw1bcp820bll0jg300xz8w1wf97zr1fa6jwfxyhhvi"))))
34156 (build-system emacs-build-system)
34157 (home-page "https://github.com/ryanprior/ed-mode")
34158 (synopsis "Emacs ed emulation")
34159 (description
34160 "@code{ed-mode} lets you interact with Emacs buffers like you would do
34161 with the ed editor.")
34162 (license license:gpl3+))))
34163
34164 (define-public emacs-alsamixer-el
34165 (package
34166 (name "emacs-alsamixer-el")
34167 (version "0.2.1")
34168 (source
34169 (origin
34170 (method git-fetch)
34171 (uri
34172 (git-reference
34173 (url "https://github.com/remvee/alsamixer-el")
34174 (commit version)))
34175 (file-name (git-file-name name version))
34176 (sha256
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+)))
34184
34185 (define-public emacs-fennel-mode
34186 ;; XXX: Commit below refers to the un-tagged latest release.
34187 (let ((commit "b3c52964eda7c0267f6e3f0ad6c690c3a1e89da1"))
34188 (package
34189 (name "emacs-fennel-mode")
34190 (version "0.5.0")
34191 (source
34192 (origin
34193 (method git-fetch)
34194 (uri (git-reference
34195 (url "https://git.sr.ht/~technomancy/fennel-mode")
34196 (commit commit)))
34197 (file-name (git-file-name name version))
34198 (sha256
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")
34203 (description
34204 "Fennel mode provides font-lock, indentation, navigation, and REPL for
34205 Fennel code within Emacs.")
34206 (license license:gpl3+))))
34207
34208 (define-public emacs-org-modern
34209 (package
34210 (name "emacs-org-modern")
34211 (version "0.7")
34212 (source
34213 (origin
34214 (method git-fetch)
34215 (uri (git-reference
34216 (url "https://github.com/minad/org-modern")
34217 (commit version)))
34218 (sha256
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")
34224 (description
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+)))
34229
34230 (define-public emacs-pyimport
34231 (let ((commit "a6f63cf7ed93f0c0f7c207e6595813966f8852b9")
34232 (revision "0"))
34233 (package
34234 (name "emacs-pyimport")
34235 (version (git-version "1.1" revision commit))
34236 (source
34237 (origin
34238 (method git-fetch)
34239 (uri
34240 (git-reference
34241 (url "https://github.com/Wilfred/pyimport")
34242 (commit commit)))
34243 (file-name (git-file-name name version))
34244 (sha256
34245 (base32 "1q5gqhvh4zq5dy8vns694warcz48j1hdnxg16sjck4gsi9xivbvs"))))
34246 (build-system emacs-build-system)
34247 (inputs
34248 (list python-pyflakes))
34249 (propagated-inputs
34250 (list emacs-dash emacs-s emacs-shut-up))
34251 (arguments
34252 (list #:phases
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"
34259 (("\"pyflakes")
34260 (string-append "\"" pyflakes)))))))))
34261 (home-page "https://github.com/Wilfred/pyimport")
34262 (synopsis "Manage Python imports from Emacs")
34263 (description
34264 "@code{emacs-pyimport} manages python imports from Emacs via @code{python-pyflakes}.")
34265 (license license:gpl3+)))) ; License is in pyimport.el
34266
34267 (define-public emacs-straight-el
34268 (let ((commit "f21103d97d180fba0b6e2e86ebb0b6269219ef2c")
34269 (revision "1"))
34270 (package
34271 (name "emacs-straight-el")
34272 (version (git-version "0" revision commit))
34273 (source
34274 (origin
34275 (method git-fetch)
34276 (uri
34277 (git-reference
34278 (url "https://github.com/radian-software/straight.el")
34279 (commit commit)))
34280 (file-name (git-file-name name version))
34281 (sha256
34282 (base32 "1dqhb7kx4hr3cm4gj6qdk9aav05vc016y4nks2dj1sy88wia6wsv"))))
34283 (build-system emacs-build-system)
34284 (arguments
34285 (list
34286 #:tests? #t
34287 #:test-command
34288 #~(list "emacs" "-Q" "--batch"
34289 "-L" "."
34290 "--load" "ert"
34291 "--load" "tests/straight-test.el"
34292 "--eval" "(progn (require 'straight-ert-print-hack) (ert-run-tests-batch-and-exit))")
34293 #:phases
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"
34299 (("\"git\"")
34300 (string-append "\""
34301 (search-input-file inputs "/bin/git")
34302 "\"")))))
34303 (add-after 'check 'delete-tests
34304 ;; "tests" directory includes bogus ".el" files that can make
34305 ;; `patch-el-files' phase fail.
34306 (lambda _
34307 (delete-file-recursively "tests"))))))
34308 (native-inputs
34309 (list texinfo))
34310 (inputs
34311 (list git))
34312 (propagated-inputs
34313 (list emacs-magit))
34314 (home-page "https://github.com/radian-software/straight.el/")
34315 (synopsis "Purely functional package manager for the Emacs hacker")
34316 (description
34317 "@code{emacs-straight-el} is a purely functional package manager for the Emacs
34318 hacker.")
34319 (license license:expat))))
34320
34321 (define-public emacs-osm
34322 (package
34323 (name "emacs-osm")
34324 (version "0.9")
34325 (home-page "https://github.com/minad/osm")
34326 (source (origin
34327 (method git-fetch)
34328 (uri (git-reference
34329 (url home-page)
34330 (commit version)))
34331 (file-name (git-file-name name version))
34332 (sha256
34333 (base32
34334 "0iacf3mqjq8vfhd0nyzry0spishyvn92zgd55ivqxb9xfdr3lx9x"))))
34335 (build-system emacs-build-system)
34336 (arguments
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
34344 "/bin/curl")
34345 space "\"")))))
34346 (add-after 'install 'makeinfo
34347 (lambda _
34348 (invoke "emacs"
34349 "--batch"
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")
34360 (description
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+)))
34365
34366 (define-public emacs-corfu-terminal
34367 (package
34368 (name "emacs-corfu-terminal")
34369 (version "0.5")
34370 (source
34371 (origin
34372 (method git-fetch)
34373 (uri
34374 (git-reference
34375 (url "https://codeberg.org/akib/emacs-corfu-terminal")
34376 (commit (string-append "v" version))))
34377 (file-name (git-file-name name version))
34378 (sha256
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")
34384 (description
34385 "This package replaces the child frames @code{emacs-corfu} uses
34386 with popups, which also work in the terminal.")
34387 (license license:gpl3+)))
34388
34389 (define-public emacs-corfu-doc-terminal
34390 ;; Upstream does not tag releases, version taken from package header.
34391 (let ((commit "d8945c64b52d76e864b767b3048674f222daf80b")
34392 (revision "0"))
34393 (package
34394 (name "emacs-corfu-doc-terminal")
34395 (version (git-version "0.5" revision commit))
34396 (source
34397 (origin
34398 (method git-fetch)
34399 (uri
34400 (git-reference
34401 (url "https://codeberg.org/akib/emacs-corfu-doc-terminal")
34402 (commit commit)))
34403 (file-name (git-file-name name version))
34404 (sha256
34405 (base32 "0j0dd8np5x93wic22bc5i9h7bq2gj700n4fh11dzzgsj14lv2r5k"))))
34406 (build-system emacs-build-system)
34407 (propagated-inputs
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")
34411 (description
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+))))
34415
34416 (define-public emacs-popon
34417 (package
34418 (name "emacs-popon")
34419 (version "0.12")
34420 (source
34421 (origin
34422 (method git-fetch)
34423 (uri
34424 (git-reference
34425 (url "https://codeberg.org/akib/emacs-popon")
34426 (commit (string-append "v" version))))
34427 (file-name (git-file-name name version))
34428 (sha256
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")
34433 (description
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+)))
34439
34440 (define-public emacs-consult-lsp
34441 (package
34442 (name "emacs-consult-lsp")
34443 (version "1.1")
34444 (source
34445 (origin
34446 (method git-fetch)
34447 (uri (git-reference
34448 (url "https://github.com/gagbo/consult-lsp")
34449 (commit version)))
34450 (file-name (git-file-name name version))
34451 (sha256
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")
34457 (description
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)))
34462
34463 (define-public emacs-purs-mode
34464 ;; XXX: Upstream set no tag nor any Version keyword. Using 0 as the base
34465 ;; version.
34466 (let ((commit "16553383915cf453747a491715ed0427c107cc9e")
34467 (revision "1"))
34468 (package
34469 (name "emacs-purs-mode")
34470 (version (git-version "0" revision commit))
34471 (source
34472 (origin
34473 (method git-fetch)
34474 (uri
34475 (git-reference
34476 (url "https://github.com/PureFunctor/purs-mode")
34477 (commit commit)))
34478 (file-name (git-file-name name version))
34479 (sha256
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")
34484 (description
34485 "Purs mode provides a PureScript major mode for Emacs.")
34486 (license license:gpl3+))))
34487
34488 (define-public emacs-pdb-capf
34489 (let ((commit "31602ccab53aa7dcf26a1af222c7da2bcc1390ed")
34490 (revision "0"))
34491 (package
34492 (name "emacs-pdb-capf")
34493 (version (git-version "1.0" revision commit))
34494 (source
34495 (origin
34496 (method git-fetch)
34497 (uri
34498 (git-reference
34499 (url "https://github.com/muffinmad/emacs-pdb-capf")
34500 (commit commit)))
34501 (file-name (git-file-name name version))
34502 (sha256
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")
34507 (description
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+))))
34511
34512 (define-public emacs-bitbake-modes
34513 (package
34514 (name "emacs-bitbake-modes")
34515 (version "0.5.3")
34516 (source
34517 (origin
34518 (method git-fetch)
34519 (uri (git-reference
34520 (url "https://bitbucket.org/olanilsson/bitbake-modes")
34521 (commit (string-append "v" version))))
34522 (sha256
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")
34529 (description
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
34532 projects.")
34533 (license license:gpl3+)))
34534
34535 (define-public emacs-vundo
34536 (package
34537 (name "emacs-vundo")
34538 (version "2.0.0")
34539 (source (origin
34540 (method url-fetch)
34541 (uri (string-append "https://elpa.gnu.org/packages/vundo-"
34542 version ".tar"))
34543 (sha256
34544 (base32
34545 "032aqcqq2xhh12qcpp8p3qldv0r9cnqr2y11jk1m5cvgal1cbb68"))))
34546 (build-system emacs-build-system)
34547 (home-page "https://github.com/casouri/vundo")
34548 (synopsis "Visualize the undo tree")
34549 (description
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+)))
34554
34555 (define-public emacs-hare-mode
34556 ;; XXX: Upstream did not tag any commit. Using "Version:" keyword as base
34557 ;; version.
34558 (let ((commit "bb7b2faccb5939b0c8d4ffa6a6e28a0d2bc93dd6")
34559 (revision "0"))
34560 (package
34561 (name "emacs-hare-mode")
34562 (version (git-version "0.1.0" revision commit))
34563 (source (origin
34564 (method git-fetch)
34565 (uri (git-reference
34566 (url "https://git.sr.ht/~bbuccianti/hare-mode")
34567 (commit commit)))
34568 (file-name (git-file-name name version))
34569 (sha256
34570 (base32
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")
34575 (description
34576 "This package an Emacs major mode for the Hare programming language.")
34577 (license license:gpl3+))))
34578
34579 (define-public emacs-org-cliplink
34580 (let ((commit "13e0940b65d22bec34e2de4bc8cba1412a7abfbc")
34581 (revision "0"))
34582 (package
34583 (name "emacs-org-cliplink")
34584 (version (git-version "0.2" revision commit))
34585 (source
34586 (origin
34587 (method git-fetch)
34588 (uri
34589 (git-reference
34590 (url "https://github.com/rexim/org-cliplink")
34591 (commit commit)))
34592 (file-name (git-file-name name version))
34593 (sha256
34594 (base32 "1avyiw8vlv4n1r7zqvc6wjlsz7jl2pqaprzpm782gzp0c999pssl"))))
34595 (build-system emacs-build-system)
34596 (arguments
34597 (list
34598 #:tests? #t
34599 #:test-command #~(list "ert-runner")
34600 #:phases
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 "\"")))))))))
34608 (native-inputs
34609 (list emacs-el-mock emacs-ert-runner emacs-undercover))
34610 (inputs
34611 (list curl))
34612 (home-page "https://github.com/rexim/org-cliplink/")
34613 (synopsis "Insert Org mode links from the clipboard")
34614 (description
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))))
34619
34620 (define-public emacs-flymake-mypy
34621 (let ((commit "d79e158f9ed3065ab692cd0d4048aac985c4fecd")
34622 (revision "0"))
34623 (package
34624 (name "emacs-flymake-mypy")
34625 (version "0.3.0")
34626 (source (origin
34627 (method git-fetch)
34628 (uri (git-reference
34629 (url "https://github.com/com4/flymake-mypy")
34630 (commit version)))
34631 (file-name (git-file-name name version))
34632 (sha256
34633 (base32
34634 "1zaa2kljsmm13layqmb7dwd7l2x3a5ymzzmzjjhykc67kbyjvvkk"))))
34635 (build-system emacs-build-system)
34636 (home-page "https://github.com/com4/flymake-mypy")
34637 (synopsis "Flymake checker for mypy")
34638 (description
34639 "This package provides Flymake support for Python static type checking
34640 using mypy.")
34641 (license license:bsd-2))))
34642
34643 (define-public emacs-mpv
34644 ;; No release since Dec 28, 2021.
34645 (let ((commit "2e0234bc21a3dcdf12d94d3285475e7f6769d3e8")
34646 (revision "0"))
34647 (package
34648 (name "emacs-mpv")
34649 (version (git-version "0.2.0" revision commit))
34650 (source
34651 (origin
34652 (method git-fetch)
34653 (uri (git-reference
34654 (url "https://github.com/kljohann/mpv.el")
34655 (commit commit)))
34656 (file-name (git-file-name name version))
34657 (sha256
34658 (base32 "0mvzg2wqpycny2dmiyp8jm0fflvll7ay6scvsb9rxgfwimr2vbw5"))))
34659 (build-system emacs-build-system)
34660 (arguments
34661 (list
34662 #:tests? #f ;there are no tests
34663 #:phases
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"
34668 ("mpv-executable"
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")
34673 (description
34674 "This package is a potpourri of helper functions to control a MPV
34675 process via its IPC interface.")
34676 (license license:gpl3+))))
34677
34678 (define-public emacs-apel-lb
34679 ;; No release since Jun 15, 2010.
34680 (let ((version "10.8") ;tag chise-base-0_25
34681 (revision "81")
34682 (commit "82eb2325bd149dc57b43a9ce9402c6c6183e4052"))
34683 (package
34684 (name "emacs-apel-lb")
34685 (version (git-version version revision commit))
34686 (source (origin
34687 (method git-fetch)
34688 (uri (git-reference
34689 (url "https://github.com/wanderlust/apel")
34690 (commit commit)))
34691 (file-name (git-file-name name version))
34692 (sha256
34693 (base32
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")
34698 (description
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
34701 latest Emacs.")
34702 (license license:gpl2+))))
34703
34704 (define-public emacs-flim-lb
34705 ;; No release since Nov 28, 2007.
34706 (let ((version "1.14.9")
34707 (revision "133")
34708 (commit "57c6b868aa314717f40a520daed7249665e8d992"))
34709 (package
34710 (name "emacs-flim-lb")
34711 (version (git-version version revision commit))
34712 (source (origin
34713 (method git-fetch)
34714 (uri (git-reference
34715 (url "https://github.com/wanderlust/flim")
34716 (commit commit)))
34717 (file-name (git-file-name name version))
34718 (sha256
34719 (base32
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")
34724 (synopsis
34725 "Library for basic features about message representation or encoding")
34726 (description
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
34729 Emacs.")
34730 (license license:gpl2+))))
34731
34732 (define-public emacs-semi-epg
34733 ;; No release since Dec 24, 2003.
34734 (let ((version "1.14.6")
34735 (revision "241")
34736 (commit "ac3e726ca94ed245c25881ec8d7177d0d834ea6a"))
34737 (package
34738 (name "emacs-semi-epg")
34739 (version (git-version version revision commit))
34740 (source (origin
34741 (method git-fetch)
34742 (uri (git-reference
34743 (url "https://github.com/wanderlust/semi")
34744 (commit commit)))
34745 (file-name (git-file-name name version))
34746 (sha256
34747 (base32
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")
34753 (description
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+))))
34758
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
34763 ;; package.
34764 (let ((version "2.15.9")
34765 (revision "779")
34766 (commit "f5cb2f0cf5e2c893acf2e669fd549836828dfdfc"))
34767 (package
34768 (name "emacs-wanderlust")
34769 (version (git-version version revision commit))
34770 (source (origin
34771 (method git-fetch)
34772 (uri (git-reference
34773 (url "https://github.com/wanderlust/wanderlust")
34774 (commit commit)))
34775 (file-name (git-file-name name version))
34776 (modules '((guix build utils)))
34777 (snippet
34778 '(begin (substitute* "WL-CFG"
34779 ((".*WL_PREFIX.*")
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"))))
34785 (sha256
34786 (base32
34787 "1ijs57wv1vrh33vn311hgkp42vlmjyi998nc4qdrqi7yy9j8hl1h"))))
34788 (build-system emacs-build-system)
34789 (arguments
34790 (list #:phases
34791 #~(modify-phases %standard-phases
34792 (add-after 'expand-load-path 'chdir-elmo
34793 (lambda _
34794 (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
34798 (lambda _
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
34803 (lambda _
34804 (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
34808 (lambda _
34809 (chdir "..")))
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")
34830 (description
34831 "Wanderlust is an mail/news management system on Emacsen. It supports
34832 IMAP4rev1(RFC2060), NNTP, POP and local message files.
34833
34834 The main features of Wanderlust:
34835
34836 @itemize
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.
34856 @end itemize\n")
34857 (license license:gpl2+))))
34858
34859 (define-public emacs-waveform
34860 ;; XXX: Upstream provides no Version keyword. Using 0 as base version.
34861 (let ((commit "ee52c6a72b3e9890743e3a6e2fc1f3195f5687b2")
34862 (revision "0"))
34863 (package
34864 (name "emacs-waveform")
34865 (version (git-version "0" revision commit))
34866 (source
34867 (origin
34868 (method git-fetch)
34869 (uri (git-reference
34870 (url "https://github.com/sachac/waveform-el")
34871 (commit commit)))
34872 (file-name (git-file-name name version))
34873 (sha256
34874 (base32 "082ls7khd22fjwnk7h1zxrmqqcmxqh2wx2vljlxhjh9bcp1y2pyr"))))
34875 (build-system emacs-build-system)
34876 (arguments
34877 (list
34878 #:tests? #f ;there are no tests
34879 #:phases
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")
34890 (description
34891 "This package displays a waveform of a sound file. You can then play or
34892 navigate through it.")
34893 (license license:gpl3+))))
34894
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"))
34900 (package
34901 (name "emacs-project-x")
34902 (version (git-version "0.1.6" revision commit))
34903 (source
34904 (origin
34905 (method git-fetch)
34906 (uri
34907 (git-reference
34908 (url "https://github.com/karthink/project-x")
34909 (commit commit)))
34910 (file-name (git-file-name name version))
34911 (sha256
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")
34916 (description
34917 "Project-X provides convenience features for Emacs' Project library.
34918 In particular, it saves and restores project files and window configurations
34919 across sessions.")
34920 (license license:gpl3+))))
34921
34922 (define-public emacs-vertico-posframe
34923 (package
34924 (name "emacs-vertico-posframe")
34925 (version "0.6.0")
34926 (source (origin
34927 (method url-fetch)
34928 (uri (string-append
34929 "https://elpa.gnu.org/packages/vertico-posframe-" version
34930 ".tar"))
34931 (sha256
34932 (base32
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")
34938 (description
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+)))
34945
34946 ;;;
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.
34950 ;;;