gnu: Add emacs-piem.
[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 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-2022 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, 2021 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 ;;;
121 ;;; This file is part of GNU Guix.
122 ;;;
123 ;;; GNU Guix is free software; you can redistribute it and/or modify it
124 ;;; under the terms of the GNU General Public License as published by
125 ;;; the Free Software Foundation; either version 3 of the License, or (at
126 ;;; your option) any later version.
127 ;;;
128 ;;; GNU Guix is distributed in the hope that it will be useful, but
129 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
130 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
131 ;;; GNU General Public License for more details.
132 ;;;
133 ;;; You should have received a copy of the GNU General Public License
134 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
135
136 (define-module (gnu packages emacs-xyz)
137 #:use-module ((guix licenses) #:prefix license:)
138 #:use-module (guix packages)
139 #:use-module (guix cvs-download)
140 #:use-module (guix download)
141 #:use-module (guix bzr-download)
142 #:use-module (guix gexp)
143 #:use-module (guix i18n)
144 #:use-module (guix git-download)
145 #:use-module (guix hg-download)
146 #:use-module (guix build-system gnu)
147 #:use-module (guix build-system cmake)
148 #:use-module (guix build-system copy)
149 #:use-module (guix build-system emacs)
150 #:use-module (guix build-system glib-or-gtk)
151 #:use-module (guix build-system perl)
152 #:use-module (guix build-system trivial)
153 #:use-module (gnu packages)
154 #:use-module (gnu packages admin)
155 #:use-module (gnu packages aspell)
156 #:use-module (gnu packages audio)
157 #:use-module (gnu packages bash)
158 #:use-module (gnu packages chez)
159 #:use-module (gnu packages cmake)
160 #:use-module (gnu packages code)
161 #:use-module (gnu packages cpp)
162 #:use-module (gnu packages curl)
163 #:use-module (gnu packages databases)
164 #:use-module (gnu packages dictionaries)
165 #:use-module (gnu packages djvu)
166 #:use-module (gnu packages ebook)
167 #:use-module (gnu packages emacs)
168 #:use-module (gnu packages fonts)
169 #:use-module (gnu packages freedesktop)
170 #:use-module (gnu packages games)
171 #:use-module (gnu packages gawk)
172 #:use-module (gnu packages golang)
173 #:use-module (gnu packages guile)
174 #:use-module (gnu packages gtk)
175 #:use-module (gnu packages gnome)
176 #:use-module (gnu packages graphviz)
177 #:use-module (gnu packages haskell-apps)
178 #:use-module (gnu packages ibus)
179 #:use-module (gnu packages java)
180 #:use-module (gnu packages ncurses)
181 #:use-module (gnu packages networking)
182 #:use-module (gnu packages python)
183 #:use-module (gnu packages python-xyz)
184 #:use-module (gnu packages telephony)
185 #:use-module (gnu packages terminals)
186 #:use-module (gnu packages tex)
187 #:use-module (gnu packages texinfo)
188 #:use-module (gnu packages tcl)
189 #:use-module (gnu packages tls)
190 #:use-module (gnu packages pkg-config)
191 #:use-module (gnu packages xorg)
192 #:use-module (gnu packages lesstif)
193 #:use-module (gnu packages llvm)
194 #:use-module (gnu packages image)
195 #:use-module (gnu packages linux)
196 #:use-module (gnu packages libevent)
197 #:use-module (gnu packages lisp-xyz)
198 #:use-module (gnu packages lua)
199 #:use-module (gnu packages music)
200 #:use-module (gnu packages version-control)
201 #:use-module (gnu packages imagemagick)
202 #:use-module (gnu packages w3m)
203 #:use-module (gnu packages web)
204 #:use-module (gnu packages wget)
205 #:use-module (gnu packages autotools)
206 #:use-module (gnu packages base)
207 #:use-module (gnu packages compression)
208 #:use-module (gnu packages node)
209 #:use-module (gnu packages xml)
210 #:use-module (gnu packages glib)
211 #:use-module (gnu packages acl)
212 #:use-module (gnu packages mail)
213 #:use-module (gnu packages messaging)
214 #:use-module (gnu packages package-management)
215 #:use-module (gnu packages perl)
216 #:use-module (gnu packages pdf)
217 #:use-module (gnu packages racket)
218 #:use-module (gnu packages ruby)
219 #:use-module (gnu packages rust-apps)
220 #:use-module (gnu packages scheme)
221 #:use-module (gnu packages serialization)
222 #:use-module (gnu packages speech)
223 #:use-module (gnu packages xiph)
224 #:use-module (gnu packages mp3)
225 #:use-module (gnu packages gettext)
226 #:use-module (gnu packages fribidi)
227 #:use-module (gnu packages gd)
228 #:use-module (gnu packages fontutils)
229 #:use-module (gnu packages password-utils)
230 #:use-module (gnu packages pulseaudio)
231 #:use-module (gnu packages sphinx)
232 #:use-module (gnu packages screen)
233 #:use-module (gnu packages xdisorg)
234 #:use-module (gnu packages shells)
235 #:use-module (gnu packages shellutils)
236 #:use-module (gnu packages sqlite)
237 #:use-module (gnu packages ghostscript)
238 #:use-module (gnu packages gnupg)
239 #:use-module (gnu packages video)
240 #:use-module (gnu packages haskell-xyz)
241 #:use-module (gnu packages wordnet)
242 #:use-module (gnu packages photo)
243 #:use-module (gnu packages uml)
244 #:use-module (gnu packages finance)
245 #:use-module (gnu packages ocaml)
246 #:use-module (gnu packages erlang)
247 #:use-module (gnu packages statistics)
248 #:use-module (guix utils)
249 #:use-module (srfi srfi-1)
250 #:use-module (ice-9 match))
251
252 ;;;
253 ;;; Emacs hacking.
254 ;;;
255
256 (define-public emacs-geiser
257 (package
258 (name "emacs-geiser")
259 (version "0.26.1")
260 (source
261 (origin
262 (method git-fetch)
263 (uri (git-reference
264 (url "https://gitlab.com/emacs-geiser/geiser")
265 (commit version)))
266 (file-name (git-file-name name version))
267 (sha256
268 (base32 "1k5ligm1aba9b6dqg0yi86a2y2fhnxi7jsjgxj9jw7icgfa11djn"))))
269 (build-system emacs-build-system)
270 (arguments
271 '(#:phases
272 (modify-phases %standard-phases
273 ;; Move the source files to the top level, which is included in
274 ;; the EMACSLOADPATH.
275 (add-after 'unpack 'move-source-files
276 (lambda _
277 (let ((el-files (find-files "./elisp" ".*\\.el$")))
278 (for-each (lambda (f)
279 (rename-file f (basename f)))
280 el-files))))
281 (add-before 'install 'make-info
282 (lambda _
283 (with-directory-excursion "doc"
284 (invoke "makeinfo" "--no-split"
285 "-o" "geiser.info" "geiser.texi")))))))
286 (native-inputs
287 (list texinfo))
288 (home-page "https://www.nongnu.org/geiser/")
289 (synopsis "Collection of Emacs modes for Scheme hacking")
290 (description
291 "Geiser is a collection of Emacs major and minor modes that conspire with
292 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
293 continuously running Scheme interpreter takes the center of the stage in
294 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
295 implementation, Emacs and, ultimately, the schemer, giving them access to live
296 metadata.
297
298 This package provides just the core of Geiser. To effectively use it with your
299 favourite Scheme implementation, you also need the corresponding geiser package,
300 e.g. emacs-geiser-guile for Guile.")
301 (license license:bsd-3)))
302
303 (define-public emacs-geiser-guile
304 (package
305 (name "emacs-geiser-guile")
306 (version "0.26.1")
307 (source
308 (origin
309 (method git-fetch)
310 (uri (git-reference
311 (url "https://gitlab.com/emacs-geiser/guile")
312 (commit version)))
313 (file-name (git-file-name name version))
314 (sha256
315 (base32 "06939mv9i7zzqvq71d0ixk3y9135132f3pk9jgjdwvacl1d31h8k"))))
316 (build-system emacs-build-system)
317 (arguments
318 (list
319 #:include #~(cons "^src/" %default-include)
320 #:phases
321 #~(modify-phases %standard-phases
322 (add-after 'unpack 'patch-geiser-guile-binary
323 (lambda* (#:key inputs #:allow-other-keys)
324 (substitute* "geiser-guile.el"
325 (("\\(t \"guile\")")
326 (format #f "(t ~s)"
327 (search-input-file inputs "bin/guile"))))))
328 (add-after 'make-autoloads 'patch-autoloads
329 (lambda _
330 (substitute* (string-append (elpa-directory #$output)
331 "/geiser-guile-autoloads.el")
332 ;; Activating implementations fails when Geiser is not yet
333 ;; loaded, so let's defer that until it is.
334 (("\\(geiser-activate-implementation .*\\)" all)
335 (string-append
336 "(eval-after-load 'geiser-impl '" all ")"))))))))
337 (inputs (list guile-3.0-latest))
338 (propagated-inputs (list emacs-geiser))
339 (home-page "https://www.nongnu.org/geiser/")
340 (synopsis "Guile Scheme support for Geiser")
341 (description
342 "This package adds support for the Guile Scheme implementation to Geiser,
343 a generic Scheme interaction mode for the GNU Emacs editor.")
344 (license license:bsd-3)))
345
346 (define-public emacs-ac-geiser
347 (let ((commit "93818c936ee7e2f1ba1b315578bde363a7d43d05")
348 (revision "0"))
349 (package
350 (name "emacs-ac-geiser")
351 (version (git-version "0.1" revision commit))
352 (source
353 (origin
354 (uri (git-reference
355 (url "https://github.com/xiaohanyu/ac-geiser")
356 (commit commit)))
357 (method git-fetch)
358 (sha256
359 (base32 "00n2qa26yilaj837n1yp6lbqa4gf30nkkbvanl7m9ih7k48ssqmw"))
360 (file-name (git-file-name name version))))
361 (build-system emacs-build-system)
362 (propagated-inputs
363 (list emacs-geiser emacs-auto-complete))
364 (synopsis "Auto-complete backend for geiser")
365 (description
366 "This package provides an auto-complete source for Scheme projects
367 using geiser.")
368 (license license:bsd-3)
369 (home-page "https://github.com/xiaohanyu/ac-geiser"))))
370
371 (define-public emacs-geiser-gauche
372 ;; The latest 0.14 release has an unbound variable (geiser-scheme-dir).
373 (let ((commit "96fa06aaeef18cc1b3b519e83dbb7be09eeb0d07")
374 (revision "0"))
375 (package
376 (name "emacs-geiser-gauche")
377 (version (git-version "0.14" revision commit))
378 (source
379 (origin
380 (method git-fetch)
381 (uri (git-reference
382 (url "https://gitlab.com/emacs-geiser/gauche.git")
383 (commit commit)))
384 (file-name (git-file-name name version))
385 (sha256
386 (base32 "1ppracwfl1snq0ifdlyxpdlv7fbn3pbxm1hd1ihgqivii5nbya9r"))))
387 (build-system emacs-build-system)
388 (arguments
389 (list
390 #:include '(cons "^geiser-gauche\\.scm$" %default-include)
391 #:phases
392 #~(modify-phases %standard-phases
393 (add-after 'unpack 'patch-geiser-gauche-binary
394 (lambda* (#:key inputs #:allow-other-keys)
395 (emacs-substitute-sexps "geiser-gauche.el"
396 ("geiser-custom--defcustom geiser-gauche-binary"
397 (search-input-file inputs "bin/gosh")))))
398 (add-after 'make-autoloads 'patch-autoloads
399 (lambda _
400 (substitute* (string-append (elpa-directory #$output)
401 "/geiser-gauche-autoloads.el")
402 ;; Activating implementations fails when Geiser is not yet
403 ;; loaded, so let's defer that until it is.
404 (("\\(geiser-activate-implementation .*\\)" all)
405 (string-append
406 "(eval-after-load 'geiser-impl '" all ")"))
407 (("\\(geiser-implementation-extension .*\\)" all)
408 (string-append
409 "(eval-after-load 'geiser-impl '" all ")"))))))))
410 (inputs (list gauche))
411 (propagated-inputs (list emacs-geiser))
412 (home-page "https://gitlab.com/emacs-geiser/gauche")
413 (synopsis "Gauche Scheme support for Geiser")
414 (description
415 "This package adds support for the Gauche Scheme implementation to Geiser,
416 a generic Scheme interaction mode for the GNU Emacs editor.")
417 (license license:expat))))
418
419 (define-public emacs-geiser-racket
420 (package
421 (name "emacs-geiser-racket")
422 (version "1.0")
423 (source
424 (origin
425 (method git-fetch)
426 (uri (git-reference
427 (url "https://gitlab.com/emacs-geiser/racket")
428 (commit version)))
429 (file-name (git-file-name name version))
430 (sha256
431 (base32 "04gwd9qa0785zfr6m9a5443ilgvyz05l06cb1waicf83sgp8xl32"))))
432 (build-system emacs-build-system)
433 (arguments
434 (list
435 #:include #~(cons "^src/" %default-include)
436 #:phases
437 #~(modify-phases %standard-phases
438 (add-after 'unpack 'patch-geiser-racket-binary
439 (lambda* (#:key inputs #:allow-other-keys)
440 (substitute* "geiser-racket.el"
441 (("\\(t \"racket\")")
442 (format #f "(t ~s)"
443 (search-input-file inputs "bin/racket"))))))
444 (add-after 'make-autoloads 'patch-autoloads
445 (lambda _
446 (substitute* (string-append (elpa-directory #$output)
447 "/geiser-racket-autoloads.el")
448 ;; Activating implementations fails when Geiser is not yet
449 ;; loaded, so let's defer that until it is.
450 (("\\(geiser-activate-implementation .*\\)" all)
451 (string-append
452 "(eval-after-load 'geiser-impl '" all ")"))
453 (("\\(geiser-implementation-extension .*\\)" all)
454 (string-append
455 "(eval-after-load 'geiser-impl '" all ")"))))))))
456 (inputs (list racket))
457 (propagated-inputs (list emacs-geiser))
458 (home-page "https://www.nongnu.org/geiser/")
459 (synopsis "Racket support for Geiser")
460 (description
461 "This package adds support for the Racket implementation to Geiser,
462 a generic Scheme interaction mode for the GNU Emacs editor.")
463 (license license:bsd-3)))
464
465 (define-public emacs-geiser-chez
466 (package
467 (name "emacs-geiser-chez")
468 (version "0.17")
469 (source
470 (origin
471 (method git-fetch)
472 (uri (git-reference
473 (url "https://gitlab.com/emacs-geiser/chez")
474 (commit version)))
475 (file-name (git-file-name name version))
476 (sha256
477 (base32 "03fc9ahb0pmznkcnxzgpni4clj1zgky6vaqkc94nf8b8swniwkm9"))))
478 (build-system emacs-build-system)
479 (arguments
480 '(#:include (cons "^src/" %default-include)
481 #:phases
482 (modify-phases %standard-phases
483 (add-after 'make-autoloads 'patch-autoloads
484 (lambda* (#:key outputs #:allow-other-keys)
485 (substitute* (string-append
486 (elpa-directory (assoc-ref outputs "out"))
487 "/geiser-chez-autoloads.el")
488 ;; Activating implementations fails when Geiser is not yet
489 ;; loaded, so let's defer that until it is.
490 ;; See <https://gitlab.com/emacs-geiser/chez/-/issues/7>.
491 (("\\(geiser-activate-implementation .*\\)" all)
492 (string-append
493 "(eval-after-load 'geiser-impl '" all ")"))
494 (("\\(geiser-implementation-extension .*\\)" all)
495 (string-append
496 "(eval-after-load 'geiser-impl '" all ")"))))))))
497 (inputs
498 (list (chez-scheme-for-system)))
499 (propagated-inputs
500 (list emacs-geiser))
501 (home-page "https://nongnu.org/geiser/")
502 (synopsis "Support for Chez Scheme in Geiser")
503 (description
504 "This package adds support for using Chez Scheme in Emacs with Geiser.")
505 (license license:bsd-3)))
506
507 (define-public emacs-vc-hgcmd
508 (package
509 (name "emacs-vc-hgcmd")
510 (version "1.14.1")
511 (source
512 (origin
513 (method git-fetch)
514 (uri (git-reference
515 (url "https://github.com/muffinmad/emacs-vc-hgcmd")
516 (commit (string-append "v" version))))
517 (file-name (git-file-name name version))
518 (sha256
519 (base32 "1nlaicza4ds325827ks5gb7zn0nc536k2chq8jwbq34ybvxi93wj"))))
520 (build-system emacs-build-system)
521 (home-page "https://github.com/muffinmad/emacs-vc-hgcmd")
522 (synopsis "Version control (VC) backend for the Mercurial command server")
523 (description
524 "This package provides an Emacs VC backend to work with Mercurial
525 repositories through the
526 @uref{https://www.mercurial-scm.org/wiki/CommandServer,Mercurial command
527 server}. The main advantage compared to @code{vc-hg} is speed.")
528 (license license:gpl3+)))
529
530 (define-public emacs-telephone-line
531 (let ((commit "6f3455a365912e8f0c45a2240ea79507dee45ade")
532 (revision "0"))
533 (package
534 (name "emacs-telephone-line")
535 (version (git-version "0.5" revision commit))
536 (source
537 (origin
538 (method git-fetch)
539 (uri
540 (git-reference
541 (url "https://github.com/dbordak/telephone-line")
542 (commit commit)))
543 (file-name (git-file-name name version))
544 (sha256
545 (base32 "1hnd6wnc52sc0ckriqnhaz64pyjk027y0dpcmh2zhpd27i8d4hmq"))))
546 (build-system emacs-build-system)
547 (home-page "https://github.com/dbordak/telephone-line")
548 (synopsis "Implementation of Powerline for Emacs")
549 (description
550 "Telephone Line is a new implementation of Powerline for Emacs with
551 optional baked-in Evil support, antialiased separators, and an easy
552 configuration language which makes it trivial to write your own themes.")
553 (license license:gpl3+))))
554
555 (define-public emacs-terminal-here
556 (package
557 (name "emacs-terminal-here")
558 (version "2.0")
559 (source
560 (origin
561 (method git-fetch)
562 (uri (git-reference
563 (url "https://github.com/davidshepherd7/terminal-here")
564 (commit version)))
565 (file-name (git-file-name name version))
566 (sha256
567 (base32 "1iv1c2mbvhn00ha46c6f98j9syc71xhjpk8m5wa5p32sk4wcc9f4"))))
568 (build-system emacs-build-system)
569 (home-page "https://github.com/davidshepherd7/terminal-here")
570 (synopsis "Open external terminals from Emacs")
571 (description
572 "This package provides commands to open external terminal emulators from
573 Emacs, whose initial working directories are determined in relation to the
574 current buffer.")
575 (license license:gpl3+)))
576
577 (define-public emacs-hgignore-mode
578 ;; From 2021-03-14.
579 ;; No releases available.
580 (let ((commit "2c5aa4c238848f5b4f2955afcfb5f21ea513653b")
581 (revision "0"))
582 (package
583 (name "emacs-hgignore-mode")
584 ;; `Version:' header says 0.1.20150329
585 (version (git-version "0.1" revision commit))
586 (source (origin
587 (method git-fetch)
588 (uri (git-reference
589 (url "https://github.com/omajid/hgignore-mode")
590 (commit commit)))
591 (file-name (git-file-name name version))
592 (sha256
593 (base32
594 "0jn9rzhrmmv4lf7rdapdjclk6623d1mir2lq3c46428skhzjlph7"))))
595 (build-system emacs-build-system)
596 (home-page "https://github.com/omajid/hgignore-mode")
597 (synopsis "Major mode for editing @file{hgignore} files")
598 (description "This package provides a basic major mode for
599 editing @file{.hgignore} files used by the Mercurial version control
600 system.")
601 (license license:gpl3+))))
602
603 (define-public emacs-platformio-mode
604 (package
605 (name "emacs-platformio-mode")
606 (version "0.3.0")
607 (source (origin
608 (method git-fetch)
609 (uri (git-reference
610 (url "https://github.com/ZachMassia/PlatformIO-Mode")
611 (commit (string-append "v" version))))
612 (file-name (git-file-name name version))
613 (sha256
614 (base32
615 "0ian50v9vaz7kqzn20bhqadq50h0l3zhjkmniinpz4q9klh7drh9"))))
616 (build-system emacs-build-system)
617 (propagated-inputs (list emacs-async emacs-projectile))
618 (home-page "https://github.com/zachmassia/platformio-mode")
619 (synopsis "Minor mode for building and uploading PlatformIO projects")
620 (description "This package provices an Emacs minor mode for building and
621 uploading PlatformIO projects.")
622 (license license:gpl3+)))
623
624 (define-public emacs-hyperbole
625 (package
626 (name "emacs-hyperbole")
627 (version "8.0.0")
628 (source
629 (origin
630 (method url-fetch)
631 (uri (string-append "https://elpa.gnu.org/packages/"
632 "hyperbole-" version ".tar"))
633 (sha256
634 (base32 "171x7jad62xd0n3xgs32dksyhn5abxj1kna0qgm65mm0v73hrv8d"))))
635 (build-system emacs-build-system)
636 (arguments
637 (list #:include #~(cons* "DEMO"
638 "DEMO-ROLO.otl"
639 "HY-ABOUT"
640 "man/hkey-help.txt"
641 "\\.kotl$"
642 %default-include)
643 #:phases
644 #~(modify-phases %standard-phases
645 ;; Fix build issues about missing "domainname" and
646 ;; "hpmap:dir-user" parent dir, and missing require in
647 ;; "hgnus.el" (void-function: var-append).
648 (add-after 'unpack 'fix-build
649 (lambda* (#:key inputs #:allow-other-keys)
650 (substitute* "hypb.el"
651 (("/bin/domainname")
652 (search-input-file inputs "bin/dnsdomainname")))
653 (substitute* "hyperbole.el"
654 (("\\(hyperb:check-dir-user\\)") ""))
655 (substitute* "hgnus.el"
656 (("hmail ") "hmail hvar "))))
657 (add-after 'install 'install-images
658 (lambda _
659 (let ((dir (string-append #$output "/share/info/im")))
660 (for-each (lambda (file)
661 (install-file file dir))
662 (find-files "man/im" "\\.png$"))))))))
663 (inputs
664 (list inetutils))
665 (home-page "https://www.gnu.org/software/hyperbole/")
666 (synopsis "The Everyday Hypertextual Information Manager")
667 (description
668 "GNU Hyperbole, or just Hyperbole, is a programmable hypertextual
669 information management system. It offers rapid views and interlinking of all
670 kinds of textual information, utilizing Emacs for editing. In particular,
671 Hyperbole lets you quickly create and activate hyperlink buttons, build
672 outlines, manage all your contacts, your windows and frames, and search across
673 buffers, directory trees, or the web.")
674 (license license:gpl3+)))
675
676 (define-public emacs-vlf
677 (package
678 (name "emacs-vlf")
679 (version "1.7.2")
680 (source
681 (origin
682 (method url-fetch)
683 (uri (string-append "https://elpa.gnu.org/packages/"
684 "vlf-" version ".tar"))
685 (sha256
686 (base32 "0hpri19z6b7dqmrj5ckp8sf0m0l72lkgahqzvfmwhgpgv2p81bny"))))
687 (build-system emacs-build-system)
688 (home-page "https://github.com/m00natic/vlfi/")
689 (synopsis "View large files in Emacs")
690 (description
691 "Vlf is an Emacs minor mode that allows viewing, editing, searching and
692 comparing large files in batches.")
693 (license license:gpl2+)))
694
695 (define-public emacs-hg-histedit
696 ;; From 2021-03-02.
697 ;; No releases available.
698 (let ((commit "a05149483b9c5f7848ece0ba6028c900595a6a25")
699 (revision "0"))
700 (package
701 (name "emacs-hg-histedit")
702 (version (git-version "0.0.0" revision commit))
703 (source (origin
704 (method git-fetch)
705 (uri (git-reference
706 (url "https://github.com/jojojames/hg-histedit")
707 (commit commit)))
708 (file-name (git-file-name name version))
709 (sha256
710 (base32
711 "04zps0d4s99f5a8ahrpyf8b6qw0c1y7rd1bsaq9nc6m4qblsvwc8"))))
712 (build-system emacs-build-system)
713 (propagated-inputs
714 (list emacs-with-editor))
715 (home-page "https://github.com/jojojames/hg-histedit")
716 (synopsis "Emacs interface to @command{hg histedit}")
717 (description "This package provides an Emacs interface to
718 @command{hg histedit} for editing the commit history.")
719 (license license:gpl3+))))
720
721 (define-public emacs-package-build
722 (package
723 (name "emacs-package-build")
724 (version "3.1")
725 (source (origin
726 (method git-fetch)
727 (uri (git-reference
728 (url "https://github.com/melpa/package-build")
729 (commit version)))
730 (file-name (git-file-name name version))
731 (sha256
732 (base32
733 "1gkqav0ipfk5gsklxrbggqrbphr12qg1qr6dpdi4f0hs0i11fr23"))))
734 (build-system emacs-build-system)
735 (home-page "https://github.com/melpa/package-build")
736 (synopsis "Tools for assembling an Emacs package archive")
737 (description "This package provides tools for assembling an @acronym{ELPA,
738 Emacs package archive}.")
739 (license license:gpl3+)))
740
741 (define-public emacs-paredit
742 ;; The last tagged release is from 2014; use the latest commit, which
743 ;; includes many fixes such as honoring the 'fill-paragraph-function'
744 ;; variable.
745 (let ((commit "d0b1a2f42fb47efc8392763d6487fd027e3a2955")
746 (revision "1"))
747 (package
748 (name "emacs-paredit")
749 (version (git-version "24" revision commit))
750 (source (origin
751 (method git-fetch)
752 (uri (git-reference
753 (url "https://mumble.net/~campbell/git/paredit.git")
754 (commit commit)))
755 (file-name (git-file-name name version))
756 (sha256
757 (base32
758 "1x91xxvwb3r3h61ff1kknlaakxm1a40r7zg2lck9j52yiza4f191"))))
759 (build-system emacs-build-system)
760 (home-page "http://mumble.net/~campbell/emacs/paredit/")
761 (synopsis "Emacs minor mode for editing parentheses")
762 (description
763 "ParEdit (paredit.el) is a minor mode for performing structured editing
764 of S-expression data. The typical example of this would be Lisp or Scheme
765 source code.
766
767 ParEdit helps **keep parentheses balanced** and adds many keys for moving
768 S-expressions and moving around in S-expressions. Its behavior can be jarring
769 for those who may want transient periods of unbalanced parentheses, such as
770 when typing parentheses directly or commenting out code line by line.")
771 (license license:gpl3+))))
772
773 (define-public emacs-puni
774 ;; No tagged release upstream
775 (let ((commit "ed4a863460329a3019c286ff382e2ddc0ffdc9d7")
776 (revision "0"))
777 (package
778 (name "emacs-puni")
779 (version (git-version "0" revision commit))
780 (source (origin
781 (method git-fetch)
782 (uri (git-reference
783 (url "https://github.com/AmaiKinono/puni")
784 (commit commit)))
785 (file-name (git-file-name name version))
786 (sha256
787 (base32
788 "14lcqf0qdkq2rklx12v12qpgfahz2bpqmnl3bzcz5myawgjjcphd"))))
789 (build-system emacs-build-system)
790 (propagated-inputs (list emacs-with-editor))
791 (home-page "https://github.com/AmaiKinono/puni")
792 (synopsis "Emacs minor mode for structured editing")
793 (description
794 "Puni is an Emacs minor mode for structured editing: soft deletion,
795 expression navigating and manipulating. It supports many major modes
796 out of the box.")
797 (license license:gpl3+))))
798
799 (define-public emacs-spaceline-all-the-icons
800 (package
801 (name "emacs-spaceline-all-the-icons")
802 (version "1.4.0")
803 (source (origin
804 (method git-fetch)
805 (uri (git-reference
806 (url "https://github.com/domtronn/spaceline-all-the-icons.el")
807 (commit version)))
808 (file-name (git-file-name name version))
809 (sha256
810 (base32
811 "186v71d8n1iy73drayyf57pyzlz973q74mazkyvb8w3fj8bb3llm"))))
812 (build-system emacs-build-system)
813 (propagated-inputs
814 (list emacs-all-the-icons
815 emacs-memoize
816 emacs-spaceline))
817 (home-page "https://github.com/domtronn/spaceline-all-the-icons.el")
818 (synopsis
819 "Theme for @code{emacs-spaceline} using @code{emacs-all-the-icons}")
820 (description
821 "This package is a theme for @code{emacs-spaceline} that recreates most
822 of the segments available in that package using icons from
823 @code{emacs-all-the-icons}. Icon fonts allow for more tailored and detailed
824 information in the mode line.")
825 (license license:expat)))
826
827 (define-public emacs-project
828 (package
829 (name "emacs-project")
830 (version "0.8.1")
831 (source
832 (origin
833 (method url-fetch)
834 (uri (string-append "https://elpa.gnu.org/packages/project-" version ".tar"))
835 (sha256
836 (base32 "0q2js8qihlhchpx2mx0f992ygslsqri2q4iv8kcl4fx31lpp7c1k"))))
837 (build-system emacs-build-system)
838 (propagated-inputs (list emacs-xref))
839 (home-page "https://elpa.gnu.org/packages/project.html")
840 (synopsis "Operations on the current project")
841 (description
842 "This library contains generic infrastructure for dealing with projects,
843 some utility functions, and commands using that infrastructure.")
844 (license license:gpl3+)))
845
846 (define-public git-modes
847 (package
848 (name "emacs-git-modes")
849 (version "1.4.0")
850 (source
851 (origin
852 (method git-fetch)
853 (uri (git-reference
854 (url "https://github.com/magit/git-modes")
855 (commit version)))
856 (file-name (git-file-name name version))
857 (sha256
858 (base32 "0aqz65pcqc35h5z4s606f48iqn87h5v9nj3cp6n9yjxa2v7w5hfk"))))
859 (build-system emacs-build-system)
860 (home-page "https://github.com/magit/git-modes")
861 (synopsis "Emacs major modes for Git configuration files")
862 (description
863 "This package provides Emacs major modes for editing various Git
864 configuration files, such as @file{.gitattributes}, @file{.gitignore}, and
865 @file{.git/config}.")
866 (license license:gpl3+)))
867
868 (define-public emacs-with-editor
869 (package
870 (name "emacs-with-editor")
871 (version "3.2.0")
872 (source
873 (origin
874 (method git-fetch)
875 (uri (git-reference
876 (url "https://github.com/magit/with-editor")
877 (commit (string-append "v" version))))
878 (file-name (git-file-name name version))
879 (sha256
880 (base32 "1d98hagpm6h5vgx80qlh3zrfcb6z000rfc707w9zzmh634dkg3xx"))))
881 (build-system emacs-build-system)
882 (arguments
883 (list
884 #:phases
885 #~(modify-phases %standard-phases
886 (add-before 'install 'enter-lisp-directory
887 (lambda _
888 (chdir "lisp")))
889 (add-before 'install 'make-info
890 (lambda _
891 (with-directory-excursion "../docs"
892 (invoke "makeinfo" "--no-split"
893 "-o" "with-editor.info" "with-editor.texi")
894 (install-file "with-editor.info" "../lisp")))))))
895 (native-inputs
896 (list texinfo))
897 (propagated-inputs
898 (list emacs-async))
899 (home-page "https://github.com/magit/with-editor")
900 (synopsis "Emacs library for using Emacsclient as EDITOR")
901 (description
902 "This package provides an Emacs library to use the Emacsclient as
903 @code{$EDITOR} of child processes, making sure they know how to call home.
904 For remote processes a substitute is provided, which communicates with Emacs
905 on stdout instead of using a socket as the Emacsclient does.")
906 (license license:gpl3+)))
907
908 (define-public emacs-libgit
909 (let ((commit "0ef8b13aef011a98b7da756e4f1ce3bb18e4d55a")
910 (revision "1"))
911 (package
912 (name "emacs-libgit")
913 (version (git-version "20200515" revision commit))
914 (source (origin
915 (method git-fetch)
916 (uri (git-reference
917 (url "https://github.com/magit/libegit2")
918 (commit commit)))
919 (file-name (git-file-name name version))
920 (sha256
921 (base32
922 "0pnjr3bg6y6354dfjjxfj0g51swzgl1fncpprah75x4k94rd369f"))
923 (patches (search-patches
924 ;; Submitted for inclusion upstream (see:
925 ;; https://github.com/magit/libegit2/pull/96).
926 "emacs-libgit-use-system-libgit2.patch"))
927 (snippet
928 #~(begin
929 ;; bundled, use the one shipped with emacs instead
930 (delete-file "src/emacs-module.h")))))
931 ;; Use the cmake-build-system as it provides support for cross builds.
932 (build-system cmake-build-system)
933 (arguments
934 `(#:configure-flags '("-DUSE_SYSTEM_LIBGIT2=x")
935 ;; Add the emacs-build-system byte compilation and install phases.
936 #:imported-modules (,@%cmake-build-system-modules
937 (guix build emacs-build-system)
938 (guix build emacs-utils))
939 #:modules ((guix build cmake-build-system)
940 ((guix build emacs-build-system) #:prefix emacs:)
941 (guix build emacs-utils)
942 (guix build utils))
943 #:phases
944 (modify-phases %standard-phases
945 (add-after 'unpack 'patch-source
946 (lambda _
947 ;; Use Emacs 28 unibyte strings.
948 ;; XXX: This now breaks if linked against Emacs <= 26, probably
949 ;; also 27.
950 (substitute* "src/egit-blob.c"
951 (("make_string") "make_unibyte_string"))))
952 (add-after 'unpack 'set-libgit--module-file
953 (lambda* (#:key outputs #:allow-other-keys)
954 (let ((out (assoc-ref outputs "out")))
955 (make-file-writable "libgit.el")
956 (emacs-substitute-variables "libgit.el"
957 ("libgit--module-file"
958 (string-append (emacs:elpa-directory out) "/libegit2.so"))))))
959 (add-before 'install 'prepare-for-install
960 (lambda _
961 (let ((s "../source"))
962 (copy-file "libegit2.so" (string-append s "/libegit2.so"))
963 (chdir s))))
964 (replace 'install
965 (lambda* (#:key outputs #:allow-other-keys)
966 (let ((install (assoc-ref emacs:%standard-phases 'install)))
967 (install #:outputs outputs
968 #:include (cons "\\.so$"
969 emacs:%default-include)))))
970 (add-after 'install 'make-autoloads
971 (assoc-ref emacs:%standard-phases 'make-autoloads))
972 (add-after 'make-autoloads 'enable-autoloads-compilation
973 (assoc-ref emacs:%standard-phases 'enable-autoloads-compilation))
974 (add-after 'enable-autoloads-compilation 'patch-el-files
975 (assoc-ref emacs:%standard-phases 'patch-el-files))
976 (add-after 'patch-el-files 'emacs-build
977 (assoc-ref emacs:%standard-phases 'build))
978 (add-after 'emacs-build 'validate-compiled-autoloads
979 (assoc-ref emacs:%standard-phases 'validate-compiled-autoloads)))))
980 (native-inputs
981 (list pkg-config emacs-no-x git-minimal))
982 (inputs
983 (list libgit2))
984 (home-page "https://github.com/magit/libegit2")
985 (synopsis "Emacs bindings for libgit2")
986 (description "This is an experimental module written in C providing
987 libgit2 bindings for Emacs, intended to boost the performance of Magit.")
988 ;; The LICENSE file says GPL v2+, but libgit.el says GPL v3+.
989 (license license:gpl3+))))
990
991 (define-public emacs-magit
992 (package
993 (name "emacs-magit")
994 (version "3.3.0")
995 (source
996 (origin
997 (method git-fetch)
998 (uri (git-reference
999 (url "https://github.com/magit/magit")
1000 (commit (string-append "v" version))))
1001 (file-name (git-file-name name version))
1002 (sha256
1003 (base32 "0cxyvp2aav27znc7mf6c83q5pddpdniaqkrxn1r8dbgr540qmnpn"))))
1004 (build-system emacs-build-system)
1005 (arguments
1006 (list
1007 #:tests? #t
1008 #:test-command #~(list "make" "test")
1009 #:exclude #~(cons* "magit-libgit.el"
1010 "magit-libgit-pkg.el"
1011 %default-exclude)
1012 #:phases
1013 #~(modify-phases %standard-phases
1014 (add-after 'unpack 'build-info-manual
1015 (lambda _
1016 (invoke "make" "info")
1017 ;; Copy info files to the lisp directory, which acts as
1018 ;; the root of the project for the emacs-build-system.
1019 (for-each (lambda (f)
1020 (install-file f "lisp"))
1021 (find-files "Documentation" "\\.info$"))))
1022 (add-after 'build-info-manual 'set-magit-version
1023 (lambda _
1024 (make-file-writable "lisp/magit.el")
1025 (emacs-substitute-variables "lisp/magit.el"
1026 ("magit-version" #$version))))
1027 (add-after 'set-magit-version 'patch-exec-paths
1028 (lambda* (#:key inputs #:allow-other-keys)
1029 (make-file-writable "lisp/magit-sequence.el")
1030 (emacs-substitute-variables "lisp/magit-sequence.el"
1031 ("magit-perl-executable"
1032 (search-input-file inputs "/bin/perl")))))
1033 (add-before 'check 'configure-git
1034 (lambda _
1035 ;; Otherwise some tests fail with error "unable to auto-detect
1036 ;; email address".
1037 (setenv "HOME" (getcwd))
1038 (invoke "git" "config" "--global" "user.name" "toto")
1039 (invoke "git" "config" "--global" "user.email"
1040 "toto@toto.com")))
1041 (add-after 'configure-git 'disable-tramp-test
1042 (lambda _
1043 ;; There is an issue causing TRAMP to fail in the build
1044 ;; environment. Setting the tramp-remote-shell parameter of
1045 ;; the sudo-method to the file name of the shell didn't help.
1046 (substitute* "t/magit-tests.el"
1047 (("^\\(ert-deftest magit-toplevel:tramp.*" all)
1048 (string-append all " (skip-unless nil)")))))
1049 (replace 'expand-load-path
1050 (lambda args
1051 (with-directory-excursion "lisp"
1052 (apply (assoc-ref %standard-phases 'expand-load-path) args))))
1053 (replace 'install
1054 (lambda args
1055 (with-directory-excursion "lisp"
1056 (apply (assoc-ref %standard-phases 'install) args)))))))
1057 (native-inputs
1058 (list texinfo))
1059 (inputs
1060 (list git perl))
1061 (propagated-inputs
1062 (list emacs-dash emacs-with-editor))
1063 (home-page "https://magit.vc/")
1064 (synopsis "Emacs interface for the Git version control system")
1065 (description
1066 "With Magit, you can inspect and modify your Git repositories
1067 with Emacs. You can review and commit the changes you have made to
1068 the tracked files, for example, and you can browse the history of past
1069 changes. There is support for cherry picking, reverting, merging,
1070 rebasing, and other common Git operations.")
1071 (license license:gpl3+)))
1072
1073 (define-public emacs-magit-svn
1074 (package
1075 (name "emacs-magit-svn")
1076 (version "2.2.3")
1077 (source (origin
1078 (method git-fetch)
1079 (uri (git-reference
1080 (url "https://github.com/magit/magit-svn")
1081 (commit version)))
1082 (file-name (git-file-name name version))
1083 (sha256
1084 (base32
1085 "1v1y4fir1plz4kj0cvkcd29wibli4dw7vp4fmbxq4df76d8iy8yd"))))
1086 (build-system emacs-build-system)
1087 (propagated-inputs (list emacs-dash emacs-with-editor emacs-magit))
1088 (home-page "https://github.com/magit/magit-svn")
1089 (synopsis "Git-SVN extension to Magit")
1090 (description
1091 "This package is an extension to Magit, the Git Emacs mode, providing
1092 support for Git-SVN.")
1093 (license license:gpl3+)))
1094
1095 (define-public emacs-magit-popup
1096 (package
1097 (name "emacs-magit-popup")
1098 (version "2.13.3")
1099 (source
1100 (origin
1101 (method git-fetch)
1102 (uri (git-reference
1103 (url "https://github.com/magit/magit-popup")
1104 (commit (string-append "v" version))))
1105 (file-name (git-file-name name version))
1106 (sha256
1107 (base32 "0znp6gx6vpcsybg774ab06mdgxb7sfk3gki1yp2qhkanav13i6q1"))))
1108 (build-system emacs-build-system)
1109 (arguments
1110 `(#:phases
1111 (modify-phases %standard-phases
1112 (add-before 'install 'make-info
1113 (lambda _
1114 (invoke "make" "info"))))))
1115 (native-inputs
1116 (list texinfo))
1117 (propagated-inputs
1118 (list emacs-dash))
1119 (home-page "https://github.com/magit/magit-popup")
1120 (synopsis "Define prefix-infix-suffix command combos")
1121 (description
1122 "This library implements a generic interface for toggling switches and
1123 setting options and then invoking an Emacs command which does something with
1124 these arguments. The prototypical use is for the command to call an external
1125 process, passing on the arguments as command line arguments.")
1126 (license license:gpl3+)))
1127
1128 (define-public emacs-magit-annex
1129 (package
1130 (name "emacs-magit-annex")
1131 (version "1.8.1")
1132 (source
1133 (origin
1134 (method git-fetch)
1135 (uri (git-reference
1136 (url "https://github.com/magit/magit-annex")
1137 (commit (string-append "v" version))))
1138 (file-name (git-file-name name version))
1139 (sha256
1140 (base32 "1amr2c08mq1nnn6k66mgz4rzyni4np7gxm96g4qyla2cbfbachgk"))))
1141 (build-system emacs-build-system)
1142 (propagated-inputs (list emacs-magit))
1143 (home-page "https://github.com/magit/magit-annex/")
1144 (synopsis "Git-annex support for Magit")
1145 (description
1146 "Magit-annex adds a few git-annex operations to the Magit interface.")
1147 (license license:gpl3+)))
1148
1149 (define-public emacs-mct
1150 (package
1151 (name "emacs-mct")
1152 (version "0.5.0")
1153 (source (origin
1154 (method git-fetch)
1155 (uri (git-reference
1156 (url "https://gitlab.com/protesilaos/mct")
1157 (commit version)))
1158 (sha256
1159 (base32 "0714n5nim0hyd5jywvvddka2gi2bhi1vkrbhx75mdn8h50r688kq"))
1160 (file-name (git-file-name name version))))
1161 (native-inputs (list texinfo))
1162 (build-system emacs-build-system)
1163 (arguments
1164 (list
1165 #:phases
1166 #~(modify-phases %standard-phases
1167 (add-after 'install 'makeinfo
1168 (lambda _
1169 (invoke "emacs"
1170 "--batch"
1171 "--eval=(require 'ox-texinfo)"
1172 "--eval=(find-file \"README.org\")"
1173 "--eval=(org-texinfo-export-to-info)")
1174 (install-file "mct.info" (string-append #$output "/share/info")))))))
1175 (home-page "https://protesilaos.com/emacs/mct")
1176 (synopsis "Enhancement of the default Emacs minibuffer completion UI")
1177 (description "Minibuffer and Completions in Tandem, also known as MCT, or
1178 mct.el, is an Emacs package that enhances the default minibuffer and
1179 @samp{*Completions*} buffer so that they work together as part of a unified
1180 framework. The idea is to make the presentation and overall functionality be
1181 consistent with other popular, vertically aligned completion UIs while
1182 leveraging built-in functionality.")
1183 (license (list license:gpl3+
1184 license:fdl1.3+)))) ; GFDLv1.3+ for the manual
1185
1186 (define-public emacs-minions
1187 (package
1188 (name "emacs-minions")
1189 (version "0.3.7")
1190 (source
1191 (origin
1192 (method git-fetch)
1193 (uri (git-reference
1194 (url "https://github.com/tarsius/minions")
1195 (commit (string-append "v" version))))
1196 (file-name (git-file-name name version))
1197 (sha256
1198 (base32 "1bzxxs8mxaihpjkbxgynhsi39lbbnij28grdc3sk9sq09j9752vw"))))
1199 (build-system emacs-build-system)
1200 (propagated-inputs
1201 (list emacs-dash))
1202 (home-page "https://github.com/tarsius/minions")
1203 (synopsis "Minor-mode menu for the mode line")
1204 (description
1205 "This package implements a menu that lists enabled minor-modes, as well
1206 as commonly but not currently enabled minor-modes. It can be used to toggle
1207 local and global minor-modes, to access mode-specific menus, and to get help
1208 about modes.
1209
1210 This menu is intended as a replacement for the incomplete yet wide list of
1211 enabled minor-modes that is displayed in the mode line by default. To use the
1212 menu like this, enable Minions mode.
1213
1214 Alternatively the menu can be bound globally, for example:
1215 @code{(global-set-key [S-down-mouse-3] 'minions-minor-modes-menu)}.")
1216 (license license:gpl3+)))
1217
1218 (define-public emacs-nano-modeline
1219 ;; No tagged release upstream. The commit below matches latest version
1220 ;; bump.
1221 (let ((commit "823161c8894996e5c8375249f467a422579a2947"))
1222 (package
1223 (name "emacs-nano-modeline")
1224 (version "0.7.1")
1225 (source (origin
1226 (method git-fetch)
1227 (uri (git-reference
1228 (url "https://github.com/rougier/nano-modeline")
1229 (commit commit)))
1230 (file-name (git-file-name name version))
1231 (sha256
1232 (base32
1233 "1g59g1r7gs1pz7wbh07k9p47qp7fygd1gc5kwbd0s5w42zhc6mid"))))
1234 (build-system emacs-build-system)
1235 (home-page "https://github.com/rougier/nano-modeline")
1236 (synopsis "Emacs minor mode controlling mode line")
1237 (description "Nano modeline is a minor mode for Emacs that modifies the
1238 mode line as @samp{[ status | name (primary) secondary ]}. It can be
1239 displayed at the bottom or at the top.")
1240 (license license:gpl3+))))
1241
1242 (define-public emacs-moody
1243 (package
1244 (name "emacs-moody")
1245 (version "0.7.1")
1246 (source
1247 (origin
1248 (method git-fetch)
1249 (uri (git-reference
1250 (url "https://github.com/tarsius/moody")
1251 (commit (string-append "v" version))))
1252 (file-name (git-file-name name version))
1253 (sha256
1254 (base32 "09yyihx6cpa724z6cj2rqspajwj325ipgpmckklpgq6l4h5xnwy4"))))
1255 (build-system emacs-build-system)
1256 (home-page "https://github.com/tarsius/moody")
1257 (synopsis "Tabs and ribbons for Emacs mode-line")
1258 (description
1259 "@code{emacs-moody} provides utilities for displaying elements of
1260 the mode line as tabs and ribbons. It also provides replacements for a few
1261 built-in elements. The biggest difference to similar packages is that
1262 this one is much simpler and much more consistent. When using this package,
1263 then only the color of the mode line changes when a window becomes in-/active.")
1264 (license license:gpl3+)))
1265
1266 (define-public emacs-theme-magic
1267 ;; No tagged release upstream, but the commit below correspond to the 0.2.3
1268 ;; release.
1269 (let ((commit "844c4311bd26ebafd4b6a1d72ddcc65d87f074e3")
1270 (revision "0"))
1271 (package
1272 (name "emacs-theme-magic")
1273 (version "0.2.3")
1274 (source
1275 (origin
1276 (method git-fetch)
1277 (uri (git-reference
1278 (url "https://github.com/jcaw/theme-magic")
1279 (commit commit)))
1280 (file-name (git-file-name name version))
1281 (sha256
1282 (base32 "10gkg7jh1s1484gm66a87zr7x8vmv00s7gfd0w2pj47nqf98g8hz"))))
1283 (build-system emacs-build-system)
1284 (arguments
1285 (list
1286 ;; Include Pywal interaction scripts.
1287 #:include #~(cons "^python/" %default-include)
1288 #:phases
1289 #~(modify-phases %standard-phases
1290 (add-after 'unpack 'patch-exec-paths
1291 (lambda* (#:key inputs #:allow-other-keys)
1292 (substitute* '("theme-magic.el" "python/wal_change_colors.py")
1293 (("\"python\"")
1294 (string-append "\""
1295 (search-input-file inputs "/bin/python3")
1296 "\""))
1297 (("\"wal\"")
1298 (string-append "\""
1299 (search-input-file inputs "/bin/wal")
1300 "\""))))))))
1301 (inputs
1302 (list python python-pywal))
1303 (home-page "https://github.com/jcaw/theme-magic")
1304 (synopsis "Generate and apply color palettes based on your Emacs theme")
1305 (description
1306 "This package provides a command to extract the colors from your Emacs
1307 theme and apply them to the rest of Linux with Pywal. Pywal only applies your
1308 theme to the current session.")
1309 (license license:gpl3+))))
1310
1311 (define-public emacs-vscode-dark-plus
1312 (package
1313 (name "emacs-vscode-dark-plus")
1314 (version "2.0.0")
1315 (source
1316 (origin
1317 (method git-fetch)
1318 (uri (git-reference
1319 (url "https://github.com/ianyepan/vscode-dark-plus-emacs-theme")
1320 (commit (string-append "v" version))))
1321 (file-name (git-file-name name version))
1322 (sha256
1323 (base32 "1vcaqvhdgr91pr7kqskbscs8awm8jp6dkh79h6w36i9ipmc4l4hl"))))
1324 (build-system emacs-build-system)
1325 (home-page "https://github.com/ianyepan/vscode-dark-plus-emacs-theme")
1326 (synopsis "Emacs port of the default VS Code Dark+ theme")
1327 (description
1328 "This theme aims to be as identical as possible to the default Dark+
1329 color scheme used by Visual Studio Code.")
1330 (license license:gpl3+)))
1331
1332 (define-public emacs-theme-sorcery
1333 (let ((revision "0")
1334 (commit "5a1c4445b9e6e09589a299a9962a6973272a0c2f"))
1335 (package
1336 (name "emacs-theme-sorcery")
1337 (version "1.0")
1338 (source
1339 (origin
1340 (method git-fetch)
1341 (uri (git-reference
1342 (url "https://github.com/mtreca/emacs-theme-sorcery")
1343 (commit commit)))
1344 (file-name (git-file-name name version))
1345 (sha256
1346 (base32 "1b858049n6nw4qf60fmszjrhl80x7ssh32f7glj722kwy7404kdh"))))
1347 (build-system emacs-build-system)
1348 (propagated-inputs
1349 (list emacs-autothemer))
1350 (home-page "https://github.com/mtreca/emacs-theme-sorcery")
1351 (synopsis "Dark and low-contrast Emacs theme")
1352 (description "Sorcery is a dark and low-contrast Emacs theme inspired by
1353 Apprentice and Sourcerer.")
1354 (license license:gpl3+))))
1355
1356 (define-public emacs-suneater-theme
1357 (package
1358 (name "emacs-suneater-theme")
1359 (version "2.0.0")
1360 (source
1361 (origin
1362 (method git-fetch)
1363 (uri (git-reference
1364 (url "https://git.sr.ht/~plattfot/suneater-theme")
1365 (commit version)))
1366 (sha256
1367 (base32
1368 "0nlam8f8ly86y7p2dn10y9ixnm7bhmigsx7si4cjynh6aiyczyds"))
1369 (file-name (git-file-name name version))))
1370 (build-system emacs-build-system)
1371 (home-page "https://git.sr.ht/~plattfot/suneater-theme")
1372 (synopsis "Minimalistic dark theme for Emacs")
1373 (description
1374 "Suneater is a dark, minimalistic Emacs theme. It was based on Sunburst
1375 theme but now takes more inspiration from the Nano theme.")
1376 (license license:gpl3+)))
1377
1378 (define-public emacs-treepy
1379 (package
1380 (name "emacs-treepy")
1381 (version "0.1.2")
1382 (source (origin
1383 (method git-fetch)
1384 (uri (git-reference
1385 (url "https://github.com/volrath/treepy.el")
1386 (commit version)))
1387 (file-name (git-file-name name version))
1388 (sha256
1389 (base32
1390 "0pmrpij80m5kgcr8bw36r8wllgppasw08vn3ghwvis9srpaq75cn"))))
1391 (build-system emacs-build-system)
1392 (home-page
1393 "https://github.com/volrath/treepy.el")
1394 (synopsis "Tree traversal tools")
1395 (description
1396 "Generic tools for recursive and iterative tree traversal based on
1397 clojure.walk and clojure.zip respectively.")
1398 (license license:gpl3+)))
1399
1400 (define-public emacs-typing
1401 (let ((commit "a2ef25dde2d8eb91bd9c0c6164cb5208208647fa")
1402 (revision "0"))
1403 (package
1404 (name "emacs-typing")
1405 (version (git-version "1.1.4" revision commit))
1406 (source
1407 (origin
1408 (method git-fetch)
1409 (uri (git-reference
1410 (url "https://github.com/kensanata/typing")
1411 (commit commit)))
1412 (file-name (git-file-name name version))
1413 (sha256
1414 (base32
1415 "1dbh0srbf54lgd60ia79y9cfnq3kxlgw01qzdjs9mk3nfazzpgnv"))))
1416 (build-system emacs-build-system)
1417 (home-page "https://github.com/kensanata/typing/")
1418 (synopsis "Emacs game where you have to type fast")
1419 (description "The Typing of Emacs is a game for Emacs that
1420 forces you to type words correctly as fast as possible, otherwise
1421 you will die. The game builds the list of words from the active buffer.")
1422 (license license:gpl2+))))
1423
1424 (define-public emacs-graphql
1425 (package
1426 (name "emacs-graphql")
1427 (version "0.1.1")
1428 (source (origin
1429 (modules '((guix build utils)))
1430 ;; Remove examples file with references to external packages as
1431 ;; they do not exist at compilation time.
1432 (snippet
1433 '(begin (delete-file "examples.el")))
1434 (method git-fetch)
1435 (uri (git-reference
1436 (url "https://github.com/vermiculus/graphql.el")
1437 (commit version)))
1438 (file-name (git-file-name name version))
1439 (sha256
1440 (base32
1441 "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw"))))
1442 (build-system emacs-build-system)
1443 (home-page
1444 "https://github.com/vermiculus/graphql.el")
1445 (synopsis "GraphQL utilities")
1446 (description
1447 "GraphQL.el provides a generally-applicable domain-specific language for
1448 creating and executing GraphQL queries against your favorite web services.
1449 GraphQL is a data query language and runtime designed and used to request and
1450 deliver data to mobile and web apps.")
1451 (license license:gpl3+)))
1452
1453 (define-public emacs-graphql-mode
1454 ;; No tagged commit. No "Version" keyword either.
1455 (let ((commit "9bed568ec86242dbe30bdbab324aa0eb2cd9bf08")
1456 (revision "1"))
1457 (package
1458 (name "emacs-graphql-mode")
1459 (version (git-version "0" revision commit))
1460 (source
1461 (origin
1462 (method git-fetch)
1463 (uri (git-reference
1464 (url "https://github.com/davazp/graphql-mode")
1465 (commit commit)))
1466 (file-name (git-file-name name version))
1467 (sha256
1468 (base32 "0x9y7qq6y0zg8ncamzvk68ccmdyzh7xsj0xs0ykyl20d5wdpplj4"))))
1469 (build-system emacs-build-system)
1470 (home-page "https://github.com/davazp/graphql-mode")
1471 (synopsis "Emacs mode to edit GraphQL schema and queries")
1472 (description
1473 "This package implements a major mode to edit GraphQL schemas and
1474 query. The basic functionality includes syntax highlight and indentation.
1475 Additionally, it is able to send GraphQL queries to an end-point URL.
1476
1477 Files with the @file{.graphql} and @file{.gql} extensions are
1478 automatically opened with this mode.")
1479 (license license:gpl3+))))
1480
1481 (define-public emacs-ghq
1482 (package
1483 (name "emacs-ghq")
1484 (version "0.1.2")
1485 (source
1486 (origin
1487 (method git-fetch)
1488 (uri (git-reference
1489 (url "https://github.com/rcoedo/emacs-ghq")
1490 (commit (string-append "v" version))))
1491 (file-name (git-file-name name version))
1492 (sha256
1493 (base32 "0rh2k93c3a0vl073a3s3a3h6gkw454v1lyd7y8l3pd24vw9hc628"))))
1494 (build-system emacs-build-system)
1495 (propagated-inputs
1496 (list ghq))
1497 (home-page "https://github.com/rcoedo/emacs-ghq")
1498 (synopsis "Emacs interface for @code{ghq} tool")
1499 (description
1500 "This package provides a set of functions wrapping @code{ghq}, a tool for
1501 organizing remote Go repository clones.")
1502 (license license:gpl3+)))
1503
1504 (define-public emacs-ghub
1505 (package
1506 (name "emacs-ghub")
1507 (version "3.5.6")
1508 (source
1509 (origin
1510 (method git-fetch)
1511 (uri (git-reference
1512 (url "https://github.com/magit/ghub")
1513 (commit (string-append "v" version))))
1514 (file-name (git-file-name name version))
1515 (sha256
1516 (base32 "1pw1rjrvvanlcxv3rb64s2p646zfaipp7h7v8djlrrnlgy6mwbqd"))))
1517 (build-system emacs-build-system)
1518 (arguments
1519 (list
1520 #:phases
1521 #~(modify-phases %standard-phases
1522 (add-before 'install 'make-info
1523 (lambda _
1524 (invoke "make" "info")))
1525 (add-after 'make-info 'enter-lisp-directory
1526 (lambda _
1527 (chdir "lisp")))
1528 (add-after 'expand-load-path 'add-el-dir-to-emacs-load-path
1529 (lambda _
1530 (setenv "EMACSLOADPATH"
1531 (string-append (getcwd)
1532 "/lisp:"
1533 (getenv "EMACSLOADPATH")))))
1534 (add-after 'install 'install-info
1535 (lambda _
1536 (let ((info (string-append #$output "/share/info")))
1537 (install-file "../docs/ghub.info" info)))))))
1538 (native-inputs
1539 (list texinfo))
1540 (propagated-inputs
1541 (list emacs-dash emacs-let-alist emacs-treepy))
1542 (home-page "https://github.com/magit/ghub")
1543 (synopsis "Emacs client libraries for the APIs of various Git forges")
1544 (description
1545 "Ghub provides basic support for using the APIs of various Git forges from
1546 Emacs packages. It supports the REST APIs of Github, Github GraphQL, Gitlab,
1547 Gitea, Gogs and Bitbucket. It abstracts access to API resources using only a
1548 handful of functions that are not resource-specific.")
1549 (license license:gpl3+)))
1550
1551 (define-public emacs-typit
1552 (package
1553 (name "emacs-typit")
1554 (version "0.3.0")
1555 (source
1556 (origin
1557 (method git-fetch)
1558 (uri (git-reference
1559 (url "https://github.com/mrkkrp/typit")
1560 (commit version)))
1561 (file-name (git-file-name name version))
1562 (sha256
1563 (base32 "0djxmni5mfc9wzm0zg7fsd7138ic5qznbmqd5jyrk4mpf0li8nhy"))))
1564 (build-system emacs-build-system)
1565 (arguments
1566 '(#:include (cons "^dict/" %default-include)))
1567 (propagated-inputs
1568 (list emacs-f emacs-mmt))
1569 (home-page "https://github.com/mrkkrp/typit")
1570 (synopsis "Typing game for Emacs with two difficulties")
1571 (description "Emacs Typit is a typing game for Emacs. Words that are
1572 picked randomly from the most frequent words in language you're practicing,
1573 until time is up.")
1574 (license license:gpl3+)))
1575
1576 (define-public emacs-scribble-mode
1577 (let ((commit "217945d54de5e4bb207033f2116baa28f5c5ecf2")
1578 (revision "2"))
1579 (package
1580 (name "emacs-scribble-mode")
1581 (version (git-version "0.1" revision commit))
1582 (source (origin
1583 (method git-fetch)
1584 (uri (git-reference
1585 (url "https://github.com/emacs-pe/scribble-mode")
1586 (commit commit)))
1587 (file-name (git-file-name name version))
1588 (sha256
1589 (base32
1590 "1s5ccw1a5ack01wd94ywfcrar9j98agchwdh30q7iyxr0d2z4sii"))))
1591 (build-system emacs-build-system)
1592 (home-page "https://github.com/emacs-pe/scribble-mode")
1593 (synopsis "Emacs mode for editing the Scribble documentation syntax")
1594 (description
1595 "This package provides basic syntax highlighting and editing support
1596 for editing Racket's Scribble documentation syntax in Emacs.")
1597 (license license:gpl3+))))
1598
1599 (define-public emacs-shroud
1600 (package
1601 (name "emacs-shroud")
1602 (version "1.105")
1603 (source
1604 (origin
1605 (method git-fetch)
1606 (uri (git-reference
1607 (url "https://git.savannah.gnu.org/git/emacs-shroud.git")
1608 (commit version)))
1609 (file-name (git-file-name name version))
1610 (sha256
1611 (base32 "0q2pb3w8s833fjhkzicciw2php4lsnismad1dnwgp2lcway757ra"))))
1612 (build-system gnu-build-system)
1613 (arguments
1614 `(#:modules ((guix build gnu-build-system)
1615 ((guix build emacs-build-system) #:prefix emacs:)
1616 (guix build utils))
1617 #:imported-modules (,@%gnu-build-system-modules
1618 (guix build emacs-build-system)
1619 (guix build emacs-utils))
1620 #:configure-flags (list (string-append "--with-lispdir="
1621 (emacs:elpa-directory %output)))
1622 #:phases
1623 (modify-phases %standard-phases
1624 (add-after 'unpack 'expand-load-path
1625 (assoc-ref emacs:%standard-phases 'expand-load-path)))))
1626 (native-inputs
1627 (list autoconf automake texinfo perl emacs-minimal))
1628 (propagated-inputs
1629 (list emacs-bui
1630 emacs-dash
1631 emacs-f
1632 emacs-s
1633 gnupg
1634 shroud))
1635 (home-page "https://www.nongnu.org/emacs-shroud")
1636 (synopsis "Emacs interface to the Shroud password manager")
1637 (description
1638 "This package provides an Emacs interface to the Shroud password manager,
1639 using the Buffers User Interface library. You can view, copy, and edit secrets
1640 from within Emacs.")
1641 (license license:gpl3+)))
1642
1643 (define-public emacs-solidity
1644 ;; This commit fixes a spacing issue and adds new keywords.
1645 (let ((commit "d166a86b83907e0cfd64c191e9dfce4b44a9843e")
1646 (revision "0"))
1647 (package
1648 (name "emacs-solidity")
1649 (version (git-version "0.1.10" revision commit))
1650 (source
1651 (origin
1652 (method git-fetch)
1653 (uri (git-reference
1654 (url "https://github.com/ethereum/emacs-solidity")
1655 (commit commit)))
1656 (file-name (git-file-name name version))
1657 (sha256
1658 (base32 "19hgvsrqch2vp49ag6m76bi5qxd20v95z0ib838rib9as15b17wq"))))
1659 (build-system emacs-build-system)
1660 (propagated-inputs
1661 (list emacs-company emacs-flycheck))
1662 (home-page "https://github.com/ethereum/emacs-solidity")
1663 (synopsis "Major mode for writing Solidity code")
1664 (description
1665 "This is a simple language mode for the Solidity language. It is
1666 a constant work in progress as the language itself also progresses.")
1667 (license license:gpl3+))))
1668
1669 (define-public emacs-unpackaged-el
1670 (let ((commit "746801a677ada6cd6fa076e423aa0953779f3fad")
1671 (revision "3"))
1672 (package
1673 (name "emacs-unpackaged-el")
1674 (version (git-version "0" revision commit))
1675 (source
1676 (origin
1677 (method git-fetch)
1678 (uri (git-reference
1679 (url "https://github.com/alphapapa/unpackaged.el")
1680 (commit commit)))
1681 (file-name (git-file-name name version))
1682 (sha256
1683 (base32
1684 "0jvb2ci0h0lj368qhbff3pzkxj3nhlligpbkjzi525k9rkjgm7l8"))))
1685 (build-system emacs-build-system)
1686 (propagated-inputs
1687 (list emacs-dash emacs-org emacs-s emacs-hydra emacs-use-package))
1688 (arguments
1689 (list
1690 #:phases
1691 #~(modify-phases %standard-phases
1692 (add-after 'unpack 'require-hydra
1693 (lambda _
1694 (substitute* "unpackaged.el"
1695 ((";;; Code:") ";;; Code:\n(require 'hydra)")))))))
1696 (home-page "https://github.com/alphapapa/unpackaged.el")
1697 (synopsis "Useful snippets of Emacs Lisp code")
1698 (description "This package provides Emacs Lisp utilities for a variety
1699 of tasks, including version control, task management, and regex-based
1700 replacement.")
1701 (license license:gpl3+))))
1702
1703 (define-public emacs-haskell-mode
1704 (let ((revision "0")
1705 (commit "5a9f8072c7b9168f0a8409adf9d62a3e4ad4ea3d"))
1706 (package
1707 (name "emacs-haskell-mode")
1708 (version (git-version "17.2" revision commit))
1709 (source
1710 (origin
1711 (method git-fetch)
1712 (uri (git-reference
1713 (url "https://github.com/haskell/haskell-mode")
1714 (commit commit)))
1715 (file-name (git-file-name name version))
1716 (sha256
1717 (base32 "0np1wrwdq7b9hpqpl9liampacnkx6diphyk8h2sbz2mfn9qr7pxs"))))
1718 (propagated-inputs
1719 (list emacs-dash))
1720 (native-inputs
1721 (list emacs-minimal emacs-el-search emacs-stream texinfo))
1722 (build-system gnu-build-system)
1723 (arguments
1724 (list
1725 #:make-flags #~(list
1726 (string-append "EMACS=" #$emacs-minimal "/bin/emacs"))
1727 #:modules `((ice-9 match)
1728 (srfi srfi-26)
1729 ((guix build emacs-build-system) #:prefix emacs:)
1730 ,@%gnu-build-system-modules)
1731 #:imported-modules `(,@%gnu-build-system-modules
1732 (guix build emacs-build-system)
1733 (guix build emacs-utils))
1734 #:phases
1735 #~(modify-phases %standard-phases
1736 (delete 'configure)
1737 (add-before 'build 'pre-build
1738 (lambda* (#:key inputs #:allow-other-keys)
1739 (define (el-dir store-dir)
1740 (match (find-files store-dir "\\.el$")
1741 ((f1 f2 ...) (dirname f1))
1742 (_ "")))
1743
1744 (let ((sh (search-input-file inputs "/bin/sh")))
1745 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
1746
1747 (setenv "SHELL" "sh")
1748 (setenv "EMACSLOADPATH"
1749 (string-concatenate
1750 (map (match-lambda
1751 (((? emacs-prefix? name) . dir)
1752 (string-append (el-dir dir) ":"))
1753 (_ ""))
1754 inputs)))
1755 (substitute* (find-files "." "\\.el") (("/bin/sh") sh)))))
1756 (add-before 'check 'delete-failing-tests
1757 ;; XXX: these tests require GHC executable, which would be a big
1758 ;; native input.
1759 (lambda _
1760 (with-directory-excursion "tests"
1761 ;; File `haskell-indent-tests.el' fails with
1762 ;; `haskell-indent-put-region-in-literate-2'
1763 ;; on Emacs 27.1+
1764 ;; XXX: https://github.com/haskell/haskell-mode/issues/1714
1765 (for-each delete-file
1766 '("haskell-indent-tests.el"
1767 "haskell-customize-tests.el"
1768 "inferior-haskell-tests.el"))
1769
1770 ;; requires many external tools (e.g. git, hasktags)
1771 (substitute* "haskell-mode-tests.el"
1772 (("\\(ert-deftest haskell-generate-tags.*" all)
1773 (string-append all " (skip-unless nil)"))))))
1774 (replace 'install
1775 (lambda* (#:key outputs #:allow-other-keys)
1776 (let* ((out (assoc-ref outputs "out"))
1777 (el-dir (emacs:elpa-directory out))
1778 (doc (string-append
1779 out "/share/doc/haskell-mode-" #$version))
1780 (info (string-append out "/share/info")))
1781 (define (copy-to-dir dir files)
1782 (for-each (lambda (f)
1783 (install-file f dir))
1784 files))
1785
1786 (with-directory-excursion "doc"
1787 (invoke "makeinfo" "haskell-mode.texi")
1788 (install-file "haskell-mode.info" info))
1789 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
1790 (copy-to-dir el-dir (find-files "." "\\.elc?"))))))))
1791 (home-page "https://github.com/haskell/haskell-mode")
1792 (synopsis "Haskell mode for Emacs")
1793 (description
1794 "This is an Emacs mode for editing, debugging and developing Haskell
1795 programs.")
1796 (license license:gpl3+))))
1797
1798 (define-public emacs-dante
1799 (let ((commit "38b589417294c7ea44bf65b73b8046d950f9531b")
1800 (revision "1"))
1801 (package
1802 (name "emacs-dante")
1803 (version (git-version "1.6" revision commit))
1804 (source (origin
1805 (method git-fetch)
1806 (uri (git-reference
1807 (url "https://github.com/jyp/dante")
1808 (commit commit)))
1809 (sha256
1810 (base32
1811 "1mnmn635552zlwd4zr68jbvdjipl6gi4mi6wiyck28fsmq8kw96h"))
1812 (file-name (git-file-name name version))))
1813 (build-system emacs-build-system)
1814 (propagated-inputs
1815 (list emacs-dash
1816 emacs-f
1817 emacs-flycheck
1818 emacs-haskell-mode
1819 emacs-s
1820 emacs-company
1821 emacs-lcr))
1822 (home-page "https://github.com/jyp/dante")
1823 (synopsis "Minor mode for interactive Haskell")
1824 (description
1825 "This package provides a minor mode for Haskell development that
1826 supports type hints, definition-jumping, completion, and more.")
1827 (license license:gpl3+))))
1828
1829 (define-public emacs-flycheck
1830 (package
1831 (name "emacs-flycheck")
1832 (version "32")
1833 (source
1834 (origin
1835 (method git-fetch)
1836 (uri (git-reference
1837 (url "https://github.com/flycheck/flycheck/")
1838 (commit version)))
1839 (sha256
1840 (base32 "0dx6wqxz1yfp4shas4yn6abqc8bz21ks3glcyzznm3xspjdaq21s"))
1841 (file-name (git-file-name name version))))
1842 (build-system emacs-build-system)
1843 (propagated-inputs
1844 (list emacs-dash))
1845 (native-inputs
1846 (list emacs-shut-up))
1847 (arguments
1848 (list
1849 #:phases
1850 #~(modify-phases %standard-phases
1851 (add-after 'unpack 'change-flycheck-version
1852 (lambda _
1853 (substitute* "flycheck.el"
1854 (("\\(pkg-info-version-info 'flycheck\\)")
1855 (string-append "\"" #$version "\""))))))
1856 ;; TODO: many failing tests
1857 #:tests? #f
1858 #:test-command
1859 #~(list "emacs" "-Q" "--batch"
1860 "-L" "."
1861 "--load" "test/flycheck-test"
1862 "--load" "test/run.el"
1863 "-f" "flycheck-run-tests-main")))
1864 (home-page "https://www.flycheck.org")
1865 (synopsis "On-the-fly syntax checking")
1866 (description
1867 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
1868 replacement for the older Flymake extension which is part of GNU Emacs, with
1869 many improvements and additional features.
1870
1871 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
1872 checking for over 30 programming and markup languages with more than 70
1873 different tools. It highlights errors and warnings inline in the buffer, and
1874 provides an optional IDE-like error list.")
1875 (license license:gpl3+))) ;+GFDLv1.3+ for the manual
1876
1877 (define-public emacs-flymake-flycheck
1878 (package
1879 (name "emacs-flymake-flycheck")
1880 (version "20210404.2128")
1881 (source
1882 (origin
1883 (method url-fetch)
1884 (uri (string-append "https://melpa.org/packages/flymake-flycheck-"
1885 version ".el"))
1886 (sha256
1887 (base32 "1m59ahd5gjlfwf328labwdlpcxh8ywywkwgfrlsy5jyxfc9ss4nv"))))
1888 (build-system emacs-build-system)
1889 (propagated-inputs (list emacs-flycheck))
1890 (home-page "https://github.com/purcell/flymake-flycheck")
1891 (synopsis "Use Flycheck checkers as Flymake backends")
1892 (description
1893 "This package provides support for running any Flycheck checker as a
1894 Flymake diagnostic backend. The effect is that Flymake will control when the
1895 checker runs, and Flymake will receive its errors.")
1896 (license license:gpl3+)))
1897
1898 (define-public emacs-flymake-quickdef
1899 ;; This particular commit includes bug fixes on top of 1.0.0 release.
1900 (let ((version "1.0.0")
1901 (revision "0")
1902 (commit "150c5839768a3d32f988f9dc08052978a68f2ad7"))
1903 (package
1904 (name "emacs-flymake-quickdef")
1905 (version (git-version version revision commit))
1906 (source
1907 (origin
1908 (method git-fetch)
1909 (uri (git-reference
1910 (url "https://github.com/karlotness/flymake-quickdef")
1911 (commit commit)))
1912 (file-name (git-file-name name version))
1913 (sha256
1914 (base32 "19gfd539l97j8xbrq1fw83b54mxbcamlz9m896088d3p01zf8b0g"))))
1915 (build-system emacs-build-system)
1916 (home-page "https://github.com/karlotness/flymake-quickdef")
1917 (synopsis "Quickly define a new Flymake backend")
1918 (description
1919 "This package mainly defines a macro which helps remove some of the
1920 boilerplate code from defining new Flymake backend functions.")
1921 (license license:gpl3+))))
1922
1923 (define-public emacs-flymake-kondor
1924 (package
1925 (name "emacs-flymake-kondor")
1926 (version "0.1.3")
1927 (source
1928 (origin
1929 (method git-fetch)
1930 (uri (git-reference
1931 (url "https://github.com/turbo-cafe/flymake-kondor")
1932 (commit version)))
1933 (file-name (git-file-name name version))
1934 (sha256
1935 (base32 "1vcl1q07faqqmrryyia36hbgf78g3cs51pbi0bx41yzz779ribvk"))))
1936 (build-system emacs-build-system)
1937 (home-page "https://github.com/turbo-cafe/flymake-kondor")
1938 (synopsis "Linter with clj-kondo")
1939 (description "This package adds Clojure syntax checker clj-kondo.")
1940 (license license:gpl3+)))
1941
1942 (define-public emacs-flymake-shellcheck
1943 ;; No tag, version grabbed from source .el file.
1944 (let ((commit "ac534e9ef15c82ac86ae65fe5004d29dbc8c92c7")
1945 (revision "1"))
1946 (package
1947 (name "emacs-flymake-shellcheck")
1948 (version (git-version "0.1" revision commit))
1949 (source
1950 (origin
1951 (method git-fetch)
1952 (uri (git-reference
1953 (url "https://github.com/federicotdn/flymake-shellcheck")
1954 (commit commit)))
1955 (file-name (git-file-name name version))
1956 (sha256
1957 (base32 "04yfb4sy41spjzk9mhm4gy0h8vnjx09p2g6nm1yzgd9a5ph9sqgl"))))
1958 (build-system emacs-build-system)
1959 (arguments
1960 '(#:phases
1961 (modify-phases %standard-phases
1962 (add-after 'unpack 'substitute-shellcheck-path
1963 (lambda* (#:key inputs #:allow-other-keys)
1964 (make-file-writable "flymake-shellcheck.el")
1965 (emacs-substitute-sexps "flymake-shellcheck.el"
1966 ("defcustom flymake-shellcheck-path"
1967 `(or (executable-find "shellcheck")
1968 ,(string-append (assoc-ref inputs "shellcheck")
1969 "/bin/shellcheck")))))))))
1970 (inputs
1971 (list shellcheck))
1972 (home-page "https://github.com/federicotdn/flymake-shellcheck")
1973 (synopsis "Flymake backend for Bash/Sh powered by ShellCheck")
1974 (description
1975 "This package provides a backend for Flymake to use the
1976 tool ShellCheck for static analyzing @command{bash} and @command{sh}
1977 scripts.")
1978 (license license:gpl3+))))
1979
1980 (define-public emacs-a
1981 (package
1982 (name "emacs-a")
1983 (version "1.0.0")
1984 (source (origin
1985 (method git-fetch)
1986 (uri (git-reference
1987 (url "https://github.com/plexus/a.el")
1988 (commit (string-append "v" version))))
1989 (file-name (git-file-name name version))
1990 (sha256
1991 (base32 "0zkv4xvw1jdsfxqqkxskl2l380gfs13n86hj4hhzrqf0sb6aymws"))))
1992 (build-system emacs-build-system)
1993 (home-page "https://github.com/plexus/a.el/")
1994 (synopsis
1995 "Emacs library for dealing with association lists and hash tables")
1996 (description "@code{emacs-a} provides Emacs Lisp functions for dealing
1997 with associative structures in a uniform and functional way. These functions
1998 can take association lists, hash tables, and in some cases vectors (where the
1999 index is considered the key).")
2000 (license license:gpl3+)))
2001
2002 (define-public emacs-ace-jump-mode
2003 (package
2004 (name "emacs-ace-jump-mode")
2005 (version "2.0")
2006 (home-page "https://github.com/winterTTr/ace-jump-mode")
2007 (source (origin
2008 (method git-fetch)
2009 (uri (git-reference
2010 (url home-page)
2011 (commit (string-append "v" version))))
2012 (sha256
2013 (base32
2014 "1bwvzh056ls2v7y26a0s4j5mj582dmds04lx4x6iqihs04ss74bb"))
2015 (file-name (git-file-name name version))))
2016 (build-system emacs-build-system)
2017 (synopsis "Cursor location minor mode for fast navigation")
2018 (description "Ace-jump-mode is a fast/direct cursor location minor
2019 mode. It creates an N-Branch search tree internally and marks all
2020 the possible position with predefined keys in within the whole Emacs
2021 view. This allows you to move to the character, word, or line almost
2022 directly.")
2023 (license license:gpl3+)))
2024
2025 (define-public emacs-ahg
2026 ;; No tags; commit from 2021-04-12.
2027 (let ((commit "77bc2a628df006dcd2dc359ac12acdf8091a1356")
2028 (revision "0"))
2029 (package
2030 (name "emacs-ahg")
2031 (version (git-version "1.0.0" revision commit))
2032 (source (origin
2033 (method git-fetch)
2034 (uri (git-reference
2035 (url "https://bitbucket.org/agriggio/ahg")
2036 (commit commit)))
2037 (file-name (git-file-name name version))
2038 (sha256
2039 (base32
2040 "1wmvz9d40aznqh2y078v8k7n3l66m48vnf873vifi8rwg6158kqh"))))
2041 (build-system emacs-build-system)
2042 (home-page "https://bitbucket.org/agriggio/ahg")
2043 (synopsis "Emacs front-end for the Mercurial SCM")
2044 (description
2045 "This package provides a simple Emacs front-end for the Mercurial
2046 Distributed @acronym{Source Control Management, SCM} system.")
2047 (license license:gpl3+))))
2048
2049 (define-public emacs-alarm-clock
2050 (package
2051 (name "emacs-alarm-clock")
2052 (version "1.0.1")
2053 (source (origin
2054 (method git-fetch)
2055 (uri (git-reference
2056 (url "https://github.com/wlemuel/alarm-clock")
2057 (commit (string-append "v" version))))
2058 (file-name (git-file-name name version))
2059 (sha256
2060 (base32
2061 "11afq6lnlqdzbll015fx3031bslwfaz5362qgk2ipgqlk872559h"))))
2062 (build-system emacs-build-system)
2063 (arguments
2064 (list #:include #~(cons "alarm.mp3" %default-include)
2065 #:phases
2066 #~(modify-phases %standard-phases
2067 (add-after 'unpack 'configure
2068 (lambda* (#:key inputs #:allow-other-keys)
2069 (let ((mpg123 (search-input-file inputs "/bin/mpg123"))
2070 (notify-send
2071 (search-input-file inputs "/bin/notify-send")))
2072 (substitute* "alarm-clock.el"
2073 (("\"mpg123\"") (string-append "\"" mpg123 "\""))
2074 (("notify-send") notify-send))))))))
2075 (inputs
2076 (list libnotify mpg123))
2077 (propagated-inputs
2078 (list emacs-f))
2079 (home-page "https://github.com/wlemuel/alarm-clock")
2080 (synopsis "Alarm clock for Emacs")
2081 (description "Alarm Clock provides an alarm clock for Emacs.")
2082 (license license:gpl3+)))
2083
2084 (define-public emacs-anaphora
2085 (package
2086 (name "emacs-anaphora")
2087 (version "1.0.4")
2088 (source
2089 (origin
2090 (method git-fetch)
2091 (uri (git-reference
2092 (url "https://github.com/rolandwalker/anaphora")
2093 (commit (string-append "v" version))))
2094 (file-name (git-file-name name version))
2095 (sha256
2096 (base32
2097 "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"))))
2098 (build-system emacs-build-system)
2099 (home-page "https://github.com/rolandwalker/anaphora/")
2100 (synopsis "Anaphoric expressions for Emacs Lisp")
2101 (description "@code{emacs-anaphora} implements anaphoric expressions for
2102 Emacs Lisp.
2103
2104 Anaphoric expressions implicitly create one or more temporary variables which
2105 can be referred to during the expression. This technique can improve clarity
2106 in certain cases. It also enables recursion for anonymous functions.")
2107 (license license:public-domain)))
2108
2109 (define-public emacs-xah-fly-keys
2110 (package
2111 (name "emacs-xah-fly-keys")
2112 (version "17.13.20220526011611")
2113 (source (origin
2114 (method git-fetch)
2115 (uri (git-reference
2116 (url "https://github.com/xahlee/xah-fly-keys")
2117 (commit "b1b1ea62c3f1a329376d9125592175cf2027ebc7")))
2118 (file-name (git-file-name name version))
2119 (sha256
2120 (base32
2121 "1gv8d9zgmhzjg6zk2a7y76dz30a3l91xb1p15vldka95faz197wn"))))
2122 (build-system emacs-build-system)
2123 (home-page "http://xahlee.info/emacs/misc/ergoemacs_vi_mode.html")
2124 (synopsis "Modal keybinding system for Emacs, based on command frequency and
2125 ergonomics")
2126 (description "xah-fly-keys.el is a modal editing mode for Emacs, like Vi,
2127 but the design of key/command choice is based on command frequency statistics
2128 and ease-of-key score. Most frequently used commands have most easy keys.")
2129 (license license:gpl3)))
2130
2131 (define-public emacs-xr
2132 (package
2133 (name "emacs-xr")
2134 (version "1.23")
2135 (source
2136 (origin
2137 (method url-fetch)
2138 (uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar"))
2139 (sha256
2140 (base32 "1nz3fhd4qx8fxib78y41jvnzn27lf7mlvpkz565d5zc9q4mr300z"))))
2141 (build-system emacs-build-system)
2142 (home-page "https://elpa.gnu.org/packages/xr.html")
2143 (synopsis "Convert string regexp to rx notation")
2144 (description
2145 "This is an inverse companion to the @code{rx} package for translating
2146 regexps in string form to the @code{rx} notation. Its chief uses are:
2147
2148 @itemize
2149 @item Migrating existing code to @code{rx} form, for better readability and
2150 maintainability
2151 @item Understanding complex regexp strings and finding errors in them
2152 @end itemize
2153
2154 In addition to Emacs regexps, this package can also parse and troubleshoot
2155 skip set strings, which are arguments to @code{skip-chars-forward} and
2156 @code{skip-chars-backward}.")
2157 (license license:gpl3+)))
2158
2159 (define-public emacs-ample-regexps
2160 (let ((commit "153969ce547afe410b8986f01c9ed4087c9cd20b")
2161 (revision "2"))
2162 (package
2163 (name "emacs-ample-regexps")
2164 (version (git-version "0.1" revision commit))
2165 (source
2166 (origin
2167 (method git-fetch)
2168 (uri (git-reference
2169 (url "https://github.com/immerrr/ample-regexps.el")
2170 (commit commit)))
2171 (file-name (git-file-name name version))
2172 (sha256
2173 (base32
2174 "0dkp7bcd7h2ds40wyszy11nmh7c2jxrwy04ayz7pbxh53ir7s2k0"))))
2175 (build-system emacs-build-system)
2176 (native-inputs
2177 (list emacs-ert-runner))
2178 (arguments
2179 `(#:tests? #t
2180 #:test-command '("ert-runner" "-l" "ample-regexps")))
2181 (home-page "https://github.com/immerrr/ample-regexps.el")
2182 (synopsis "Compose and reuse Emacs regexps")
2183 (description
2184 "This package allows common parts of regexps to be easily picked out
2185 and reused.")
2186 (license license:gpl3+))))
2187
2188 (define-public emacs-airline-themes
2189 (package
2190 (name "emacs-airline-themes")
2191 (version "1.8")
2192 (source
2193 (origin
2194 (method git-fetch)
2195 (uri (git-reference
2196 (url "https://github.com/AnthonyDiGirolamo/airline-themes")
2197 (commit version)))
2198 (file-name (git-file-name name version))
2199 (sha256
2200 (base32 "1jx17g8a6pxkw4zlx3fwhqgxfzcf3019k8fklykamfrkharzsc2l"))))
2201 (build-system emacs-build-system)
2202 (propagated-inputs
2203 (list emacs-powerline))
2204 (home-page "https://github.com/AnthonyDiGirolamo/airline-themes")
2205 (synopsis "Vim-airline themes for Emacs Powerline")
2206 (description
2207 "This is a port of the themes in Vim-airline to Emacs Powerline.")
2208 (license license:expat)))
2209
2210 (define-public emacs-ample-theme
2211 (let ((commit "536966adf882446165a1f756830028faa792c7a9")
2212 (revision "1"))
2213 (package
2214 (name "emacs-ample-theme")
2215 (version (git-version "0.0.0" revision commit))
2216 (source (origin
2217 (method git-fetch)
2218 (uri (git-reference
2219 (url "https://github.com/jordonbiondo/ample-theme")
2220 (commit commit)))
2221 (file-name (git-file-name name version))
2222 (sha256
2223 (base32
2224 "07bpv8dag40qjnm5000pgzpazj4whfxf93x2vprz26sg3mjfx0nf"))))
2225 (build-system emacs-build-system)
2226 (home-page "https://github.com/jordonbiondo/ample-theme")
2227 (synopsis "Theme for Emacs providing dark, light, and flat versions")
2228 (description "Ample themes is a collection of three themes sharing a
2229 similar pallet with a light, dark and flat versions with a focus on being easy
2230 on the eyes during night and day. They only support GUI and 256 colour
2231 terminals.")
2232 (license license:gpl3+))))
2233
2234 (define-public emacs-reformatter
2235 (package
2236 (name "emacs-reformatter")
2237 (version "0.6")
2238 (source
2239 (origin
2240 (method git-fetch)
2241 (uri (git-reference
2242 (url "https://github.com/purcell/reformatter.el")
2243 (commit version)))
2244 (file-name (git-file-name name version))
2245 (sha256
2246 (base32 "1dfn7c3gpavpiwd73v2pasd8wd8b62dczhg9iv1cgh8vaqlsf92x"))))
2247 (build-system emacs-build-system)
2248 (home-page "https://github.com/purcell/reformatter.el")
2249 (synopsis "Define commands which run reformatters on the current buffer")
2250 (description
2251 "This library lets elisp authors easily define an idiomatic command to
2252 reformat the current buffer using a command-line program, together with an
2253 optional minor mode which can apply this command automatically on save.")
2254 (license license:gpl3+)))
2255
2256 (define-public emacs-relative-buffers
2257 (let ((release "0.0.1")
2258 (revision "0")
2259 (commit "9762fe268e9ff150dcec2e2e45d862d82d5c4008"))
2260 (package
2261 (name "emacs-relative-buffers")
2262 (version (git-version release revision commit))
2263 (source
2264 (origin
2265 (method git-fetch)
2266 (uri (git-reference
2267 (url "https://github.com/emacsattic/relative-buffers")
2268 (commit commit)))
2269 (file-name (git-file-name name version))
2270 (sha256
2271 (base32 "0fzhwbpyndwrmxip9zlcwkrr675l5pzwcygi45hv7w1hn39w0hxp"))
2272 (snippet
2273 '(begin
2274 ;; Delete the Cask test runners.
2275 (for-each delete-file '("Cask" "test/test-helper.el"))))))
2276 (build-system emacs-build-system)
2277 (arguments
2278 (list
2279 #:tests? #t
2280 #:test-command #~(list "ert-runner")))
2281 (native-inputs
2282 (list emacs-ert-runner))
2283 (propagated-inputs
2284 (list emacs-dash emacs-f emacs-s))
2285 (home-page "https://github.com/emacsattic/relative-buffers")
2286 (synopsis "Minor mode to rename buffers by project structure")
2287 (description
2288 "This package provides a minor mode for renaming buffers according to
2289 project structure. For Python buffers, that will be the whole module name.
2290 For temporary files and directories, that will be the relative path from the
2291 project root.")
2292 (license license:gpl3+))))
2293
2294 (define-public emacs-relint
2295 (package
2296 (name "emacs-relint")
2297 (version "1.20")
2298 (source
2299 (origin
2300 (method url-fetch)
2301 (uri (string-append "https://elpa.gnu.org/packages/"
2302 "relint-" version ".tar"))
2303 (sha256
2304 (base32 "0r20dim2r4a4bv0fmgbnq3graa7hhlai55h9qyknapqbr2j1v1h7"))))
2305 (build-system emacs-build-system)
2306 (propagated-inputs (list emacs-xr))
2307 (home-page "https://github.com/mattiase/relint")
2308 (synopsis "Elisp regexp mistake finder")
2309 (description
2310 "Relint (regular expression lint) scans Elisp files for mistakes in
2311 regexps, including deprecated syntax and bad practice. It also checks the
2312 regexp-like arguments to @code{skip-chars-forward} and
2313 @code{skip-chars-backward}.")
2314 (license license:gpl3+)))
2315
2316 (define-public emacs-bug-hunter
2317 (let ((commit "b88d981afa9154b236c5a3a83b50d5889d46c6a7")
2318 (revision "1"))
2319 (package
2320 (name "emacs-bug-hunter")
2321 (version (git-version "1.3.1" revision commit))
2322 (source
2323 (origin
2324 (method git-fetch)
2325 (uri (git-reference
2326 (url "https://github.com/Malabarba/elisp-bug-hunter")
2327 (commit commit)))
2328 (file-name (git-file-name name commit))
2329 (sha256
2330 (base32
2331 "134fj493sdn93pyyac8rpz1fzahzmayvphsrmqp3wvgysmfqm38l"))))
2332 (build-system emacs-build-system)
2333 (home-page "https://github.com/Malabarba/elisp-bug-hunter")
2334 (synopsis "Hunt down errors by bisecting elisp files")
2335 (description
2336 "The Bug Hunter is an Emacs library that finds the source of an error
2337 or unexpected behavior inside an elisp configuration file (typically
2338 @file{init.el} or @file{.emacs}).")
2339 (license license:gpl3+))))
2340
2341 \f
2342 ;;;
2343 ;;; Web browsing.
2344 ;;;
2345
2346 (define-public emacs-w3m
2347 ;; Emacs-w3m follows a "rolling release" model.
2348 (package
2349 (name "emacs-w3m")
2350 (version "20220508.2259")
2351 (source (origin
2352 ;; "Officially" this is still on cvs.namazu.org, but that repo
2353 ;; seems to be unreachable.
2354 (method git-fetch)
2355 (uri (git-reference
2356 (url "https://github.com/emacs-w3m/emacs-w3m.git")
2357 (commit "bbcebbe20ebfa807a3e4beaadf40ce6f4be213e7")))
2358 (sha256
2359 (base32
2360 "0y892n8jaxzyxi1fgyklc7zfh57ibp4yyywmif69dm28hykj6lmz"))))
2361 (build-system gnu-build-system)
2362 (native-inputs (list autoconf texinfo emacs-minimal))
2363 (inputs (list w3m imagemagick))
2364 (arguments
2365 (list
2366 #:modules '((guix build gnu-build-system)
2367 ((guix build emacs-build-system) #:prefix emacs:)
2368 (guix build utils)
2369 (guix build emacs-utils))
2370 #:imported-modules `(,@%gnu-build-system-modules
2371 (guix build emacs-build-system)
2372 (guix build emacs-utils))
2373 #:configure-flags
2374 #~(list (string-append "--with-lispdir=" (emacs:elpa-directory #$output))
2375 (string-append "--with-icondir="
2376 #$output "/share/images/emacs-w3m")
2377 ;; Leave .el files uncompressed, otherwise GC can't
2378 ;; identify run-time dependencies. See
2379 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
2380 "--without-compress-install")
2381 #:tests? #f ; no check target
2382 #:phases
2383 #~(modify-phases %standard-phases
2384 (add-after 'unpack 'autoconf
2385 (lambda _
2386 (invoke "autoconf")))
2387 (add-before 'configure 'support-emacs!
2388 (lambda _
2389 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
2390 ;; unsupported.
2391 (substitute* "configure"
2392 (("EMACS_FLAVOR=unsupported") "EMACS_FLAVOR=emacs"))))
2393 (add-before 'build 'patch-exec-paths
2394 (lambda* (#:key inputs outputs #:allow-other-keys)
2395 (let ((out (assoc-ref outputs "out")))
2396 (make-file-writable "w3m.el")
2397 (emacs-substitute-variables "w3m.el"
2398 ("w3m-command" (search-input-file inputs "/bin/w3m"))
2399 ("w3m-touch-command" (search-input-file inputs "/bin/touch"))
2400 ("w3m-icon-directory"
2401 (string-append out "/share/images/emacs-w3m")))
2402 (make-file-writable "w3m-image.el")
2403 (emacs-substitute-variables "w3m-image.el"
2404 ("w3m-imagick-convert-program"
2405 (search-input-file inputs "/bin/convert"))
2406 ("w3m-imagick-identify-program"
2407 (search-input-file inputs "/bin/identify"))))))
2408 (replace 'install
2409 (lambda* (#:key outputs #:allow-other-keys)
2410 (invoke "make" "install" "install-icons")
2411 (with-directory-excursion
2412 (emacs:elpa-directory (assoc-ref outputs "out"))
2413 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
2414 (symlink "w3m-load.el" "w3m-autoloads.el")))))))
2415 (home-page "http://emacs-w3m.namazu.org/")
2416 (synopsis "Simple Web browser for Emacs based on w3m")
2417 (description
2418 "Emacs-w3m is an emacs interface for the w3m web browser.")
2419 (license license:gpl2+)))
2420
2421 (define-public emacs-wget
2422 (package
2423 (name "emacs-wget")
2424 (version "0.5.0")
2425 (source
2426 (origin
2427 (method url-fetch)
2428 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
2429 version ".orig.tar.gz"))
2430 (sha256
2431 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
2432 (build-system emacs-build-system)
2433 (inputs (list wget))
2434 (native-inputs
2435 (list emacs-minimal))
2436 (arguments
2437 `(#:tests? #f ;no check target
2438 #:phases
2439 (modify-phases %standard-phases
2440 (add-after 'unpack 'patch-exec-paths
2441 (lambda* (#:key inputs outputs #:allow-other-keys)
2442 (emacs-substitute-variables "wget.el"
2443 ("wget-command" (search-input-file inputs "/bin/wget"))))))))
2444 (home-page "https://www.emacswiki.org/emacs/EmacsWget")
2445 (synopsis "Simple file downloader for Emacs based on wget")
2446 (description
2447 "Emacs-wget is an emacs interface for the wget file downloader.")
2448 (license license:gpl2+)))
2449
2450 (define-public emacs-eww-lnum
2451 (package
2452 (name "emacs-eww-lnum")
2453 (version "1.1")
2454 (source (origin
2455 (method git-fetch)
2456 (uri (git-reference
2457 (url "https://github.com/m00natic/eww-lnum")
2458 (commit version)))
2459 (file-name (git-file-name name version))
2460 (sha256
2461 (base32
2462 "0gs6bi3s2sszc6v2b26929azmn5513kvyin99n4d0ark1jdbjmv2"))))
2463 (build-system emacs-build-system)
2464 (home-page "https://github.com/m00natic/eww-lnum")
2465 (synopsis "Conkeror-like functionality for Eww")
2466 (description "This is extension to the Emacs browser Eww that adds
2467 Conkeror-like functionality. In short, currently visible links, forms,
2468 buttons are temporarily assigned numbers with which the former can be
2469 immediately activated. Also filtering can be applied so selection can be
2470 incrementally confined in Isearch manner.")
2471 (license license:gpl3+)))
2472
2473
2474 \f
2475 ;;;
2476 ;;; Multimedia.
2477 ;;;
2478
2479 (define emacs-emms-print-metadata
2480 (package
2481 (name "emacs-emms-print-metadata")
2482 (version "11")
2483 (source
2484 (origin
2485 (method url-fetch)
2486 (uri (string-append "https://elpa.gnu.org/packages/"
2487 "emms-" version ".tar"))
2488 (sha256
2489 (base32 "000lqhsafyh1n293ksnlyavxv1pzl5pazds4sgxjcqd45lyn55ii"))))
2490 (build-system gnu-build-system)
2491 (arguments
2492 (list
2493 #:make-flags #~(list "emms-print-metadata")
2494 #:tests? #f ; No tests.
2495 #:phases
2496 #~(modify-phases %standard-phases
2497 (delete 'configure)
2498 (replace 'install
2499 (lambda _
2500 (install-file "src/emms-print-metadata"
2501 (string-append #$output "/bin"))
2502 (install-file "emms-print-metadata.1"
2503 (string-append #$output "/share/man/man1")))))))
2504 (inputs
2505 (list taglib))
2506 (home-page "https://www.gnu.org/software/emms/")
2507 (synopsis "The Emacs Multimedia System")
2508 (description
2509 "EMMS is the Emacs Multimedia System. It is a small front-end which
2510 can control one of the supported external players. Thus, it supports
2511 whatever formats are supported by your music player. It also
2512 supports tagging and playlist management, all behind a clean and
2513 light user interface.")
2514 (license license:gpl3+)))
2515
2516 (define-public emacs-emms
2517 (package
2518 (inherit emacs-emms-print-metadata)
2519 (name "emacs-emms")
2520 (build-system emacs-build-system)
2521 (arguments
2522 `(#:phases
2523 (modify-phases %standard-phases
2524 (add-after 'unpack 'set-external-programs
2525 ;; Specify the absolute file names of the various programs
2526 ;; so that everything works out-of-the-box. (tinytag missing)
2527 (lambda* (#:key inputs #:allow-other-keys)
2528 (let ((amixer (search-input-file inputs "/bin/amixer"))
2529 (emms-print-metadata
2530 (search-input-file inputs "/bin/emms-print-metadata"))
2531 (exiftool (search-input-file inputs "/bin/exiftool"))
2532 (metaflac (search-input-file inputs "/bin/metaflac"))
2533 (mp3info (search-input-file inputs "/bin/mp3info"))
2534 (mpg321 (search-input-file inputs "/bin/mpg321"))
2535 (mid3v2 (search-input-file inputs "/bin/mid3v2"))
2536 (ogg123 (search-input-file inputs "/bin/ogg123"))
2537 (ogginfo (search-input-file inputs "/bin/ogginfo"))
2538 (opusinfo (search-input-file inputs "/bin/opusinfo"))
2539 (vorbiscomment (search-input-file inputs "/bin/vorbiscomment")))
2540 (emacs-substitute-variables "emms-player-mpg321-remote.el"
2541 ("emms-player-mpg321-remote-command"
2542 (string-append mpg321 "/bin/mpg321")))
2543 (substitute* "emms-player-simple.el"
2544 (("\"ogg123\"") (string-append "\"" ogg123 "\"")))
2545 (substitute* "emms-player-simple.el"
2546 (("\"mpg321\"") (string-append "\"" mpg321 "\"")))
2547 (emacs-substitute-variables "emms-info-ogginfo.el"
2548 ("emms-info-ogginfo-program-name" ogginfo))
2549 (emacs-substitute-variables "emms-info-opusinfo.el"
2550 ("emms-info-opusinfo-program-name" opusinfo))
2551 (emacs-substitute-variables "emms-info-libtag.el"
2552 ("emms-info-libtag-program-name" emms-print-metadata))
2553 (emacs-substitute-variables "emms-info-mp3info.el"
2554 ("emms-info-mp3info-program-name" mp3info))
2555 (emacs-substitute-variables "emms-info-metaflac.el"
2556 ("emms-info-metaflac-program-name" metaflac))
2557 (emacs-substitute-variables "emms-source-file.el"
2558 ("emms-source-file-gnu-find" (which "find")))
2559 (substitute* "emms-volume-amixer.el"
2560 (("\"amixer\"") (string-append "\"" amixer "\"")))
2561 (substitute* "emms-tag-editor.el"
2562 (("\"mid3v2\"") (string-append "\"" mid3v2 "\""))
2563 (("\"vorbiscomment\"")
2564 (string-append "\"" vorbiscomment "\"")))
2565 (substitute* "emms-info-exiftool.el"
2566 (("\"exiftool\"") (string-append "\"" exiftool "\"")))))))))
2567 (inputs
2568 (list emacs-emms-print-metadata
2569 alsa-utils
2570 flac ;for metaflac
2571 vorbis-tools
2572 mpg321
2573 mp3info
2574 python-mutagen
2575 perl-image-exiftool
2576 opus-tools))))
2577
2578 (define-public emacs-emms-mode-line-cycle
2579 (package
2580 (name "emacs-emms-mode-line-cycle")
2581 (version "0.2.5")
2582 (source
2583 (origin
2584 (method git-fetch)
2585 (uri (git-reference
2586 (url "https://github.com/momomo5717/emms-mode-line-cycle")
2587 (commit version)))
2588 (file-name (git-file-name name version))
2589 (sha256
2590 (base32
2591 "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp"))))
2592 (build-system emacs-build-system)
2593 (propagated-inputs
2594 (list emacs-emms))
2595 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
2596 (synopsis "Display the EMMS mode line as a ticker")
2597 (description
2598 "This is a minor mode for updating the EMMS mode-line string cyclically
2599 within a specified width. It is useful for displaying long track titles.")
2600 (license license:gpl3+)))
2601
2602 (define-public emacs-emprise
2603 (package
2604 (name "emacs-emprise")
2605 (version "0.3.0")
2606 (source
2607 (origin
2608 (method git-fetch)
2609 (uri (git-reference
2610 (url "https://git.sr.ht/~plattfot/emprise")
2611 (commit (string-append "v" version))))
2612 (sha256
2613 (base32
2614 "0yddvvpjdcgsiwv24jbddkgl5r1lxgz037akjln6z9acx9qrc8px"))
2615 (file-name (git-file-name name version))))
2616 (build-system emacs-build-system)
2617 (home-page "https://sr.ht/~plattfot/emprise")
2618 (synopsis "Control MPRIS supported media players from Emacs")
2619 (description "This package provides a set of commands to control media
2620 players that supports the Media Player Remote Interfacing
2621 Specification (MPRIS) protocol from Emacs. It uses Emacs' Completing Read
2622 framework as the user interface, which integrates well with Vertico or
2623 Selectrum.")
2624 (license license:gpl3+)))
2625
2626 \f
2627 ;;;
2628 ;;; Miscellaneous.
2629 ;;;
2630
2631 (define-public emacs-ace-link
2632 (package
2633 (name "emacs-ace-link")
2634 (version "0.5.0")
2635 (source
2636 (origin
2637 (method git-fetch)
2638 (uri (git-reference
2639 (url "https://github.com/abo-abo/ace-link")
2640 (commit version)))
2641 (file-name (git-file-name name version))
2642 (sha256
2643 (base32
2644 "147dz79vg4ym5wg3d544bw2khdb2j3hr73rw4qfm64wf0q2dj0vk"))))
2645 (build-system emacs-build-system)
2646 (propagated-inputs
2647 (list emacs-avy))
2648 (home-page "https://github.com/abo-abo/ace-link")
2649 (synopsis "Quickly follow links in Emacs")
2650 (description
2651 "Currently, to jump to a link in a @code{Info-mode}, @code{help-mode},
2652 @code{woman-mode}, @code{org-mode}, @code{eww-mode}, @code{compilation-mode},
2653 @code{goto-address-mode} buffer, you can tab through the links to select the
2654 one you want. This is an O(N) operation, where the N is the amount of links.
2655 This package turns this into an O(1) operation. It does so by assigning a
2656 letter to each link using avy.")
2657 (license license:gpl3+)))
2658
2659 (define-public emacs-app-launcher
2660 ;; XXX: Upstream did not tag any commit so far. Base version is extracted
2661 ;; from Version keyword.
2662 (let ((commit "d5015e394b0a666a8c7c4d4bdf786266e773b145")
2663 (revision "0"))
2664 (package
2665 (name "emacs-app-launcher")
2666 (version (git-version "0.1" revision commit))
2667 (source
2668 (origin
2669 (method git-fetch)
2670 (uri (git-reference
2671 (url "https://github.com/SebastienWae/app-launcher")
2672 (commit commit)))
2673 (file-name (git-file-name name version))
2674 (sha256
2675 (base32 "0l97ajy27awydyd4gc6323wyhpm5vm2db6i0lp5gqaxi9fp7jivp"))))
2676 (build-system emacs-build-system)
2677 (home-page "https://github.com/SebastienWae/app-launcher")
2678 (synopsis "Use Emacs standard completion to launch applications")
2679 (description "This package defines the @code{app-launcher-run-app}
2680 command, which uses Emacs standard completion to select an application
2681 installed on your machine and launch it.")
2682 (license license:gpl3+))))
2683
2684 (define-public emacs-alchemist
2685 (package
2686 (name "emacs-alchemist")
2687 (version "1.8.2")
2688 (source
2689 (origin
2690 (method url-fetch)
2691 (uri (string-append "https://stable.melpa.org/packages/"
2692 "alchemist-" version ".tar"))
2693 (sha256
2694 (base32 "0ygwf9d739zqc8dcckw0j0bqkipw7cmxbrx3l281x237a3d384yw"))))
2695 (build-system emacs-build-system)
2696 (propagated-inputs
2697 (list emacs-elixir-mode emacs-dash emacs-company emacs-pkg-info))
2698 (home-page "http://www.github.com/tonini/alchemist.el")
2699 (synopsis "Elixir tooling integration into Emacs")
2700 (description
2701 "This package brings you all the Elixir tooling and power inside your Emacs
2702 editor. It comes with commands to compile, execute and test your code, spawn
2703 an interactive shell, and look up definitions and documentation as well as
2704 code completion and project management support.")
2705 (license license:gpl3+)))
2706
2707 (define-public emacs-auto-sudoedit
2708 (package
2709 (name "emacs-auto-sudoedit")
2710 (version "1.1.0")
2711 (source
2712 (origin
2713 (method git-fetch)
2714 (uri (git-reference
2715 (url "https://github.com/ncaq/auto-sudoedit")
2716 (commit (string-append "v" version))))
2717 (file-name (git-file-name name version))
2718 (sha256
2719 (base32 "1rhdvrj2rjbvl7vkb0wcp6krqxcaigl7jk9z8yvhx6s4cm2qli6q"))))
2720 (propagated-inputs
2721 (list emacs-f))
2722 (build-system emacs-build-system)
2723 (home-page "https://github.com/ncaq/auto-sudoedit")
2724 (synopsis "Automatically re-open read-only files with sudo")
2725 (description
2726 "This package automatically reopens a file or directory with
2727 @command{sudo} if it cannot write to it.")
2728 (license license:expat)))
2729
2730 (define-public emacs-read-only-cfg
2731 ;; XXX: Upstream has no tagged release. Version is extracted from keyword
2732 ;; in main file.
2733 (let ((commit "c128c9412f768adf89ff5c4ad433cf0beab6656a")
2734 (revision "0"))
2735 (package
2736 (name "emacs-read-only-cfg")
2737 (version (git-version "0.1.0" revision commit))
2738 (source
2739 (origin
2740 (method git-fetch)
2741 (uri (git-reference
2742 (url "https://github.com/pfchen/read-only-cfg")
2743 (commit commit)))
2744 (file-name (git-file-name name version))
2745 (sha256
2746 (base32 "11zj4ysmacvz82j1siqlcp30i05my20lscls8wkdjl75g9d2b12l"))))
2747 (build-system emacs-build-system)
2748 (home-page "https://github.com/pfchen/read-only-cfg")
2749 (synopsis "Make files read-only based on user configuration")
2750 (description
2751 "Read-only-cfg is an Emacs minor mode that can automatically make files
2752 read-only based on user configuration. User configuration may be prefix
2753 directories or regex patterns.")
2754 (license license:gpl3+))))
2755
2756 (define-public emacs-bbdb
2757 (package
2758 (name "emacs-bbdb")
2759 (version "3.2.2.2")
2760 (source
2761 (origin
2762 (method url-fetch)
2763 (uri (string-append "https://elpa.gnu.org/packages/"
2764 "bbdb-" version ".tar"))
2765 (sha256
2766 (base32 "0bf20r5xhxln6z4qp8zrlln0303dkci2ydsr74pxcj08aqgk5xxf"))))
2767 (build-system emacs-build-system)
2768 (arguments
2769 ;; XXX: The following file cannot be byte-compiled, because et requires
2770 ;; `vm-autoloads', from the VM package, with is neither in Emacs nor
2771 ;; packaged in Guix. So, don't bother for now.
2772 `(#:exclude '("bbdb-vm\\.el")))
2773 (home-page "http://elpa.gnu.org/packages/bbdb.html")
2774 (synopsis "Contact management utility for Emacs")
2775 (description
2776 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
2777 an address book for email and snail mail addresses, phone numbers and the
2778 like. It can be linked with various Emacs mail clients (Message and Mail
2779 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
2780 (license license:gpl3+)))
2781
2782 (define-public emacs-beacon
2783 (package
2784 (name "emacs-beacon")
2785 (version "1.3.4")
2786 (source
2787 (origin
2788 (method git-fetch)
2789 (uri (git-reference
2790 (url "https://github.com/Malabarba/beacon")
2791 (commit version)))
2792 (file-name (git-file-name name version))
2793 (sha256
2794 (base32
2795 "0mypzfasclq7bmw0i8hfyp8c1ycd3kdgd5h1faygzh9r0phh7ciy"))))
2796 (build-system emacs-build-system)
2797 (home-page "https://github.com/Malabarba/beacon")
2798 (synopsis "Emacs minor mode creating a light that follows your cursor around")
2799 (description
2800 "Beacon is an Emacs minor-mode. Whenever the window scrolls a light will
2801 shine on top of your cursor so you know where it is.")
2802 (license license:gpl3+)))
2803
2804 (define-public emacs-counsel-bbdb
2805 (package
2806 (name "emacs-counsel-bbdb")
2807 (version "0.0.5")
2808 (source
2809 (origin
2810 (method git-fetch)
2811 (uri (git-reference
2812 (url "https://github.com/redguardtoo/counsel-bbdb")
2813 (commit version)))
2814 (file-name (git-file-name name version))
2815 (sha256
2816 (base32 "1jrj7hx6y518np3xcnarbj0c43lglcf9gww3fhfqp7lzxl9hvi8s"))))
2817 (build-system emacs-build-system)
2818 (propagated-inputs (list emacs-bbdb emacs-ivy))
2819 (home-page "https://github.com/redguardtoo/counsel-bbdb")
2820 (synopsis "Ivy interface for BBDB")
2821 (description "This Ivy extension enables the use of @code{ivy-mode} to input
2822 email addresses from BBDB efficiently. The main functions are:
2823 @table @code
2824 @item counsel-bbdb-complete-mail to input email addresses;
2825 @item counsel-bbdb-reload' to reload contacts from BBDB database;
2826 @item counsel-bbdb-expand-mail-alias to expand mail alias.
2827 @end table
2828 Since @code{counsel-bbdb} is based on @code{ivy-mode}, all Ivy key bindings
2829 are supported. For example, after @samp{C-u M-x counsel-bbdb-complete-mail},
2830 you can press @samp{C-M-n} to input multiple email addresses.")
2831 (license license:gpl3+)))
2832
2833 (define-public emacs-bluetooth
2834 (package
2835 (name "emacs-bluetooth")
2836 (version "0.3.1")
2837 (source
2838 (origin
2839 (method url-fetch)
2840 (uri (string-append "https://elpa.gnu.org/packages/"
2841 "bluetooth-" version ".tar"))
2842 (sha256
2843 (base32 "1p10kcim5wqnbj2kiqv6hgjkzznaa48qysnnf8ym90mylsczr70z"))))
2844 (build-system emacs-build-system)
2845 (inputs
2846 (list bluez dbus))
2847 (propagated-inputs
2848 (list emacs-dash))
2849 (home-page "https://gitlab.com/rstocker/emacs-bluetooth")
2850 (synopsis "Manage Bluetooth devices using Emacs")
2851 (description
2852 "This package implements basic Bluetooth management functionality, such
2853 as connecting and disconnecting devices, setting properties and aliases,
2854 putting the adapter in discovery mode and controlling its power supply. It
2855 also includes a pairing agent.")
2856 (license license:gpl3+)))
2857
2858 (define-public emacs-aggressive-indent
2859 (package
2860 (name "emacs-aggressive-indent")
2861 (version "1.10.0")
2862 (source (origin
2863 (method url-fetch)
2864 (uri (string-append "https://elpa.gnu.org/packages/"
2865 "aggressive-indent-" version ".tar"))
2866 (sha256
2867 (base32
2868 "166jk1z0vw481lfi3gbg7f9vsgwfv8fiyxpkfphgvgcmf5phv4q1"))))
2869 (build-system emacs-build-system)
2870 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
2871 (synopsis "Minor mode to aggressively keep your code always indented")
2872 (description
2873 "@code{aggressive-indent-mode} is a minor mode that keeps your code
2874 always indented. It reindents after every change, making it more reliable
2875 than @code{electric-indent-mode}.")
2876 (license license:gpl2+)))
2877
2878 (define-public emacs-gcmh
2879 ;; No tagged release upstream, but the commit below correspond to the 0.2.1
2880 ;; release.
2881 (let ((commit "0089f9c3a6d4e9a310d0791cf6fa8f35642ecfd9"))
2882 (package
2883 (name "emacs-gcmh")
2884 (version "0.2.1")
2885 (source
2886 (origin
2887 (method git-fetch)
2888 (uri (git-reference
2889 (url "https://gitlab.com/koral/gcmh")
2890 (commit commit)))
2891 (sha256
2892 (base32 "0yh1ap8phv3x44rp0yr6z884xqw2apanbx4c0acqglvj0gaaqx25"))
2893 (file-name (git-file-name name version))))
2894 (build-system emacs-build-system)
2895 (home-page "https://gitlab.com/koral/gcmh")
2896 (synopsis "Emacs Garbage Collector Magic Hack")
2897 (description
2898 "This package enforces a sneaky @dfn{garbage collector} (GC) strategy
2899 to minimize GC interference with the activity. During normal use a high GC
2900 threshold is set. When idling GC is immediately triggered and a low threshold
2901 is set.")
2902 (license license:gpl3+))))
2903
2904 (define-public emacs-ctrlf
2905 (package
2906 (name "emacs-ctrlf")
2907 (version "1.5")
2908 (source
2909 (origin
2910 (method git-fetch)
2911 (uri (git-reference
2912 (url "https://github.com/raxod502/ctrlf")
2913 (commit (string-append "v" version))))
2914 (file-name (git-file-name name version))
2915 (sha256
2916 (base32 "1nd1yk86s0dyf87q77dg724f6629p270q3ar85jgp8gclw5plvyz"))))
2917 (build-system emacs-build-system)
2918 (home-page "https://github.com/raxod502/ctrlf/")
2919 (synopsis "Single-buffer text search in Emacs")
2920 (description "CTRLF (pronounced @emph{control F}) is an intuitive and
2921 efficient solution for single-buffer text search in Emacs, replacing packages
2922 such as Isearch, Swiper, and helm-swoop. It takes inspiration from the
2923 widely-adopted and battle-tested @samp{Ctrl+F} interfaces in programs such as
2924 web browsers, but follows the flow and keybindings of Isearch.")
2925 (license license:expat)))
2926
2927 (define-public emacs-dhall-mode
2928 ;; There is no proper release. The base version is extracted from the
2929 ;; "Version" keyword in the main file.
2930 (let ((revision "1")
2931 (commit "484bcf8f78f1183ef45c3b04a362bb73690c6b9b"))
2932 (package
2933 (name "emacs-dhall-mode")
2934 (version (git-version "0.1.3" revision commit))
2935 (source
2936 (origin
2937 (method git-fetch)
2938 (uri
2939 (git-reference
2940 (url "https://github.com/psibi/dhall-mode")
2941 (commit commit)))
2942 (file-name (git-file-name name version))
2943 (sha256
2944 (base32 "1wggg8jlzg9rph4jhxp6yiri178rnasbv38838i973kjgqjxrl76"))))
2945 (build-system emacs-build-system)
2946 (propagated-inputs
2947 (list emacs-reformatter))
2948 (home-page "https://github.com/psibi/dhall-mode")
2949 (synopsis "Major mode for working with Dhall configuration language")
2950 (description
2951 "Dhall-mode provides an Emacs Major mode for working with the Dhall
2952 configuration language. It features:
2953
2954 @itemize
2955 @item Syntax highlighting
2956 @item Multiline support for String
2957 @item Basic indentation, commenting
2958 @item Automatic formatting on save using dhall-format.
2959 @item Error highlighting.
2960 @end itemize")
2961 (license license:gpl3+))))
2962
2963 (define-public emacs-link-hint
2964 ;; Last release was in 2015.
2965 (let ((commit "83cd0489b16f013647d0507ef20905a0a91db433")
2966 (revision "4"))
2967 (package
2968 (name "emacs-link-hint")
2969 (version (git-version "0.1" revision commit))
2970 (source
2971 (origin
2972 (method git-fetch)
2973 (uri (git-reference
2974 (url "https://github.com/noctuid/link-hint.el")
2975 (commit commit)))
2976 (file-name (git-file-name name version))
2977 (sha256
2978 (base32
2979 "0kwaia6i0asr7yqcw1anzq6lf93357cc1fphkvp0llbmxizmkzb3"))))
2980 (build-system emacs-build-system)
2981 (propagated-inputs
2982 (list emacs-avy))
2983 (home-page "https://github.com/noctuid/link-hint.el")
2984 (synopsis "Vimperator-style link-hinting in Emacs")
2985 (description "This package provides commands for visiting and acting on
2986 links.")
2987 (license license:gpl3+))))
2988
2989 (define-public emacs-ag
2990 (package
2991 (name "emacs-ag")
2992 (version "0.48")
2993 (source
2994 (origin
2995 (method git-fetch)
2996 (uri (git-reference
2997 (url "https://github.com/Wilfred/ag.el")
2998 (commit version)))
2999 (file-name (git-file-name name version))
3000 (sha256
3001 (base32 "1p918y24vcn2pdliaymd210xp9fvhd4a1srqbv2lfiqrh59yjidx"))))
3002 (build-system emacs-build-system)
3003 (arguments
3004 `(#:phases
3005 (modify-phases %standard-phases
3006 (add-before 'install 'make-info
3007 (lambda _
3008 (with-directory-excursion "docs"
3009 (invoke "make" "info"))))
3010 (add-after 'install 'install-info
3011 (lambda* (#:key outputs #:allow-other-keys)
3012 (let* ((out (assoc-ref outputs "out"))
3013 (info (string-append out "/share/info")))
3014 (install-file "docs/_build/texinfo/agel.info" info)))))))
3015 (native-inputs
3016 (list python-sphinx texinfo))
3017 (propagated-inputs
3018 (list emacs-dash
3019 emacs-s
3020 the-silver-searcher)) ;'ag' executable
3021 (home-page "https://github.com/Wilfred/ag.el")
3022 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
3023 (description "This package provides the ability to use the silver
3024 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
3025 include version control system awareness, use of Perl compatible regular
3026 expressions, editing the search results directly and searching file names
3027 rather than the contents of files.")
3028 (license license:gpl3+)))
3029
3030 (define-public emacs-aio
3031 (package
3032 (name "emacs-aio")
3033 (version "1.0")
3034 (source (origin
3035 (method git-fetch)
3036 (uri (git-reference
3037 (url "https://github.com/skeeto/emacs-aio")
3038 (commit version)))
3039 (file-name (git-file-name name version))
3040 (sha256
3041 (base32
3042 "1y7j10j74r3fy0rcb8g3cm9nlls34qb0pz9xkia7psp77syrlz54"))))
3043 (build-system emacs-build-system)
3044 (arguments
3045 `(#:tests? #t
3046 #:test-command '("emacs" "--batch"
3047 "-l" "aio-test.el"
3048 "-f" "ert-run-tests-batch-and-exit")))
3049 (propagated-inputs
3050 (list emacs-elfeed emacs-skewer-mode))
3051 (home-page "https://github.com/skeeto/emacs-aio")
3052 (synopsis "Async/Await for Emacs Lisp")
3053 (description "@code{aio} is to Emacs Lisp as @code{asyncio} is to
3054 Python. This package builds upon Emacs generators to provide functions that
3055 pause while they wait on asynchronous events. They do not block any thread
3056 while paused.")
3057 (license license:unlicense)))
3058
3059 (define-public emacs-async
3060 (package
3061 (name "emacs-async")
3062 (home-page "https://github.com/jwiegley/emacs-async")
3063 (version "1.9.6")
3064 (source (origin
3065 (method git-fetch)
3066 (uri (git-reference
3067 (url home-page)
3068 (commit (string-append "v" version))))
3069 (file-name (git-file-name name version))
3070 (sha256
3071 (base32
3072 "1q480ss2jgijdpy6pa4xrjni9pf5q6dwf8hv052fhdpi55bmfdn2"))))
3073 (build-system emacs-build-system)
3074 (synopsis "Asynchronous processing in Emacs")
3075 (description
3076 "This package provides the ability to call asynchronous functions and
3077 processes. For example, it can be used to run dired commands (for copying,
3078 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
3079 as a library for other Emacs packages.")
3080 (license license:gpl3+)))
3081
3082 (define-public emacs-auctex
3083 (package
3084 (name "emacs-auctex")
3085 (version "13.1.4")
3086 (source
3087 (origin
3088 (method url-fetch)
3089 (uri (string-append "https://elpa.gnu.org/packages/"
3090 "auctex-" version ".tar"))
3091 (sha256
3092 (base32 "1r9qysnfdbiblq3c95rgsh7vgy3k4qabnj0vicqhdkca0cl2b2bj"))))
3093 (build-system emacs-build-system)
3094 ;; We use 'emacs' because AUCTeX requires dbus at compile time
3095 ;; ('emacs-minimal' does not provide dbus).
3096 (arguments
3097 `(#:emacs ,emacs
3098 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
3099 #:exclude '("^tests/" "^latex/README")
3100 #:phases
3101 (modify-phases %standard-phases
3102 (add-after 'unpack 'configure
3103 (lambda* (#:key inputs #:allow-other-keys)
3104 (emacs-substitute-variables "preview.el"
3105 ("preview-gs-command"
3106 (search-input-file inputs "/bin/gs")))
3107 (substitute* "preview.el"
3108 (("\"dvipng ")
3109 (let ((dvipng (search-input-file inputs "/bin/dvipng")))
3110 (string-append "\"" dvipng " ")))
3111 (("\"dvips ")
3112 (let ((dvips (search-input-file inputs "/bin/dvips")))
3113 (string-append "\"" dvips " ")))
3114 (("\"pdf2dsc ")
3115 (let ((pdf2dsc (search-input-file inputs "/bin/pdf2dsc")))
3116 (string-append "\"" pdf2dsc " "))))))
3117 (add-after 'install 'install-doc
3118 (lambda* (#:key outputs #:allow-other-keys)
3119 (let* ((out (assoc-ref outputs "out"))
3120 (etc-dir (string-append out "/share/" ,name "/"
3121 ,version "/etc")))
3122 (with-directory-excursion "doc"
3123 (setenv "HOME" (getenv "TMPDIR")) ; for mktextfm
3124 (invoke "pdftex" "tex-ref")
3125 (install-file "tex-ref.pdf"
3126 (string-append etc-dir "/refcards")))))))))
3127 (native-inputs
3128 (list perl))
3129 (inputs
3130 (list ghostscript
3131 (texlive-updmap.cfg (list texlive-amsfonts))))
3132 (home-page "https://www.gnu.org/software/auctex/")
3133 (synopsis "Integrated environment for TeX")
3134 (description
3135 "AUCTeX is a comprehensive customizable integrated environment for
3136 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
3137 or XEmacs.")
3138 (license license:gpl3+)))
3139
3140 (define-public emacs-autothemer
3141 (package
3142 (name "emacs-autothemer")
3143 (version "0.2.14")
3144 (source
3145 (origin
3146 (method git-fetch)
3147 (uri (git-reference
3148 (url "https://github.com/sebastiansturm/autothemer")
3149 (commit version)))
3150 (file-name (git-file-name name version))
3151 (sha256
3152 (base32
3153 "0jxlfwcfqdjr3da2xzjnigmckarhjbn6b1i1x4pdzb5djjcz00qc"))))
3154 (build-system emacs-build-system)
3155 (propagated-inputs
3156 (list emacs-dash))
3157 (home-page "https://github.com/sebastiansturm/autothemer")
3158 (synopsis "Conveniently create Emacs themes")
3159 (description
3160 "Autothemer provides a thin layer on top of @code{deftheme} and
3161 @code{custom-theme-set-faces} that creates a new custom color theme, based on
3162 a set of simplified face specifications and a user-supplied color palette.")
3163 (license license:gpl3+)))
3164
3165 (define-public emacs-howm
3166 (package
3167 (name "emacs-howm")
3168 (version "1.4.8")
3169 (source
3170 (origin
3171 (method url-fetch)
3172 (uri (string-append "https://howm.sourceforge.jp/a/"
3173 "howm-" version ".tar.gz"))
3174 (sha256
3175 (base32 "0i5pfnvy130fzk8w62301vgsqf1y22chwhjgnm5hjxr9y0kw5ii4"))))
3176 (build-system gnu-build-system)
3177 (native-inputs
3178 (list emacs-minimal))
3179 (arguments
3180 `(#:configure-flags
3181 (list (string-append "--with-howmdir=" (emacs:elpa-directory %output)))
3182 #:modules ((guix build gnu-build-system)
3183 ((guix build emacs-build-system) #:prefix emacs:)
3184 (guix build utils))
3185 #:imported-modules (,@%gnu-build-system-modules
3186 (guix build emacs-build-system)
3187 (guix build emacs-utils))
3188 #:phases
3189 (modify-phases %standard-phases
3190 (add-after 'install 'make-autoloads
3191 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
3192 (home-page "https://howm.osdn.jp/")
3193 (synopsis "Note-taking tool for Emacs")
3194 (description "Howm is a note-taking tool for Emacs. Like
3195 code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
3196 searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
3197 (license license:gpl1+)))
3198
3199 (define-public emacs-bm
3200 (package
3201 (name "emacs-bm")
3202 (version "201905")
3203 (source
3204 (origin
3205 (method git-fetch)
3206 (uri (git-reference
3207 (url "https://github.com/joodland/bm")
3208 (commit version)))
3209 (file-name (git-file-name name version))
3210 (sha256
3211 (base32 "180b3rc13asrmsdh7v405d54jkrininvaj52xhp71vw91ng51dkn"))))
3212 (build-system emacs-build-system)
3213 (home-page "https://github.com/joodland/bm")
3214 (synopsis "Visual bookmarks for Emacs")
3215 (description "This package provides visible, buffer local bookmarks and
3216 the ability to jump forward and backward to the next bookmark.")
3217 (license license:gpl2+)))
3218
3219 (define-public emacs-calfw
3220 (package
3221 (name "emacs-calfw")
3222 (version "1.6")
3223 (source
3224 (origin
3225 (method git-fetch)
3226 (uri (git-reference
3227 (url "https://github.com/kiwanami/emacs-calfw")
3228 (commit (string-append "v" version))))
3229 (file-name (git-file-name name version))
3230 (sha256
3231 (base32
3232 "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"))))
3233 (build-system emacs-build-system)
3234 (propagated-inputs
3235 (list emacs-howm))
3236 (home-page "https://github.com/kiwanami/emacs-calfw/")
3237 (synopsis "Calendar framework for Emacs")
3238 (description
3239 "This package displays a calendar view with various schedule data in the
3240 Emacs buffer.")
3241 (license license:gpl3+)))
3242
3243 (define-public emacs-caml
3244 (package
3245 (name "emacs-caml")
3246 (version "4.9")
3247 (source
3248 (origin
3249 (method url-fetch)
3250 (uri (string-append "https://elpa.nongnu.org/nongnu/caml-"
3251 version ".tar"))
3252 (sha256
3253 (base32
3254 "00ldvz6r10vwwmk6f3az534p0340ywn7knsg2bmvbvh3q51vyl9i"))))
3255 (build-system emacs-build-system)
3256 (home-page "https://github.com/ocaml/caml-mode")
3257 (synopsis "Caml mode for GNU Emacs")
3258 (description
3259 "This package provides a major mode for editing OCaml code in Emacs.
3260 Some of its major features include:
3261
3262 @itemize
3263 @item syntax highlighting (font lock);
3264 @item automatic indentation;
3265 @item querying the type of expressions (using compiler generated annot files);
3266 @item running an OCaml REPL within Emacs;
3267 @item scanning of declarations and placing them in a menu.
3268 @end itemize")
3269 (license license:gpl2+)))
3270
3271 (define-public emacs-caps-lock
3272 (package
3273 (name "emacs-caps-lock")
3274 (version "1.0")
3275 (source
3276 (origin
3277 (method url-fetch)
3278 (uri (string-append "https://elpa.gnu.org/packages/"
3279 "caps-lock-" version ".el"))
3280 (sha256
3281 (base32 "1i4hwam81p4dr0bk8257fkiz4xmv6knkjxj7a00fa35kgx5blpva"))))
3282 (build-system emacs-build-system)
3283 (home-page "http://elpa.gnu.org/packages/caps-lock.html")
3284 (synopsis "Caps Lock as a minor mode")
3285 (description
3286 "This package provides a minor mode to emulate the behavior of a Caps
3287 Lock key.")
3288 (license license:gpl3+)))
3289
3290 (define-public emacs-chronometrist
3291 (package
3292 (name "emacs-chronometrist")
3293 (version "0.10.0")
3294 (source
3295 (origin
3296 (method git-fetch)
3297 (uri (git-reference
3298 (url "https://tildegit.org/contrapunctus/chronometrist")
3299 (commit (string-append "v" version))))
3300 (file-name (git-file-name name version))
3301 (sha256
3302 (base32 "0qpkpkipmac24m3ng4ahsml3vi15qcvmid3g02pbpgbpc113zfpl"))))
3303 (build-system emacs-build-system)
3304 (arguments
3305 (list
3306 #:phases
3307 #~(modify-phases %standard-phases
3308 (add-after 'unpack 'chdir-elisp
3309 ;; Elisp directory is not in root of the source.
3310 (lambda _
3311 (chdir "elisp")))
3312 (add-after 'install 'install-doc
3313 ;; Documentation consists of several Markdown files.
3314 (lambda _
3315 (let ((doc (string-append #$output
3316 "/share/doc/emacs-chronometrist-"
3317 #$version)))
3318 (with-directory-excursion "../doc"
3319 (for-each (lambda (f) (install-file f doc))
3320 (cons* "../UNLICENSE"
3321 "../WTFPL"
3322 (find-files "." "\\.md$"))))))))))
3323 (propagated-inputs
3324 (list emacs-alert emacs-dash emacs-s emacs-spark emacs-ts))
3325 (home-page "https://github.com/contrapunctus-1/chronometrist")
3326 (synopsis "Time tracker for Emacs")
3327 (description "Chronometrist is a time tracker in Emacs, largely modelled
3328 after the Android application, @emph{A Time Tracker}.
3329
3330 Its features are:
3331 @itemize
3332 @item Simple and efficient to use,
3333 @item Displays useful information about your time usage,
3334 @item Support for both mouse and keyboard,
3335 @item Human errors in tracking are easily fixed by editing a plain text file,
3336 @item Hooks to let you perform arbitrary actions when starting/stopping tasks.
3337 @end itemize")
3338 ;; Software is dual-licensed.
3339 (license (list license:unlicense license:wtfpl2))))
3340
3341 (define-public emacs-citeproc-el
3342 (package
3343 (name "emacs-citeproc-el")
3344 (version "0.9.1")
3345 (source
3346 (origin
3347 (method git-fetch)
3348 (uri (git-reference
3349 (url "https://github.com/andras-simonyi/citeproc-el")
3350 (commit version)))
3351 (file-name (git-file-name name version))
3352 (sha256
3353 (base32 "0rkwqn9pcimfcyq19wlrcij0kcjyhbwisla7vwbhjj8ang0bq9rm"))))
3354 (build-system emacs-build-system)
3355 (arguments
3356 `(#:emacs ,emacs)) ;need libxml support
3357 (propagated-inputs
3358 (list emacs-dash
3359 emacs-f
3360 emacs-parsebib
3361 emacs-queue
3362 emacs-s
3363 emacs-string-inflection))
3364 (home-page "https://github.com/andras-simonyi/citeproc-el")
3365 (synopsis "Citation Style Language (CSL) processor for Emacs")
3366 (description
3367 "Citeproc-el is an Emacs Lisp library for rendering citations
3368 and bibliographies in styles described in the Citation Style
3369 Language (CSL), an XML-based, open format to describe the formatting
3370 of bibliographic references.")
3371 (license license:gpl3+)))
3372
3373 (define-public emacs-corfu
3374 (package
3375 (name "emacs-corfu")
3376 (version "0.27")
3377 (source
3378 (origin
3379 (method git-fetch)
3380 (uri (git-reference
3381 (url "https://github.com/minad/corfu")
3382 (commit version)))
3383 (file-name (git-file-name name version))
3384 (sha256
3385 (base32 "17cdbqkil4454kd3w77w18fv15djwg07qclgcnlp6mimp6sbam9w"))))
3386 (build-system emacs-build-system)
3387 (arguments
3388 `(#:phases
3389 (modify-phases %standard-phases
3390 ;; Move the extensions source files to the top level, which is included
3391 ;; in the EMACSLOADPATH.
3392 (add-after 'unpack 'move-source-files
3393 (lambda _
3394 (let ((el-files (find-files "./extensions" ".*\\.el$")))
3395 (for-each (lambda (f)
3396 (rename-file f (basename f)))
3397 el-files)))))))
3398 (home-page "https://github.com/minad/corfu")
3399 (synopsis "Completion overlay region function")
3400 (description
3401 "Corfu enhances the default completion in region function with a completion
3402 overlay. The current candidates are shown in a popup overlay below or above
3403 the point. Corfu can be considered the minimalistic
3404 @code{completion-in-region} counterpart of the Vertico minibuffer UI.")
3405 (license license:gpl3+)))
3406
3407 (define-public emacs-corfu-doc
3408 (package
3409 (name "emacs-corfu-doc")
3410 (version "0.6.3")
3411 (source
3412 (origin
3413 (method git-fetch)
3414 (uri (git-reference
3415 (url "https://github.com/galeo/corfu-doc")
3416 (commit "f9566cf13f6730a45b2f3c12e491a3fa2097e5d5")))
3417 (file-name (git-file-name name version))
3418 (sha256
3419 (base32 "098yf29yv1b11p7kvdc7n4ra7f5vcmf6nlvhl85jgwqrsdz1795b"))))
3420 (build-system emacs-build-system)
3421 (propagated-inputs (list emacs-corfu))
3422 (home-page "https://github.com/galeo/corfu-doc")
3423 (synopsis "Documentation popup for Corfu")
3424 (description
3425 "The @code{corfu-doc} package provides a way to display a documentation
3426 popup for completion candidates when using @code{emacs-corfu}. It can
3427 be regarded as @code{emacs-company-quickhelp} for @code{emacs-corfu}.")
3428 (license license:gpl3+)))
3429
3430 (define-public emacs-cape
3431 (package
3432 (name "emacs-cape")
3433 (version "0.9")
3434 (source
3435 (origin
3436 (method git-fetch)
3437 (uri (git-reference
3438 (url "https://github.com/minad/cape")
3439 (commit version)))
3440 (file-name (git-file-name name version))
3441 (sha256
3442 (base32 "09lzzhx438s9wlpmiyyx9bbb2hlscf415f080bkz6gyw4nsdh0g4"))))
3443 (build-system emacs-build-system)
3444 (home-page "https://github.com/minad/cape")
3445 (synopsis "Completion at point extensions for Emacs")
3446 (description
3447 "Cape provides some Completion At Point Extensions, which can be used in
3448 combination with Corfu completion UI or the default completion UI. The
3449 completion backends used by @code{completion-at-point} are so called
3450 @code{completion-at-point-functions} (Capfs). In principle, the Capfs
3451 provided by Cape can also be used by Company.")
3452 (license license:gpl3+)))
3453
3454 (define-public emacs-direnv
3455 (package
3456 (name "emacs-direnv")
3457 (version "2.2.0")
3458 (source
3459 (origin
3460 (method git-fetch)
3461 (uri (git-reference
3462 (url "https://github.com/wbolster/emacs-direnv")
3463 (commit version)))
3464 (file-name (git-file-name name version))
3465 (sha256
3466 (base32 "0cf5npgksl9a03mnfdhfdhlf46gr9qz9adjxz3dbckq9b1vl0dfc"))))
3467 (build-system emacs-build-system)
3468 (arguments
3469 `(#:phases
3470 (modify-phases %standard-phases
3471 (add-after 'unpack 'patch-in-direnv
3472 (lambda* (#:key inputs #:allow-other-keys)
3473 (let ((direnv (search-input-file inputs "/bin/direnv")))
3474 (substitute* "direnv.el"
3475 (("\"direnv\"") (string-append "\"" direnv "\"")))))))))
3476 (inputs
3477 (list direnv))
3478 (propagated-inputs
3479 (list emacs-dash emacs-with-editor))
3480 (home-page "https://github.com/wbolster/emacs-direnv")
3481 (synopsis "Direnv integration for Emacs")
3482 (description
3483 "This package provides support for invoking direnv to get the environment
3484 for the current file and updating the environment within Emacs to match.
3485
3486 Direnv can be invoked manually, and a global minor mode is included that will
3487 update the environment when the active buffer changes.
3488
3489 Using emacs-direnv means that programs started from Emacs will use the
3490 environment set through Direnv.")
3491 (license license:gpl3+)))
3492
3493 (define-public emacs-elf-mode
3494 (package
3495 (name "emacs-elf-mode")
3496 (version "0.1.0")
3497 (source
3498 (origin
3499 (method git-fetch)
3500 (uri
3501 (git-reference
3502 (url "https://github.com/abo-abo/elf-mode")
3503 (commit version)))
3504 (file-name (git-file-name name version))
3505 (sha256
3506 (base32 "0cbvjbk2893ag1iy8ggixpirfiyhssm7fii96hb9jqdz874cdl0k"))))
3507 (build-system emacs-build-system)
3508 (home-page "https://github.com/abo-abo/elf-mode")
3509 (synopsis "Show symbol list when opening a binary file in Emacs")
3510 (description "This Emacs package provides a command showing the symbols
3511 that the binary uses instead of the actual binary contents.")
3512 (license license:gpl3+)))
3513
3514 (define-public emacs-org-fc
3515 (let ((commit "f64b5336485a42be91cfe77850c02a41575f5984")
3516 (revision "0"))
3517 (package
3518 (name "emacs-org-fc")
3519 (version (git-version "0.1.0" revision commit))
3520 (source
3521 (origin
3522 (method git-fetch)
3523 (uri (git-reference
3524 (url "https://git.sr.ht/~l3kn/org-fc")
3525 (commit commit)))
3526 (file-name (git-file-name name version))
3527 (sha256
3528 (base32 "1d0a3vr09zkplclypcgpfbfd6r0h0i3g3zsqb4pcz6x239d59gd5"))))
3529 (build-system emacs-build-system)
3530 (arguments
3531 (list
3532 #:include #~(cons* "\\.awk$" "\\.org$" %default-include)
3533 #:exclude #~(cons "^tests/" %default-exclude)
3534 #:tests? #t
3535 #:test-command #~(list "emacs" "--batch"
3536 "-L" "."
3537 "-L" "tests/"
3538 "-l" "tests/org-fc-filter-test.el"
3539 "-l" "tests/org-fc-indexer-test.el"
3540 "-l" "tests/org-fc-review-data-test.el"
3541 "-f" "ert-run-tests-batch-and-exit")
3542 #:phases
3543 #~(modify-phases %standard-phases
3544 (add-after 'unpack 'qualify-paths
3545 (lambda* (#:key inputs #:allow-other-keys)
3546 (let ((find (search-input-file inputs "/bin/find"))
3547 (gawk (search-input-file inputs "/bin/gawk"))
3548 (xargs (search-input-file inputs "/bin/xargs")))
3549 (substitute* "org-fc-awk.el"
3550 (("\"find ") (string-append "\"" find " "))
3551 (("\"gawk ") (string-append "\"" gawk " "))
3552 (("\"xargs ") (string-append "\"" xargs " ")))))))))
3553 (inputs (list findutils gawk))
3554 (propagated-inputs (list emacs-hydra))
3555 (home-page "https://www.leonrische.me/fc/index.html")
3556 (synopsis "Spaced repetition system for Emacs Org mode")
3557 (description
3558 "Org-fc is a spaced-repetition system for Emacs' Org mode.
3559 It allows you to mark headlines in a file as flashcards, turning pieces of
3560 knowledge you want to learn into a question-answer test. These cards are
3561 reviewed at regular interval. After each review, the next review interval is
3562 calculated based on how well you remembered the contents of the card.")
3563 (license license:gpl3+))))
3564
3565 (define-public emacs-font-lock-studio
3566 (let ((commit "12c35967b31233e06946c70627aa3152dacfe261")
3567 (revision "1"))
3568 (package
3569 (name "emacs-font-lock-studio")
3570 (version (git-version "0.0.7" revision commit))
3571 (source
3572 (origin
3573 (method git-fetch)
3574 (uri (git-reference
3575 (url "https://github.com/Lindydancer/font-lock-studio")
3576 (commit "12c35967b31233e06946c70627aa3152dacfe261")))
3577 (file-name (git-file-name name version))
3578 (sha256
3579 (base32 "0q0s6f5vi3sfifj7vq2nnsmgyyivp1sd3idk32858md5ri71qif0"))))
3580 (build-system emacs-build-system)
3581 (home-page "https://github.com/Lindydancer/font-lock-studio")
3582 (synopsis "Interactive debugger for Font Lock keywords")
3583 (description
3584 "Font Lock Studio is an interactive debugger for Emacs syntax highlighting
3585 rules, also called Font Lock keywords. It can @emph{single-step} Font Lock
3586 keywords -- matchers, highlights, and anchored rules, to see what happens when
3587 a buffer is fontified. Breakpoints can be set on or inside rules. When
3588 inside a rule, matches are visualized using a palette of background colors.
3589 The explainer can describe a rule in plain-text English. Finally, tight
3590 integration with Edebug allows stepping into Lisp expressions that are part of
3591 the Font Lock keywords.")
3592 (license license:gpl3+))))
3593
3594 (define-public emacs-form-feed
3595 (package
3596 (name "emacs-form-feed")
3597 (version "0.2.3")
3598 (source
3599 (origin
3600 (method git-fetch)
3601 (uri (git-reference
3602 (url "https://depp.brause.cc/form-feed.git")
3603 (commit version)))
3604 (file-name (git-file-name name version))
3605 (sha256
3606 (base32 "10mcj4x2fjq0ikq9adkd72k9zp6caqib628bmj8d67wwabvzj6mk"))))
3607 (build-system emacs-build-system)
3608 (home-page "https://depp.brause.cc/form-feed")
3609 (synopsis "Display ^L glyphs as horizontal lines")
3610 (description
3611 "This package provides a minor mode @code{form-feed-mode} to display page
3612 delimiters which usually appear as ^L glyphs on a single line as horizontal
3613 lines spanning the entire window. The minor mode is suitable for inclusion
3614 into mode hooks and is intended to be used that way.")
3615 (license license:gpl3+)))
3616
3617 (define-public emacs-ggtags
3618 (package
3619 (name "emacs-ggtags")
3620 (version "0.9.0")
3621 (source
3622 (origin
3623 (method url-fetch)
3624 (uri (string-append "https://elpa.gnu.org/packages/ggtags-"
3625 version ".tar"))
3626 (sha256
3627 (base32
3628 "0p79x9g94jynl83ndvqp9349vhgkzxzhnc517r8hn44iqxqf6ghg"))))
3629 (build-system emacs-build-system)
3630 (inputs
3631 (list global))
3632 (arguments
3633 `(#:phases
3634 (modify-phases %standard-phases
3635 (add-after 'unpack 'configure
3636 (lambda* (#:key inputs #:allow-other-keys)
3637 (chmod "ggtags.el" #o644)
3638 (emacs-substitute-variables "ggtags.el"
3639 ("ggtags-executable-directory"
3640 (dirname (search-input-file inputs "bin/global")))))))))
3641 (home-page "https://github.com/leoliu/ggtags")
3642 (synopsis "Frontend to the GNU Global source code tagging system")
3643 (description "@code{ggtags} provides a frontend to the GNU Global source
3644 code tagging system.
3645
3646 Features:
3647
3648 @itemize
3649 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
3650 @item Automatically update Global's tag files when needed with tuning for
3651 large source trees.
3652 @item Intuitive navigation among multiple matches with mode-line display of
3653 current match, total matches and exit status.
3654 @item Read tag with completion.
3655 @item Show definition at point.
3656 @item Jump to #include files.
3657 @item Support search history and saving a search to register/bookmark.
3658 @item Query replace.
3659 @item Manage Global's environment variables on a per-project basis.
3660 @item Highlight (definition) tag at point.
3661 @item Abbreviated display of file names.
3662 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
3663 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
3664 @code{pygments} backend.
3665 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
3666 @code{cscope} etc.
3667 @item Support projects on remote hosts (e.g. via @code{tramp}).
3668 @item Support eldoc.
3669 @item Search @code{GTAGSLIBPATH} for references and symbols.
3670 @end itemize\n")
3671 (license license:gpl3+)))
3672
3673 (define-public emacs-go-mode
3674 ;; XXX: Upstream did not tag last release. The commit below matches version
3675 ;; bump.
3676 (let ((commit "3273fcece5d9ab7edd4f15b2d6bce61f4e5a0666"))
3677 (package
3678 (name "emacs-go-mode")
3679 (version "1.6.0")
3680 (source (origin
3681 (method git-fetch)
3682 (uri (git-reference
3683 (url "https://github.com/dominikh/go-mode.el")
3684 (commit commit)))
3685 (file-name (git-file-name name version))
3686 (sha256
3687 (base32
3688 "00qzn136d8cl3szbi44xf3iiv75r6n1m7wwgldmzn4i5mpz8dbq7"))))
3689 (arguments
3690 (list
3691 #:tests? #t
3692 #:test-command #~(list "ert-runner")
3693 #:phases
3694 #~(modify-phases %standard-phases
3695 (add-before 'check 'fix-tests
3696 ;; Two tests fail because they (wrongly) assume we run them from
3697 ;; the "test" sub-directory. Fix their expectations.
3698 (lambda _
3699 (let ((test-file "test/go-indentation-test.el"))
3700 (make-file-writable test-file)
3701 (substitute* test-file
3702 (("testdata/indentation_tests/" all)
3703 (string-append "test/" all)))))))))
3704 (build-system emacs-build-system)
3705 (native-inputs (list emacs-ert-runner))
3706 (home-page "https://github.com/dominikh/go-mode.el")
3707 (synopsis "Go mode for Emacs")
3708 (description
3709 "This package provides go-mode, an Emacs mode for working with software
3710 written in the Go programming language.")
3711 (license license:bsd-3))))
3712
3713 (define-public emacs-google-maps
3714 ;; There has been no new release tag since 2013.
3715 (let ((commit "2eb16ff609f5a9f8d02c15238a111fbb7db6c146")
3716 (revision "1"))
3717 (package
3718 (name "emacs-google-maps")
3719 (version (git-version "1.0.0" revision commit))
3720 (source
3721 (origin
3722 (method git-fetch)
3723 (uri (git-reference
3724 (url "https://github.com/jd/google-maps.el")
3725 (commit commit)))
3726 (file-name (git-file-name name version))
3727 (sha256
3728 (base32 "1bl0dnksbf14d0xcnvdy9qpvzc5c8jwkxpmfvgayj6djikxnw2md"))))
3729 (build-system emacs-build-system)
3730 (home-page "https://github.com/jd/google-maps.el")
3731 (synopsis "Access Google Maps from Emacs")
3732 (description "The @code{google-maps} package displays Google Maps
3733 directly inside Emacs. It requires a Google Map Static API key to function.")
3734 (license license:gpl3+))))
3735
3736 (define-public emacs-graphviz-dot-mode
3737 (package
3738 (name "emacs-graphviz-dot-mode")
3739 (version "0.4.2")
3740 (source
3741 (origin
3742 (method git-fetch)
3743 (uri (git-reference
3744 (url "https://github.com/ppareit/graphviz-dot-mode")
3745 (commit (string-append "v" version))))
3746 (file-name (git-file-name name version))
3747 (sha256
3748 (base32 "1v1p85wk73nfsvv66qf90flgf9dqhmv15z1r7q4zmc4ifklqn08m"))))
3749 (build-system emacs-build-system)
3750 (arguments
3751 (list
3752 #:phases
3753 #~(modify-phases %standard-phases
3754 (add-before 'install 'make-info
3755 (lambda* (#:key inputs #:allow-other-keys)
3756 (with-directory-excursion "texinfo"
3757 (substitute* "Makefile"
3758 (("\\/usr\\/bin\\/gzip")
3759 (search-input-file inputs "/bin/gzip")))
3760 (invoke "make"
3761 "clean"
3762 "info"
3763 (string-append "TEXINFODIR="
3764 #$(this-package-native-input "texinfo")
3765 "/bin")))))
3766 (add-after 'install 'install-info
3767 (lambda _
3768 (let ((info (string-append #$output "/share/info")))
3769 (install-file "texinfo/graphviz-dot-mode.info.gz" info)))))))
3770 (native-inputs
3771 (list gzip texinfo))
3772 (propagated-inputs
3773 (list emacs-company))
3774 (home-page "http://ppareit.github.com/graphviz-dot-mode")
3775 (synopsis "Major mode for editing Graphviz DOT files")
3776 (description
3777 "This Emacs package helps you to create @file{.dot} or @file{.gv} files
3778 using the DOT syntax, and use Graphviz to convert these files to diagrams.")
3779 (license license:gpl2+)))
3780
3781 (define-public emacs-imenu-list
3782 (let ((commit "b50222378412fbe321622a84cb2b036e084c697a")
3783 (revision "1")
3784 (version "0.9"))
3785 (package
3786 (name "emacs-imenu-list")
3787 (version (git-version version revision commit))
3788 (source
3789 (origin
3790 (method git-fetch)
3791 (uri
3792 (git-reference
3793 (url "https://github.com/bmag/imenu-list")
3794 (commit commit)))
3795 (file-name (git-file-name name version))
3796 (sha256
3797 (base32 "1936dd41fa05ndzf2bwhllvjz97iz0rflkazjipr7dvz5q072wj2"))))
3798 (build-system emacs-build-system)
3799 (home-page "https://github.com/bmag/imenu-list")
3800 (synopsis
3801 "Automatically tracks the current buffer's imenu entries")
3802 (description
3803 "This Emacs minor mode creates an automatically updated buffer called
3804 @code{*Ilist*} that is populated with the current buffer's imenu entries.
3805 This buffer is typically shown as a sidebar (Emacs vertically splits the
3806 window).")
3807 (license license:gpl3+))))
3808
3809 (define-public emacs-mmm-mode
3810 (package
3811 (name "emacs-mmm-mode")
3812 (version "0.5.8")
3813 (source
3814 (origin
3815 (method url-fetch)
3816 (uri (string-append "https://elpa.gnu.org/packages/"
3817 "mmm-mode-" version ".tar"))
3818 (sha256
3819 (base32 "05ckf4zapdpvnd3sqpw6kxaa567zh536a36m9qzx3sqyjbyn5fb4"))))
3820 (build-system emacs-build-system)
3821 (home-page "https://github.com/purcell/mmm-mode")
3822 (synopsis "Allow multiple major modes in an Emacs buffer")
3823 (description
3824 "MMM Mode is a minor mode that allows multiple major modes to coexist in
3825 a single buffer.")
3826 (license license:gpl3+)))
3827
3828 (define-public emacs-mmt
3829 (package
3830 (name "emacs-mmt")
3831 (version "0.2.0")
3832 (source
3833 (origin
3834 (method git-fetch)
3835 (uri (git-reference
3836 (url "https://github.com/mrkkrp/mmt")
3837 (commit version)))
3838 (file-name (git-file-name name version))
3839 (sha256
3840 (base32 "13vbfc5597v0gd87qyhn10f93nb477vjpg3jlpphbax9fvkf4gav"))))
3841 (build-system emacs-build-system)
3842 (home-page "https://github.com/mrkkrp/mmt")
3843 (synopsis "Classic tools to write Emacs Lisp macros")
3844 (description "Emacs MMT is a package that contains classic tools for Emacs
3845 Lisp developers who want to write macros with convenience.")
3846 (license license:gpl3+)))
3847
3848 (define-public emacs-tablist
3849 (package
3850 (name "emacs-tablist")
3851 (version "1.0")
3852 (source (origin
3853 (method git-fetch)
3854 (uri (git-reference
3855 (url "https://github.com/politza/tablist")
3856 (commit (string-append "v" version))))
3857 (file-name (git-file-name name version))
3858 (sha256
3859 (base32
3860 "0pzsdg0rm59daw34ppss79cg05z9wnr8nkmdcc48nkd0p69ip2yy"))))
3861 (build-system emacs-build-system)
3862 (home-page "https://github.com/politza/tablist")
3863 (synopsis "Extension for @code{tabulated-list-mode}")
3864 (description "Tablist is the Emacs package that provides several
3865 additional features to @code{tabulated-list-mode}: it adds marks,
3866 filters, new key bindings and faces. It can be enabled by
3867 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
3868 (license license:gpl3+)))
3869
3870 (define-public emacs-djvu
3871 (package
3872 (name "emacs-djvu")
3873 (version "1.1.2")
3874 (source
3875 (origin
3876 (method url-fetch)
3877 (uri (string-append "https://elpa.gnu.org/packages/"
3878 "djvu-" version ".tar"))
3879 (sha256
3880 (base32 "0i7xwgg2fxndy81lnng6fh9iknals8xvx4f1nmxq7c099bzwb57c"))))
3881 (build-system emacs-build-system)
3882 (inputs (list djview djvulibre))
3883 (arguments
3884 (list
3885 #:phases
3886 #~(modify-phases %standard-phases
3887 (add-after 'unpack 'configure
3888 (lambda* (#:key inputs #:allow-other-keys)
3889 (let ((file "djvu.el"))
3890 ;; Specify the absolute executable locations.
3891 (make-file-writable file)
3892 (substitute* file
3893 (("\"djvused\"")
3894 (string-append "\""
3895 (search-input-file inputs "/bin/djvused")
3896 "\""))
3897 (("\"djvm\"")
3898 (string-append "\""
3899 (search-input-file inputs "/bin/djvm")
3900 "\""))
3901 (("\"ddjvu\"")
3902 (string-append "\""
3903 (search-input-file inputs "/bin/ddjvu")
3904 "\"")))
3905 (emacs-substitute-variables file
3906 ("djvu-djview-command"
3907 (search-input-file inputs "/bin/djview")))))))))
3908 (home-page "http://elpa.gnu.org/packages/djvu.html")
3909 (synopsis "Edit and view Djvu files via djvused")
3910 (description
3911 "This package is a front end for the command-line program djvused from
3912 DjVuLibre, see @url{http://djvu.sourceforge.net/}.")
3913 (license license:gpl3+)))
3914
3915 (define-public emacs-djvu3
3916 ;; Commit from 2021-06-03.
3917 (let ((commit "37b675be1d4d436cdd0c3b5d3f13e88b59a7bf18")
3918 (revision "0"))
3919 (package
3920 (name "emacs-djvu3")
3921 ;; `Version:' header says 1.0
3922 (version (git-version "1.0" revision commit))
3923 (source
3924 (origin
3925 (method git-fetch)
3926 (uri (git-reference
3927 (url "https://github.com/dalanicolai/djvu3")
3928 (commit commit)))
3929 (file-name (git-file-name name version))
3930 (sha256
3931 (base32
3932 "0p0izjrgbayx5ybk1n6db5hbrjv9d4kpn57w4iyxdm3h96sp9cmr"))))
3933 (propagated-inputs
3934 (list emacs-djvu emacs-tablist))
3935 (build-system emacs-build-system)
3936 (home-page "https://github.com/dalanicolai/djvu3")
3937 (synopsis "Extend djvu.el to display annotations and more")
3938 (description "This package extends @code{emacs-djvu} with annotation
3939 rendering features and a fast occur search feature using @code{svg.el}.
3940
3941 Other features include:
3942
3943 @itemize
3944 @item clickable links
3945 @item marker extension to @code{svg.el} for providing arrowheads (or other
3946 types of markers)
3947 @item a quite fancy keyboard annotation function
3948 @item an @code{imenu} index function to enable imenu navigation
3949 @item document restore function to open the document at the last location of
3950 the previous session
3951 @end itemize")
3952 (license license:gpl3+))))
3953
3954 (define-public emacs-pabbrev
3955 (package
3956 (name "emacs-pabbrev")
3957 (version "4.2.2")
3958 (source
3959 (origin
3960 (method url-fetch)
3961 (uri (string-append "https://elpa.gnu.org/packages/"
3962 "pabbrev-" version ".tar"))
3963 (sha256
3964 (base32 "0iydz8yz866krxv1qv32k88w4464xpymh0wxgrxv6nvniwvhvd0s"))))
3965 (build-system emacs-build-system)
3966 (home-page "http://elpa.gnu.org/packages/pabbrev.html")
3967 (synopsis "Predictive abbreviation expansion")
3968 (description
3969 "The code provides a abbreviation expansion for Emacs. It is
3970 fairly similar to Dabbrev expansion, which works based on the contents
3971 of the current buffer (or other buffers).
3972
3973 Predictive abbreviation expansion works based on the previously
3974 written text. Unlike dynamic abbreviation, the text is analysed
3975 during idle time, while Emacs is doing nothing else.")
3976 (license license:gpl3+)))
3977
3978 (define-public emacs-pdf-tools
3979 (package
3980 (name "emacs-pdf-tools")
3981 (version "0.91")
3982 (source
3983 (origin
3984 (method git-fetch)
3985 (uri (git-reference
3986 (url "https://github.com/vedang/pdf-tools")
3987 (commit (string-append "v" version))))
3988 (file-name (git-file-name name version))
3989 (sha256
3990 (base32 "07ixspgn4s1jg66w7m2f3sh43giakz9srhp7rpw389z32g57i1rx"))))
3991 (build-system gnu-build-system)
3992 (arguments
3993 `(#:tests? #f ; there are no tests
3994 #:modules ((guix build gnu-build-system)
3995 ((guix build emacs-build-system) #:prefix emacs:)
3996 (guix build utils)
3997 (guix build emacs-utils))
3998 #:imported-modules (,@%gnu-build-system-modules
3999 (guix build emacs-build-system)
4000 (guix build emacs-utils))
4001 #:phases
4002 (modify-phases %standard-phases
4003 ;; Build server side using 'gnu-build-system'.
4004 (add-after 'unpack 'enter-server-dir
4005 (lambda _ (chdir "server")))
4006 (add-after 'enter-server-dir 'autogen
4007 (lambda _
4008 (invoke "bash" "autogen.sh")))
4009 ;; Build emacs side using 'emacs-build-system'.
4010 (add-after 'compress-documentation 'enter-lisp-dir
4011 (lambda _ (chdir "../lisp")))
4012 (add-after 'enter-lisp-dir 'emacs-patch-variables
4013 (lambda* (#:key outputs #:allow-other-keys)
4014 (for-each make-file-writable (find-files "."))
4015
4016 ;; Set path to epdfinfo program.
4017 (emacs-substitute-variables "pdf-info.el"
4018 ("pdf-info-epdfinfo-program"
4019 (string-append (assoc-ref outputs "out")
4020 "/bin/epdfinfo")))
4021 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
4022 ;; upgrading" that pdf-tools tries to perform.
4023 (emacs-substitute-variables "pdf-tools.el"
4024 ("pdf-tools-handle-upgrades" '()))))
4025 (add-after 'emacs-patch-variables 'emacs-expand-load-path
4026 (assoc-ref emacs:%standard-phases 'expand-load-path))
4027 (add-after 'emacs-expand-load-path 'emacs-install
4028 (assoc-ref emacs:%standard-phases 'install))
4029 (add-after 'emacs-install 'emacs-build
4030 (assoc-ref emacs:%standard-phases 'build))
4031 (add-after 'emacs-install 'emacs-make-autoloads
4032 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
4033 (native-inputs
4034 (list autoconf automake emacs-minimal pkg-config))
4035 (inputs
4036 (list cairo glib libpng poppler zlib))
4037 (propagated-inputs
4038 (list emacs-tablist))
4039 (home-page "https://github.com/politza/pdf-tools")
4040 (synopsis "Emacs support library for PDF files")
4041 (description
4042 "PDF Tools is, among other things, a replacement of DocView for PDF
4043 files. The key difference is that pages are not pre-rendered by
4044 e.g. ghostscript and stored in the file-system, but rather created on-demand
4045 and stored in memory.")
4046 (license license:gpl3+)))
4047
4048 (define-public emacs-saveplace-pdf-view
4049 (package
4050 (name "emacs-saveplace-pdf-view")
4051 (version "1.0.4")
4052 (source
4053 (origin
4054 (method git-fetch)
4055 (uri (git-reference
4056 (url "https://github.com/nicolaisingh/saveplace-pdf-view")
4057 (commit (string-append "saveplace-pdf-view-" version))))
4058 (file-name (git-file-name name version))
4059 (sha256
4060 (base32 "0i03qb6qc2agp9s5s7l08f1wl8anqndh6xshg1c3w357vd1whv7i"))))
4061 (build-system emacs-build-system)
4062 (home-page "https://github.com/nicolaisingh/saveplace-pdf-view")
4063 (synopsis "Save place in pdf-view buffers for Emacs")
4064 (description
4065 "This package extends the built-in Save-Place mode by adding support for
4066 PDF view (see @code{emacs-pdf-tools}). This package will store the
4067 place (e.g., the current page and zoom) of PDF buffers under PDFView mode or
4068 DocView mode, and revisiting those PDF files later using the same mode will
4069 restore the saved place.")
4070 (license license:gpl3+)))
4071
4072 (define-public emacs-pdfgrep
4073 ;; XXX: Upstream does not tag releases. The commit below matches latest
4074 ;; version bump.
4075 (let ((commit "e250376d97fc5240e07d81108bbca9b5a9ab50f4"))
4076 (package
4077 (name "emacs-pdfgrep")
4078 (version "1.4")
4079 (source
4080 (origin
4081 (method git-fetch)
4082 (uri (git-reference
4083 (url "https://github.com/jeremy-compostella/pdfgrep")
4084 (commit commit)))
4085 (sha256
4086 (base32 "17yqvvgkgxmcl8nc0mb9yaz884zcdnz7dwvfi4mxjzp1l05fvwjk"))))
4087 (build-system emacs-build-system)
4088 (arguments
4089 (list #:phases
4090 #~(modify-phases %standard-phases
4091 (add-after 'unpack 'patch-pdfgrep-path
4092 (lambda* (#:key inputs #:allow-other-keys)
4093 (make-file-writable "pdfgrep.el")
4094 (emacs-substitute-variables "pdfgrep.el"
4095 ("pdfgrep-program"
4096 (search-input-file inputs "bin/pdfgrep"))))))))
4097 (inputs (list pdfgrep))
4098 (home-page "https://github.com/jeremy-compostella/pdfgrep")
4099 (synopsis "Emacs module providing @code{grep} comparable facilities but
4100 for PDF files")
4101 (description
4102 "pdfgrep is a GNU/Emacs module providing @code{grep} comparable
4103 facilities but for PDF files. Its usage is similar to the @code{grep}
4104 function. For example, using the @code{next-error} function gets you to the
4105 next matching page.")
4106 (license license:gpl3+))))
4107
4108 (define-public emacs-dash
4109 (package
4110 (name "emacs-dash")
4111 (version "2.19.1")
4112 (source (origin
4113 (method git-fetch)
4114 (uri (git-reference
4115 (url "https://github.com/magnars/dash.el")
4116 (commit version)))
4117 (file-name (git-file-name name version))
4118 (sha256
4119 (base32
4120 "0z6f8y1m9amhg427iz1d4xcyr6n0kj5w7kmiz134p320ixsdnzd8"))))
4121 (build-system emacs-build-system)
4122 (arguments
4123 (list #:tests? #t
4124 #:phases
4125 #~(modify-phases %standard-phases
4126 (add-after 'unpack 'disable-byte-compile-error-on-warn
4127 (lambda _
4128 (substitute* "Makefile"
4129 (("\\(setq byte-compile-error-on-warn t\\)")
4130 "(setq byte-compile-error-on-warn nil)")))))))
4131 (home-page "https://github.com/magnars/dash.el")
4132 (synopsis "Modern list library for Emacs")
4133 (description "This package provides a modern list API library for Emacs.")
4134 (license license:gpl3+)))
4135
4136 (define-public emacs-bui
4137 (package
4138 (name "emacs-bui")
4139 (version "1.2.1")
4140 (source (origin
4141 (method git-fetch)
4142 (uri (git-reference
4143 (url "https://notabug.org/alezost/emacs-bui.git")
4144 (commit (string-append "v" version))))
4145 (file-name (git-file-name name version))
4146 (sha256
4147 (base32
4148 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
4149 (build-system emacs-build-system)
4150 (propagated-inputs
4151 (list emacs-dash))
4152 (home-page "https://notabug.org/alezost/emacs-bui")
4153 (synopsis "Buffer interface library for Emacs")
4154 (description
4155 "BUI (Buffer User Interface) is a library for making @code{list} and
4156 @code{info} interfaces to display an arbitrary data of the same
4157 type, for example: packages, buffers, files, etc.")
4158 (license license:gpl3+)))
4159
4160 (define-public emacs-guix
4161 (let ((commit "c9aef52121b458297e70bb50f49f7276b4a8d759")
4162 (revision "5"))
4163 (package
4164 (name "emacs-guix")
4165 (version (git-version "0.5.2" revision commit))
4166 (source (origin
4167 (method git-fetch)
4168 (uri (git-reference
4169 (url "https://gitlab.com/emacs-guix/emacs-guix.git")
4170 (commit commit)))
4171 (file-name (git-file-name name version))
4172 (sha256
4173 (base32
4174 "00xdxadbi9fxpfp60zah9190rcz3w08vl1blbhmaiy7c1hd2gi39"))))
4175 (build-system gnu-build-system)
4176 (arguments
4177 (list
4178 #:modules '((guix build gnu-build-system)
4179 ((guix build emacs-build-system) #:prefix emacs:)
4180 (guix build utils))
4181 #:imported-modules `(,@%gnu-build-system-modules
4182 (guix build emacs-build-system)
4183 (guix build emacs-utils))
4184 #:configure-flags
4185 #~(list (string-append "--with-lispdir="
4186 (emacs:elpa-directory #$output)))
4187 #:phases
4188 #~(modify-phases %standard-phases
4189 (add-after 'unpack 'expand-load-path
4190 (lambda _
4191 ((assoc-ref emacs:%standard-phases 'expand-load-path)
4192 #:prepend-source? #f))))))
4193 (native-inputs
4194 (list autoconf automake emacs-minimal pkg-config texinfo))
4195 (inputs
4196 `(("guile"
4197 ,@(assoc-ref (package-native-inputs guix) "guile"))
4198 ("guix" ,guix)))
4199 (propagated-inputs
4200 (list emacs-bui
4201 emacs-dash
4202 emacs-edit-indirect
4203 emacs-geiser
4204 emacs-geiser-guile
4205 emacs-magit-popup
4206 guile-gcrypt))
4207 (home-page "https://emacs-guix.gitlab.io/website/")
4208 (synopsis "Emacs interface for GNU Guix")
4209 (description
4210 "Emacs-Guix provides a visual interface, tools and features for the GNU
4211 Guix package manager. Particularly, it allows you to do various package
4212 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
4213 @code{M-x guix-help} command.")
4214 (license license:gpl3+))))
4215
4216 (define-public emacs-build-farm
4217 (package
4218 (name "emacs-build-farm")
4219 (version "0.2.2")
4220 (source (origin
4221 (method git-fetch)
4222 (uri (git-reference
4223 (url "https://notabug.org/alezost/emacs-build-farm.git")
4224 (commit (string-append "v" version))))
4225 (file-name (git-file-name name version))
4226 (sha256
4227 (base32
4228 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
4229 (build-system emacs-build-system)
4230 (propagated-inputs
4231 (list emacs-bui emacs-magit-popup))
4232 (home-page "https://notabug.org/alezost/emacs-build-farm")
4233 (synopsis "Emacs interface for Hydra and Cuirass build farms")
4234 (description
4235 "This Emacs package provides an interface for Hydra and
4236 Cuirass (build farms used by Nix and Guix). It allows you to look at
4237 various data related to the build farm projects, jobsets, builds and
4238 evaluations. The entry point is @code{M-x build-farm} command.")
4239 (license license:gpl3+)))
4240
4241 (define-public emacs-d-mode
4242 (package
4243 (name "emacs-d-mode")
4244 (version "2.0.12")
4245 (source
4246 (origin
4247 (method git-fetch)
4248 (uri (git-reference
4249 (url "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
4250 (commit version)))
4251 (file-name (git-file-name name version))
4252 (sha256
4253 (base32 "0mwd412d2kha8avkyhvvkh8r7an859xk18f7phgx7kj989pr3xkr"))))
4254 (build-system emacs-build-system)
4255 (propagated-inputs
4256 (list emacs-undercover))
4257 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
4258 (synopsis "Emacs major mode for editing D code")
4259 (description "This package provides an Emacs major mode for highlighting
4260 code written in the D programming language.")
4261 (license license:gpl2+)))
4262
4263 (define-public emacs-extempore-mode
4264 ;; Use the latest commit at time of packaging. There are no releases or tags.
4265 (let ((commit "09518ae6650d7be33a4633a4c0f31b7130d04c6e")
4266 (revision "1"))
4267 (package
4268 (name "emacs-extempore-mode")
4269 (version (git-version "0.0.0" revision commit))
4270 (source
4271 (origin
4272 (method git-fetch)
4273 (uri (git-reference
4274 (url "https://github.com/extemporelang/extempore-emacs-mode")
4275 (commit commit)))
4276 (file-name (git-file-name name version))
4277 (sha256
4278 (base32 "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp"))))
4279 (build-system emacs-build-system)
4280 (home-page "https://github.com/extemporelang/extempore-emacs-mode")
4281 (synopsis "Emacs major mode for Extempore source files")
4282 (description
4283 "This package provides a major mode for editing Extempore code. It can
4284 create an Extempore REPL, connect the current @code{extempore-mode} buffer to a
4285 running Extempore process, and more.")
4286 (license license:bsd-2))))
4287
4288 (define-public emacs-kakoune
4289 ;; Package has no release. Version is extracted from "Version:" keyword in
4290 ;; main file.
4291 (let ((commit "d73d14e69ea38076af50cc69f846808383ff539d")
4292 (revision "0"))
4293 (package
4294 (name "emacs-kakoune")
4295 (version (git-version "0.1" revision commit))
4296 (source
4297 (origin
4298 (method git-fetch)
4299 (uri (git-reference
4300 (url "https://github.com/jmorag/kakoune.el")
4301 (commit commit)))
4302 (file-name (git-file-name name version))
4303 (sha256
4304 (base32 "0nk6jdy1y5mc3ryd0smiqghrk6iv34d5grc7f7migmshlbq0np92"))))
4305 (build-system emacs-build-system)
4306 (propagated-inputs
4307 (list emacs-expand-region emacs-multiple-cursors emacs-ryo-modal))
4308 (home-page "https://github.com/jmorag/kakoune.el")
4309 (synopsis "Emacs simple simulation, but not emulation, of Kakoune")
4310 (description "This package provides many, but not all of the editing
4311 primitives in the Kakoune editor. Unlike Evil mode for Vim, this is a very
4312 shallow emulation, which seeks to do as little work as possible, leveraging
4313 Emacs native editing commands and the work of other packages wherever
4314 possible.")
4315 (license license:expat))))
4316
4317 (define-public emacs-kana
4318 ;; Package has no release. Version is extracted from "Version:" keyword in
4319 ;; main file.
4320 (let ((commit "b239c3c3c6124b46ff720cca7b80ecbafd7fa489")
4321 (revision "0"))
4322 (package
4323 (name "emacs-kana")
4324 (version (git-version "1.0.0" revision commit))
4325 (source
4326 (origin
4327 (method git-fetch)
4328 (uri (git-reference
4329 (url "https://github.com/chenyanming/kana")
4330 (commit commit)))
4331 (file-name (git-file-name name version))
4332 (sha256
4333 (base32 "0vrrl1kniq4h111jvnapvx3wybvsl3alfaygw634mmryr3h7pwi8"))))
4334 (build-system emacs-build-system)
4335 (home-page "https://github.com/chenyanming/kana")
4336 (synopsis "Learn Japanese Kana in Emacs")
4337 (description
4338 "This Emacs mode displays Hiragana and Katakana flashcards. It can use
4339 functionality from Emacs Kanji mode if it is installed.")
4340 (license license:gpl3+))))
4341
4342 (define-public emacs-kanji
4343 ;; Package has no release. Version is extracted from "Version:" keyword in
4344 ;; main file.
4345 (let ((commit "5e9d5b72468ece11cfb81b729be6babf63ede425")
4346 (revision "0"))
4347 (package
4348 (name "emacs-kanji")
4349 (version (git-version "1.0" revision commit))
4350 (source
4351 (origin
4352 (method git-fetch)
4353 (uri (git-reference
4354 (url "https://github.com/wsgac/kanji-mode")
4355 (commit commit)))
4356 (file-name (git-file-name name version))
4357 (sha256
4358 (base32 "1zh7klqaza840q5f44zzh1wrnd6sqa2k93z3dgx3yhhsxfd1dxvy"))))
4359 (build-system emacs-build-system)
4360 (home-page "https://github.com/wsgac/kanji-mode")
4361 (synopsis "Emacs minor mode for displaying Japanese Kanji stroke order")
4362 (description
4363 "This minor mode displays the stroke order of the Kanji sign under
4364 cursor in a transient buffer. It has a built-in collection of SVG images
4365 depicting stroke orders for all Kanji. The collection is a slightly modified
4366 and limited version of the images provided by the KanjiVG project.")
4367 (license license:gpl3+))))
4368
4369 (define-public emacs-kbd
4370 ;; Package has no release. Version is extracted from "Version:" keyword in
4371 ;; main file.
4372 (let ((commit "a7f4c9b9770fa6a58895c5f121df82652bb1b737")
4373 (revision "0"))
4374 (package
4375 (name "emacs-kbd")
4376 (version (git-version "0.0.1" revision commit))
4377 (source
4378 (origin
4379 (method git-fetch)
4380 (uri (git-reference
4381 (url "https://github.com/slotThe/kbd-mode")
4382 (commit commit)))
4383 (file-name (git-file-name name version))
4384 (sha256
4385 (base32 "0jv9yfsncgf96308c041hvps3jlc151xb0aipm0vasbma3x83ygm"))))
4386 (build-system emacs-build-system)
4387 (arguments
4388 (list
4389 #:phases
4390 #~(modify-phases %standard-phases
4391 (add-after 'unpack 'enter-lisp-directory
4392 (lambda _ (chdir "lisp"))))))
4393 (home-page "https://github.com/slotThe/kbd-mode")
4394 (synopsis "Minor mode for syntax highlighting kmonad's @file{.kbd} files")
4395 (description
4396 "This minor mode provides syntax highlighting for Lisp-like DSL used in
4397 kmonad's configuration files (@file{.kbd}).")
4398 (license license:gpl3+))))
4399
4400 (define-public emacs-keycast
4401 (package
4402 (name "emacs-keycast")
4403 (version "1.2.0")
4404 (source
4405 (origin
4406 (method git-fetch)
4407 (uri (git-reference
4408 (url "https://github.com/tarsius/keycast")
4409 (commit (string-append "v" version))))
4410 (file-name (git-file-name name version))
4411 (sha256
4412 (base32 "01z20lsnjk8pwdsl4vx5dqdc4603bmb7fxan7n8j1fgvkvi63yzl"))))
4413 (build-system emacs-build-system)
4414 (home-page "https://github.com/tarsius/keycast")
4415 (synopsis "Show current command and its key in the mode line")
4416 (description
4417 "This package provides Keycast mode. Once enabled, that mode shows the
4418 current command and its key or mouse binding in the mode line, and updates
4419 them whenever another command is invoked.")
4420 (license license:gpl3+)))
4421
4422 (define-public emacs-keyfreq
4423 (package
4424 (name "emacs-keyfreq")
4425 (version "20160516.716")
4426 (source
4427 (origin
4428 (method url-fetch)
4429 (uri (string-append "http://melpa.org/packages/keyfreq-"
4430 version ".el"))
4431 (sha256
4432 (base32
4433 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
4434 (build-system emacs-build-system)
4435 (home-page "https://github.com/dacap/keyfreq")
4436 (synopsis "Track Emacs command frequencies")
4437 (description "@code{emacs-keyfeq} tracks and shows how many times you used
4438 a command.")
4439 (license license:gpl3+)))
4440
4441 (define-public emacs-olivetti
4442 (package
4443 (name "emacs-olivetti")
4444 (version "2.0.4")
4445 (source
4446 (origin
4447 (method git-fetch)
4448 (uri (git-reference
4449 (url "https://github.com/rnkn/olivetti")
4450 (commit (string-append "v" version))))
4451 (file-name (git-file-name name version))
4452 (sha256
4453 (base32 "0wc0rki4zvzdxs126g5c8d92h1vfn9slfkdx831rr9d0jx93wc7s"))))
4454 (build-system emacs-build-system)
4455 (home-page "https://github.com/rnkn/olivetti")
4456 (synopsis "Emacs minor mode for a nice writing environment")
4457 (description "This package provides an Emacs minor mode that puts writing
4458 in the center.")
4459 (license license:gpl3+)))
4460
4461 (define-public emacs-undo-tree
4462 (package
4463 (name "emacs-undo-tree")
4464 (version "0.8.2")
4465 (source
4466 (origin
4467 (method git-fetch)
4468 (uri (git-reference
4469 (url "https://gitlab.com/tsc25/undo-tree")
4470 (commit "42aab056e37e033816b2d192f9121b89410b958e"))) ; no 0.8.2 tag
4471 (file-name (git-file-name name version))
4472 (sha256
4473 (base32 "1xvkxc078b4z5zqwndz6jcv4ga8yd2ci32v7l8pdvqjmz7fq7bfz"))))
4474 (build-system emacs-build-system)
4475 (propagated-inputs
4476 (list emacs-queue))
4477 (home-page "https://www.dr-qubit.org/undo-tree.html")
4478 (synopsis "Treat undo history as a tree")
4479 (description
4480 "Tree-like interface to Emacs undo system, providing
4481 graphical tree presentation of all previous states of buffer that
4482 allows easily move between them.")
4483 (license license:gpl3+)))
4484
4485 (define-public emacs-undo-fu
4486 ;; There are no tagged releases upstream on gitlab, instead we are using
4487 ;; the most recent commit.
4488 (let ((commit "c0806c1903c5a0e4c69b6615cdc3366470a9b8ca")
4489 (revision "0"))
4490 (package
4491 (name "emacs-undo-fu")
4492 (version (git-version "0.4" revision commit))
4493 (source
4494 (origin
4495 (method git-fetch)
4496 (uri (git-reference
4497 (url "https://gitlab.com/ideasman42/emacs-undo-fu")
4498 (commit commit)))
4499 (file-name (git-file-name name version))
4500 (sha256
4501 (base32 "1n594aakmcgyl7qbda86v4wsx8clm62ypiv3h559xz3x72h7mr3j"))))
4502 (build-system emacs-build-system)
4503 (home-page "https://gitlab.com/ideasman42/emacs-undo-fu")
4504 (synopsis "Simple, stable linear undo with redo for Emacs")
4505 (description
4506 "This is a light weight wrapper for Emacs built-in undo system,
4507 adding convenient undo/redo without losing access to the full undo history,
4508 allowing you to visit all previous states of the document if you need.")
4509 (license license:gpl3+))))
4510
4511 (define-public emacs-undo-fu-session
4512 ;; There are no tagged releases upstream on gitlab, instead we are using the
4513 ;; most recent commit.
4514 (let ((commit "56cdd3538a058c6916bdf2d9010c2179f2505829")
4515 (revision "0"))
4516 (package
4517 (name "emacs-undo-fu-session")
4518 (version (git-version "0.2" revision commit))
4519 (source
4520 (origin
4521 (method git-fetch)
4522 (uri (git-reference
4523 (url "https://gitlab.com/ideasman42/emacs-undo-fu-session")
4524 (commit commit)))
4525 (file-name (git-file-name name version))
4526 (sha256
4527 (base32 "04wq1alrzzlidcb4mjb5j7pg68pks1vgv7kvvmi6dzb3l602mb2a"))))
4528 (build-system emacs-build-system)
4529 (arguments
4530 (list
4531 #:tests? #t
4532 #:test-command #~(list "emacs" "--batch" "-l" "undo-fu-session.el"
4533 "-l" "undo-fu-session-test.el")
4534 #:phases
4535 #~(modify-phases %standard-phases
4536 (add-before 'check 'set-home
4537 (lambda _
4538 (setenv "HOME" "/tmp"))))))
4539 (home-page "https://gitlab.com/ideasman42/emacs-undo-fu-session")
4540 (synopsis "Save & recover undo steps between Emacs sessions")
4541 (description "This package writes undo/redo information upon file save
4542 which is restored where possible when the file is loaded again.")
4543 (license license:gpl3+))))
4544
4545 (define-public emacs-s
4546 (package
4547 (name "emacs-s")
4548 (version "1.13.0")
4549 (source
4550 (origin
4551 (method git-fetch)
4552 (uri (git-reference
4553 (url "https://github.com/magnars/s.el")
4554 (commit version)))
4555 (file-name (git-file-name name version))
4556 (sha256
4557 (base32 "010i92kagqbfis46n1ffa28fgkdkjp55n13b6f4izar5r7ixm6wx"))))
4558 (build-system emacs-build-system)
4559 (arguments
4560 `(#:tests? #t
4561 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
4562 #:test-command '("./run-tests.sh")))
4563 (home-page "https://github.com/magnars/s.el")
4564 (synopsis "Emacs string manipulation library")
4565 (description "This package provides an Emacs library for manipulating
4566 strings.")
4567 (license license:gpl3+)))
4568
4569 (define-public emacs-blight
4570 (let ((commit "6bf9c6192d2bf979eebbfae1963401ef3ff4ef5d")
4571 (revision "0"))
4572 (package
4573 (name "emacs-blight")
4574 (version (git-version "0" revision commit))
4575 (source
4576 (origin
4577 (method git-fetch)
4578 (uri (git-reference
4579 (url "https://codeberg.org/emacs-weirdware/blight")
4580 (commit commit)))
4581 (file-name (git-file-name name version))
4582 (sha256
4583 (base32 "1x7s1fcva5kkl9iyb5grd6crf38rrz3zb0c6wb85khi9far10vgq"))))
4584 (build-system emacs-build-system)
4585 (home-page "https://codeberg.org/emacs-weirdware/blight")
4586 (synopsis "Control display brightness")
4587 (description
4588 "Blight allows you to control display brightness from Emacs. It
4589 features object-oriented code using EIEIO, a base class implementing
4590 a reasonable API which focuses on the @emph{set the back light to this
4591 percentage} functionality, it includes a concrete implementation that uses
4592 SysFS to control brightness. Other systems (D-Bus, xbacklight, XELB using
4593 XRandR) are easily supportable, giving the same experience across
4594 environments.")
4595 (license license:gpl3+))))
4596
4597 (define-public emacs-symon
4598 (package
4599 (name "emacs-symon")
4600 (version "20160630")
4601 (source
4602 (origin
4603 (method git-fetch)
4604 (uri (git-reference
4605 (url "https://github.com/zk-phi/symon")
4606 (commit version)))
4607 (file-name (git-file-name name version))
4608 (sha256
4609 (base32 "1q7di9s8k710nx98wnqnbkkhdimrn0jf6z4xkm4c78l6s5idjwlz"))))
4610 (build-system emacs-build-system)
4611 (home-page "https://github.com/zk-phi/symon")
4612 (synopsis "Tiny graphical system monitor")
4613 (description
4614 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
4615 (license license:gpl2+)))
4616
4617 (define-public emacs-lemon
4618 (let ((commit "37a6e6d6ef0900ca19c820a2dbc122c7fe6d86cf")
4619 (revision "0"))
4620 (package
4621 (name "emacs-lemon")
4622 (version (git-version "2.0.0" revision commit))
4623 (source
4624 (origin
4625 (method git-fetch)
4626 (uri (git-reference
4627 (url "https://codeberg.org/emacs-weirdware/lemon")
4628 (commit commit)))
4629 (file-name (git-file-name name version))
4630 (sha256
4631 (base32 "0bc77vzi4p6mlzmhgybbldlpcsiiv4xqrd5lnc7wzvmxv8byhqpm"))))
4632 (build-system emacs-build-system)
4633 (native-inputs
4634 (list emacs-blight emacs-emms))
4635 (propagated-inputs
4636 (list emacs-s))
4637 (home-page "https://codeberg.org/emacs-weirdware/lemon")
4638 (synopsis "System monitors in the echo area")
4639 (description
4640 "Lemon is a tiny system monitor which displays system information in
4641 the echo area when Emacs is has been idle for a few seconds. This is a fork
4642 of zk_phi’s Symon, which has been largely rewritten. It works nicely with
4643 EXWM.")
4644 (license license:gpl3+))))
4645
4646 (define-public emacs-sx
4647 (let ((version "20191229")
4648 (revision "0")
4649 (commit "e9d1093c97507a6d7b4f4710ef65200dae725e5f"))
4650 (package
4651 (name "emacs-sx")
4652 (version (git-version version revision commit))
4653 (source
4654 (origin
4655 (method git-fetch)
4656 (uri (git-reference
4657 (url "https://github.com/vermiculus/sx.el")
4658 (commit commit)))
4659 (file-name (git-file-name name version))
4660 (sha256
4661 (base32 "0m90ddwm8j0y6d1ppqhd2gil1107k202blw6mzm5bdambn4nfqkf"))))
4662 (build-system emacs-build-system)
4663 (propagated-inputs
4664 (list emacs-markdown-mode))
4665 (home-page "https://github.com/vermiculus/sx.el")
4666 (synopsis "Emacs StackExchange client")
4667 (description
4668 "Emacs StackExchange client. Ask and answer questions on
4669 Stack Overflow, Super User, and other StackExchange sites.")
4670 (license license:gpl3+))))
4671
4672 (define-public emacs-skempo
4673 (package
4674 (name "emacs-skempo")
4675 (version "0.1.0")
4676 (source
4677 (origin
4678 (method git-fetch)
4679 (uri (git-reference
4680 (url "https://github.com/xFA25E/skempo")
4681 (commit version)))
4682 (file-name (git-file-name name version))
4683 (sha256
4684 (base32
4685 "0na465f27p6n64sf0pj0aqdi384m1wy3hxcc2d6a67hs39rkyvi9"))))
4686 (build-system emacs-build-system)
4687 (propagated-inputs
4688 (list emacs-parent-mode))
4689 (home-page "https://github.com/xFA25E/skempo")
4690 (synopsis "Enhancements for skeleton/tempo + abbrev")
4691 (description
4692 "Skempo is an attempt to improve Emacs built-in Skeleton and Tempo
4693 templates. It tries to make a unified syntax for template definitions. It
4694 also adds tags and marks support for Skeleton, and Abbrev support for Tempo.")
4695 (license license:gpl3+)))
4696
4697 (define-public emacs-toc-org
4698 (package
4699 (name "emacs-toc-org")
4700 (version "1.2.0")
4701 (source
4702 (origin
4703 (method git-fetch)
4704 (uri (git-reference
4705 (url "https://github.com/snosov1/toc-org")
4706 (commit version)))
4707 (file-name (git-file-name name version))
4708 (sha256
4709 (base32 "00a2al7ghrlabf65kfj1mk30p2pl37h6ppwlgghbgiy7rwlzkdbm"))))
4710 (build-system emacs-build-system)
4711 (home-page "https://github.com/snosov1/toc-org")
4712 (synopsis "Table of Contents generator for Emacs Org mode")
4713 (description
4714 "This package generates a table of contents when saving in Org and
4715 Markdown files.")
4716 (license license:gpl2+)))
4717
4718 (define-public emacs-toml-mode
4719 (let ((version "0.1.3")
4720 (revision "0")
4721 (commit "f6c61817b00f9c4a3cab1bae9c309e0fc45cdd06"))
4722 (package
4723 (name "emacs-toml-mode")
4724 (version (git-version version revision commit))
4725 (source
4726 (origin
4727 (method git-fetch)
4728 (uri (git-reference
4729 (url "https://github.com/dryman/toml-mode.el")
4730 (commit commit)))
4731 (file-name (git-file-name name version))
4732 (sha256
4733 (base32 "05b4ksay85c8y5ncax0qsvnmplwsfiw24z16a58gkarjz938hb57"))))
4734 (build-system emacs-build-system)
4735 (home-page "https://github.com/dryman/toml-mode.el")
4736 (synopsis "Emacs major mode for editing TOML files")
4737 (description
4738 ;; XXX: Ideally we'd use @acronym for "TOML", but Guile's Texinfo
4739 ;; parser does not currently support @comma{}, making it impossible
4740 ;; to use commas in the @acronym arguments.
4741 "This package provides a major mode for editing files in @dfn{TOML}
4742 (Tom's Obvious, Minimal Language) data format.")
4743 (license license:gpl3+))))
4744
4745 (define-public emacs-twittering-mode
4746 (package
4747 (name "emacs-twittering-mode")
4748 (version "3.1.0")
4749 (source
4750 (origin
4751 (method url-fetch)
4752 (uri (string-append "mirror://sourceforge/twmode"
4753 "/twittering-mode-" version
4754 "/twittering-mode-" version ".tar.xz"))
4755 (sha256
4756 (base32 "02imis1gxz90lah0b5n37j2hlsaw5igss11d85vpsm5d1bgw8j28"))))
4757 (build-system emacs-build-system)
4758 (home-page "http://twmode.sourceforge.net")
4759 (synopsis "Emacs major mode for Twitter")
4760 (description
4761 "Twittering mode is an Emacs major mode for Twitter.
4762 You can check timelines, tweet, mark posts as favorites and so on with
4763 Emacs.")
4764 (license license:gpl2+)))
4765
4766 (define-public emacs-f
4767 (package
4768 (name "emacs-f")
4769 (version "0.20.0")
4770 (source (origin
4771 (method git-fetch)
4772 (uri (git-reference
4773 (url "https://github.com/rejeep/f.el")
4774 (commit (string-append "v" version))))
4775 (file-name (git-file-name name version))
4776 (sha256
4777 (base32
4778 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
4779 (build-system emacs-build-system)
4780 (propagated-inputs
4781 (list emacs-s emacs-dash))
4782 (home-page "https://github.com/rejeep/f.el")
4783 (synopsis "Emacs API for working with files and directories")
4784 (description "This package provides an Emacs library for working with
4785 files and directories.")
4786 (license license:gpl3+)))
4787
4788 (define-public emacs-fountain-mode
4789 (package
4790 (name "emacs-fountain-mode")
4791 (version "3.6.0")
4792 (source
4793 (origin
4794 (method git-fetch)
4795 (uri (git-reference
4796 (url "https://github.com/rnkn/fountain-mode")
4797 (commit (string-append "v" version))))
4798 (file-name (git-file-name name version))
4799 (sha256
4800 (base32 "14cb4r23pn98sxzh0qwjwpvm7k7q9hhpks8avydccwssm69x1s1w"))))
4801 (build-system emacs-build-system)
4802 (home-page "https://github.com/rnkn/fountain-mode")
4803 (synopsis "Major mode for screenwriting in Fountain markup")
4804 (description "Fountain Mode is a scriptwriting program for GNU Emacs
4805 using the Fountain plain text markup format.")
4806 (license license:gpl3+)))
4807
4808 (define-public emacs-fringe-helper
4809 (let ((commit "ef4a9c023bae18ec1ddd7265f1f2d6d2e775efdd")
4810 (revision "1"))
4811 (package
4812 (name "emacs-fringe-helper")
4813 (version (git-version "1.0.1" revision commit))
4814 (source
4815 (origin
4816 (method git-fetch)
4817 (uri (git-reference
4818 (url "https://github.com/nschum/fringe-helper.el")
4819 (commit commit)))
4820 (file-name (git-file-name name version))
4821 (sha256
4822 (base32 "0ra9rc53l1gvkqank8apasl3r7wz2yfjrcvmfk3wpxhh24ppxv9d"))))
4823 (build-system emacs-build-system)
4824 (arguments
4825 `(#:tests? #t
4826 #:test-command '("emacs" "--batch"
4827 "-l" "tests.el"
4828 "-f" "ert-run-tests-batch-and-exit")))
4829 (home-page "https://github.com/nschum/fringe-helper.el")
4830 (synopsis "Helper functions for fringe bitmaps")
4831 (description
4832 "This package allows fringe bitmaps to be defined with a visual string
4833 representation.")
4834 (license license:gpl2+))))
4835
4836 (define-public emacs-git-gutter
4837 (package
4838 (name "emacs-git-gutter")
4839 (version "0.92")
4840 (source
4841 (origin
4842 (method git-fetch)
4843 (uri (git-reference
4844 (url "https://github.com/syohex/emacs-git-gutter")
4845 (commit version)))
4846 (file-name (git-file-name name version))
4847 (sha256
4848 (base32 "1fkp6iyisb3g5afyjkxz4yj4ws5f8n7whklck4jdf3014vs01b3c"))))
4849 (build-system emacs-build-system)
4850 (home-page "https://github.com/syohex/emacs-git-gutter")
4851 (synopsis "See and manage hunks of text in a version control system")
4852 (description
4853 "This package is an Emacs minor mode for displaying and interacting with
4854 hunks of text managed in a version control system. Added modified and deleted
4855 areas can be indicated with symbols on the edge of the buffer, and commands
4856 can be used to move between and perform actions on these hunks.
4857
4858 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
4859 display and behaviour is easily customisable.")
4860 (license license:gpl3+)))
4861
4862 (define-public emacs-git-gutter-fringe
4863 (let ((commit "16226caab44174301f1659f7bf8cc67a76153445")
4864 (revision "1"))
4865 (package
4866 (name "emacs-git-gutter-fringe")
4867 (version (git-version "0.23" revision commit))
4868 (source
4869 (origin
4870 (method git-fetch)
4871 (uri (git-reference
4872 (url "https://github.com/emacsorphanage/git-gutter-fringe")
4873 (commit commit)))
4874 (file-name (git-file-name name version))
4875 (sha256
4876 (base32 "1y77gjl0yznamdj0f55d418zb75k22izisjg7ikvrfsl2yfqf3pm"))))
4877 (build-system emacs-build-system)
4878 (propagated-inputs
4879 (list emacs-git-gutter emacs-fringe-helper))
4880 (home-page "https://github.com/emacsorphanage/git-gutter-fringe")
4881 (synopsis "See and manage hunks of text in a version control system")
4882 (description
4883 "This package extends @code{git-gutter} to use the fringe area of a
4884 window.")
4885 (license license:gpl3+))))
4886
4887 (define-public emacs-git-link
4888 (package
4889 (name "emacs-git-link")
4890 (version "0.8.6")
4891 (source
4892 (origin
4893 (method git-fetch)
4894 (uri (git-reference
4895 (url "https://github.com/sshaw/git-link")
4896 (commit (string-append "v" version))))
4897 (file-name (git-file-name name version))
4898 (sha256
4899 (base32 "1ifq9z4p0rbz2bpm6qz89xg5ycn5fflsyradzzxzsgyys0zc6szx"))))
4900 (build-system emacs-build-system)
4901 (arguments
4902 (list
4903 #:tests? #t
4904 #:test-command #~(list "make" "test")))
4905 (home-page "https://github.com/sshaw/git-link")
4906 (synopsis "Create links for files and commits in GitHub/GitLab/etc. repos")
4907 (description
4908 "@code{git-link} returns the URL for the current buffer's file location
4909 at the current line number or active region. @code{git-link-commit} returns
4910 the URL for a commit. URLs are added to the kill ring.")
4911 (license license:gpl3+)))
4912
4913 (define-public emacs-apache-mode
4914 (package
4915 (name "emacs-apache-mode")
4916 (version "2.2.0")
4917 (source (origin
4918 (method git-fetch)
4919 (uri (git-reference
4920 (url "https://github.com/emacs-php/apache-mode")
4921 (commit version)))
4922 (file-name (git-file-name name version))
4923 (sha256
4924 (base32
4925 "1grs2x51k8pa6sgfa82s5pwwdfv7zw46ccw0zvd2rvzbhpq21p2z"))))
4926 (build-system emacs-build-system)
4927 (home-page "https://github.com/emacs-php/apache-mode")
4928 (synopsis
4929 "Syntax highlighting and indentation support for Apache config files")
4930 (description
4931 "This package provides @code{apache-mode}, an Emacs major mode for Apache
4932 configuration files which provides syntax highlighting and indentation rules.
4933 This mode supports Apache HTTP Server 2.4 and major modules.")
4934 (license license:gpl2+)))
4935
4936 (define-public emacs-apheleia
4937 (package
4938 (name "emacs-apheleia")
4939 (version "3.0")
4940 (source
4941 (origin
4942 (method git-fetch)
4943 (uri (git-reference
4944 (url "https://github.com/raxod502/apheleia")
4945 (commit (string-append "v" version))))
4946 (file-name (git-file-name name version))
4947 (sha256
4948 (base32 "0fpqh4wv69msfsnv3k88cai3nbja70ab5c02xf8gwfgg3613pjdd"))))
4949 (build-system emacs-build-system)
4950 (home-page "https://github.com/raxod502/apheleia")
4951 (synopsis "Reformat buffer stably")
4952 (description
4953 "This package allows for a buffer to be reformatted without moving point,
4954 so that running a formatting tool like @code{Prettier} or @code{Black} upon
4955 saving won't move point back to the beginning of the buffer.")
4956 (license license:gpl3+)))
4957
4958 (define-public emacs-git-timemachine
4959 (package
4960 (name "emacs-git-timemachine")
4961 (version "4.11")
4962 (source
4963 (origin
4964 (method git-fetch)
4965 (uri (git-reference
4966 (url "https://gitlab.com/pidu/git-timemachine.git")
4967 (commit version)))
4968 (file-name (git-file-name name version))
4969 (sha256
4970 (base32
4971 "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n"))))
4972 (build-system emacs-build-system)
4973 (home-page "https://gitlab.com/pidu/git-timemachine")
4974 (synopsis "Step through historic versions of Git-controlled files")
4975 (description "This package enables you to step through historic versions
4976 of files under Git version control from within Emacs.")
4977 (license license:gpl3+)))
4978
4979 (define-public emacs-minitest
4980 (package
4981 (name "emacs-minitest")
4982 (version "0.9.2")
4983 (source (origin
4984 (method git-fetch)
4985 (uri (git-reference
4986 (url "https://github.com/arthurnn/minitest-emacs")
4987 (commit (string-append "v" version))))
4988 (file-name (git-file-name name version))
4989 (sha256
4990 (base32
4991 "0d8kg68yy5x1y3ivj43vzcakb3gii6bh8jm40g4sah5f53bbrs16"))))
4992 (build-system emacs-build-system)
4993 (arguments
4994 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
4995 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
4996 (propagated-inputs
4997 (list emacs-dash emacs-f))
4998 (home-page "https://github.com/arthurnn/minitest-emacs")
4999 (synopsis "Emacs minitest mode")
5000 (description
5001 "The minitest mode provides commands to run the tests for the current
5002 file or line, as well as rerunning the previous tests, or all the tests for a
5003 project.
5004
5005 This package also includes relevant snippets for yasnippet.")
5006 (license license:expat)))
5007
5008 (define-public emacs-gdscript-mode
5009 (package
5010 (name "emacs-gdscript-mode")
5011 (version "1.4.0")
5012 (source
5013 (origin
5014 (method git-fetch)
5015 (uri (git-reference
5016 (url "https://github.com/godotengine/emacs-gdscript-mode")
5017 (commit version)))
5018 (file-name (git-file-name name version))
5019 (sha256
5020 (base32 "09q0himrz7a6xgz0jmcl85qc5xhk5fwi6d2vw1n8qaiavm96ksdy"))))
5021 (build-system emacs-build-system)
5022 (home-page "https://github.com/godotengine/emacs-gdscript-mode")
5023 (synopsis "GDScript support and syntax highlighting in Emacs")
5024 (description
5025 "This package adds support for the GDScript programming language from the
5026 Godot game engine in Emacs. It features all the essentials, e.g., syntax
5027 highlighting, code folding, indentation, automatic pairing, auto-completion,
5028 and code formatting.")
5029 (license license:gpl3+)))
5030
5031 (define-public emacs-el-mock
5032 (package
5033 (name "emacs-el-mock")
5034 (version "1.25.1")
5035 (source
5036 (origin
5037 (method git-fetch)
5038 (uri (git-reference
5039 (url "https://github.com/rejeep/el-mock.el")
5040 (commit (string-append "v" version))))
5041 (file-name (git-file-name name version))
5042 (sha256
5043 (base32 "13mv1rhgkwiww2wh5w926jz7idppp492wir1vdl245c5x50dh4f7"))))
5044 (build-system emacs-build-system)
5045 (home-page "https://github.com/rejeep/el-mock.el")
5046 (synopsis "Tiny mock and stub framework in Emacs Lisp")
5047 (description
5048 "Emacs Lisp Mock is a library for mocking and stubbing using readable
5049 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
5050 Expectations, but it can be used in other contexts.")
5051 (license license:gpl3+)))
5052
5053 (define-public emacs-ecukes
5054 (package
5055 (name "emacs-ecukes")
5056 (version "0.6.18")
5057 (source
5058 (origin
5059 (method git-fetch)
5060 (uri (git-reference
5061 (url "https://github.com/ecukes/ecukes")
5062 (commit (string-append "v" version))))
5063 (file-name (git-file-name name version))
5064 (sha256
5065 (base32 "182qgddfv8nd89y1l55rs5vm5i61ayc8cxbplb8zx0alnid9xrw1"))))
5066 (build-system emacs-build-system)
5067 (arguments
5068 `(#:include (cons* "^feature/" "^reporters/" "^templates/" %default-include)))
5069 (propagated-inputs
5070 (list emacs-ansi
5071 emacs-commander
5072 emacs-dash
5073 emacs-espuds
5074 emacs-f
5075 emacs-s))
5076 (home-page "https://github.com/ecukes/ecukes")
5077 (synopsis "Cucumber for Emacs")
5078 (description
5079 "This package provides Ecukes, a Cucumber-inspired integration testing
5080 tool for Emacs. Ecukes is not a complete clone of Cucumber and is not
5081 intended to be.")
5082 (license license:gpl3+)))
5083
5084 (define-public emacs-espuds
5085 (package
5086 (name "emacs-espuds")
5087 (version "0.3.3")
5088 (source
5089 (origin
5090 (method git-fetch)
5091 (uri (git-reference
5092 (url "https://github.com/ecukes/espuds")
5093 (commit (string-append "v" version))))
5094 (file-name (git-file-name name version))
5095 (sha256
5096 (base32 "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg"))))
5097 (build-system emacs-build-system)
5098 (propagated-inputs
5099 (list emacs-s emacs-dash emacs-f))
5100 (home-page "https://github.com/ecukes/espuds")
5101 (synopsis "Common step definitions for Ecukes")
5102 (description "Espuds is a collection of the most commonly used step
5103 definitions for testing with the Ecukes framework.")
5104 (license license:gpl3+)))
5105
5106 (define-public emacs-spark
5107 (let ((version "20160503") ; no proper tag, use date of commit
5108 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
5109 (revision "1"))
5110 (package
5111 (name "emacs-spark")
5112 (version (git-version version revision commit))
5113 (source
5114 (origin
5115 (method git-fetch)
5116 (uri (git-reference
5117 (url "https://github.com/alvinfrancis/spark")
5118 (commit commit)))
5119 (file-name (git-file-name name version))
5120 (sha256
5121 (base32
5122 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
5123 (build-system emacs-build-system)
5124 (home-page "https://github.com/alvinfrancis/spark")
5125 (synopsis "Sparkline generation library for Emacs Lisp")
5126 (description "@code{emacs-spark} is a sparkline generation library for
5127 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
5128 port of @code{cl-spark} to Emacs Lisp.")
5129 (license license:expat))))
5130
5131 (define-public emacs-spray
5132 (let ((version "0.0.2") (revision "0")
5133 (commit "74d9dcfa2e8b38f96a43de9ab0eb13364300cb46"))
5134 (package
5135 (name "emacs-spray")
5136 (version (git-version version revision commit))
5137 (source (origin
5138 (method git-fetch)
5139 (uri (git-reference
5140 (url "https://git.sr.ht/~iank/spray")
5141 (commit commit)))
5142 (file-name (git-file-name name version))
5143 (sha256
5144 (base32
5145 "1avbfr32dvff26kgvd5vgan99nb5c6al9kv5xbmy2rcls17py7r2"))))
5146 (build-system emacs-build-system)
5147 (home-page "https://git.sr.ht/~iank/spray")
5148 (synopsis "Speed reading mode for Emacs")
5149 (description
5150 "For speed reading, or just more enjoyable reading. Narrows
5151 the buffer to show one word at a time. Adjust speed / pause as needed.")
5152 (license license:gpl3+))))
5153
5154 (define-public emacs-es-mode
5155 (package
5156 (name "emacs-es-mode")
5157 (version "4.3.0")
5158 (source
5159 (origin
5160 (method git-fetch)
5161 (uri (git-reference
5162 (url "https://github.com/dakrone/es-mode")
5163 (commit version)))
5164 (file-name (git-file-name name version))
5165 (sha256
5166 (base32 "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg"))))
5167 (build-system emacs-build-system)
5168 (propagated-inputs
5169 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
5170 ;; to be rendered incorrectly
5171 (list emacs-dash emacs-org emacs-spark))
5172 (home-page "https://github.com/dakrone/es-mode")
5173 (synopsis "Major mode for editing Elasticsearch queries")
5174 (description "@code{es-mode} includes highlighting, completion and
5175 indentation support for Elasticsearch queries. Also supported are
5176 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
5177 be processed through @code{jq}, or in the case of aggregations, can be
5178 rendered in to a table. In addition, there is an @code{es-command-center}
5179 mode, which displays information about Elasticsearch clusters.")
5180 (license license:gpl3+)))
5181
5182 (define-public emacs-expand-region
5183 (let ((commit "c5c4362741deebb0985a8a29f9b8b0e25160764a")
5184 (revision "1"))
5185 (package
5186 (name "emacs-expand-region")
5187 (version (git-version "0.11.0" revision commit))
5188 (source
5189 (origin
5190 (method git-fetch)
5191 (uri (git-reference
5192 (url "https://github.com/magnars/expand-region.el")
5193 (commit commit)))
5194 (file-name (git-file-name name version))
5195 (sha256
5196 (base32 "17h58v5mnggbrwrp61cwkqx8hzazkdqyz9p6s1hl9g2hys7zkb00"))))
5197 (build-system emacs-build-system)
5198 (home-page "https://github.com/magnars/expand-region.el")
5199 (synopsis "Increase selected region by semantic units")
5200 (description
5201 "Expand region increases the selected region by semantic units. Just
5202 keep pressing the key until it selects what you want. There's also
5203 @code{er/contract-region} if you expand too far.")
5204 (license license:gpl3+))))
5205
5206 (define-public emacs-explain-pause-mode
5207 (let ((commit "2356c8c3639cbeeb9751744dbe737267849b4b51")
5208 (revision "0"))
5209 (package
5210 (name "emacs-explain-pause-mode")
5211 (version (git-version "0.1" revision commit))
5212 (source
5213 (origin
5214 (method git-fetch)
5215 (uri (git-reference
5216 (url "https://github.com/lastquestion/explain-pause-mode")
5217 (commit commit)))
5218 (file-name (git-file-name name version))
5219 (sha256
5220 (base32 "0frnfwqal9mrnrz6q4v7vcai26ahaw81894arff1yjw372pfgv7v"))))
5221 (build-system emacs-build-system)
5222 (native-inputs
5223 (list emacs-buttercup))
5224 (arguments
5225 '(#:tests? #t
5226 #:phases
5227 (modify-phases %standard-phases
5228 ;; This causes the byte-compilation before unit-tests to fail.
5229 (add-after 'unpack 'remove-error-on-warn
5230 (lambda _
5231 (substitute* "Makefile"
5232 (("--eval '\\(setq byte-compile-error-on-warn t\\)'") "")))))
5233 ;; Don't run case-tests as they will fail to create sockets because
5234 ;; the path is too long
5235 #:test-command '("make" "byte-compile" "unit-tests")
5236 ;; Parallel testing will cause the tests to run before
5237 ;; byte-compilation is finished
5238 #:parallel-tests? #f))
5239 (home-page "https://github.com/lastquestion/explain-pause-mode")
5240 (synopsis "Top-like interface to determine why Emacs paused")
5241 (description
5242 "This package monitors Emacs function calls and records their execution
5243 time. This information can be reviewed to determine what is causing the user
5244 interface to pause.")
5245 (license license:gpl3+))))
5246
5247 (define-public emacs-filladapt
5248 (package
5249 (name "emacs-filladapt")
5250 (version "2.12.2")
5251 (source
5252 (origin
5253 (method url-fetch)
5254 (uri (string-append
5255 "https://elpa.gnu.org/packages/filladapt-"
5256 version ".el"))
5257 (sha256
5258 (base32
5259 "1cxyxfdjg1dsmn1jrl6b7xy03xr42fb6vyggh27s4dk417ils6yg"))))
5260 (build-system emacs-build-system)
5261 (home-page "http://elpa.gnu.org/packages/filladapt.html")
5262 (synopsis "Adaptive fill for Emacs")
5263 (description
5264 "This package provides functions which enhance the default behavior of
5265 Emacs' Auto Fill mode and the commands @code{fill-paragraph},
5266 @code{lisp-fill-paragraph}, @code{fill-region-as-paragraph}, and
5267 @code{fill-region}.
5268
5269 The chief improvement is that the beginning of a line to be
5270 filled is examined and, based on information gathered, an
5271 appropriate value for fill-prefix is constructed. Also the
5272 boundaries of the current paragraph are located. This occurs
5273 only if the fill prefix is not already non-nil.
5274
5275 The net result of this is that blurbs of text that are offset
5276 from left margin by asterisks, dashes, and/or spaces, numbered
5277 examples, included text from USENET news articles, etc. are
5278 generally filled correctly with no fuss.")
5279 (license license:gpl3+)))
5280
5281 (define-public emacs-fill-column-indicator
5282 (package
5283 (name "emacs-fill-column-indicator")
5284 (version "1.90")
5285 (source
5286 (origin
5287 (method git-fetch)
5288 (uri (git-reference
5289 (url "https://github.com/alpaker/Fill-Column-Indicator")
5290 (commit version)))
5291 (file-name (git-file-name name version))
5292 (sha256
5293 (base32 "0snjznxdwwfdgccdcvrnk467416r244r2r5qcm2sga8l0ha9gw9z"))))
5294 (build-system emacs-build-system)
5295 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
5296 (synopsis "Graphically indicate the fill column")
5297 (description
5298 "Fill-column-indicator graphically indicates the location of the fill
5299 column by drawing a thin line down the length of the editing window.")
5300 (license license:gpl3+)))
5301
5302 (define-public emacs-grep-a-lot
5303 (package
5304 (name "emacs-grep-a-lot")
5305 (version "1.0.7")
5306 (source
5307 (origin
5308 (method git-fetch)
5309 (uri (git-reference
5310 (url "https://github.com/ZungBang/emacs-grep-a-lot")
5311 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
5312 (file-name (git-file-name name version))
5313 (sha256
5314 (base32 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
5315 (build-system emacs-build-system)
5316 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
5317 (synopsis "Enables multiple grep buffers in Emacs")
5318 (description
5319 "This Emacs package allows managing multiple grep buffers.")
5320 (license license:gpl3+)))
5321
5322 (define-public emacs-fd
5323 (package
5324 (name "emacs-fd")
5325 (version "0.1.0")
5326 (source (origin
5327 (method git-fetch)
5328 (uri (git-reference
5329 (url "https://github.com/yqrashawn/fd-dired")
5330 (commit version)))
5331 (file-name (git-file-name name version))
5332 (sha256
5333 (base32
5334 "1fas0fpvym2lyzybwm44gly9jz6a2fpp72yxnwfbqqjkfgk9910y"))))
5335 (build-system emacs-build-system)
5336 (home-page "https://github.com/yqrashawn/fd-dired")
5337 (synopsis "Dired-mode interface for fd result")
5338 (description "This package provides a dired-mode interface for fd's
5339 result.")
5340 (license license:gpl3+)))
5341
5342 (define-public emacs-ripgrep
5343 (package
5344 (name "emacs-ripgrep")
5345 (version "0.4.0")
5346 (source
5347 (origin
5348 (method git-fetch)
5349 (uri (git-reference
5350 (url "https://github.com/nlamirault/ripgrep.el")
5351 (commit version)))
5352 (file-name (git-file-name name version))
5353 (sha256
5354 (base32 "1a5rdpmvsgsjlc9sywism9pq7jd6n9qbcdsvpbfkq1npwhpifkbj"))))
5355 (build-system emacs-build-system)
5356 (arguments
5357 `(#:phases
5358 (modify-phases %standard-phases
5359 ;; The repository contains both ripgrep and projectile-ripgrep
5360 ;; packages. The latter has been merged into projectile itself.
5361 (add-after 'unpack 'delete-projectile-ripgrep
5362 (lambda _
5363 (delete-file "projectile-ripgrep.el"))))))
5364 (propagated-inputs
5365 (list ripgrep))
5366 (home-page "https://github.com/nlamirault/ripgrep.el")
5367 (synopsis "Search using ripgrep from inside Emacs")
5368 (description "@code{ripgrep} is an Emacs search package based on the
5369 @command{ripgrep} command line tool.")
5370 (license license:gpl2+)))
5371
5372 (define-public emacs-rg
5373 (package
5374 (name "emacs-rg")
5375 (version "2.2.1")
5376 (source
5377 (origin
5378 (method git-fetch)
5379 (uri (git-reference
5380 (url "https://github.com/dajva/rg.el")
5381 (commit version)))
5382 (file-name (git-file-name name version))
5383 (sha256
5384 (base32 "1nxzplpk5cf6hhr2v85bmg68i6am96shi2zq7m83fs96bilhwsp5"))))
5385 (build-system emacs-build-system)
5386 (arguments
5387 (list
5388 #:phases
5389 #~(modify-phases %standard-phases
5390 (add-after 'unpack 'remove-rg-path
5391 ;; Remove the path to ripgrep so that it works on remote systems.
5392 (lambda _
5393 (let ((file "rg.el"))
5394 (make-file-writable file)
5395 (emacs-substitute-sexps file
5396 ("(defcustom rg-executable" "rg"))))))))
5397 (propagated-inputs
5398 (list emacs-s emacs-wgrep ripgrep))
5399 (home-page "https://rgel.readthedocs.io/en/latest/")
5400 (synopsis "Search tool based on @code{ripgrep}")
5401 (description
5402 "@code{rg} is an Emacs search package based on the @code{ripgrep} command
5403 line tool. It allows one to interactively search based on the editing context
5404 then refine or modify the search results.")
5405 (license license:gpl3+)))
5406
5407 (define-public emacs-inf-ruby
5408 (package
5409 (name "emacs-inf-ruby")
5410 (version "2.5.2")
5411 (source
5412 (origin
5413 (method git-fetch)
5414 (uri (git-reference
5415 (url "https://github.com/nonsequitur/inf-ruby")
5416 (commit version)))
5417 (file-name (git-file-name name version))
5418 (sha256
5419 (base32 "0a1hhvfbl6mq8rjsi77fg9fh5a91hi5scjrg9rjqc5ffbql67y0v"))))
5420 (build-system emacs-build-system)
5421 (home-page "https://github.com/nonsequitur/inf-ruby")
5422 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
5423 (description
5424 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
5425 for easy interaction with a ruby subprocess. Features include support for
5426 detecting specific uses of Ruby, e.g. when using rails, and using a
5427 appropriate console.")
5428 (license license:gpl3+)))
5429
5430 (define-public emacs-znc
5431 (package
5432 (name "emacs-znc")
5433 (version "0.4")
5434 (source
5435 (origin
5436 (method git-fetch)
5437 (uri (git-reference
5438 (url "https://github.com/sshirokov/ZNC.el")
5439 (commit version)))
5440 (file-name (git-file-name name version))
5441 (sha256
5442 (base32 "1ran86ycnays9s23wk3iczqqgnpbyx0lijiarx65am3jc1yzg5ia"))))
5443 (build-system emacs-build-system)
5444 (home-page "https://github.com/sshirokov/ZNC.el")
5445 (synopsis "Make ERC and ZNC get along better")
5446 (description
5447 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
5448 IRC bouncer with ERC.")
5449 (license license:expat)))
5450
5451 (define-public emacs-erc-status-sidebar
5452 (let ((commit "ea4189a1dbfe60117359c36e681ad7c389e2968c")
5453 (revision "1"))
5454 (package
5455 (name "emacs-erc-status-sidebar")
5456 (version (git-version "0.1" revision commit))
5457 (source
5458 (origin
5459 (method git-fetch)
5460 (uri (git-reference
5461 (url "https://github.com/drewbarbs/erc-status-sidebar")
5462 (commit commit)))
5463 (file-name (git-file-name name version))
5464 (sha256
5465 (base32 "1hwlhzgx03z8891sblz56zdp8zj0izh72kxykgcnz5rrkyc3vfi3"))))
5466 (build-system emacs-build-system)
5467 (home-page "https://github.com/drewbarbs/erc-status-sidebar")
5468 (synopsis "Hexchat-like activity overview for ERC channels")
5469 (description
5470 "This package provides a Hexchat-like status bar for joined channels in
5471 ERC, an Emacs client for IRC (Internet Relay Chat). It relies on the
5472 @code{erc-track} module, and displays all the same information
5473 @code{erc-track} does in the mode line, but in an alternative format.")
5474 (license license:gpl3+))))
5475
5476 (define-public emacs-shut-up
5477 (package
5478 (name "emacs-shut-up")
5479 (version "0.3.3")
5480 (source
5481 (origin
5482 (method git-fetch)
5483 (uri (git-reference
5484 (url "https://github.com/cask/shut-up")
5485 (commit (string-append "v" version))))
5486 (file-name (git-file-name name version))
5487 (sha256
5488 (base32 "1bnmrwrhra6cpc3jjgwwzrydj5ps7q2dlkh2ag4j7rkyv4dlk351"))))
5489 (build-system emacs-build-system)
5490 (home-page "https://github.com/cask/shut-up")
5491 (synopsis "Silence Emacs")
5492 (description "This package silences most output of Emacs when running an
5493 Emacs shell script.")
5494 (license license:expat)))
5495
5496 (define-public emacs-undercover
5497 (package
5498 (name "emacs-undercover")
5499 (version "0.8.1")
5500 (source
5501 (origin
5502 (method git-fetch)
5503 (uri (git-reference
5504 (url "https://github.com/sviridov/undercover.el")
5505 (commit (string-append "v" version))))
5506 (file-name (git-file-name name version))
5507 (sha256
5508 (base32 "0qmvyy3xg5qi7ws8zcs934d6afsappr1a6pgfp796xpa9vdr4y6j"))))
5509 (build-system emacs-build-system)
5510 (propagated-inputs
5511 (list emacs-dash emacs-shut-up))
5512 (home-page "https://github.com/sviridov/undercover.el")
5513 (synopsis "Test coverage library for Emacs Lisp")
5514 (description
5515 "Undercover is a test coverage library for software written in Emacs
5516 Lisp.")
5517 (license license:expat)))
5518
5519 (define-public emacs-paren-face
5520 (package
5521 (name "emacs-paren-face")
5522 (version "1.0.8")
5523 (source
5524 (origin
5525 (method git-fetch)
5526 (uri (git-reference
5527 (url "https://github.com/tarsius/paren-face")
5528 (commit version)))
5529 (file-name (git-file-name name version))
5530 (sha256
5531 (base32 "13d8psgd2j3vqmgwwf62gwyq7h6qlj8rrs31fxwjqmzzdblwqy1y"))))
5532 (build-system emacs-build-system)
5533 (home-page "https://github.com/tarsius/paren-face")
5534 (synopsis "Face for parentheses in Lisp modes")
5535 (description
5536 "This library defines a face named @code{parenthesis} used just for
5537 parentheses. The intended purpose of this face is to make parentheses less
5538 visible in Lisp code by dimming them. Lispers probably don't need to be
5539 constantly made aware of the existence of the parentheses. Dimming them might
5540 be even more useful for people new to Lisp who have not yet learned to
5541 subconsciously blend out the parentheses.")
5542 (license license:gpl3+)))
5543
5544 (define-public emacs-page-break-lines
5545 (package
5546 (name "emacs-page-break-lines")
5547 (version "0.14")
5548 (source
5549 (origin
5550 (method git-fetch)
5551 (uri (git-reference
5552 (url "https://github.com/purcell/page-break-lines")
5553 (commit version)))
5554 (file-name (git-file-name name version))
5555 (sha256
5556 (base32 "0plfyzmh93x1r3zgfjyx23cc7vi1pcniipclzlms1iwfkl7zsqvp"))))
5557 (build-system emacs-build-system)
5558 (home-page "https://github.com/purcell/page-break-lines")
5559 (synopsis "Display page breaks as tidy horizontal lines")
5560 (description
5561 "This library provides a global mode which displays form feed characters
5562 as horizontal rules.")
5563 (license license:gpl3+)))
5564
5565 (define-public emacs-simple-httpd
5566 (package
5567 (name "emacs-simple-httpd")
5568 (version "1.5.1")
5569 (source
5570 (origin
5571 (method git-fetch)
5572 (uri (git-reference
5573 (url "https://github.com/skeeto/emacs-web-server")
5574 (commit version)))
5575 (file-name (git-file-name name version))
5576 (sha256
5577 (base32 "0dpn92rg813c4pq7a1vzj3znyxzp2lmvxqz6pzcqi0l2xn5r3wvb"))))
5578 (build-system emacs-build-system)
5579 (home-page "https://github.com/skeeto/emacs-web-server")
5580 (synopsis "HTTP server in pure Emacs Lisp")
5581 (description
5582 "This package provides a simple HTTP server written in Emacs Lisp to
5583 serve files and directory listings.")
5584 (license license:unlicense)))
5585
5586 (define-public emacs-skewer-mode
5587 (package
5588 (name "emacs-skewer-mode")
5589 (version "1.8.0")
5590 (source
5591 (origin
5592 (method git-fetch)
5593 (uri (git-reference
5594 (url "https://github.com/skeeto/skewer-mode")
5595 (commit version)))
5596 (file-name (git-file-name name version))
5597 (sha256
5598 (base32 "1ha7jl7776pk1bki5zj2q0jy66450mn8xr3aqjc0m9kj3gc9qxgw"))))
5599 (build-system emacs-build-system)
5600 (propagated-inputs
5601 (list emacs-simple-httpd emacs-js2-mode))
5602 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
5603 (home-page "https://github.com/skeeto/skewer-mode")
5604 (synopsis "Live web development in Emacs")
5605 (description
5606 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
5607 a web browser. Expressions are sent on-the-fly from an editing buffer to be
5608 evaluated in the browser, just like Emacs does with an inferior Lisp process
5609 in Lisp modes.")
5610 (license license:unlicense)))
5611
5612 (define-public emacs-litable
5613 (let ((commit "b0278f3f8dcff424bfbdfdefb545b1fbff33206f"))
5614 (package
5615 (name "emacs-litable")
5616 (version (git-version "0.1" "0" commit))
5617 (source (origin
5618 (method git-fetch)
5619 (uri (git-reference
5620 (url "https://github.com/Fuco1/litable")
5621 (commit commit)))
5622 (file-name (git-file-name name version))
5623 (sha256
5624 (base32
5625 "0bny40hv9a024n01clxns351cs4j4ifhgcc7m4743xncqf612p7g"))))
5626 (build-system emacs-build-system)
5627 (propagated-inputs
5628 (list emacs-dash))
5629 (home-page "https://github.com/Fuco1/litable/")
5630 (synopsis "Dynamic evaluation replacement with Emacs")
5631 (description "This package provides dynamic evaluation in Emacs.")
5632 (license license:gpl3+))))
5633
5634 (define-public emacs-literate-elisp
5635 (package
5636 (name "emacs-literate-elisp")
5637 (version "0.8")
5638 (source (origin
5639 (method git-fetch)
5640 (uri (git-reference
5641 (url "https://github.com/jingtaozf/literate-elisp")
5642 (commit version)))
5643 (file-name (git-file-name name version))
5644 (sha256
5645 (base32 "0i9468rh61l4xq918fgwk6li93lpm6zbn0lkpxr7pbvkgrl5xsr6"))))
5646 (build-system emacs-build-system)
5647 (home-page "https://github.com/jingtaozf/literate-elisp/tags")
5648 (synopsis "Load Emacs Lisp code blocks from Org files")
5649 (description
5650 "Literate-Elisp is an Emacs lisp library to provide an easy way to use
5651 literal programming in Emacs lisp. It extends the Emacs load mechanism so
5652 Emacs can load Org files as Lisp source files directly.")
5653 (license license:gpl3+)))
5654
5655 (define-public emacs-literate-calc-mode
5656 (let ((commit "ba7d22140a165b0fdd900a8d04916115ca6ab8ff")
5657 (revision "2"))
5658 (package
5659 (name "emacs-literate-calc-mode")
5660 (version (git-version "0.1" revision commit))
5661 (source
5662 (origin
5663 (method git-fetch)
5664 (uri (git-reference
5665 (url "https://github.com/sulami/literate-calc-mode.el")
5666 (commit commit)))
5667 (file-name (git-file-name name version))
5668 (sha256
5669 (base32 "1bdybw44pmhfpikdv1kg2sx88546xyncks5a4b2s0ak4p66r82k3"))))
5670 (build-system emacs-build-system)
5671 (propagated-inputs
5672 (list emacs-s))
5673 (home-page "https://github.com/sulami/literate-calc-mode.el")
5674 (synopsis "Literate programming for Emacs Calc")
5675 (description
5676 "This library provides literate programming for Calc. There is both
5677 a major and a minor mode. The major mode does some basic syntax highlighting,
5678 while the minor mode only evaluates all Calc statements while typing. In
5679 particular, the minor mode works quite well with Org or Markdown modes, or
5680 other markup language major modes.")
5681 (license license:gpl3+))))
5682
5683 (define-public emacs-standard-dirs
5684 (package
5685 (name "emacs-standard-dirs")
5686 (version "2.0.0")
5687 (home-page "https://github.com/lafrenierejm/standard-dirs.el")
5688 (source
5689 (origin
5690 (method git-fetch)
5691 (uri (git-reference
5692 (url home-page)
5693 (commit version)))
5694 (file-name (git-file-name name version))
5695 (sha256
5696 (base32 "0r814qcrhvx4qlx4sdzwdmrhiryslqclx0bnpp0qcrbx6g8qfl25"))))
5697 (build-system emacs-build-system)
5698 (propagated-inputs
5699 (list emacs-f emacs-s))
5700 (synopsis "Platform-specific paths for config, cache, and other data")
5701 (description
5702 "This package provides platform-specific paths for reading and writing
5703 configuration, cache, and other data.")
5704 (license license:gpl3+)))
5705
5706 (define-public emacs-string-inflection
5707 (package
5708 (name "emacs-string-inflection")
5709 (version "1.0.16")
5710 (source
5711 (origin
5712 (method git-fetch)
5713 (uri (git-reference
5714 (url "https://github.com/akicho8/string-inflection")
5715 (commit (string-append "v" version))))
5716 (file-name (git-file-name name version))
5717 (sha256
5718 (base32 "0wskrp3v5gi3b3s9471ijkdncnfd888qd50c72rv2p8846174paj"))))
5719 (build-system emacs-build-system)
5720 (native-inputs
5721 (list emacs-ert-runner))
5722 (arguments
5723 `(#:tests? #t
5724 #:test-command '("ert-runner")))
5725 (home-page "https://github.com/akicho8/string-inflection")
5726 (synopsis "Convert symbol names between different naming conventions")
5727 (description
5728 "This Emacs package provides convenient methods for manipulating the
5729 naming style of a symbol. It supports different naming conventions such as:
5730
5731 @enumerate
5732 @item camel case
5733 @item Pascal case
5734 @item all upper case
5735 @item lower case separated by underscore
5736 @item etc...
5737 @end enumerate\n")
5738 (license license:gpl2+)))
5739
5740 (define-public emacs-stripe-buffer
5741 (package
5742 (name "emacs-stripe-buffer")
5743 (version "0.2.5")
5744 (source
5745 (origin
5746 (method git-fetch)
5747 (uri (git-reference
5748 (url "https://github.com/sabof/stripe-buffer")
5749 (commit version)))
5750 (file-name (git-file-name name version))
5751 (sha256
5752 (base32 "035ym1c1vzg6hjsnd258z4dkrfc11lj4c0y4gpgybhk54dq3w9dk"))))
5753 (build-system emacs-build-system)
5754 (home-page "https://github.com/sabof/stripe-buffer/")
5755 (synopsis "Add stripes to list buffers")
5756 (description
5757 "This Emacs package adds faces to add stripes to list buffers and org
5758 tables.")
5759 (license license:gpl2+)))
5760
5761 (define-public emacs-org-beautify-theme
5762 ;; Latest release (0.4) is not tagged, use commit hash.
5763 (let ((commit "df6a1114fda313e1689363e196c8284fbe2a2738")
5764 (revision "0"))
5765 (package
5766 (name "emacs-org-beautify-theme")
5767 (version "0.4")
5768 (source
5769 (origin
5770 (method git-fetch)
5771 (uri (git-reference
5772 (url "https://github.com/jonnay/org-beautify-theme")
5773 (commit commit)))
5774 (file-name (git-file-name name version))
5775 (sha256
5776 (base32 "1lkz7736swimad12khwbbqc4gxjydgr1k45p4mx03s25pv1w920y"))))
5777 (build-system emacs-build-system)
5778 (home-page "https://github.com/jonnay/org-beautify-theme")
5779 (synopsis "Theme to make Org mode look more beautiful")
5780 (description
5781 "The theme adds padding between headings, increases the size of titles,
5782 strike through completed TODO headings, changes Org blocks, changes Org check
5783 boxes, and more.")
5784 (license license:gpl3+))))
5785
5786 (define-public emacs-org-books
5787 (package
5788 (name "emacs-org-books")
5789 (version "0.3.0")
5790 (source
5791 (origin
5792 (method git-fetch)
5793 (uri (git-reference
5794 (url "https://github.com/lepisma/org-books")
5795 (commit version)))
5796 (file-name (git-file-name name version))
5797 (sha256
5798 (base32
5799 "1sgckvpjdaig9r2clcvs6ckgf2kx7amikkpq26y30jbnfnbskf0v"))))
5800 (build-system emacs-build-system)
5801 (propagated-inputs
5802 (list emacs-dash
5803 emacs-enlive
5804 emacs-helm
5805 emacs-helm-org
5806 emacs-org
5807 emacs-s))
5808 (home-page "https://github.com/lepisma/org-books")
5809 (synopsis "Reading list management with Org mode and Helm")
5810 (description
5811 "Org Books is a tool for managing reading lists in an Org mode file.")
5812 (license license:gpl3+)))
5813
5814 (define-public emacs-org-chef
5815 ;; Upstream does not tag version bumps. Version is extracted from "Version"
5816 ;; keyword in main file.
5817 (let ((commit "87e9a6c4844ff32f47c8d1108ec0f087a3148a8e")
5818 (revision "0"))
5819 (package
5820 (name "emacs-org-chef")
5821 (version (git-version "0.1.3" revision commit))
5822 (source
5823 (origin
5824 (method git-fetch)
5825 (uri (git-reference
5826 (url "https://github.com/Chobbes/org-chef")
5827 (commit commit)))
5828 (sha256
5829 (base32 "0xdfaf3shl3iij7nnshb5ryccqq70rpk0zm0d3fdwdbfa8rf7fkp"))))
5830 (build-system emacs-build-system)
5831 (propagated-inputs (list emacs-org))
5832 (home-page "https://github.com/Chobbes/org-chef")
5833 (synopsis "Cookbook and recipe management with Emacs Org mode")
5834 (description
5835 "Org Chef is a package for managing recipes in Org mode. One of the
5836 main features is that it can automatically extract recipes from websites like
5837 allrecipes.com.")
5838 (license license:expat))))
5839
5840 (define-public emacs-org-inline-pdf
5841 (package
5842 (name "emacs-org-inline-pdf")
5843 (version "0.2")
5844 (source (origin
5845 (method git-fetch)
5846 (uri (git-reference
5847 (url "https://github.com/shg/org-inline-pdf.el")
5848 (commit version)))
5849 (file-name (git-file-name name version))
5850 (sha256
5851 (base32
5852 "1qc92xvgxmnwjixk8bxwbc1l1jj0qk9dg73jyaip6lk4g0wjk6xf"))))
5853 (build-system emacs-build-system)
5854 (inputs
5855 (list pdf2svg))
5856 (arguments
5857 `(#:phases
5858 (modify-phases %standard-phases
5859 (add-after 'unpack 'patch-exec-paths
5860 (lambda* (#:key inputs #:allow-other-keys)
5861 (let ((pdf2svg (assoc-ref inputs "pdf2svg")))
5862 (substitute* "org-inline-pdf.el"
5863 (("\"pdf2svg\"") (string-append "\"" pdf2svg "/bin/pdf2svg\"")))))))))
5864 (home-page "https://github.com/shg/org-inline-pdf.el")
5865 (synopsis "Inline PDF previewing for Org")
5866 (description "This package provides a minor mode that enables
5867 inline PDF preview in Org buffers by using pdf2svg.")
5868 (license license:gpl3+)))
5869
5870 (define-public emacs-org-rich-yank
5871 (package
5872 (name "emacs-org-rich-yank")
5873 (version "0.2.1")
5874 (source
5875 (origin
5876 (method git-fetch)
5877 (uri (git-reference
5878 (url "https://github.com/unhammer/org-rich-yank")
5879 (commit (string-append "v" version))))
5880 (file-name (git-file-name name version))
5881 (sha256
5882 (base32 "0gxb0fnh5gxjmld0hnk5hli0cvdd8gjd27m30bk2b80kwldxlq1z"))))
5883 (build-system emacs-build-system)
5884 (home-page "https://github.com/unhammer/org-rich-yank")
5885 (synopsis "Automatically surround source code pasted into Org with
5886 @code{#+BEGIN_SRC} blocks")
5887 (description
5888 "This package provides a utility function for Org buffers that makes a
5889 @code{_SRC} block with the appropriate language annotation for code that has
5890 been copied from an Emacs major mode.")
5891 (license license:gpl2+)))
5892
5893 (define-public emacs-org-fancy-priorities
5894 (let ((commit "819bb993b71e7253cefef7047306ab4e0f9d0a86")
5895 (revision "1"))
5896 (package
5897 (name "emacs-org-fancy-priorities")
5898 (version (git-version "1.1" revision commit))
5899 (source
5900 (origin
5901 (method git-fetch)
5902 (uri (git-reference
5903 (url "https://github.com/harrybournis/org-fancy-priorities.git")
5904 (commit commit)))
5905 (file-name (git-file-name name version))
5906 (sha256
5907 (base32
5908 "13cyzlx0415i953prq6ch7r5iy23c1pz116bdxi5yqags4igh4wv"))))
5909 (build-system emacs-build-system)
5910 (home-page "https://github.com/harrybournis/org-fancy-priorities")
5911 (synopsis "Display org priorities as custom strings")
5912 (description
5913 "This package provides a minor mode that displays Org priorities as
5914 custom strings. This mode does not change your files in any way, it only
5915 displays the priority part of a heading as your preferred string value.")
5916 (license license:expat))))
5917
5918 (define-public emacs-org-fragtog
5919 (package
5920 (name "emacs-org-fragtog")
5921 (version "0.4.2")
5922 (source
5923 (origin
5924 (method git-fetch)
5925 (uri (git-reference
5926 (url "https://github.com/io12/org-fragtog")
5927 (commit version)))
5928 (file-name (git-file-name name version))
5929 (sha256
5930 (base32 "1xag0pdphigk0ilrj2hacai3p6xgl27jji08aa1zlhq7p3rbay7m"))))
5931 (build-system emacs-build-system)
5932 (propagated-inputs
5933 (list emacs-org))
5934 (home-page "https://github.com/io12/org-fragtog")
5935 (synopsis "Toggle Org mode LaTeX fragments preview at cursor")
5936 (description
5937 "Org mode supports inline image previews of LaTeX fragments. This
5938 package automates this, so fragment previews are disabled for editing when
5939 your cursor steps onto them, and re-enabled when the cursor leaves.")
5940 (license license:gpl3+)))
5941
5942 (define-public emacs-ob-erlang
5943 (let ((revision "1")
5944 (commit "a029c23902b4ad73b84f262a7fc5b98d87b63dfd"))
5945 (package
5946 (name "emacs-ob-erlang")
5947 (version (git-version "20210321" revision commit))
5948 (source (origin
5949 (method git-fetch)
5950 (uri (git-reference
5951 (url "https://github.com/xfwduke/ob-erlang")
5952 (commit commit)))
5953 (file-name (git-file-name name version))
5954 (sha256
5955 (base32
5956 "1dlb9qgmijff4giglwb358g5zzyjbnay0wkr5spks1bawvyxpiyl"))))
5957 (build-system emacs-build-system)
5958 (home-page "https://github.com/xfwduke/ob-erlang/")
5959 (synopsis "Org-babel support for Erlang")
5960 (description "This package adds support for working with Erlang code
5961 blocks with @code{org-babel} in @code{org-mode}.")
5962 (license license:gpl3+))))
5963
5964 (define-public emacs-ob-restclient
5965 (let ((commit "f7449b2068498fe9d8ab9589e0a638148861533f"))
5966 (package
5967 (name "emacs-ob-restclient")
5968 (version (git-version "0.02" "2" commit))
5969 (source
5970 (origin
5971 (method git-fetch)
5972 (uri (git-reference
5973 (url "https://github.com/alf/ob-restclient.el")
5974 (commit commit)))
5975 (file-name (git-file-name name version))
5976 (sha256
5977 (base32 "0s3931w9ab3yfml2pmq71rw21yf6hpg7m3vihxyy3vs6zli1cvmq"))))
5978 (propagated-inputs
5979 (list emacs-restclient))
5980 (build-system emacs-build-system)
5981 (home-page "https://github.com/alf/ob-restclient.el")
5982 (synopsis "Org-babel functionality for @code{restclient-mode}")
5983 (description
5984 "This package integrates @code{restclient-mode} with Org.")
5985 (license license:gpl3+))))
5986
5987 (define-public emacs-org-now
5988 (let ((commit "8f6b277a73f1c66e58ccb4b7f40d406851befc91"))
5989 (package
5990 (name "emacs-org-now")
5991 (version (git-version "0.1-pre" "1" commit))
5992 (source
5993 (origin
5994 (method git-fetch)
5995 (uri (git-reference
5996 (url "https://github.com/alphapapa/org-now")
5997 (commit commit)))
5998 (file-name (git-file-name name version))
5999 (sha256
6000 (base32 "117zzkryznznk6h4i1jqzdn888nl019xrgxm2gza0lndx8dxsg2c"))))
6001 (propagated-inputs
6002 (list emacs-dash))
6003 (build-system emacs-build-system)
6004 (home-page "https://github.com/alphapapa/org-now")
6005 (synopsis "Show current Org tasks in a sidebar")
6006 (description
6007 "This package provides commands to show Org headings in a sidebar
6008 window while working on them. After defining one heading as the \"now\"
6009 heading, other headings can be refiled to it with one command, and back to
6010 their original location with another.")
6011 (license license:gpl3+))))
6012
6013 (define-public emacs-rich-minority
6014 (package
6015 (name "emacs-rich-minority")
6016 (version "1.0.3")
6017 (source
6018 (origin
6019 (method git-fetch)
6020 (uri (git-reference
6021 (url "https://github.com/Malabarba/rich-minority")
6022 (commit version)))
6023 (file-name (git-file-name name version))
6024 (sha256
6025 (base32
6026 "1kn7c9qr9ykj68iqffzzmjsr6aazwac8cxb7j960sjb282rq0yyj"))))
6027 (build-system emacs-build-system)
6028 (home-page "https://github.com/Malabarba/rich-minority")
6029 (synopsis "Clean-up and beautify the list of minor modes")
6030 (description
6031 "This Emacs package hides and/or highlights minor modes in the
6032 mode-line.")
6033 (license license:gpl2+)))
6034
6035 (define-public emacs-robe
6036 (package
6037 (name "emacs-robe")
6038 (version "0.8.3")
6039 (source
6040 (origin
6041 (method git-fetch)
6042 (uri (git-reference
6043 (url "https://github.com/dgutov/robe")
6044 (commit version)))
6045 (file-name (git-file-name name version))
6046 (sha256
6047 (base32 "1xbj7wi389n6pxfvxrakvhylkdlqg8ll9ad2zmxggcchygwah6nl"))))
6048 (build-system emacs-build-system)
6049 (arguments
6050 '(#:include (cons "^lib\\/" %default-include)))
6051 (propagated-inputs
6052 (list emacs-inf-ruby))
6053 (home-page "https://github.com/dgutov/robe")
6054 (synopsis "Ruby code assistance tool for Emacs")
6055 (description
6056 "Robe can provide information on loaded classes and modules in Ruby code,
6057 as well as where methods are defined. This allows the user to jump to method
6058 definitions, modules and classes, display method documentation and provide
6059 method and constant name completion.")
6060 (license license:gpl3+)))
6061
6062 (define-public emacs-robot-mode
6063 (package
6064 (name "emacs-robot-mode")
6065 (version "0.6.1")
6066 (source
6067 (origin
6068 (method git-fetch)
6069 (uri (git-reference
6070 (url "https://github.com/kopoli/robot-mode")
6071 (commit version)))
6072 (file-name (git-file-name name version))
6073 (sha256
6074 (base32 "127lydk66n90ih39q8gxzb44rss2xllb7bn3ygxrf5m5vvl9w5rj"))))
6075 (build-system emacs-build-system)
6076 (home-page "https://github.com/kopoli/robot-mode")
6077 (synopsis "Emacs mode for Robot Framework")
6078 (description
6079 "This major mode facilitates editing Robot Framework source files with
6080 features such as syntax highlighting, comments, finding keywords, completing
6081 keywords and smart indentation.")
6082 (license license:gpl3+)))
6083
6084 (define-public emacs-robot-log
6085 (package
6086 (name "emacs-robot-log")
6087 (version "0.1.4")
6088 (source (origin
6089 (method git-fetch)
6090 (uri (git-reference
6091 (url "https://git.sr.ht/~apteryx/emacs-robot-log")
6092 (commit version)))
6093 (file-name (git-file-name name version))
6094 (sha256
6095 (base32
6096 "1l9yxryrhvylh2x17cczd8v8978w1nv8173d4l9hv0cr26kp5b68"))))
6097 (build-system emacs-build-system)
6098 (native-inputs (list python-robotframework))
6099 (arguments (list #:tests? #t))
6100 (home-page "https://sr.ht/~apteryx/emacs-robot-log/")
6101 (synopsis "Emacs major mode for viewing RobotFramework debug log files")
6102 (description "@code{robot-log} is an Emacs major mode that allows more
6103 easily viewing and navigating RobotFramework debug log files. It provides
6104 syntax highlighting and convenient shortcuts to move from one keyword to the
6105 next, or locate errors.")
6106 (license license:gpl3+)))
6107
6108 (define-public emacs-robots-txt-mode
6109 (package
6110 (name "emacs-robots-txt-mode")
6111 (version "0.0.9")
6112 (source (origin
6113 (method git-fetch)
6114 (uri (git-reference
6115 (url "https://github.com/emacs-php/robots-txt-mode")
6116 (commit version)))
6117 (file-name (git-file-name name version))
6118 (sha256
6119 (base32
6120 "07255pn80w4742sz2h9vbmfxxd8ps2kcn73p7m2bgy02kgbzw42b"))))
6121 (build-system emacs-build-system)
6122 (home-page "https://github.com/emacs-php/robots-txt-mode")
6123 (synopsis "Syntax highlighting for @file{robots.txt} files")
6124 (description "This package provides an Emacs major mode for editing
6125 @file{robots.txt} files.")
6126 (license license:gpl3+)))
6127
6128 (define-public emacs-roguel-ike
6129 (package
6130 (name "emacs-roguel-ike")
6131 (version "0.1.1")
6132 (source
6133 (origin
6134 (method git-fetch)
6135 (uri (git-reference
6136 (url "https://github.com/stevenremot/roguel-ike")
6137 (commit version)))
6138 (file-name (git-file-name name version))
6139 (sha256
6140 (base32 "0rgv4y9aa5cc2ddz3y5z8d22xmr8kf5c60h0r3g8h91jmcw3rb4z"))))
6141 (build-system emacs-build-system)
6142 (propagated-inputs
6143 (list emacs-popup))
6144 (arguments
6145 (list
6146 #:include #~(cons* "^roguel-ike/" "^roguel-ike-lib/" %default-include)
6147 #:phases
6148 #~(modify-phases %standard-phases
6149 (add-before 'check 'set-test-environment
6150 (lambda _
6151 (setenv "HOME" "/tmp"))))))
6152 (home-page "https://github.com/stevenremot/roguel-ike.git")
6153 (synopsis "Coffee-break roguelike for Emacs")
6154 (description
6155 "Roguel-ike is an attempt to develop a coffee-break roguelike for
6156 Emacs. The complete game would allow the player to create various characters
6157 and to make them fulfill challenges like arena fight and short dungeon
6158 explorations.")
6159 (license license:gpl3+)))
6160
6161 (define-public emacs-rspec
6162 (let ((commit "66ea7cc9699d6edc6115daa024818adbd85efc20")
6163 (revision "1"))
6164 (package
6165 (name "emacs-rspec")
6166 (version (git-version "1.11" revision commit))
6167 (source
6168 (origin
6169 (method git-fetch)
6170 (uri (git-reference
6171 (url "https://github.com/pezra/rspec-mode")
6172 (commit commit)))
6173 (file-name (git-file-name name version))
6174 (sha256
6175 (base32 "0b11s8r0pi7ah54km4yg4fqff8wkk409d25qnlwm1l94pdwjd1c8"))))
6176 (build-system emacs-build-system)
6177 (arguments
6178 `(#:include (cons "^snippets\\/rspec-mode\\/" %default-include)
6179 #:tests? #t
6180 #:test-command '("make" "test")))
6181 (home-page "https://github.com/pezra/rspec-mode")
6182 (synopsis "Provides a rspec mode for working with RSpec")
6183 (description
6184 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
6185 verify the spec associated with the current buffer, or entire project, as well
6186 as moving between the spec files, and corresponding code files.
6187
6188 Also included are keybindings for spec files and Dired buffers, as well as
6189 snippets for yasnippet.")
6190 (license license:gpl3+))))
6191
6192 (define-public emacs-mode-line-idle
6193 ;; Package has no release. Version is extracted from "Version:" keyword in
6194 ;; main file.
6195 (let ((commit "02b1da6278e43cc9cc0356110cc6bfbb37eb8241")
6196 (revision "1"))
6197 (package
6198 (name "emacs-mode-line-idle")
6199 (version (git-version "0.1" revision commit))
6200 (source
6201 (origin
6202 (method git-fetch)
6203 (file-name (git-file-name name version))
6204 (uri (git-reference
6205 (url "https://gitlab.com/ideasman42/emacs-mode-line-idle")
6206 (commit commit)))
6207 (sha256
6208 (base32 "0ky330b2sfbzkbxbfp9b21hdywsjw26bllspglz08hrbni7jmry8"))))
6209 (build-system emacs-build-system)
6210 (home-page "https://gitlab.com/ideasman42/emacs-mode-line-idle")
6211 (synopsis "Simple delayed text evaluation for the mode-line")
6212 (description
6213 "Mode Line Idle provides a convenient way to defer text evaluation
6214 which integrates into existing mode-line without requiring a minor mode or
6215 configuration.")
6216 (license license:gpl3+))))
6217
6218 (define-public emacs-nyan-mode
6219 (package
6220 (name "emacs-nyan-mode")
6221 (version "1.1.3")
6222 (source
6223 (origin
6224 (method git-fetch)
6225 (uri (git-reference
6226 (url "https://github.com/TeMPOraL/nyan-mode/")
6227 (commit (string-append "v" version))))
6228 (sha256
6229 (base32 "0d0hdjliad8afz4br38gwidph9zhmm5s09y45n95kqlazq62jfsx"))))
6230 (build-system emacs-build-system)
6231 (arguments
6232 (list
6233 #:include #~(cons* "img/" "mus/" %default-include)
6234 #:phases
6235 #~(modify-phases %standard-phases
6236 (add-after 'unpack 'patch-sources
6237 (lambda* (#:key inputs #:allow-other-keys)
6238 (substitute* "nyan-mode.el"
6239 (("mplayer ")
6240 (string-append (search-input-file inputs "bin/mplayer")
6241 " "))))))))
6242 (inputs (list mplayer))
6243 (home-page "https://github.com/TeMPOraL/nyan-mode/")
6244 (synopsis "Nyan Cat as buffer position indicator")
6245 (description
6246 "Nyan mode is an analog indicator of your position in the buffer. The cat
6247 should go from left to right in your mode-line, as you move your point from 0%
6248 to 100%. You can click on the rainbow or the empty space to scroll backwards
6249 and forwards and also animate it.")
6250 (license license:gpl3+)))
6251
6252 (define-public emacs-smart-mode-line
6253 (package
6254 (name "emacs-smart-mode-line")
6255 (version "2.14")
6256 (source
6257 (origin
6258 (method git-fetch)
6259 (uri (git-reference
6260 (url "https://github.com/Malabarba/smart-mode-line")
6261 (commit version)))
6262 (file-name (git-file-name name version))
6263 (sha256
6264 (base32 "1h5w5lrgrmhpaqwppg5msylh7z78mvwy9mm8xiiv8w4wxvncxxl2"))))
6265 (build-system emacs-build-system)
6266 (propagated-inputs
6267 (list emacs-rich-minority))
6268 (home-page "https://github.com/Malabarba/smart-mode-line")
6269 (synopsis "Color-coded smart mode-line")
6270 (description
6271 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
6272 read from small to large monitors by using colors, a prefix feature, and smart
6273 truncation.")
6274 (license license:gpl2+)))
6275
6276 (define-public emacs-sqlite
6277 ;; XXX: There is no tagged commit.
6278 (let ((commit "dad42b8bbca4994be1871343dd18fd6528ee5797")
6279 (revision "0"))
6280 (package
6281 (name "emacs-sqlite")
6282 (build-system emacs-build-system)
6283 (version (git-version "1.0" revision commit))
6284 (source
6285 (origin
6286 (method git-fetch)
6287 (uri (git-reference
6288 (url "https://gitlab.com/cnngimenez/sqlite.el")
6289 (commit commit)))
6290 (file-name (git-file-name name version))
6291 (sha256
6292 (base32 "06ln4vijl8kii3nzc5cscgsadx1fqgxksflijd3ain83bn8g4wrd"))))
6293 (home-page "https://gitlab.com/cnngimenez/sqlite.el")
6294 (synopsis "SQLite interface for Emacs Lisp")
6295 (description "Emacs SQLite is a simple SQLite interface for connecting
6296 and retrieving information using the SQLite program through Elisp programming.
6297 It is not intended as a user interface.")
6298 (license license:gpl3+))))
6299
6300 (define-public emacs-sqlite3-api
6301 (package
6302 (name "emacs-sqlite3-api")
6303 (version "0.16")
6304 (source (origin
6305 (method git-fetch)
6306 (uri (git-reference
6307 (url "https://github.com/pekingduck/emacs-sqlite3-api")
6308 (commit (string-append "v" version))))
6309 (file-name (git-file-name name version))
6310 (sha256
6311 (base32
6312 "0yrfwb3yvhp1ib4izxh1ds68b3zw8gjkjhlk1kivarxnfjnjnly2"))))
6313 (build-system emacs-build-system)
6314 (arguments
6315 (list
6316 #:tests? (not (%current-target-system))
6317 #:test-command #~(list "make" "test" "EMACS=emacs")
6318 #:modules '((guix build emacs-build-system)
6319 (guix build emacs-utils)
6320 (guix build utils))
6321 #:phases
6322 #~(modify-phases %standard-phases
6323 (add-after 'unpack 'patch-module-load
6324 (lambda _
6325 (make-file-writable "sqlite3.el")
6326 (emacs-substitute-sexps "sqlite3.el"
6327 ("(require 'sqlite3-api nil t)"
6328 (string-append
6329 "(module-load \"" #$output "/lib/sqlite3-api.so\")")))))
6330 (add-before 'check 'build-emacs-module
6331 (lambda _
6332 ;; Remove code that fetches constants from the SQLite website
6333 ;; and the call to generate a timestamp.
6334 (invoke "sed" "--in-place" "3,4d;24,28d;31d" "tools/gen-consts.sh")
6335 ;; Remove filter logic from the script that generates the constants.
6336 (invoke "sed" "--in-place" "7,11d;18,22d" "tools/gen-consts.py")
6337 ;; Generate the consts.c file.
6338 (invoke "make" "--directory=tools")
6339 ;; Remove the SQLITE_STATIC and SQLITE_TRANSIENT
6340 ;; constants. They cause a compilation warning and would have
6341 ;; been removed by the original script.
6342 (invoke "sed" "--in-place" "/ifdef SQLITE_STATIC/,+2d" "consts.c")
6343 (invoke "sed" "--in-place" "/ifdef SQLITE_TRANSIENT/,+2d" "consts.c")
6344 ;; Compile the shared object file.
6345 (invoke "make" #$(string-append "CC=" (cc-for-target)))
6346 ;; Move the shared object file into /lib.
6347 (install-file "sqlite3-api.so"
6348 (string-append #$output "/lib")))))))
6349 (native-inputs (list python sed))
6350 (inputs (list sqlite))
6351 (home-page "https://github.com/pekingduck/emacs-sqlite3-api")
6352 (synopsis "Dynamic module for Emacs to access the SQLite C interface")
6353 (description "This package provides a dynamic module for Emacs that allows
6354 direct access to the SQLite C interface. It only exposes a subset of the full
6355 SQLite C interface, but should satisfy most user's needs.")
6356 (license license:gpl3+)))
6357
6358 (define-public emacs-sr-speedbar
6359 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
6360 (revision "0"))
6361 (package
6362 (name "emacs-sr-speedbar")
6363 (version (git-version "20161025" revision commit))
6364 (source
6365 (origin
6366 (method git-fetch)
6367 (uri (git-reference
6368 (url "https://github.com/emacsorphanage/sr-speedbar")
6369 (commit commit)))
6370 (file-name (git-file-name name version))
6371 (sha256
6372 (base32
6373 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
6374 (build-system emacs-build-system)
6375 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
6376 (synopsis "Same frame Emacs @code{speedbar}")
6377 (description
6378 "This Emacs package allows you to show @code{M-x speedbar} in the
6379 same frame (in an extra window). You can customize the initial width of
6380 the speedbar window.")
6381 (license license:gpl3+))))
6382
6383 (define-public emacs-shell-switcher
6384 (package
6385 (name "emacs-shell-switcher")
6386 (version "1.0.1")
6387 (source
6388 (origin
6389 (method git-fetch)
6390 (uri (git-reference
6391 (url "https://github.com/DamienCassou/shell-switcher")
6392 (commit (string-append "v" version))))
6393 (file-name (git-file-name name version))
6394 (sha256
6395 (base32 "0ia7sdip4hl27avckv3qpqgm3k4ynvp3xxq1cy53bqfzzx0gcria"))))
6396 (build-system emacs-build-system)
6397 (home-page "https://github.com/DamienCassou/shell-switcher")
6398 (synopsis "Provide fast switching between shell buffers")
6399 (description
6400 "This package provides commands to quickly switch between shell buffers.")
6401 (license license:gpl3+)))
6402
6403 (define-public emacs-shx
6404 (package
6405 (name "emacs-shx")
6406 (version "1.5.0")
6407 (source (origin
6408 (method git-fetch)
6409 (uri (git-reference
6410 (url "https://github.com/riscy/shx-for-emacs")
6411 (commit (string-append "v" version))))
6412 (file-name (git-file-name name version))
6413 (sha256
6414 (base32 "1cb5w6p9gnfxgh8qp7yj2f5ibpk1b4b5af3ynldaaj6yfpa8hqzn"))))
6415 (build-system emacs-build-system)
6416 (arguments
6417 `(#:tests? #t
6418 #:test-command
6419 '("emacs" "--batch" "--quiet"
6420 "--script" "test/script.el")))
6421 (home-page "https://github.com/riscy/shx-for-emacs")
6422 (synopsis "Extras for the comint-mode shell")
6423 (description
6424 "This package extends @code{comint-mode}: it parses markup in the output
6425 stream, enabling plots and graphics to be embedded, and adds command-line
6426 functions which plug into Emacs (e.g. use @code{:e <filename>} to edit a
6427 file).")
6428 (license license:gpl3+)))
6429
6430 (define-public emacs-names
6431 (let ((commit "d8baba5360e5253938a25d3e005455b6d2d86971")
6432 (version "20151201.0")
6433 (revision "8"))
6434 (package
6435 (name "emacs-names")
6436 (version (git-version version revision commit))
6437 (source
6438 (origin
6439 (method git-fetch)
6440 (uri (git-reference
6441 (url "https://github.com/Malabarba/names")
6442 (commit commit)))
6443 (file-name (git-file-name name version))
6444 (sha256
6445 (base32
6446 "11wyha2q8y7bzqq3jrzix8n97ywvsibvddrahqcps1a1yqk4hzfz"))))
6447 (build-system emacs-build-system)
6448 (home-page "https://github.com/Malabarba/names/")
6449 (synopsis "Namespace implementation for Emacs Lisp")
6450 (description
6451 "This package provides a macro that writes your namespaces for you.")
6452 (license license:gpl3+))))
6453
6454 (define-public emacs-nameless
6455 (package
6456 (name "emacs-nameless")
6457 (version "1.0.2")
6458 (source
6459 (origin
6460 (method git-fetch)
6461 (uri (git-reference
6462 (url "https://github.com/Malabarba/Nameless")
6463 (commit version)))
6464 (file-name (git-file-name name version))
6465 (sha256
6466 (base32 "107q1rximjnag9r9vgwh0iv687i3rsscbdnjc46f8l16j6vi4n7d"))))
6467 (build-system emacs-build-system)
6468 (home-page "https://github.com/Malabarba/nameless")
6469 (synopsis "Hide package namespace in your Emacs-lisp code")
6470 (description
6471 "This package provides a @code{nameless-mode} minor mode in which the
6472 package namespace prefix is ​​hidden by a colon.")
6473 (license license:gpl2+)))
6474
6475 (define-public emacs-evil-leader
6476 (package
6477 (name "emacs-evil-leader")
6478 (version "0.4.3")
6479 (source
6480 (origin
6481 (method git-fetch)
6482 (uri
6483 (git-reference
6484 (url "https://github.com/cofi/evil-leader")
6485 (commit version)))
6486 (file-name (git-file-name name version))
6487 (sha256
6488 (base32 "1k2zinchs0jjllp8zkpggckyy63dkyi5yig3p46vh4w45jdzysk5"))))
6489 (inputs
6490 (list emacs-evil))
6491 (build-system emacs-build-system)
6492 (home-page "https://github.com/cofi/evil-leader")
6493 (synopsis "Implement <leader> feature from Vim")
6494 (description
6495 "Evil Leader provides the @code{<leader>} feature from Vim that provides
6496 an easy way to bind keys under a configurable prefix key.")
6497 (license license:gpl3+)))
6498
6499 (define-public emacs-evil-tex
6500 (package
6501 (name "emacs-evil-tex")
6502 (version "1.0.2")
6503 (source
6504 (origin
6505 (method git-fetch)
6506 (uri (git-reference
6507 (url "https://github.com/iyefrat/evil-tex")
6508 (commit version)))
6509 (file-name (git-file-name name version))
6510 (sha256
6511 (base32 "1wrx8ihimn1sx3vzzfppcwv0yfh3x95jrkxqvzj0ykckipm3zk0b"))))
6512 (build-system emacs-build-system)
6513 (arguments
6514 `(#:phases
6515 (modify-phases %standard-phases
6516 (add-before 'build 'set-home
6517 (lambda _ (setenv "HOME" "/tmp"))))))
6518 (propagated-inputs
6519 (list emacs-auctex emacs-evil))
6520 (home-page "https://github.com/iyefrat/evil-tex")
6521 (synopsis "Evil oriented additions for editing LaTeX")
6522 (description "This package is a toolbox for LaTeX editing with Evil. It
6523 provides many text objects fully utilizing @code{evil-surround}, some useful
6524 movements, and keymaps for quickly entering environments or
6525 @code{cdlatex}-like accents.")
6526 (license license:gpl3+)))
6527
6528 (define-public emacs-evil-textobj-syntax
6529 (let ((commit "2d9ba8c75c754b409aea7469f46a5cfa52a872f3")
6530 (version "0")
6531 (revision "1"))
6532 (package
6533 (name "emacs-evil-textobj-syntax")
6534 (version (git-version version revision commit))
6535 (source
6536 (origin
6537 (method git-fetch)
6538 (uri (git-reference
6539 (url "https://github.com/laishulu/evil-textobj-syntax/")
6540 (commit commit)))
6541 (file-name (git-file-name name version))
6542 (sha256
6543 (base32
6544 "031p5i3274dazp7rz6m5y38shfgszm1clmkcf58qfqlvy978ammc"))))
6545 (build-system emacs-build-system)
6546 (propagated-inputs (list emacs-evil emacs-names))
6547 (home-page "https://github.com/laishulu/evil-textobj-syntax/")
6548 (synopsis "Text objects based on syntax highlighting")
6549 (description
6550 "This package provides text objects for @code{evil-mode} with
6551 boundaries defined by syntax highlighting.")
6552 (license license:gpl3+))))
6553
6554 (define-public emacs-flycheck-flow
6555 (let ((commit "9e8e52cfc98af6a23fd906f9cb5d5d470d8cf82d")
6556 (version "1.1")
6557 (revision "1"))
6558 (package
6559 (name "emacs-flycheck-flow")
6560 (version (git-version version revision commit))
6561 (source
6562 (origin
6563 (method git-fetch)
6564 (uri (git-reference
6565 (url "https://github.com/lbolla/emacs-flycheck-flow")
6566 (commit commit)))
6567 (file-name (git-file-name name version))
6568 (sha256
6569 (base32
6570 "14qldlisbmxzammr500gyha2hiv2xgyzfc6mysqii06kbcqn1ik1"))))
6571 (build-system emacs-build-system)
6572 (propagated-inputs
6573 (list emacs-flycheck))
6574 (home-page "https://github.com/lbolla/emacs-flycheck-flow")
6575 (synopsis "Flow support for @code{flycheck-mode}")
6576 (description
6577 "This package allows @code{flycheck-mode} to provide syntax-checking
6578 for Flow files.")
6579 (license license:gpl3+))))
6580
6581 (define-public emacs-flycheck-grammalecte
6582 (package
6583 (name "emacs-flycheck-grammalecte")
6584 (version "2.0")
6585 (source
6586 (origin
6587 (method git-fetch)
6588 (uri (git-reference
6589 (url "https://git.umaneti.net/flycheck-grammalecte/")
6590 (commit (string-append "v" version))))
6591 (file-name (git-file-name name version))
6592 (sha256
6593 (base32 "040mb9djj4cxpjsjch9i30pi36a2z7grkhnsnfdi5qyh341p4pq0"))))
6594 (build-system emacs-build-system)
6595 (arguments
6596 `(#:include (cons "\\.py$" %default-include)
6597 #:exclude '("^test-profile.el$")
6598 #:emacs ,emacs ;need libxml support
6599 #:phases
6600 (modify-phases %standard-phases
6601 (add-after 'unpack 'specify-python-location
6602 ;; Hard-code python3 executable location in the library.
6603 (lambda* (#:key inputs #:allow-other-keys)
6604 (let ((python3 (search-input-file inputs "/bin/python3")))
6605 (substitute* '("flycheck-grammalecte.el" "grammalecte.el")
6606 (("\"python3") (string-append "\"" python3)))
6607 (substitute* '("conjugueur.py" "flycheck_grammalecte.py")
6608 (("/usr/bin/env python3?") python3)))))
6609 (add-after 'unpack 'specify-grammalecte-location
6610 ;; Use our own Grammalecte.
6611 (lambda* (#:key inputs #:allow-other-keys)
6612 (make-file-writable "grammalecte.el")
6613 (emacs-substitute-variables "grammalecte.el"
6614 ("grammalecte-python-package-directory"
6615 (search-input-directory
6616 inputs
6617 (string-append "lib/python"
6618 ,(version-major+minor (package-version python))
6619 "/site-packages/grammalecte"))))))
6620 (add-after 'unpack 'do-not-phone-home
6621 ;; Do not check for Grammalecte updates, ever.
6622 (lambda _
6623 (make-file-writable "grammalecte.el")
6624 (emacs-substitute-variables "grammalecte.el"
6625 ("grammalecte-check-upstream-version-delay" 0)))))))
6626 (inputs
6627 (list grammalecte python))
6628 (propagated-inputs
6629 (list emacs-flycheck))
6630 (home-page "https://git.umaneti.net/flycheck-grammalecte/")
6631 (synopsis "Integrate Grammalecte with Flycheck")
6632 (description
6633 "Integrate the French grammar and typography checker Grammalecte with
6634 Flycheck to automatically look for mistakes in your writings. It also
6635 provides an easy way to find synonyms and antonyms for a given word (to avoid
6636 repetitions for example).")
6637 (license license:gpl3+)))
6638
6639 (define-public emacs-flycheck-guile
6640 (package
6641 (name "emacs-flycheck-guile")
6642 (version "0.4")
6643 (source
6644 (origin
6645 (method git-fetch)
6646 (uri
6647 (git-reference
6648 (url "https://github.com/flatwhatson/flycheck-guile")
6649 (commit version)))
6650 (file-name (git-file-name name version))
6651 (sha256
6652 (base32 "0hkj3y7xlbbnwagmccav620r3qngpc909pj3n5b876r8gp6rm87p"))))
6653 (propagated-inputs
6654 (list emacs-flycheck emacs-geiser emacs-geiser-guile))
6655 (build-system emacs-build-system)
6656 (home-page "https://github.com/flatwhatson/flycheck-guile")
6657 (synopsis "GNU Guile support for Flycheck")
6658 (description
6659 "This package provides a Flycheck checker for GNU Guile using @code{guild
6660 compile}.")
6661 (license license:gpl3+)))
6662
6663 (define-public emacs-flycheck-ledger
6664 (package
6665 (name "emacs-flycheck-ledger")
6666 (version "0.5")
6667 (source
6668 (origin
6669 (method git-fetch)
6670 (uri (git-reference
6671 (url "https://github.com/purcell/flycheck-ledger")
6672 (commit version)))
6673 (file-name (git-file-name name version))
6674 (sha256
6675 (base32 "1djrj3is0dzrl2703bw7bclf33dp4xqmy144q7xj5pvpb9v3kf50"))))
6676 (arguments
6677 (list
6678 #:phases
6679 #~(modify-phases %standard-phases
6680 (add-after 'unpack 'configure
6681 (lambda _
6682 (let ((ledger #$(this-package-input "ledger")))
6683 ;; Specify the absolute executable location of ledger.
6684 (substitute* "flycheck-ledger.el"
6685 (("\"ledger\"") (string-append "\"" ledger "\"")))))))))
6686 (inputs (list ledger))
6687 (propagated-inputs
6688 (list emacs-flycheck))
6689 (build-system emacs-build-system)
6690 (home-page "https://github.com/purcell/flycheck-ledger")
6691 (synopsis "Ledger support for Flycheck")
6692 (description
6693 "This Flycheck checker uses the output of @code{ledger balance} on the
6694 current file to find errors such as unbalanced transactions and syntax
6695 errors.")
6696 (license license:gpl3+)))
6697
6698 (define-public emacs-flycheck-rust
6699 (package
6700 (name "emacs-flycheck-rust")
6701 (version "1.1")
6702 (source
6703 (origin
6704 (method git-fetch)
6705 (uri
6706 (git-reference
6707 (url "https://github.com/flycheck/flycheck-rust")
6708 (commit version)))
6709 (file-name (git-file-name name version))
6710 (sha256
6711 (base32 "1fh6j5w2387nh2fwwjphkhq17cgj5m2q5k0fhidvgc2w65lzbr1r"))))
6712 (propagated-inputs
6713 (list emacs-dash emacs-flycheck emacs-let-alist))
6714 (build-system emacs-build-system)
6715 (home-page "https://github.com/flycheck/flycheck-rust")
6716 (synopsis "Rust/Cargo support for Flycheck")
6717 (description
6718 "This Flycheck extension configures Flycheck automatically for
6719 the current Cargo project.")
6720 (license license:gpl3+)))
6721
6722 (define-public emacs-flycheck-package
6723 (package
6724 (name "emacs-flycheck-package")
6725 (version "0.14")
6726 (source
6727 (origin
6728 (method git-fetch)
6729 (uri (git-reference
6730 (url "https://github.com/purcell/flycheck-package")
6731 (commit version)))
6732 (file-name (git-file-name name version))
6733 (sha256
6734 (base32
6735 "00py39n1383761wq6wp194pvyk94ydqdbxj9kl64g9jnipkp7849"))))
6736 (build-system emacs-build-system)
6737 (propagated-inputs
6738 (list emacs-flycheck emacs-package-lint))
6739 (home-page "https://github.com/purcell/flycheck-package")
6740 (synopsis "Flycheck checker for elisp package metadata")
6741 (description
6742 "This library provides a flycheck checker for the metadata in Emacs Lisp
6743 files which are intended to be packages.")
6744 (license license:gpl3+)))
6745
6746 (define-public emacs-flymake-proselint
6747 (let ((commit "6a99865c7ac6474b8c5d1f9a1ae2384667f06d36")
6748 (revision "0"))
6749 (package
6750 (name "emacs-flymake-proselint")
6751 (version (git-version "0.2.3" revision commit))
6752 (source (origin
6753 (method git-fetch)
6754 (uri (git-reference
6755 (url "https://git.sr.ht/~manuel-uberti/flycheck-proselint")
6756 (commit commit)))
6757 (file-name (git-file-name name version))
6758 (sha256
6759 (base32
6760 "028ilp9h22rlawlh5ydiykvi8pryyknwi019sjyxkk2h0fza9jan"))))
6761 (build-system emacs-build-system)
6762 (arguments
6763 (list
6764 #:phases
6765 #~(modify-phases %standard-phases
6766 (add-after 'unpack 'patch-exec-paths
6767 (lambda* (#:key inputs #:allow-other-keys)
6768 (substitute* "flymake-proselint.el"
6769 (("\"proselint\"")
6770 (string-append
6771 "\"" (search-input-file inputs "/bin/proselint") "\""))))))))
6772 (propagated-inputs
6773 (list emacs-flycheck))
6774 (inputs
6775 (list python-proselint))
6776 (home-page "https://git.sr.ht/~manuel-uberti/flycheck-proselint")
6777 (synopsis "Flymake backend for @code{proselint}")
6778 (description "This package adds support for @code{proselint} in Flymake.")
6779 (license license:gpl3+))))
6780
6781 (define-public emacs-elisp-demos
6782 (package
6783 (name "emacs-elisp-demos")
6784 (version "2020.02.19")
6785 (source
6786 (origin
6787 (method git-fetch)
6788 (uri (git-reference
6789 (url "https://github.com/xuchunyang/elisp-demos")
6790 (commit version)))
6791 (file-name (git-file-name name version))
6792 (sha256
6793 (base32
6794 "0mckgaz92v3y2vlkggx9kd51fd1mahylw39c42l51dyv8wscm7sc"))))
6795 (build-system emacs-build-system)
6796 (arguments
6797 `(#:include '("\\.el$" "\\.org$")
6798 #:tests? #t
6799 #:test-command '("make" "test")))
6800 (home-page "https://github.com/xuchunyang/elisp-demos/")
6801 (synopsis "Enhance @code{*Help*} buffers with additional examples")
6802 (description
6803 "This package injects example uses of Elisp functions into their
6804 respective @code{*Help*} buffers.")
6805 (license license:gpl3+)))
6806
6807 (define-public emacs-docker-compose-mode
6808 (package
6809 (name "emacs-docker-compose-mode")
6810 (version "1.1.0")
6811 (source
6812 (origin
6813 (method git-fetch)
6814 (uri (git-reference
6815 (url "https://github.com/meqif/docker-compose-mode")
6816 (commit version)))
6817 (file-name (git-file-name name version))
6818 (sha256
6819 (base32
6820 "1fbcxwfvm33xcdj3cs26d9i1zyrryyjjkv7sc3mfxd45nq8d3ivj"))))
6821 (build-system emacs-build-system)
6822 (propagated-inputs
6823 (list emacs-dash emacs-f emacs-yaml-mode))
6824 (home-page "https://github.com/meqif/docker-compose-mode/")
6825 (synopsis "Major mode for editing @file{docker-compose} files")
6826 (description
6827 "This is a major mode for @file{docker-compose} files that provides
6828 completion of relevant keywords.")
6829 (license license:expat)))
6830
6831 (define-public emacs-dvc
6832 (let ((revision "591") ;no tags or official releases
6833 (guix-revision "1"))
6834 (package
6835 (name "emacs-dvc")
6836 (version (string-append "0.0.0-" guix-revision "." revision))
6837 (source
6838 (origin
6839 (method bzr-fetch)
6840 (uri (bzr-reference
6841 (url "lp:dvc")
6842 (revision revision)))
6843 (sha256
6844 (base32 "03pqn493w70wcpgaxvqnfgynxghw114l9pyiv3r414d84vzhan6h"))
6845 (file-name (string-append name "-" version "-checkout"))))
6846 (build-system gnu-build-system)
6847 (arguments
6848 (list
6849 #:modules `((guix build gnu-build-system)
6850 ((guix build emacs-build-system) #:prefix emacs:)
6851 (guix build utils))
6852 #:imported-modules `(,@%gnu-build-system-modules
6853 (guix build emacs-build-system)
6854 (guix build emacs-utils))
6855 #:configure-flags
6856 #~(list (string-append "--with-lispdir="
6857 (emacs:elpa-directory #$output)))
6858 #:tests? #f ;no test suite
6859 #:phases
6860 #~(modify-phases %standard-phases
6861 (add-before 'build 'set-home
6862 ;; Something in dvc-bookmarks.el attempts to write config files
6863 ;; in $HOME during the autoload generation.
6864 (lambda _ (setenv "HOME" (getenv "TMPDIR"))))
6865 (add-before 'build 'fix-texinfo
6866 ;; See https://bugs.launchpad.net/dvc/+bug/1264383.
6867 (lambda _
6868 (substitute* "texinfo/dvc-intro.texinfo"
6869 (("@itemx update ``to''") "@item update ``to''")
6870 (("@itemx brief") "@item brief")
6871 (("@itemx full") "@item full")
6872 (("@itemx drop") "@item drop")
6873 (("@itemx left file") "@item left file")))))))
6874 (native-inputs
6875 (list autoconf automake emacs-minimal texinfo))
6876 (home-page "http://xsteve.at/prg/emacs_dvc/index.html")
6877 (synopsis "Emacs front-end for various distributed version control systems")
6878 (description "DVC is a legacy Emacs front-end for a number of
6879 distributed version control systems. It currently supports GNU Arch, GNU
6880 Bazaar, git, Mercurial, and Monotone. It also provides some integration with
6881 Gnus, e.g., for applying patches received by email.")
6882 (license license:gpl2+))))
6883
6884 (define-public emacs-sudo-edit
6885 (package
6886 (name "emacs-sudo-edit")
6887 (version "0.1.1")
6888 (source
6889 (origin
6890 (method git-fetch)
6891 (uri (git-reference
6892 (url "https://github.com/nflath/sudo-edit")
6893 (commit (string-append "v" version))))
6894 (file-name (git-file-name name version))
6895 (sha256
6896 (base32 "1hncxbg5lvywzkwvdmzvrz71midy4samjq2vvxxhz90z1y5l8l29"))))
6897 (build-system emacs-build-system)
6898 (native-inputs
6899 (list emacs-undercover))
6900 (arguments
6901 (list
6902 #:emacs emacs
6903 #:phases
6904 #~(modify-phases %standard-phases
6905 (add-before 'check 'fix-makefile
6906 (lambda _
6907 (substitute* "Makefile"
6908 (("\\$\\(CASK\\) exec ") "")))))
6909 #:tests? #t
6910 #:test-command #~(list "make" "test")))
6911 (home-page "https://github.com/nflath/sudo-edit/")
6912 (synopsis "Open files as another user")
6913 (description
6914 "This package allows editing files as another user, including the root
6915 user.")
6916 (license license:gpl3+)))
6917
6918 (define-public emacs-subed
6919 (package
6920 (name "emacs-subed")
6921 (version "1.0.10")
6922 (source (origin
6923 (method url-fetch)
6924 (uri (string-append "https://elpa.nongnu.org/nongnu/subed-"
6925 version ".tar"))
6926 (sha256
6927 (base32
6928 "08vw9sv2g76yj8sfnx53dd28zkj4s0842i7qi92jam993v9s8h0z"))))
6929 (arguments
6930 (list
6931 #:tests? #t
6932 #:test-command #~(list "make" "test-only")))
6933 (native-inputs
6934 (list emacs-buttercup))
6935 (build-system emacs-build-system)
6936 (home-page "https://elpa.nongnu.org/nongnu/subed.html")
6937 (synopsis "Major mode for editing subtitles")
6938 (description
6939 "@code{subed} is an Emacs major mode for editing subtitles while playing
6940 the corresponding video with @code{mpv}. At the moment, the only supported
6941 formats are SubRip (@file{.srt}), WebVTT (@file{.vtt}), and Advanced
6942 SubStation Alpha (@file{.ass}).")
6943 (license license:gpl3+)))
6944
6945 (define-public emacs-miniedit
6946 (package
6947 (name "emacs-miniedit")
6948 (version "2.0")
6949 (source
6950 (origin
6951 (method git-fetch)
6952 (uri (git-reference
6953 (url "https://github.com/emacsmirror/miniedit")
6954 (commit version)))
6955 (file-name (git-file-name name version))
6956 (sha256
6957 (base32
6958 "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq"))))
6959 (build-system emacs-build-system)
6960 (home-page "https://github.com/emacsmirror/miniedit/")
6961 (synopsis "Enhanced editing for minibuffer fields")
6962 (description
6963 "This package provides a function that can be called from the
6964 minibuffer to enable editing the minibuffer input in another buffer with
6965 @code{text-mode} enabled.")
6966 (license license:gpl2+)))
6967
6968 (define-public emacs-ob-ipython
6969 (package
6970 (name "emacs-ob-ipython")
6971 (version "20180224")
6972 (source (origin
6973 (method git-fetch)
6974 (uri (git-reference
6975 (commit "7147455230841744fb5b95dcbe03320313a77124")
6976 (url "https://github.com/gregsexton/ob-ipython")))
6977 (file-name (git-file-name name version))
6978 (sha256
6979 (base32
6980 "1a10fc2jk37ni5sjjvf87s5nyaz2a6h2mlj5dxh4dhv5sd3bb85p"))))
6981 (build-system emacs-build-system)
6982 (propagated-inputs
6983 (list emacs-f))
6984 (home-page "http://www.gregsexton.org")
6985 (synopsis "Org-Babel functions for IPython evaluation")
6986 (description "This package adds support to Org-Babel for evaluating Python
6987 source code using IPython.")
6988 (license license:gpl3+)))
6989
6990 (define-public emacs-ob-async
6991 (package
6992 (name "emacs-ob-async")
6993 (version "1.0.0")
6994 (source
6995 (origin
6996 (method git-fetch)
6997 (uri (git-reference
6998 (url "https://github.com/astahlman/ob-async")
6999 (commit (string-append "v" version))))
7000 (file-name (git-file-name name version))
7001 (sha256
7002 (base32 "10x4hxrjm4pr6vg42a961h9ilqzyd0l0fv7fsbq9clxi439f1nd6"))))
7003 (build-system emacs-build-system)
7004 (propagated-inputs
7005 (list emacs-async emacs-dash))
7006 (home-page "https://github.com/astahlman/ob-async")
7007 (synopsis "Asynchronous src_block execution for org-babel")
7008 (description "@code{ob-async} enables asynchronous execution of org-babel
7009 src blocks.")
7010 (license license:gpl3+)))
7011
7012 (define-public emacs-debbugs
7013 (package
7014 (name "emacs-debbugs")
7015 (version "0.33")
7016 (source
7017 (origin
7018 (method url-fetch)
7019 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
7020 version ".tar"))
7021 (sha256
7022 (base32 "1s4p3jf9yrm8pn5pljpkrw05n2p9v6fpl141rh1df7f7l0w80qbk"))))
7023 (build-system emacs-build-system)
7024 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
7025 (propagated-inputs
7026 (list emacs-soap-client))
7027 (home-page "https://elpa.gnu.org/packages/debbugs.html")
7028 (synopsis "Access the Debbugs bug tracker in Emacs")
7029 (description
7030 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
7031 Tracker} from within Emacs.
7032
7033 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
7034 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
7035 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
7036 @code{M-x debbugs-org} and related commands.
7037
7038 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
7039 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
7040 (license license:gpl3+)))
7041
7042 (define-public emacs-piem
7043 (package
7044 (name "emacs-piem")
7045 (version "0.4.0")
7046 (source
7047 (origin
7048 (method git-fetch)
7049 (uri (git-reference
7050 (url "https://git.kyleam.com/piem")
7051 (commit (string-append "v" version))))
7052 (file-name (string-append name "-" version "-checkout"))
7053 (sha256
7054 (base32 "0wr6n6wvznngjdp4c0pmdr4xz05dark0kxi5svzhzxsg3rdaql3z"))))
7055 (build-system emacs-build-system)
7056 (propagated-inputs
7057 (list b4
7058 emacs-elfeed
7059 emacs-notmuch
7060 emacs-transient))
7061 (home-page "https://docs.kyleam.com/piem")
7062 (synopsis "Glue for working with public-inbox archives")
7063 (description "This packages provides a collection of Emacs libraries for
7064 working with public-inbox archives. As much of the hard work here is already
7065 done by other Emacs libraries—things like mail clients, news readers, Git
7066 interfaces, and even web browsers—piem is mostly about bridging some of these
7067 parts for convenience.")
7068 (license license:gpl3)))
7069
7070 (define-public emacs-ert-expectations
7071 (package
7072 (name "emacs-ert-expectations")
7073 (version "0.2")
7074 (source
7075 (origin
7076 (method url-fetch)
7077 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
7078 (sha256
7079 (base32
7080 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
7081 (build-system emacs-build-system)
7082 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
7083 (synopsis "Simple unit test framework for Emacs Lisp")
7084 (description "@code{emacs-ert-expectations} is a simple unit test
7085 framework for Emacs Lisp to be used with @code{ert}.")
7086 (license license:gpl3+)))
7087
7088 (define-public emacs-deferred
7089 (package
7090 (name "emacs-deferred")
7091 (version "0.5.1")
7092 (home-page "https://github.com/kiwanami/emacs-deferred")
7093 (source
7094 (origin
7095 (method git-fetch)
7096 (uri (git-reference
7097 (url home-page)
7098 (commit (string-append "v" version))))
7099 (file-name (git-file-name name version))
7100 (sha256
7101 (base32 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))
7102 (patches
7103 (search-patches "emacs-deferred-fix-number-of-arguments.patch"))))
7104 (build-system emacs-build-system)
7105 (arguments
7106 `(#:phases
7107 (modify-phases %standard-phases
7108 (add-after 'unpack 'set-shell
7109 ;; Setting the SHELL environment variable is required for the tests
7110 ;; to find sh.
7111 (lambda _
7112 (setenv "SHELL" (which "sh"))))
7113 (add-before 'check 'fix-makefile
7114 (lambda _
7115 (substitute* "Makefile"
7116 (("\\$\\(CASK\\) exec ") "")))))
7117 #:tests? #t
7118 #:test-command '("make" "test")))
7119 (native-inputs
7120 (list emacs-ert-expectations emacs-ert-runner emacs-undercover))
7121 (synopsis "Simple asynchronous functions for Emacs Lisp")
7122 (description
7123 "The @code{deferred.el} library provides support for asynchronous tasks.
7124 The API is almost the same as that of
7125 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
7126 for asynchronous tasks.")
7127 (license license:gpl3+)))
7128
7129 (define-public emacs-butler
7130 (package
7131 (name "emacs-butler")
7132 (version "0.2.6")
7133 (home-page "https://github.com/AshtonKem/Butler")
7134 (source (origin
7135 (method git-fetch)
7136 (uri (git-reference
7137 (url home-page)
7138 (commit version)))
7139 (file-name (git-file-name name version))
7140 (sha256
7141 (base32
7142 "1wsk5isza8xqr84w6haal95ssifz6j2lrr5phbsdc90jb9hicbff"))))
7143 (build-system emacs-build-system)
7144 (propagated-inputs
7145 (list emacs-deferred))
7146 (synopsis "Emacs client for Jenkins")
7147 (description
7148 "Butler provides an interface to connect to Jenkins continuous
7149 integration servers. Users can specify a list of server in the
7150 @code{butler-server-list} variable and then use @code{M-x butler-status} to
7151 view the build status of those servers' build jobs, and possibly to trigger
7152 build jobs.")
7153 (license license:gpl3+)))
7154
7155 (define-public emacs-zmq
7156 (package
7157 (name "emacs-zmq")
7158 (version "0.10.10")
7159 (source
7160 (origin
7161 (method git-fetch)
7162 (uri (git-reference
7163 (url "https://github.com/nnicandro/emacs-zmq")
7164 (commit (string-append "v" version))))
7165 (file-name (git-file-name name version))
7166 (sha256
7167 (base32 "0ngxm5mm0kqgvn8977ryrngamx0khzlw86d8vz5s0jhm2kgwnqp8"))))
7168 (build-system emacs-build-system)
7169 (arguments
7170 `(#:tests? #f ; no tests
7171 #:phases
7172 (modify-phases %standard-phases
7173 (add-after 'unpack 'configure
7174 (lambda _
7175 (invoke "make" "src/configure")
7176 (substitute* "src/configure"
7177 (("/bin/sh") (which "sh"))
7178 (("/usr/bin/file") (which "file")))
7179 (invoke "make")))
7180 (add-after 'install 'install-shared-object
7181 (lambda* (#:key inputs outputs #:allow-other-keys)
7182 (let* ((out (assoc-ref outputs "out"))
7183 (site-lisp (string-append out "/share/emacs/site-lisp"))
7184 (libdir (string-append site-lisp "/zmq-0.10.10")))
7185 (copy-file "emacs-zmq.so"
7186 (string-append libdir "/emacs-zmq.so"))))))))
7187 (native-inputs
7188 (list autoconf automake libtool pkg-config))
7189 (inputs
7190 (list zeromq))
7191 (home-page "https://github.com/nnicandro/emacs-zmq")
7192 (synopsis "Emacs bindings to ØMQ")
7193 (description "This package provides Emacs bindings to ØMQ.")
7194 (license (list license:gpl2+ ;zmq.el
7195 license:gpl3+)))) ;src/emacs-module.h
7196
7197 (define-public emacs-tup-mode
7198 (package
7199 (name "emacs-tup-mode")
7200 (version "1.3.1")
7201 (source
7202 (origin
7203 (method git-fetch)
7204 (uri (git-reference
7205 (url "https://github.com/ejmr/tup-mode")
7206 (commit (string-append "v" version))))
7207 (file-name (git-file-name name version))
7208 (sha256
7209 (base32 "0asd024n5v23wdsg1959sszq568wg3a1bp4jrk0cllfji1z0n78y"))))
7210 (build-system emacs-build-system)
7211 (home-page "https://github.com/ejmr/tup-mode")
7212 (synopsis "Major mode for editing ``tupfiles'' used by the Tup build system")
7213 (description
7214 "Tup mode provides syntax highlighting for all of the elements of
7215 tupfiles, such as rule definitions, user-defined variables, macros, flags, bin
7216 variables, and so on. The mode also allows you to execute Tup commands.")
7217 (license license:gpl3+)))
7218
7219 (define-public emacs-compat
7220 (package
7221 (name "emacs-compat")
7222 (version "28.1.1.2")
7223 (source (origin
7224 (method git-fetch)
7225 (uri (git-reference
7226 (url "https://git.sr.ht/~pkal/compat")
7227 (commit version)))
7228 (file-name (git-file-name name version))
7229 (sha256
7230 (base32
7231 "19abp29rnbkw91q0h2yqm2z7awzzjhci8h6v875g5ahvplrp6337"))))
7232 (build-system emacs-build-system)
7233 (propagated-inputs (list emacs-nadvice))
7234 (home-page "https://git.sr.ht/~pkal/compat")
7235 (synopsis "Emacs Lisp Compatibility Library")
7236 (description
7237 "To allow for the usage of Emacs functions and macros that are defined
7238 in newer versions of Emacs, @code{compat.el} provides definitions that
7239 are installed ONLY if necessary. These reimplementations of functions
7240 and macros are at least subsets of the actual implementations. Be
7241 sure to read the documentation string to make sure.
7242
7243 Not every function provided in newer versions of Emacs is provided
7244 here. Some depend on new features from the core, others cannot be
7245 implemented to a meaningful degree. The main audience for this
7246 library are not regular users, but package maintainers. Therefore
7247 commands and user options are usually not implemented here.")
7248 (license license:gpl3+)))
7249
7250 (define-public emacs-company
7251 (package
7252 (name "emacs-company")
7253 (version "0.9.13")
7254 (source
7255 (origin
7256 (method url-fetch)
7257 (uri (string-append "https://elpa.gnu.org/packages/"
7258 "company-" version ".tar"))
7259 (sha256
7260 (base32 "1c9x9wlzzsn7vrsm57l2l44nqx455saa6wrm853szzg09qn8dlnw"))))
7261 (build-system emacs-build-system)
7262 (home-page "https://company-mode.github.io/")
7263 (synopsis "Modular text completion framework")
7264 (description
7265 "Company is a modular completion mechanism. Modules for retrieving
7266 completion candidates are called back-ends, modules for displaying them are
7267 front-ends. Company comes with many back-ends, e.g., @code{company-elisp}.
7268 These are distributed in separate files and can be used individually.")
7269 (license license:gpl3+)))
7270
7271 (define-public emacs-company-box
7272 ;; There is no release yet. Version is extracted from the main
7273 ;; file.
7274 (let ((version "0.0.1")
7275 (revision "0")
7276 (commit "be37a9a30dc112ab172af21af694e2cb04a74f85"))
7277 (package
7278 (name "emacs-company-box")
7279 (version (git-version version revision commit))
7280 (source
7281 (origin
7282 (method git-fetch)
7283 (uri (git-reference
7284 (url "https://github.com/sebastiencs/company-box")
7285 (commit commit)))
7286 (file-name (git-file-name name version))
7287 (sha256
7288 (base32 "13fgmdy51gqdwijqfvb784pirx4lgva0y7ysi0c3fcx8f82cdj59"))))
7289 (build-system emacs-build-system)
7290 (propagated-inputs
7291 (list emacs-company emacs-dash emacs-frame-local))
7292 (home-page "https://github.com/sebastiencs/company-box")
7293 (synopsis "Company front-end with icons")
7294 (description
7295 "Company box is a Company front-end. It supports different
7296 colors for different backends, associates icons to functions,
7297 variables... and their backends, and displays candidate's
7298 documentation. It is not limited by the current window size or
7299 buffer's text properties.
7300
7301 This package is not compatible with a TTY.")
7302 (license license:gpl3+))))
7303
7304 (define-public emacs-company-posframe
7305 (package
7306 (name "emacs-company-posframe")
7307 (version "0.5.0")
7308 (source (origin
7309 (method git-fetch)
7310 (uri (git-reference
7311 (url "https://github.com/tumashu/company-posframe")
7312 (commit (string-append "v" version))))
7313 (file-name (git-file-name name version))
7314 (sha256
7315 (base32
7316 "05ays6xkqbxcfplvx7wfc2slflmwc3aw7vkixvabk0ilvisndvgm"))))
7317 (build-system emacs-build-system)
7318 (propagated-inputs
7319 (list emacs-company emacs-posframe))
7320 (home-page "https://github.com/tumashu/company-posframe")
7321 (synopsis "Use a posframe for @code{emacs-company}'s candidate menu")
7322 (description
7323 "Allows @code{emacs-company} to use child frames for its candidate menus.
7324
7325 @code{emacs-company-posframe} is fast enough for daily use and supports CJK
7326 languages.")
7327 (license license:gpl3+)))
7328
7329 (define-public emacs-irony-mode
7330 (package
7331 (name "emacs-irony-mode")
7332 (version "1.5.0")
7333 (home-page "https://github.com/Sarcasm/irony-mode")
7334 (source
7335 (origin
7336 (method git-fetch)
7337 (uri (git-reference
7338 (url (string-append home-page ".git"))
7339 (commit (string-append "v" version))))
7340 (file-name (git-file-name name version))
7341 (sha256
7342 (base32 "1ilvfqn7hzrjjy2zrv08dbdnmgksdgsmrdcvx05s8704430ag0pb"))))
7343 (build-system emacs-build-system)
7344 (arguments
7345 (list
7346 #:phases
7347 #~(modify-phases %standard-phases
7348 (add-after 'unpack 'configure
7349 (lambda _
7350 (chmod "irony.el" #o644)
7351 (emacs-substitute-variables "irony.el"
7352 ("irony-server-install-prefix" #$emacs-irony-mode-server)))))))
7353 (inputs (list emacs-irony-mode-server))
7354 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
7355 (description "Irony-mode provides Clang-assisted syntax checking and
7356 completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
7357 provide syntax checking and autocompletion on compiler level which is very
7358 resistant against false positives. It also integrates well with other
7359 packages like @code{eldoc-mode} and especially @code{company-mode} as
7360 described on the homepage.")
7361 (license license:gpl3+)))
7362
7363 (define-public emacs-irony-mode-server
7364 (package
7365 (inherit emacs-irony-mode)
7366 (name "emacs-irony-mode-server")
7367 (arguments
7368 `(#:phases
7369 (modify-phases %standard-phases
7370 (replace 'configure
7371 (lambda* (#:key outputs #:allow-other-keys)
7372 (let ((out (assoc-ref outputs "out")))
7373 (invoke "cmake"
7374 "server"
7375 (string-append "-DCMAKE_INSTALL_PREFIX=" out))))))))
7376 (inputs
7377 (list clang))
7378 (build-system cmake-build-system)
7379 (synopsis "Server for the Emacs @dfn{irony mode}")))
7380
7381 (define-public emacs-company-irony
7382 (package
7383 (name "emacs-company-irony")
7384 (version "1.1.1")
7385 (source
7386 (origin
7387 (method git-fetch)
7388 (uri (git-reference
7389 (url "https://github.com/Sarcasm/company-irony")
7390 (commit (string-append "v" version))))
7391 (sha256
7392 (base32 "1d3jw0d4zymznri86a5iixyxnw16jzkkrbhrh657ys73189c1c73"))
7393 (file-name (git-file-name name version))))
7394 (build-system emacs-build-system)
7395 (inputs
7396 (list emacs-company emacs-irony-mode))
7397 (synopsis "C++ completion backend for Company using Irony mode")
7398 (description "This backend for Company allows for C++ code completion
7399 with Irony mode using Clang tooling.")
7400 (home-page "https://github.com/Sarcasm/company-irony")
7401 (license license:gpl3+)))
7402
7403 (define-public emacs-flycheck-irony
7404 (package
7405 (name "emacs-flycheck-irony")
7406 (version "0.1.0")
7407 (source (origin
7408 (method git-fetch)
7409 (uri (git-reference
7410 (url "https://github.com/Sarcasm/flycheck-irony")
7411 (commit (string-append "v" version))))
7412 (file-name (git-file-name name version))
7413 (sha256
7414 (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))))
7415 (build-system emacs-build-system)
7416 (inputs
7417 (list emacs-irony-mode emacs-flycheck emacs-company))
7418 (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
7419 (description "This package provides a frontend for Flycheck that lets
7420 irony-mode do the syntax checking.")
7421 (home-page "https://github.com/Sarcasm/flycheck-irony")
7422 (license license:gpl3+)))
7423
7424 (define-public emacs-irony-eldoc
7425 (package
7426 (name "emacs-irony-eldoc")
7427 (version (package-version emacs-irony-mode))
7428 (source
7429 (origin
7430 (method git-fetch)
7431 (uri (git-reference
7432 (url "https://github.com/ikirill/irony-eldoc")
7433 (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
7434 (file-name (git-file-name name version))
7435 (sha256
7436 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))))
7437 (build-system emacs-build-system)
7438 (inputs
7439 (list emacs-irony-mode))
7440 (synopsis "Eldoc integration for irony-mode")
7441 (description "Irony-eldoc is an eldoc extension that shows documentation
7442 for the current function or variable in the minibuffer.")
7443 (home-page "https://github.com/ikirill/irony-eldoc")
7444 (license license:gpl3+)))
7445
7446 (define-public emacs-company-quickhelp
7447 (package
7448 (name "emacs-company-quickhelp")
7449 (version "2.3.0")
7450 (source
7451 (origin
7452 (method git-fetch)
7453 (uri (git-reference
7454 (url "https://github.com/expez/company-quickhelp")
7455 (commit version)))
7456 (file-name (git-file-name name version))
7457 (sha256
7458 (base32 "08ccsfvwdpzpj0gai3xrdb2bv1nl6myjkxsc5774pbvlq9nkfdvr"))))
7459 (build-system emacs-build-system)
7460 (propagated-inputs
7461 (list emacs-pos-tip emacs-company))
7462 (home-page "https://github.com/expez/company-quickhelp")
7463 (synopsis "Popup documentation for completion candidates")
7464 (description "@code{company-quickhelp} shows documentation for the
7465 completion candidate when using the Company text completion framework.")
7466 (license license:gpl3+)))
7467
7468 (define-public emacs-math-symbol-lists
7469 (package
7470 (name "emacs-math-symbol-lists")
7471 (version "1.3")
7472 (source
7473 (origin
7474 (method git-fetch)
7475 (uri (git-reference
7476 (url "https://github.com/vspinu/math-symbol-lists")
7477 (commit (string-append "v" version))))
7478 (file-name (git-file-name name version))
7479 (sha256
7480 (base32 "1r2i600356k8g0l53s4b5xc24flpka664i8f23zbj4h7gk1g2787"))))
7481 (build-system emacs-build-system)
7482 (home-page "https://github.com/vspinu/math-symbol-lists")
7483 (synopsis "Lists of Unicode math symbols and @code{LaTeX} commands")
7484 (description "This is a storage package used by completion engines like
7485 @code{company-math}.")
7486 (license license:gpl3+)))
7487
7488 (define-public emacs-company-coq
7489 (package
7490 (name "emacs-company-coq")
7491 (version "1.0.1")
7492 (source
7493 (origin
7494 (method git-fetch)
7495 (uri
7496 (git-reference
7497 (url "https://github.com/cpitclaudel/company-coq")
7498 (commit version)))
7499 (file-name (git-file-name name version))
7500 (sha256
7501 (base32 "0dxi4h8xqq5647k7h89s4pi8nwyj3brlhsckrv3p3b1g4dr6mk3b"))))
7502 (inputs
7503 (list emacs-company emacs-company-math emacs-dash emacs-yasnippet))
7504 (build-system emacs-build-system)
7505 (home-page "https://github.com/cpitclaudel/company-coq")
7506 (synopsis "Emacs extensions for Proof General's Coq mode")
7507 (description "This package includes a collection of Company mode backends
7508 for Proof-General's Coq mode, and many useful extensions to Proof-General. It
7509 features:
7510
7511 @itemize
7512 @item Prettification of operators, types, and subscripts,
7513 @item Auto-completion,
7514 @item Insertion of cases,
7515 @item Fully explicit intros,
7516 @item Outlines, code folding, and jumping to definition,
7517 @item Help with errors,
7518 @item and more.
7519 @end itemize")
7520 (license license:gpl3+)))
7521
7522 (define-public emacs-company-math
7523 (package
7524 (name "emacs-company-math")
7525 (version "1.4")
7526 (source
7527 (origin
7528 (method git-fetch)
7529 (uri (git-reference
7530 (url "https://github.com/vspinu/company-math")
7531 (commit (string-append "v" version))))
7532 (file-name (git-file-name name version))
7533 (sha256
7534 (base32 "1y1fw926insgdl7ib9ynxjrxf3p6wfjkfxvf5vgdca7267cvcll1"))))
7535 (build-system emacs-build-system)
7536 (propagated-inputs
7537 (list emacs-math-symbol-lists emacs-company))
7538 (home-page "https://github.com/vspinu/company-math")
7539 (synopsis "Completion backends for math symbols and @code{LaTeX} tags")
7540 (description
7541 "This package provides a backend for use with Company mode allowing for
7542 completion of common math symbols.")
7543 (license license:gpl3+)))
7544
7545 (define-public emacs-compdef
7546 (let ((commit "67104a38763cc819644f711248b170a43bce151b")
7547 (revision "2"))
7548 (package
7549 (name "emacs-compdef")
7550 (version (git-version "0.2" revision commit))
7551 (source
7552 (origin
7553 (method git-fetch)
7554 (uri (git-reference
7555 (url "https://gitlab.com/jjzmajic/compdef.git")
7556 (commit commit)))
7557 (file-name (git-file-name name version))
7558 (sha256
7559 (base32 "1f6y6cr67gps9jp5hd20xszfd3k26v70g6z4g5db6wdkvlnc2wkg"))))
7560 (build-system emacs-build-system)
7561 (home-page "https://gitlab.com/jjzmajic/compdef")
7562 (synopsis "Set local completion backends")
7563 (description "This package provides a function to cleanly set local
7564 completion backends according to mode, and integrates with
7565 @code{use-package}.")
7566 (license license:gpl3+))))
7567
7568 (define-public emacs-icomplete-vertical
7569 (package
7570 (name "emacs-icomplete-vertical")
7571 (version "0.3")
7572 (source
7573 (origin
7574 (method git-fetch)
7575 (uri (git-reference
7576 (url "https://github.com/oantolin/icomplete-vertical")
7577 (commit version)))
7578 (file-name (git-file-name name version))
7579 (sha256
7580 (base32 "02v190pb802vck7di39jyf5prvmfsgcxln8mgwsls2b4clx9da97"))))
7581 (build-system emacs-build-system)
7582 (home-page "https://github.com/oantolin/icomplete-vertical")
7583 (synopsis "Display Icomplete candidates vertically")
7584 (description
7585 "This package defines a global minor mode to display Icomplete
7586 completion candidates vertically.")
7587 (license license:gpl3+)))
7588
7589 (define-public emacs-handle
7590 (let ((commit "51c050bc1c6e5caf0eb47ecd985daea1db7241ab")
7591 (revision "2"))
7592 (package
7593 (name "emacs-handle")
7594 (version (git-version "0.1" revision commit))
7595 (source
7596 (origin
7597 (method git-fetch)
7598 (uri (git-reference
7599 (url "https://gitlab.com/jjzmajic/handle.git")
7600 (commit commit)))
7601 (file-name (git-file-name name version))
7602 (sha256
7603 (base32 "14f15qzfmwdslml4rv37zb5d1lsjf0jibriz636hb7q7knx1n4sg"))))
7604 (build-system emacs-build-system)
7605 (propagated-inputs
7606 (list emacs-parent-mode))
7607 (home-page "https://gitlab.com/jjzmajic/handle")
7608 (synopsis "Handle generic functions across related major modes")
7609 (description "This package provides generic functions that specialize on
7610 major modes and intended purpose rather than on arguments. Different
7611 callables for tasks like expression evaluation, definition-jumping, and more
7612 can now be grouped accordingly and tried in sequence until one of them
7613 succeeds.")
7614 (license license:gpl3+))))
7615
7616 (define-public emacs-nswbuff
7617 (package
7618 (name "emacs-nswbuff")
7619 (version "1.3")
7620 (source
7621 (origin
7622 (method git-fetch)
7623 (uri (git-reference
7624 (url "https://github.com/joostkremers/nswbuff")
7625 (commit version)))
7626 (file-name (git-file-name name version))
7627 (sha256
7628 (base32 "0bkx7mwy3zbb0ixawvn4cysxk3jjc7ahssvdprvw19ls9xx3wbsp"))))
7629 (build-system emacs-build-system)
7630 (home-page "https://github.com/joostkremers/nswbuff")
7631 (synopsis "Quickly switch between buffers")
7632 (description "This package allows for navigating between buffers within
7633 a customizable list.")
7634 (license license:gpl3+)))
7635
7636 (define-public emacs-phi-search
7637 (let ((commit "9a089b8271cb1cff9640848850298c9ec855286c")
7638 (revision "1"))
7639 (package
7640 (name "emacs-phi-search")
7641 (version (git-version "20160630" revision commit))
7642 (source
7643 (origin
7644 (method git-fetch)
7645 (uri (git-reference
7646 (url "https://github.com/zk-phi/phi-search")
7647 (commit commit)))
7648 (file-name (git-file-name name version))
7649 (sha256
7650 (base32 "1gr5plcbrfdc4pglfj905s89hf8x0kc083h30wcnd81bnw9jwz1x"))))
7651 (build-system emacs-build-system)
7652 (home-page "https://github.com/zk-phi/phi-search")
7653 (synopsis "Interactive search compatible with @code{multiple-cursors}")
7654 (description "This package can be used with @code{multiple-cursors} to
7655 provide an incremental search that moves all fake cursors in sync.")
7656 (license license:gpl2+))))
7657
7658 (define-public emacs-phi-search-mc
7659 (let ((commit "7aa671910f766437089aec26c3aa7814222d1356")
7660 (revision "1"))
7661 (package
7662 (name "emacs-phi-search-mc")
7663 (version (git-version "2.2.1" revision commit))
7664 (source
7665 (origin
7666 (method git-fetch)
7667 (uri (git-reference
7668 (url "https://github.com/knu/phi-search-mc.el")
7669 (commit commit)))
7670 (file-name (git-file-name name version))
7671 (sha256
7672 (base32 "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd"))))
7673 (build-system emacs-build-system)
7674 (propagated-inputs
7675 (list emacs-phi-search emacs-multiple-cursors))
7676 (home-page "https://github.com/knu/phi-search-mc.el")
7677 (synopsis "Extend @code{phi-search} with additional
7678 @code{multiple-cursors} functionality")
7679 (description "This package provides further integration between
7680 @code{multiple-cursors} and @code{phi-search}, a package that allows for
7681 interactive searches to move multiple fake cursors.")
7682 (license license:bsd-2))))
7683
7684 (define-public emacs-multiple-cursors
7685 (package
7686 (name "emacs-multiple-cursors")
7687 (version "1.4.0")
7688 (source
7689 (origin
7690 (method git-fetch)
7691 (uri (git-reference
7692 (url "https://github.com/magnars/multiple-cursors.el")
7693 (commit version)))
7694 (file-name (git-file-name name version))
7695 (sha256
7696 (base32 "1ijgvzv5r44xqvz751fd5drbvrspapw6xwv47582w255j363r6ss"))))
7697 (build-system emacs-build-system)
7698 (home-page "https://github.com/magnars/multiple-cursors.el")
7699 (synopsis "Multiple cursors for Emacs")
7700 (description
7701 "This package adds support to Emacs for editing text with multiple
7702 simultaneous cursors.")
7703 (license license:gpl3+)))
7704
7705 (define-public emacs-multifiles
7706 ;; There is no tag and no "Version:" keyword. Using the latest release
7707 ;; instead.
7708 (let ((commit "dddfe64b8e1c1cd1f9ccc1f03405477fc0d53897")
7709 (revision "1"))
7710 (package
7711 (name "emacs-multifiles")
7712 (version (git-version "0" revision commit))
7713 (source
7714 (origin
7715 (method git-fetch)
7716 (uri (git-reference
7717 (url "https://github.com/magnars/multifiles.el")
7718 (commit commit)))
7719 (file-name (git-file-name name version))
7720 (sha256
7721 (base32 "065l04ylplng1vgykkbn2vnkcs3sn1k2cikx1ha2q8wmgx6bkvai"))))
7722 (build-system emacs-build-system)
7723 (propagated-inputs
7724 (list emacs-dash))
7725 (home-page "https://github.com/magnars/multifiles.el")
7726 (synopsis "Edit multiple files in a single Emacs buffer")
7727 (description
7728 "This package allows one to view and edit parts of multiple files in
7729 one Emacs buffer.")
7730 (license license:gpl3+))))
7731
7732 (define-public emacs-mc-extras
7733 (let ((commit "053abc52181b8718559d7361a587bbb795faf164")
7734 (revision "1"))
7735 (package
7736 (name "emacs-mc-extras")
7737 (version (git-version "1.2.4" revision commit))
7738 (source
7739 (origin
7740 (method git-fetch)
7741 (uri (git-reference
7742 (url "https://github.com/knu/mc-extras.el")
7743 (commit commit)))
7744 (file-name (git-file-name name version))
7745 (sha256
7746 (base32 "16y48qrd20m20vypvys5jp4v4gc1qrqlkm75s1pk1r68i9zrw481"))))
7747 (build-system emacs-build-system)
7748 (propagated-inputs
7749 (list emacs-multiple-cursors))
7750 (home-page "https://github.com/knu/mc-extras.el")
7751 (synopsis "Extra functions for manipulating multiple cursors")
7752 (description
7753 "This package provides additional functions for
7754 @code{multiple-cursors}, including functions for marking s-expressions,
7755 comparing characters, removing cursors, and more.")
7756 (license license:bsd-2))))
7757
7758 (define-public emacs-typo
7759 (package
7760 (name "emacs-typo")
7761 (version "1.1")
7762 (home-page "https://github.com/jorgenschaefer/typoel")
7763 (source (origin
7764 (method git-fetch)
7765 (uri (git-reference
7766 (url home-page)
7767 (commit (string-append "v" version))))
7768 (file-name (git-file-name name version))
7769 (sha256
7770 (base32
7771 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))))
7772 (build-system emacs-build-system)
7773 (synopsis "Minor mode for typographic editing")
7774 (description
7775 "This package provides two Emacs modes, @code{typo-mode} and
7776 @code{typo-global-mode}. These modes automatically insert Unicode characters
7777 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
7778 automatically inserts a Unicode opening or closing quotation mark, depending
7779 on context.")
7780 (license license:gpl3+)))
7781
7782 (define-public emacs-company-lsp
7783 (package
7784 (name "emacs-company-lsp")
7785 (version "2.1.0")
7786 (source (origin
7787 (method git-fetch)
7788 (uri (git-reference
7789 (url "https://github.com/tigersoldier/company-lsp")
7790 (commit version)))
7791 (file-name (git-file-name name version))
7792 (sha256
7793 (base32
7794 "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"))))
7795 (build-system emacs-build-system)
7796 (propagated-inputs
7797 (list emacs-dash emacs-lsp-mode emacs-company emacs-s emacs-dash))
7798 (native-inputs
7799 (list emacs-buttercup))
7800 (arguments
7801 `(#:tests? #t
7802 #:test-command '("buttercup" "-L" ".")))
7803 (home-page "https://github.com/tigersoldier/company-lsp")
7804 (synopsis "Completion for @code{lsp-mode}")
7805 (description
7806 "This package provides completion features that are not possible with
7807 @code{lsp-mode} and @code{company-capf} alone, including support for trigger
7808 characters and asynchronous fetching of completion candidates.")
7809 (license license:gpl3+)))
7810
7811 (define-public emacs-scala-mode
7812 (package
7813 (name "emacs-scala-mode")
7814 (version "1.1.0")
7815 (source
7816 (origin
7817 (method git-fetch)
7818 (uri (git-reference
7819 (url "https://github.com/hvesalai/emacs-scala-mode")
7820 (commit (string-append "v" version))))
7821 (file-name (git-file-name name version))
7822 (sha256
7823 (base32 "1072lsin7dxadc0xyhy42wd0cw549axbbd4dy95wfmfcc1xbzjwv"))))
7824 (build-system emacs-build-system)
7825 (home-page "https://github.com/hvesalai/emacs-scala-mode")
7826 (synopsis "Emacs major mode for Scala")
7827 (description
7828 "This package provides basic Emacs support for the Scala language,
7829 including: local indenting of code, comments and multi-line strings, motion
7830 commands and highlighting.")
7831 ;; There are no copyright headers in the source code. The LICENSE file
7832 ;; indicates GPL3.
7833 (license license:gpl3)))
7834
7835 (define-public emacs-sbt-mode
7836 (package
7837 (name "emacs-sbt-mode")
7838 (version "2.0.0")
7839 (source
7840 (origin
7841 (method git-fetch)
7842 (uri (git-reference
7843 (url "https://github.com/hvesalai/emacs-sbt-mode")
7844 (commit (string-append "v" version))))
7845 (file-name (git-file-name name version))
7846 (sha256
7847 (base32 "0lv9ridzk9x6rkf7lj21srnszypyq04vqg05vl10zhpz1yqlnbjd"))))
7848 (build-system emacs-build-system)
7849 (home-page "https://github.com/hvesalai/emacs-sbt-mode")
7850 (synopsis "Basic functionality for interacting with sbt inside Emacs")
7851 (description
7852 "This mode provides basic functionality required for successfully
7853 interacting with sbt inside Emacs. The core functionality includes
7854 interacting with the sbt shell and Scala console, compiling code and
7855 navigation to errors.")
7856 (license license:gpl3+)))
7857
7858 (define-public emacs-scheme-complete
7859 ;; Upstream does not provide tags. The commit below corresponds to the
7860 ;; exact version update. Version is extracted from main file.
7861 (let ((commit "5c0a16684a3be7021d67067b2955f1c3e17a320a"))
7862 (package
7863 (name "emacs-scheme-complete")
7864 (version "0.9.9")
7865 (source
7866 (origin
7867 (method git-fetch)
7868 (uri (git-reference
7869 (url "https://github.com/ashinn/scheme-complete")
7870 (commit commit)))
7871 (file-name (git-file-name name version))
7872 (sha256
7873 (base32 "1smxr5bkzbfrjx21vhrj1wagmqx5yd92i997dbgs16iaqbzzr7cz"))))
7874 (build-system emacs-build-system)
7875 (home-page "https://github.com/ashinn/scheme-complete")
7876 (synopsis "Smart tab completion for Scheme in Emacs")
7877 (description
7878 "This file provides a single function, @code{scheme-smart-complete},
7879 which you can use for intelligent, context-sensitive completion for any Scheme
7880 implementation in Emacs. To use it just load this file and bind that function
7881 to a key in your preferred mode.")
7882 (license license:public-domain))))
7883
7884 (define-public emacs-scel
7885 (let ((version "20170629")
7886 (revision "1")
7887 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
7888 (package
7889 (name "emacs-scel")
7890 (version (git-version version revision commit))
7891 (source
7892 (origin
7893 (method git-fetch)
7894 (uri (git-reference
7895 (url "https://github.com/supercollider/scel")
7896 (commit commit)))
7897 (file-name (git-file-name name version))
7898 (sha256
7899 (base32
7900 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
7901 (build-system emacs-build-system)
7902 (arguments
7903 (list
7904 #:modules '((guix build emacs-build-system)
7905 ((guix build cmake-build-system) #:prefix cmake:)
7906 (guix build utils))
7907 #:imported-modules `(,@%emacs-build-system-modules
7908 (guix build cmake-build-system))
7909 #:phases
7910 #~(modify-phases %standard-phases
7911 (add-after 'unpack 'configure
7912 (lambda* (#:key outputs #:allow-other-keys)
7913 (substitute* "el/CMakeLists.txt"
7914 (("share/emacs/site-lisp/SuperCollider")
7915 (elpa-directory #$output)))
7916 ((assoc-ref cmake:%standard-phases 'configure)
7917 #:outputs outputs
7918 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
7919 (add-after 'expand-load-path 'add-el-dir-to-emacs-load-path
7920 (lambda _
7921 (setenv "EMACSLOADPATH"
7922 (string-append (getcwd)
7923 "/el:"
7924 (getenv "EMACSLOADPATH")))))
7925 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
7926 (inputs
7927 (list supercollider))
7928 (native-inputs
7929 (list cmake-minimal))
7930 (home-page "https://github.com/supercollider/scel")
7931 (synopsis "SuperCollider Emacs interface")
7932 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
7933 SuperCollider is a platform for audio synthesis and algorithmic composition.")
7934 (license license:gpl2+))))
7935
7936 (define-public emacs-soothe-theme
7937 ;; There is no named branch.
7938 (let ((commit "0786fe70c6c1b4ddcfb932fdc6862b9611cfc09b")
7939 (revision "0"))
7940 (package
7941 (name "emacs-soothe-theme")
7942 (version (git-version "20141027.2233" revision commit))
7943 (source
7944 (origin
7945 (method git-fetch)
7946 (uri (git-reference
7947 (url "https://github.com/emacsfodder/emacs-soothe-theme")
7948 (commit commit)))
7949 (file-name (git-file-name name version))
7950 (sha256
7951 (base32 "10gh1hvxq9gm29r6qzlnva7vjidd7n4kih4z2ihyvbvy9za20xqw"))))
7952 (build-system emacs-build-system)
7953 (home-page "https://github.com/emacsfodder/emacs-soothe-theme")
7954 (synopsis "Colorful, but muted theme for Emacs, dark background with light text")
7955 (description
7956 "Soothe theme is an amalgam of muted color tones and highlighted
7957 backgrounds. It has builtin support for Rainbow delimiters, Org mode,
7958 Whitespace mode, ECB, Flyspell, Ido, Linum, highlight indentation, Show Paren
7959 mode.")
7960 (license license:gpl3))))
7961
7962 (define-public emacs-company-auctex
7963 (let ((commit "48c42c58ce2f0e693301b0cb2d085055410c1b25")
7964 (revision "1"))
7965 (package
7966 (name "emacs-company-auctex")
7967 (version (git-version "0.1" revision commit))
7968 (source
7969 (origin
7970 (method git-fetch)
7971 (uri (git-reference
7972 (url "https://github.com/alexeyr/company-auctex")
7973 (commit commit)))
7974 (file-name (git-file-name name version))
7975 (sha256
7976 (base32 "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8"))))
7977 (build-system emacs-build-system)
7978 (arguments
7979 `(#:phases
7980 (modify-phases %standard-phases
7981 (add-before 'build 'set-home
7982 (lambda _ (setenv "HOME" "/tmp"))))))
7983 (propagated-inputs
7984 (list emacs-auctex emacs-company emacs-yasnippet))
7985 (home-page "https://github.com/alexeyr/company-auctex/")
7986 (synopsis "Completion for @code{AUCTeX}")
7987 (description
7988 "This package provides a group of backends permitting auto-completion
7989 for @code{AUCTeX}.")
7990 (license license:gpl3+))))
7991
7992 (define-public emacs-mit-scheme-doc
7993 (package
7994 (name "emacs-mit-scheme-doc")
7995 (version "20140203")
7996 (source
7997 (origin
7998 (modules '((guix build utils)))
7999 (snippet
8000 ;; keep only file of interest
8001 '(begin
8002 (for-each delete-file '("dot-emacs.el" "Makefile"))
8003 (install-file "6.945-config/mit-scheme-doc.el" ".")
8004 (delete-file-recursively "6.945-config")))
8005 (file-name (string-append name "-" version ".tar.bz2"))
8006 (method url-fetch)
8007 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
8008 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
8009 (sha256
8010 (base32
8011 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
8012 (build-system emacs-build-system)
8013 (inputs (list mit-scheme))
8014 (arguments
8015 `(#:phases
8016 (modify-phases %standard-phases
8017 (add-after 'unpack 'configure-doc
8018 (lambda* (#:key inputs #:allow-other-keys)
8019 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
8020 (doc-dir (string-append mit-scheme-dir "/share/doc/"
8021 "mit-scheme-"
8022 ,(package-version mit-scheme))))
8023 (substitute* "mit-scheme-doc.el"
8024 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
8025 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
8026 (home-page "https://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
8027 (synopsis "MIT-Scheme documentation lookup for Emacs")
8028 (description
8029 "This package provides a set of Emacs functions to search definitions of
8030 identifiers in the MIT-Scheme documentation.")
8031 (license license:gpl2+)))
8032
8033 (define-public emacs-constants
8034 (package
8035 (name "emacs-constants")
8036 (version "2.6")
8037 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
8038 (source
8039 (origin
8040 (method git-fetch)
8041 (uri (git-reference
8042 (url "https://github.com/fedeinthemix/emacs-constants")
8043 (commit (string-append "v" version))))
8044 (file-name (git-file-name name version))
8045 (sha256
8046 (base32 "0f5sh6b45a8p9kancjp9jk44ws8ww6x50a0i6zgyyvr7dbvii1a0"))))
8047 (build-system emacs-build-system)
8048 (synopsis "Enter definition of constants into an Emacs buffer")
8049 (description
8050 "This package provides functions for inserting the definition of natural
8051 constants and units into an Emacs buffer.")
8052 (license license:gpl2+)))
8053
8054 (define-public emacs-tagedit
8055 (package
8056 (name "emacs-tagedit")
8057 (version "1.4.0")
8058 (source
8059 (origin
8060 (method git-fetch)
8061 (uri (git-reference
8062 (url "https://github.com/magnars/tagedit")
8063 (commit version)))
8064 (file-name (git-file-name name version))
8065 (sha256
8066 (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb"))))
8067 (build-system emacs-build-system)
8068 (propagated-inputs
8069 (list emacs-s emacs-dash))
8070 (home-page "https://github.com/magnars/tagedit")
8071 (synopsis "Some paredit-like features for html-mode")
8072 (description
8073 "This package provides a collection of paredit-like functions for editing
8074 in @code{html-mode}.")
8075 (license license:gpl3+)))
8076
8077 (define-public emacs-slime
8078 (package
8079 (name "emacs-slime")
8080 (version "2.27")
8081 (source
8082 (origin
8083 (method git-fetch)
8084 (uri (git-reference
8085 (url "https://github.com/slime/slime")
8086 (commit (string-append "v" version))))
8087 (file-name (git-file-name name version))
8088 (sha256
8089 (base32 "1s5mbljlz22pb90gwbd380nighkz6gdxl77hc08gri7wwr5gy5n2"))))
8090 (build-system emacs-build-system)
8091 (native-inputs
8092 (list texinfo))
8093 (arguments
8094 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
8095 #:exclude '("^slime-tests.el" "^contrib/test/"
8096 "^contrib/Makefile$" "^contrib/README.md$")
8097 #:phases
8098 (modify-phases %standard-phases
8099 (add-after 'unpack 'make-git-checkout-writable
8100 (lambda _
8101 (for-each make-file-writable (find-files "."))))
8102 (add-before 'install 'configure
8103 (lambda* _
8104 (emacs-substitute-variables "slime.el"
8105 ("inferior-lisp-program" "sbcl"))))
8106 (add-before 'install 'install-doc
8107 (lambda* (#:key outputs #:allow-other-keys)
8108 (let* ((out (assoc-ref outputs "out"))
8109 (info-dir (string-append out "/share/info"))
8110 (doc-dir (string-append out "/share/doc/"
8111 ,name "-" ,version))
8112 (doc-files '("doc/slime-refcard.pdf"
8113 "README.md" "NEWS" "PROBLEMS"
8114 "CONTRIBUTING.md")))
8115 (with-directory-excursion "doc"
8116 (substitute* "Makefile"
8117 (("infodir=/usr/local/info")
8118 (string-append "infodir=" info-dir)))
8119 (invoke "make" "html/index.html")
8120 (invoke "make" "slime.info")
8121 (install-file "slime.info" info-dir)
8122 (copy-recursively "html" (string-append doc-dir "/html")))
8123 (for-each (lambda (f)
8124 (install-file f doc-dir)
8125 (delete-file f))
8126 doc-files)
8127 (delete-file-recursively "doc")))))))
8128 (home-page "https://github.com/slime/slime")
8129 (synopsis "Superior Lisp Interaction Mode for Emacs")
8130 (description
8131 "SLIME extends Emacs with support for interactive programming in
8132 Common Lisp. The features are centered around @command{slime-mode},
8133 an Emacs minor mode that complements the standard @command{lisp-mode}.
8134 While lisp-mode supports editing Lisp source files, @command{slime-mode}
8135 adds support for interacting with a running Common Lisp process
8136 for compilation, debugging, documentation lookup, and so on.")
8137 (license (list license:gpl2+ license:public-domain))))
8138
8139 (define-public emacs-popup
8140 (package
8141 (name "emacs-popup")
8142 (version "0.5.8")
8143 (source
8144 (origin
8145 (method git-fetch)
8146 (uri (git-reference
8147 (url "https://github.com/auto-complete/popup-el")
8148 (commit (string-append "v" version))))
8149 (file-name (git-file-name name version))
8150 (sha256
8151 (base32 "0qrsz4z9q2bfq9xv4n94mvyslm232v2ql9r1fjycx7rnmpqggiwl"))))
8152 (build-system emacs-build-system)
8153 (home-page "https://github.com/auto-complete/popup-el")
8154 (synopsis "Visual Popup User Interface for Emacs")
8155 (description
8156 "Popup.el is a visual popup user interface library for Emacs.
8157 This provides a basic API and common UI widgets such as popup tooltips
8158 and popup menus.")
8159 (license license:gpl3+)))
8160
8161 (define-public emacs-popup-kill-ring
8162 (let ((commit "a45c9cf79c4e1207fdbdd662e161154ef224ad61")
8163 (revision "0"))
8164 (package
8165 (name "emacs-popup-kill-ring")
8166 (version (git-version "0.2.8" revision commit))
8167 (source (origin
8168 (method git-fetch)
8169 (uri (git-reference
8170 (url "https://github.com/waymondo/popup-kill-ring")
8171 (commit commit)))
8172 (file-name (git-file-name name version))
8173 (sha256
8174 (base32
8175 "0bpnsc4agy6mcnc79d9a6gi79jiiqrhf3a55pw0p4z16m86vwyqr"))))
8176 (build-system emacs-build-system)
8177 (propagated-inputs (list emacs-pos-tip emacs-popup))
8178 (home-page "https://github.com/waymondo/popup-kill-ring")
8179 (synopsis "Interactively insert item from kill-ring")
8180 (description "This Emacs packages manages your Emacs kill-ring in an
8181 autocomplete style popup menu.")
8182 (license license:gpl3+))))
8183
8184 (define-public emacs-popper
8185 ;; No tagged release upstream for version 0.45. The commit below matches
8186 ;; version bump.
8187 (let ((commit "851d83882192ac9599ac5b053614a42d683b3fab"))
8188 (package
8189 (name "emacs-popper")
8190 (version "0.45")
8191 (source (origin
8192 (method git-fetch)
8193 (uri (git-reference
8194 (url "https://github.com/karthink/popper")
8195 (commit commit)))
8196 (file-name (git-file-name name version))
8197 (sha256
8198 (base32
8199 "0pk5wzqlz7n6v8rb1957i3ql0wjx578l68a3rp2m9pxr7a8a03h4"))))
8200 (build-system emacs-build-system)
8201 (home-page "https://github.com/karthink/popper")
8202 (synopsis "Emacs minor-mode to summon and dismiss buffers easily")
8203 (description
8204 "Popper is a minor-mode to tame the flood of ephemeral
8205 windows Emacs produces, while still keeping them within arm’s reach.")
8206 (license license:gpl3+))))
8207
8208 (define-public emacs-python-black
8209 (package
8210 (name "emacs-python-black")
8211 (version "1.1.0")
8212 (source
8213 (origin
8214 (method git-fetch)
8215 (uri (git-reference
8216 (url "https://github.com/wbolster/emacs-python-black")
8217 (commit version)))
8218 (file-name (git-file-name name version))
8219 (sha256
8220 (base32
8221 "1cmzc0fa3jj7ajxbqhbsc8jx47k6g223sfd42c4lrqdnmh95760m"))))
8222 (build-system emacs-build-system)
8223 (propagated-inputs
8224 (list emacs-dash emacs-reformatter python-black-macchiato))
8225 (arguments `(#:tests? #f))
8226 (home-page "https://github.com/wbolster/emacs-python-black")
8227 (synopsis "Reformat Python code via @code{python-black}")
8228 (description
8229 "This package makes it easy to reformat Python code using
8230 @code{python-black} and @code{python-black-macchiato} for entire and partial
8231 buffers, respectively.")
8232 (license license:bsd-3)))
8233
8234 (define-public emacs-py-isort
8235 (package
8236 (name "emacs-py-isort")
8237 (version "2016.1")
8238 (source
8239 (origin
8240 (method git-fetch)
8241 (uri (git-reference
8242 (url "https://github.com/paetzke/py-isort.el")
8243 (commit (string-append "v" version))))
8244 (file-name (git-file-name name version))
8245 (sha256
8246 (base32 "08i55gv392wc12x8v3dca0dmz8a8p9ljsqhyajsb6qv1k120wqhx"))))
8247 (build-system emacs-build-system)
8248 (arguments
8249 `(#:tests? #f)) ;tests fail with "emacs: standard input is not a tty"
8250 (propagated-inputs
8251 (list python-isort))
8252 (home-page "https://github.com/paetzke/py-isort.el")
8253 (synopsis "Sort the imports in Python buffers")
8254 (description
8255 "This package provides commands and a minor mode to sort Python imports
8256 using @code{python-isort}.")
8257 (license license:gpl3+)))
8258
8259 (define-public emacs-python-environment
8260 (package
8261 (name "emacs-python-environment")
8262 (version "0.0.2")
8263 (source
8264 (origin
8265 (method git-fetch)
8266 (uri (git-reference
8267 (url "https://github.com/tkf/emacs-python-environment/")
8268 (commit version)))
8269 (file-name (git-file-name name version))
8270 (sha256
8271 (base32 "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk"))))
8272 (build-system emacs-build-system)
8273 (propagated-inputs
8274 (list emacs-deferred))
8275 (home-page "https://github.com/tkf/emacs-python-environment")
8276 (synopsis "Provides a @code{virtualenv} API in Emacs Lisp")
8277 (description
8278 "This package permits automated installation of tools written in Python.")
8279 (license license:gpl3+)))
8280
8281 (define-public emacs-jedi
8282 (package
8283 (name "emacs-jedi")
8284 (version "0.2.8")
8285 (source (origin
8286 (method git-fetch)
8287 (uri (git-reference
8288 (url "https://github.com/tkf/emacs-jedi/")
8289 (commit (string-append "v" version))))
8290 (file-name (git-file-name name version))
8291 (sha256
8292 (base32
8293 "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"))))
8294 (build-system emacs-build-system)
8295 (arguments
8296 (list
8297 #:imported-modules `(,@%emacs-build-system-modules
8298 (guix build python-build-system))
8299 #:modules '((guix build emacs-build-system)
8300 ((guix build python-build-system) #:prefix python:)
8301 (guix build emacs-utils)
8302 (guix build utils))
8303 #:phases
8304 #~(modify-phases %standard-phases
8305 (add-after 'unpack 'ensure-no-mtimes-pre-1980
8306 (assoc-ref python:%standard-phases
8307 'ensure-no-mtimes-pre-1980))
8308 (add-after 'ensure-no-mtimes-pre-1980 'relax-python-requirements
8309 (lambda _
8310 ;; Argparse should only be required for Python < 3.2
8311 ;; (see: https://github.com/tkf/emacs-jedi/issues/365).
8312 (substitute* "setup.py"
8313 ((".*argparse.*") ""))))
8314 (add-after 'relax-python-requirements 'python:add-install-to-pythonpath
8315 (assoc-ref python:%standard-phases 'add-install-to-pythonpath))
8316 (add-after 'python:add-install-to-pythonpath 'python:install
8317 ;; This is needed to get the Python-built 'jediepcserver' command.
8318 (assoc-ref python:%standard-phases 'install))
8319 (add-after 'python:install 'python:wrap
8320 (assoc-ref python:%standard-phases 'wrap))
8321 (add-after 'python:wrap 'patch-jedi:server-command
8322 (lambda* (#:key outputs #:allow-other-keys)
8323 (emacs-substitute-variables "jedi-core.el"
8324 ("jedi:server-command"
8325 (search-input-file outputs "bin/jediepcserver"))))))))
8326 (native-inputs (list emacs-mocker python-wrapper))
8327 (inputs (list python-wrapper python-epc python-jedi)) ;wrapped
8328 (propagated-inputs
8329 (list emacs-auto-complete emacs-python-environment emacs-epc))
8330 (home-page "https://github.com/tkf/emacs-jedi")
8331 (synopsis "Provides Python completion in Emacs")
8332 (description
8333 "This package provides completion in Python buffers and also helps find
8334 the locations of docstrings, arguments, and functions.")
8335 (license license:gpl3+)))
8336
8337 (define-public emacs-company-jedi
8338 (package
8339 (name "emacs-company-jedi")
8340 (version "0.04")
8341 (source (origin
8342 (method git-fetch)
8343 (uri (git-reference
8344 (url "https://github.com/syohex/emacs-company-jedi")
8345 (commit version)))
8346 (file-name (git-file-name name version))
8347 (sha256
8348 (base32
8349 "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1"))))
8350 (build-system emacs-build-system)
8351 (propagated-inputs
8352 (list emacs-jedi emacs-company))
8353 (home-page "https://github.com/syohex/emacs-company-jedi")
8354 (synopsis "Provides Python completion in @code{company-mode}")
8355 (description
8356 "This package provides a Company backend for Python.")
8357 (license license:gpl3+)))
8358
8359 (define-public emacs-puppet-mode
8360 (package
8361 (name "emacs-puppet-mode")
8362 (version "0.4")
8363 (source
8364 (origin
8365 (method git-fetch)
8366 (uri (git-reference
8367 (url "https://github.com/voxpupuli/puppet-mode")
8368 (commit version)))
8369 (file-name (git-file-name name version))
8370 (sha256
8371 (base32
8372 "0c5q8qmbligzjsn05di4wh6ggpd3944j4yqb78vzd441b8ssq70i"))))
8373 (build-system emacs-build-system)
8374 (home-page "https://github.com/voxpupuli/puppet-mode")
8375 (synopsis "Emacs major mode for the Puppet configuration language")
8376 (description
8377 "This package provides support for the Puppet configuration language,
8378 including syntax highlighting, indentation of expressions and statements,
8379 linting of manifests and integration with Puppet Debugger.")
8380 ;; Also incorporates work covered by the Apache License, Version 2.0
8381 (license license:gpl3+)))
8382
8383 (define-public emacs-purescript-mode
8384 ;; Retrieved on 2021-05-18.
8385 (let ((revision "0")
8386 (commit "0acd1af446424ba855153161fe07a20f67dc0a89"))
8387 (package
8388 (name "emacs-purescript-mode")
8389 (version (git-version "0.0.0" revision commit))
8390 (source
8391 (origin
8392 (method git-fetch)
8393 (uri (git-reference
8394 (url "https://github.com/purescript-emacs/purescript-mode")
8395 (commit commit)))
8396 (file-name (git-file-name name version))
8397 (sha256
8398 (base32
8399 "0rxdsmx8826az4blhnnvqrx7bjky9hwph6gkyrh33sck26xhh3g5"))))
8400 (build-system emacs-build-system)
8401 (arguments
8402 `(#:phases
8403 (modify-phases %standard-phases
8404 (add-before 'install 'make-info
8405 (lambda _
8406 (invoke "makeinfo" "--no-split"
8407 "-o" "purescript-mode.info" "purescript-mode.texi"))))))
8408 (native-inputs
8409 (list texinfo))
8410 (home-page "https://github.com/purescript-emacs/purescript-mode")
8411 (synopsis "Emacs major mode and related tools for Purescript")
8412 (description "This package provides an Emacs major mode for writing Purescript.")
8413 (license license:gpl3+))))
8414
8415 (define-public emacs-god-mode
8416 (package
8417 (name "emacs-god-mode")
8418 (version "2.17.3")
8419 (source
8420 (origin
8421 (method git-fetch)
8422 (uri (git-reference
8423 (url "https://github.com/chrisdone/god-mode")
8424 (commit version)))
8425 (file-name (git-file-name name version))
8426 (sha256
8427 (base32
8428 "1wsc04l5j5a9y5439qx85pcchxjnjgcgwbffw3l30q9zlblvc58b"))))
8429 (build-system emacs-build-system)
8430 (home-page "https://github.com/chrisdone/god-mode")
8431 (synopsis "Minor mode for entering commands without modifier keys")
8432 (description
8433 "This package provides a global minor mode for entering Emacs commands
8434 without modifier keys. It's similar to Vim's separation of commands and
8435 insertion mode. When enabled all keys are implicitly prefixed with
8436 @samp{C-} (among other helpful shortcuts).")
8437 (license license:gpl3+)))
8438
8439 (define-public emacs-jinja2-mode
8440 (package
8441 (name "emacs-jinja2-mode")
8442 (version "0.2")
8443 (source
8444 (origin
8445 (method git-fetch)
8446 (uri (git-reference
8447 (url "https://github.com/paradoxxxzero/jinja2-mode")
8448 (commit (string-append "v" version))))
8449 (file-name (git-file-name name version))
8450 (sha256
8451 (base32 "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381"))))
8452 (build-system emacs-build-system)
8453 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
8454 (synopsis "Major mode for jinja2")
8455 (description
8456 "Emacs major mode for jinja2 with: syntax highlighting,
8457 sgml/html integration, and indentation (working with sgml).")
8458 (license license:gpl3+)))
8459
8460 (define-public emacs-company-cabal
8461 ;; The latest version is 0.3.0, but no release has been provided after 0.2.1.
8462 (let ((commit "62112a7259e24bd6c08885629a185afe512b7d3d")
8463 (revision "1"))
8464 (package
8465 (name "emacs-company-cabal")
8466 (version (git-version "0.3.0" revision commit))
8467 (source (origin
8468 (method git-fetch)
8469 (uri (git-reference
8470 (url "https://github.com/iquiw/company-cabal/")
8471 (commit commit)))
8472 (file-name (git-file-name name version))
8473 (sha256
8474 (base32
8475 "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg"))))
8476 (build-system emacs-build-system)
8477 (propagated-inputs
8478 (list emacs-company))
8479 (arguments
8480 `(#:include (cons "^tools\\/" %default-include)))
8481 (home-page "https://github.com/iquiw/company-cabal/")
8482 (synopsis "Company completion for Haskell Cabal files")
8483 (description
8484 "This package allows for completion of field names, section names,
8485 field values, and more within @code{haskell-cabal-mode}.")
8486 (license license:gpl3+))))
8487
8488 (define-public emacs-rfcview
8489 (package
8490 (name "emacs-rfcview")
8491 (version "0.13")
8492 (home-page "http://www.loveshack.ukfsn.org/emacs")
8493 (source (origin
8494 (method url-fetch)
8495 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
8496 (sha256
8497 (base32
8498 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
8499 (build-system emacs-build-system)
8500 (synopsis "Prettify Request for Comments (RFC) documents")
8501 (description "The Internet Engineering Task Force (IETF) and the Internet
8502 Society (ISOC) publish various Internet-related protocols and specifications
8503 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
8504 documents. RFCs and STDs are published in a simple text form. This package
8505 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
8506 read these documents in Emacs. It prettifies the text and adds
8507 hyperlinks/menus for easier navigation. It also provides functions for
8508 browsing the index of RFC documents and fetching them from remote servers or
8509 local directories.")
8510 (license license:gpl3+)))
8511
8512 (define-public emacs-ffap-rfc-space
8513 (package
8514 (name "emacs-ffap-rfc-space")
8515 (version "12")
8516 (home-page "https://user42.tuxfamily.org/ffap-rfc-space/index.html")
8517 (source (origin
8518 (method url-fetch)
8519 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
8520 (sha256
8521 (base32
8522 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
8523 (build-system emacs-build-system)
8524 (synopsis "Make ffap recognize an RFC with a space before its number")
8525 (description "The Internet Engineering Task Force (IETF) and the
8526 Internet Society (ISOC) publish various Internet-related protocols and
8527 specifications as \"Request for Comments\" (RFC) documents. The
8528 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
8529 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
8530 and load the appropriate RFC from a remote server. However, it fails
8531 to recognize a name like \"RFC 1234\". This package enhances ffap so
8532 that it correctly finds RFCs even when a space appears before the
8533 number.")
8534 (license license:gpl3+)))
8535
8536 (define-public emacs-feature-mode
8537 (let ((version "20190801")
8538 (revision "1")
8539 (commit "11ae1671629bfedaa553c7b819676d64eb320992"))
8540 (package
8541 (name "emacs-feature-mode")
8542 (version (git-version version revision commit))
8543 (source (origin
8544 (method git-fetch)
8545 (uri (git-reference
8546 (url "https://github.com/michaelklishin/cucumber.el")
8547 (commit commit)))
8548 (file-name (git-file-name name version))
8549 (sha256
8550 (base32
8551 "0yd4gkxz9xcbgibfgr8apsid3f83nmg5jgqk5nql0linj5gymc28"))))
8552 (build-system emacs-build-system)
8553 (arguments
8554 `(#:include (cons* "^features\\/" "snippets\\/" "^support\\/"
8555 %default-include)))
8556 (home-page "https://github.com/michaelklishin/cucumber.el/")
8557 (synopsis "Emacs mode for editing Gherkin plain text user stories")
8558 (description "Major mode for editing Gherkin (popularized by the
8559 Cucumber tool) user stories. Also known by the name @code{cucumber.el}.")
8560 (license license:gpl2+))))
8561
8562 (define-public emacs-org-bullets
8563 (package
8564 (name "emacs-org-bullets")
8565 (version "0.2.4")
8566 (source
8567 (origin
8568 (method git-fetch)
8569 (uri (git-reference
8570 (url "https://github.com/sabof/org-bullets")
8571 (commit version)))
8572 (file-name (git-file-name name version))
8573 (sha256
8574 (base32 "10nr4sjffnqbllv6gmak6pviyynrb7pi5nvrq331h5alm3xcpq0w"))))
8575 (build-system emacs-build-system)
8576 (home-page "https://github.com/sabof/org-bullets")
8577 (synopsis "Show bullets in org-mode as UTF-8 characters")
8578 (description
8579 "This package provides an Emacs minor mode causing bullets in
8580 @code{org-mode} to be rendered as UTF-8 characters.")
8581 (license license:gpl3+)))
8582
8583 (define-public emacs-org-appear
8584 (package
8585 (name "emacs-org-appear")
8586 (version "0.3.0")
8587 (source
8588 (origin
8589 (method git-fetch)
8590 (uri (git-reference
8591 (url "https://github.com/awth13/org-appear")
8592 (commit version)))
8593 (file-name (git-file-name name version))
8594 (sha256
8595 (base32 "1pdf16agcjfzpjvz8kv39abir35rip93nkawxcpjjh4ywsdsbnm6"))))
8596 (build-system emacs-build-system)
8597 (home-page "https://github.com/awth13/org-appear")
8598 (synopsis "Make invisible parts of Org fragments appear visible")
8599 (description "This package enables automatic visibility toggling of
8600 org-mode elements depending on cursor position. Hidden fragment parts appear
8601 when the cursor enters a fragment and disappear when it leaves.")
8602 (license license:expat)))
8603
8604 (define-public emacs-org-drill
8605 (package
8606 (name "emacs-org-drill")
8607 (version "2.7.0")
8608 (source
8609 (origin
8610 (method git-fetch)
8611 (uri (git-reference
8612 (url "https://gitlab.com/phillord/org-drill")
8613 (commit version)))
8614 (file-name (git-file-name name version))
8615 (sha256
8616 (base32 "13y302lyscdqrba1sfx60yf5ji2xi7fbsvjsjbw7hiz63kg6rccy"))))
8617 (build-system emacs-build-system)
8618 (propagated-inputs
8619 (list emacs-org emacs-persist))
8620 (home-page "https://gitlab.com/phillord/org-drill")
8621 (synopsis "Flash card memorization system using Org mode")
8622 (description
8623 "This package uses spaced repetition algorithms to conduct interactive
8624 drill sessions to aid in memorization. In these sessions you are shown flash
8625 cards created in Org mode.")
8626 (license license:gpl3+)))
8627
8628 (define-public emacs-anki-editor
8629 ;; Last release was in 2018.
8630 (let ((commit "546774a453ef4617b1bcb0d1626e415c67cc88df")
8631 (revision "0")
8632 (version "0.3.3"))
8633 (package
8634 (name "emacs-anki-editor")
8635 (version (git-version version revision commit))
8636 (source
8637 (origin
8638 (method git-fetch)
8639 (uri (git-reference
8640 (url "https://github.com/louietan/anki-editor")
8641 (commit commit)))
8642 (file-name (git-file-name name version))
8643 (sha256
8644 (base32 "1if610hq5j8rbjh1caw5bwbgnsn231awwxqbpwvrh966kdxzl4qf"))))
8645 (build-system emacs-build-system)
8646 (propagated-inputs
8647 (list emacs-dash emacs-request))
8648 (home-page "https://github.com/louietan/anki-editor")
8649 (synopsis "Minor mode for making Anki cards with Org mode")
8650 (description
8651 "This package is for people who use Anki as a spaced repetition system
8652 (SRS) but would like to make cards in Org mode.")
8653 (license license:gpl3+))))
8654
8655 (define-public emacs-org-mime
8656 (package
8657 (name "emacs-org-mime")
8658 (version "0.3.1")
8659 (source
8660 (origin
8661 (method git-fetch)
8662 (uri (git-reference
8663 (url "https://github.com/org-mime/org-mime")
8664 (commit version)))
8665 (file-name (git-file-name name version))
8666 (sha256
8667 (base32 "17380kpf08j5ai30nn5iks0k3x8sm3kmz8lkyr1v0qvpr5a8s70b"))))
8668 (build-system emacs-build-system)
8669 (home-page "https://github.com/org-mime/org-mime")
8670 (synopsis "Send HTML email using Org mode HTML export")
8671 (description
8672 "This program sends HTML email using Org-mode HTML export.
8673 This approximates a WYSiWYG HTML mail editor from within Emacs, and can be
8674 useful for sending tables, fontified source code, and inline images in
8675 email.")
8676 (license license:gpl3+)))
8677
8678 (define-public emacs-org-msg
8679 ;; No git tags. The commit below corresponds to the release of version 3.3.
8680 (let ((commit "89e746c0a864031eef940758230bc7263a6f2289"))
8681 (package
8682 (name "emacs-org-msg")
8683 (version "3.3")
8684 (source
8685 (origin
8686 (method git-fetch)
8687 (uri (git-reference
8688 (url "https://github.com/jeremy-compostella/org-msg")
8689 (commit commit)))
8690 (file-name (git-file-name name version))
8691 (sha256
8692 (base32 "15gd5zbxvdallyra9lmpb9i1r2mmwz0j0i0ra7j9imnbfiz3ln9r"))))
8693 (build-system emacs-build-system)
8694 (propagated-inputs
8695 (list emacs-htmlize))
8696 (home-page "https://github.com/jeremy-compostella/org-msg")
8697 (synopsis "Mix Org mode and Message mode to compose emails")
8698 (description
8699 "OrgMsg is a GNU Emacs global minor mode mixing up Org mode and your
8700 Mail User Agent Mode (Message, mu4e, or Notmuch) to compose and reply to
8701 emails in a Outlook HTML friendly style.")
8702 (license license:gpl3+))))
8703
8704 (define-public emacs-org-superstar
8705 (package
8706 (name "emacs-org-superstar")
8707 (version "1.5.0")
8708 (source
8709 (origin
8710 (method git-fetch)
8711 (uri (git-reference
8712 (url "https://github.com/integral-dw/org-superstar-mode")
8713 (commit (string-append "v" version))))
8714 (file-name (git-file-name name version))
8715 (sha256
8716 (base32 "12inin2p6pm6vbv3yc06fx343dsp0vp07fjb35w088akhikmqh2a"))))
8717 (build-system emacs-build-system)
8718 (propagated-inputs
8719 (list emacs-org))
8720 (home-page "https://github.com/integral-dw/org-superstar-mode")
8721 (synopsis "Prettify headings and plain lists in Org mode")
8722 (description "This package prettifies headings and plain lists in
8723 Org mode. It is a direct descendant of @code{org-bullets}, with most
8724 of the code base completely rewritten.
8725
8726 Currently, this package prettifies Org heading lines by:
8727 @itemize
8728 @item replacing trailing bullets by UTF-8 bullets,
8729 @item hiding leading stars, customizing their look or removing them from vision,
8730 @item applying a custom face to the header bullet,
8731 @item applying a custom face to the leading bullets,
8732 @item using double-bullets for inline tasks,
8733 @item (optional) using special bullets for TODO keywords.
8734 @end itemize
8735
8736 It also prettifies Org plain list bullets by:
8737 @itemize
8738 @item replacing each bullet type (*, + and -) with UTF-8 bullets,
8739 @item applying a custom face to item bullets.
8740 @end itemize
8741
8742 Features degrade gracefully when viewed from terminal.")
8743 (license license:gpl3+)))
8744
8745 (define-public emacs-org-pandoc-import
8746 (package
8747 (name "emacs-org-pandoc-import")
8748 (version "1.0")
8749 (source
8750 (origin
8751 (method git-fetch)
8752 (uri (git-reference
8753 (url "https://github.com/tecosaur/org-pandoc-import/")
8754 (commit (string-append "v" version))))
8755 (file-name (git-file-name name version))
8756 (sha256
8757 (base32 "00z9bpm975mlyqlxbyib3j547br6kvcam04b70qkmq22vh8yf341"))))
8758 (build-system emacs-build-system)
8759 (arguments
8760 `(#:include
8761 (cons* "^filters\\/" "^preprocessors" %default-include)
8762 #:phases
8763 (modify-phases %standard-phases
8764 (add-after 'unpack 'patch-exec-paths
8765 (lambda* (#:key inputs #:allow-other-keys)
8766 (let ((pandoc (assoc-ref inputs "pandoc")))
8767 (substitute* "org-pandoc-import.el"
8768 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))))))))
8769 (inputs
8770 (list pandoc))
8771 (home-page "https://github.com/tecosaur/org-pandoc-import/")
8772 (synopsis "Read and edit non-Org file types in Org")
8773 (description
8774 "This package uses Pandoc to convert selected file types to Org. It can
8775 convert supported non-Org files to an Org file with Pandoc.
8776
8777 It can also intercept requests for non-Org files it knows it can convert,
8778 convert the file to a temporary Org file, and open this file instead. On
8779 save, it exports back to the original non-Org file.")
8780 (license license:gpl3+)))
8781
8782 (define-public emacs-org-pomodoro
8783 ;; Last release version was from 2016.
8784 (let ((commit "aa07c11318f91219336197e62c47bc7a3d090479")
8785 (revision "1"))
8786 (package
8787 (name "emacs-org-pomodoro")
8788 (version (git-version "2.1.0" revision commit))
8789 (source
8790 (origin
8791 (method git-fetch)
8792 (uri (git-reference
8793 (url "https://github.com/marcinkoziej/org-pomodoro")
8794 (commit commit)))
8795 (file-name (git-file-name name version))
8796 (sha256
8797 (base32 "0nbprh2nhnmb7ngp9ndr6zr37ashcsvpi5slv7a37x1dl7j6w1k4"))))
8798 (build-system emacs-build-system)
8799 (propagated-inputs
8800 (list emacs-alert))
8801 (arguments
8802 (list
8803 #:include #~(cons "^resources\\/" %default-include)
8804 #:tests? #t
8805 #:test-command
8806 #~(list "emacs" "--batch"
8807 "-l" "org-pomodoro-tests.el"
8808 "-f" "ert-run-tests-batch-and-exit")
8809 #:phases
8810 #~(modify-phases %standard-phases
8811 (add-before 'check 'make-tests-writable
8812 (lambda _
8813 (make-file-writable "org-pomodoro-tests.el")))
8814 (add-before 'check 'add-require
8815 (lambda _
8816 (emacs-batch-edit-file "org-pomodoro-tests.el"
8817 `(progn (progn (goto-char (point-min))
8818 (re-search-forward "ert-deftest")
8819 (beginning-of-line)
8820 (forward-line -1)
8821 (insert "(require 'org-pomodoro)"))
8822 (basic-save-buffer))))))))
8823 (home-page "https://github.com/marcinkoziej/org-pomodoro")
8824 (synopsis "Pomodoro technique for org-mode")
8825 (description "@code{emacs-org-pomodoro} adds very basic support for
8826 Pomodoro technique in Emacs org-mode.
8827
8828 Run @code{M-x org-pomodoro} for the task at point or select one of the
8829 last tasks that you clocked time for. Each clocked-in pomodoro starts
8830 a timer of 25 minutes and after each pomodoro a break timer of 5
8831 minutes is started automatically. Every 4 breaks a long break is
8832 started with 20 minutes. All values are customizable.")
8833 (license license:gpl3+))))
8834
8835 (define-public emacs-org-sidebar
8836 (package
8837 (name "emacs-org-sidebar")
8838 (version "0.3.2")
8839 (source
8840 (origin
8841 (method git-fetch)
8842 (uri (git-reference
8843 (url "https://github.com/alphapapa/org-sidebar")
8844 (commit version)))
8845 (file-name (git-file-name name version))
8846 (sha256
8847 (base32 "1r8kp954ciin4j7j7j8ihdkryf5x09s3ryl7bi9h2j6xqc1ij4wq"))))
8848 (build-system emacs-build-system)
8849 (propagated-inputs
8850 (list emacs-dash emacs-org-super-agenda emacs-org emacs-org-ql
8851 emacs-s))
8852 (home-page "https://github.com/alphapapa/org-sidebar")
8853 (synopsis "Helpful sidebar for Org buffers")
8854 (description "This package provides a sidebar for Org buffers. At the
8855 top is a chronological list of scheduled and deadlined tasks in the current
8856 buffer (similar to the Org agenda ,but without all its features), and below
8857 that is a list of all other non-done to-do items. If the buffer is narrowed,
8858 the sidebar only shows items in the narrowed portion; this allows seeing an
8859 overview of tasks in a subtree.")
8860 (license license:gpl3+)))
8861
8862 (define-public emacs-org-trello
8863 (package
8864 (name "emacs-org-trello")
8865 (version "0.8.2")
8866 (source
8867 (origin
8868 (method git-fetch)
8869 (uri (git-reference
8870 (url "https://github.com/org-trello/org-trello")
8871 (commit version)))
8872 (file-name (git-file-name name version))
8873 (sha256
8874 (base32
8875 "18y5zdjc7zh4jlwz6k1nl13i721rknqm0vp4mxfnmq0sc5a0qva0"))))
8876 (build-system emacs-build-system)
8877 (propagated-inputs
8878 (list emacs-dash
8879 emacs-deferred
8880 emacs-f
8881 emacs-helm
8882 emacs-request
8883 emacs-s))
8884 (home-page "https://org-trello.github.io")
8885 (synopsis "Emacs minor mode for interacting with Trello")
8886 (description "This package provides an Emacs minor mode to extend
8887 @code{org-mode} with Trello abilities. Trello is an online project
8888 organizer.")
8889 (license license:gpl3+)))
8890
8891 (define-public emacs-org-tanglesync
8892 (let ((commit "d99181f173b4e55b4e835d99fcd415e62beb047f")
8893 (revision "2"))
8894 (package
8895 (name "emacs-org-tanglesync")
8896 (version (git-version "0.6" revision commit))
8897 (source
8898 (origin
8899 (method git-fetch)
8900 (uri (git-reference
8901 (url "https://github.com/mtekman/org-tanglesync.el")
8902 (commit commit)))
8903 (file-name (git-file-name name version))
8904 (sha256
8905 (base32 "0x94gy1bgfd1f3p9w2bfrqj11bwy9ql0cpi1gw6srpj7kykx0lml"))))
8906 (build-system emacs-build-system)
8907 (propagated-inputs
8908 (list emacs-org))
8909 (home-page "https://github.com/mtekman/org-tanglesync.el")
8910 (synopsis "Sync Org source blocks with tangled external files")
8911 (description "This package automatically pulls changes from source code
8912 to their corresponding tangled blocks.")
8913 (license license:gpl3+))))
8914
8915 (define-public emacs-company-flow
8916 (let ((commit "76ef585c70d2a3206c2eadf24ba61e59124c3a16")
8917 (revision "1"))
8918 (package
8919 (name "emacs-company-flow")
8920 (version (git-version "0.1.0" revision commit))
8921 (source (origin
8922 (method git-fetch)
8923 (uri (git-reference
8924 (url "https://github.com/aaronjensen/company-flow/")
8925 (commit commit)))
8926 (file-name (git-file-name name version))
8927 (sha256
8928 (base32
8929 "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw"))))
8930 (build-system emacs-build-system)
8931 (propagated-inputs
8932 (list emacs-company emacs-dash))
8933 (home-page "https://github.com/aaronjensen/company-flow/")
8934 (synopsis "Flow backend for @code{company-mode}")
8935 (description
8936 "This package provides completion for JavaScript files utilizing Flow.")
8937 (license license:gpl3+))))
8938
8939 (define-public emacs-habitica
8940 (let ((commit "c45c602ddf9d6cbb0e3baf5cb3e1b7ef90f2759d")
8941 (revision "1"))
8942 (package
8943 (name "emacs-habitica")
8944 (version (git-version "1.0" revision commit))
8945 (source
8946 (origin
8947 (method git-fetch)
8948 (uri (git-reference
8949 (url "https://github.com/abrochard/emacs-habitica")
8950 (commit commit)))
8951 (file-name (git-file-name name version))
8952 (sha256
8953 (base32
8954 "0wgnzn3z98bl28jgqi7xklw9fwx2wwgihj3mq0jb8ah4vn70d0j3"))))
8955 (build-system emacs-build-system)
8956 (home-page "https://github.com/abrochard/emacs-habitica")
8957 (synopsis "Emacs interface for Habitica")
8958 (description "Emacs extension for @uref{https://habitica.com/, Habitica},
8959 a RPG style habit tracker and todo list.")
8960 (license license:gpl3+))))
8961
8962 (define-public emacs-atom-one-dark-theme
8963 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
8964 (revision "0"))
8965 (package
8966 (name "emacs-atom-one-dark-theme")
8967 (version (git-version "0.4.0" revision commit))
8968 (source (origin
8969 (method git-fetch)
8970 (uri (git-reference
8971 (url "https://github.com/jonathanchu/atom-one-dark-theme")
8972 (commit commit)))
8973 (sha256
8974 (base32
8975 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
8976 (file-name (git-file-name name version))))
8977 (build-system emacs-build-system)
8978 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
8979 (synopsis "Atom One Dark color theme for Emacs")
8980 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
8981 (license license:gpl3+))))
8982
8983 (define-public emacs-zenburn-theme
8984 (package
8985 (name "emacs-zenburn-theme")
8986 (version "2.7.0")
8987 (source
8988 (origin
8989 (method git-fetch)
8990 (uri (git-reference
8991 (url "https://github.com/bbatsov/zenburn-emacs")
8992 (commit (string-append "v" version))))
8993 (file-name (git-file-name name version))
8994 (sha256
8995 (base32 "1991s1gz2i3jchf0yvcsjjb5flwn13ifbnnfkqqrxxvy2imfh18q"))))
8996 (build-system emacs-build-system)
8997 (home-page "https://github.com/bbatsov/zenburn-emacs")
8998 (synopsis "Low contrast color theme for Emacs")
8999 (description
9000 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
9001 It is built on top of the custom theme support in Emacs 24 or later.")
9002 (license license:gpl3+)))
9003
9004 (define-public emacs-moe-theme-el
9005 (package
9006 (name "emacs-moe-theme-el")
9007 (version "1.0.1")
9008 (source
9009 (origin
9010 (method git-fetch)
9011 (uri (git-reference
9012 (url "https://github.com/kuanyui/moe-theme.el")
9013 (commit (string-append "v" version))))
9014 (file-name (git-file-name name version))
9015 (sha256
9016 (base32 "14higsv6h0pka90gr25a3yxh95xn65l6qxb39mmdzkfdlnzsg664"))))
9017 (build-system emacs-build-system)
9018 (home-page "https://github.com/kuanyui/moe-theme.el")
9019 (synopsis "Anime-inspired color themes")
9020 (description
9021 "This package provides vibrant color schemes with light and dark
9022 variants.")
9023 (license license:gpl3+)))
9024
9025 (define-public emacs-solarized-theme
9026 (package
9027 (name "emacs-solarized-theme")
9028 (version "2.0.0")
9029 (source
9030 (origin
9031 (method git-fetch)
9032 (uri (git-reference
9033 (url "https://github.com/bbatsov/solarized-emacs/")
9034 (commit (string-append "v" version))))
9035 (file-name (git-file-name name version))
9036 (sha256
9037 (base32 "17z6cj8ids88xj2i6zs1s0mxs0fhn3gr7g5nhhy8s8khnzmyy2vj"))))
9038 (build-system emacs-build-system)
9039 (propagated-inputs
9040 (list emacs-dash))
9041 (home-page "https://github.com/bbatsov/solarized-emacs")
9042 (synopsis "Port of the Solarized theme for Emacs")
9043 (description
9044 "Solarized for Emacs is a port of the Solarized theme for Vim. This
9045 package provides a light and a dark variant.")
9046 (license license:gpl3+)))
9047
9048 (define-public emacs-poet-theme
9049 (let ((commit "16eb694f0755c04c4db98614d0eca1199fddad70")
9050 (revision "1"))
9051 (package
9052 (name "emacs-poet-theme")
9053 (version (git-version "0" revision commit))
9054 (source
9055 (origin
9056 (method git-fetch)
9057 (uri (git-reference
9058 (url "https://github.com/kunalb/poet")
9059 (commit commit)))
9060 (file-name (git-file-name name version))
9061 (sha256
9062 (base32
9063 "0zm8jbviddyj7jnyssh77jx43jghbpjwr77n9s3cjp3bmadwkrv5"))))
9064 (build-system emacs-build-system)
9065 (home-page "https://github.com/kunalb/poet/")
9066 (synopsis "Emacs theme for prose")
9067 (description
9068 "Emacs has very good support for multiple fonts in a single file. Poet
9069 uses this support to make it much more convenient to write prose within Emacs,
9070 with particular attention paid to @code{org-mode} and @code{markdown-mode}.
9071 Code blocks, tables, etc are formatted in monospace text with the appropriate
9072 backgrounds.")
9073 (license license:expat))))
9074
9075 (define-public emacs-ahungry-theme
9076 (package
9077 (name "emacs-ahungry-theme")
9078 (version "1.10.0")
9079 (source
9080 (origin (method url-fetch)
9081 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
9082 version ".tar"))
9083 (sha256
9084 (base32
9085 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
9086 (build-system emacs-build-system)
9087 (home-page "https://github.com/ahungry/color-theme-ahungry")
9088 (synopsis "Ahungry color theme for Emacs")
9089 (description "Ahungry theme for Emacs provides bright and bold colors.
9090 If you load it from a terminal, you will be able to make use of the
9091 transparent background. If you load it from a GUI, it will default to a
9092 dark background.")
9093 (license license:gpl3+)))
9094
9095 (define-public emacs-color-theme-modern
9096 ;; No release since October 2019
9097 (let ((commit "74ad69bbca6fcfff3c0960d888c7c9c1f9f3e2e8")
9098 (revision "1"))
9099 (package
9100 (name "emacs-color-theme-modern")
9101 (version (git-version "0.0.3" revision commit))
9102 (source (origin
9103 (method git-fetch)
9104 (uri (git-reference
9105 (url "https://github.com/emacs-jp/replace-colorthemes.git")
9106 (commit commit)))
9107 (file-name (git-file-name name version))
9108 (sha256
9109 (base32
9110 "13ff4s372wsl5x13vh4vywhi6qcc54gybhp6rxl0r1l4wxidanwn"))))
9111 (build-system emacs-build-system)
9112 (home-page "https://github.com/emacs-jp/replace-colorthemes")
9113 (synopsis "Emacs color themes implemented via built-in customization")
9114 (description "This package contains several themes that were originally
9115 implemented with the venerable @code{color-themes} package, ported to Emacs'
9116 built-in custom themes.")
9117 (license license:gpl3+))))
9118
9119 (define-public emacs-gruvbox-theme
9120 (package
9121 (name "emacs-gruvbox-theme")
9122 (version "1.30.1")
9123 (source (origin
9124 (method git-fetch)
9125 (uri (git-reference
9126 (url "https://github.com/greduan/emacs-theme-gruvbox")
9127 (commit version)))
9128 (file-name (git-file-name name version))
9129 (sha256
9130 (base32
9131 "0dgjf86i8179l1nsjyc20chysqmy8yhphpd5lzv2ypx79l4z3jka"))))
9132 (build-system emacs-build-system)
9133 (propagated-inputs
9134 (list emacs-autothemer))
9135 (home-page "https://github.com/greduan/emacs-theme-gruvbox")
9136 (synopsis "Gruvbox is a retro groove color scheme ported from Vim")
9137 (description
9138 "Gruvbox is heavily inspired by badwolf, jellybeans and solarized.
9139
9140 Designed as a bright theme with pastel 'retro groove' colors and light/dark
9141 mode switching in the way of solarized. The main focus when developing gruvbox
9142 is to keep colors easily distinguishable, contrast enough and still pleasant
9143 for the eyes.")
9144 (license license:expat))) ; MIT license
9145
9146 (define-public emacs-spacegray-theme
9147 (let ((commit "9826265c2bceb2ebc1c5e16a45021da0253ace97")
9148 (revision "0"))
9149 (package
9150 (name "emacs-spacegray-theme")
9151 (version (git-version "0" revision commit))
9152 (source (origin
9153 (method git-fetch)
9154 (uri (git-reference
9155 (url "https://github.com/bruce/emacs-spacegray-theme")
9156 (commit commit)))
9157 (file-name (git-file-name name version))
9158 (sha256
9159 (base32
9160 "0aplwmm17ypbns5blc4rf5rr6dasj0zp5ibykpfl43fh4bd8z89n"))))
9161 (build-system emacs-build-system)
9162 (home-page "https://github.com/bruce/emacs-spacegray-theme")
9163 (synopsis "Port of Sublime Text's Spacegray theme for Emacs")
9164 (description
9165 "@code{spacegray-theme} is an Emacs port of the Spacegray theme from
9166 Sublime Text. It features a dark blue/gray background and soft blue, green,
9167 orange and red as accent colors.")
9168 (license license:expat)))) ; MIT license
9169
9170 (define-public emacs-org-cv
9171 ;; There are no tagged releases.
9172 (let ((commit "24bcd82348d441d95c2c80fb8ef8b5d6d4b80d95")
9173 (revision "0"))
9174 (package
9175 (name "emacs-org-cv")
9176 (version (git-version "0" revision commit))
9177 (source
9178 (origin
9179 (method git-fetch)
9180 (uri (git-reference
9181 (url "https://gitlab.com/Titan-C/org-cv")
9182 (commit commit)))
9183 (file-name (git-file-name name version))
9184 (sha256
9185 (base32 "0zcnbxvlwi4d6vzsm3ag7z74qphdigmx303gppb9d614jnsfsdg2"))))
9186 (build-system emacs-build-system)
9187 (propagated-inputs
9188 (list emacs-ox-hugo))
9189 (home-page "https://titan-c.gitlab.io/org-cv/")
9190 (synopsis "Collection of export backends for Org to generate a CV")
9191 (description
9192 "This project exports an Org file with reasonably structured items into
9193 a LaTeX file, which compiles into a nice CV. In the same spirit, the Org file
9194 may export to Markdown so that it can be used for a web based CV.")
9195 (license license:gpl3+))))
9196
9197 (define-public emacs-ox-gfm
9198 (package
9199 (name "emacs-ox-gfm")
9200 (version "1.0")
9201 (source (origin
9202 (method git-fetch)
9203 (uri (git-reference
9204 (url "https://github.com/larstvei/ox-gfm")
9205 (commit (string-append "v" version))))
9206 (sha256
9207 (base32
9208 "0drdypmgxk3238hmkqw9s3cw9wv94cyfqar5ar0bv0k69s92pxj8"))))
9209 (build-system emacs-build-system)
9210 (home-page "https://github.com/larstvei/ox-gfm")
9211 (synopsis "Github Flavored Markdown Back-End for Org Export Engine")
9212 (description "This package is a small exporter based on the Markdown
9213 exporter already existing in Org mode. It supports the Github flavored
9214 markdown features.")
9215 (license license:gpl3+)))
9216
9217 (define-public emacs-2048-game
9218 (package
9219 (name "emacs-2048-game")
9220 (version "20151026.1233")
9221 (source
9222 (origin
9223 (method url-fetch)
9224 (uri (string-append "https://melpa.org/packages/2048-game-"
9225 version ".el"))
9226 (sha256
9227 (base32
9228 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
9229 (build-system emacs-build-system)
9230 (home-page "https://hg.sr.ht/~zck/game-2048")
9231 (synopsis "Implementation of the game 2048 in Emacs Lisp")
9232 (description
9233 "This program is an implementation of 2048 for Emacs.
9234 The goal of this game is to create a tile with value 2048. The size of the
9235 board and goal value can be customized.")
9236 (license license:gpl3+)))
9237
9238 (define-public emacs-chess
9239 (package
9240 (name "emacs-chess")
9241 (version "2.0.5")
9242 (source
9243 (origin
9244 (method url-fetch)
9245 (uri (string-append "https://elpa.gnu.org/packages/"
9246 "chess-" version ".tar"))
9247 (sha256
9248 (base32 "1a4iwjdh6k348df6qywjws9z9f862d62m0b2sz57z4xhywiyxpr7"))))
9249 (build-system emacs-build-system)
9250 (arguments
9251 (list
9252 #:phases
9253 #~(modify-phases %standard-phases
9254 (add-after 'install 'install-pieces
9255 (lambda _
9256 (let ((pieces
9257 (string-append #$output "/share/emacs/site-lisp/chess-"
9258 #$version "/pieces")))
9259 (mkdir-p pieces)
9260 (copy-recursively "pieces" pieces)))))))
9261 (home-page "https://elpa.gnu.org/packages/chess.html")
9262 (synopsis "Play chess in GNU Emacs")
9263 (description
9264 "Chess is an Emacs Lisp library and several clients on top of the
9265 underlying library functionality for performing various activities related to
9266 the game of chess.")
9267 (license license:gpl3+)))
9268
9269 (define-public emacs-4clojure
9270 ;; There is no release. Base version is extracted from Version keyword in
9271 ;; the main file.
9272 (let ((commit "4eccf8c7d4341a36c269451838114b27836699f9")
9273 (revision "1"))
9274 (package
9275 (name "emacs-4clojure")
9276 (version (git-version "0.2.1" revision commit))
9277 (source
9278 (origin
9279 (method git-fetch)
9280 (uri (git-reference
9281 (url "https://github.com/emacsorphanage/4clojure")
9282 (commit commit)))
9283 (file-name (git-file-name name version))
9284 (sha256
9285 (base32 "19x653lzc1dxil4ix257hciidbdmbhaxhs6qhlkwi9ygjrlrgvnk"))))
9286 (build-system emacs-build-system)
9287 (propagated-inputs
9288 (list emacs-request))
9289 (home-page "https://github.com/emacsorphanage/4clojure/")
9290 (synopsis "Open and evaluate 4clojure questions in Emacs")
9291 (description "Emacs 4clojure interacts with
9292 @url{http://www.4clojure.com, 4clojure} problems. You can open a specific
9293 question and move to the next or previous one. You can also verify your
9294 answers.")
9295 (license license:gpl3+))))
9296
9297 (define-public emacs-base16-theme
9298 (package
9299 (name "emacs-base16-theme")
9300 (version "3.0")
9301 (source
9302 (origin
9303 (method git-fetch)
9304 (uri (git-reference
9305 (url "https://github.com/belak/base16-emacs")
9306 (commit version)))
9307 (file-name (git-file-name name version))
9308 (sha256
9309 (base32 "0qp71j77zg8gippcn277s0j5a9n6dbwv3kdp2nya6li4b412vgba"))))
9310 (build-system emacs-build-system)
9311 (arguments
9312 (list #:include #~(cons "^build\\/.*\\.el$" %default-include)
9313 #:phases
9314 #~(modify-phases %standard-phases
9315 (add-after 'install 'mv-themes
9316 (lambda _
9317 (use-modules (ice-9 regex))
9318 (let ((theme-dir (string-append (elpa-directory #$output)
9319 "/build")))
9320 (for-each (lambda (theme)
9321 (rename-file
9322 theme
9323 (regexp-substitute #f
9324 (string-match "build\\/"
9325 theme)
9326 'pre 'post)))
9327 (find-files theme-dir "\\.el$"))
9328 (delete-file-recursively theme-dir)))))))
9329 (home-page "https://github.com/belak/base16-emacs")
9330 (synopsis "Base16 color themes for Emacs")
9331 (description
9332 "Base16 provides carefully chosen syntax highlighting and a default set
9333 of sixteen colors suitable for a wide range of applications. Base16 is not a
9334 single theme but a set of guidelines with numerous implementations.")
9335 (license license:expat)))
9336
9337 (define-public emacs-solaire-mode
9338 (package
9339 (name "emacs-solaire-mode")
9340 (version "2.0.4")
9341 (source
9342 (origin
9343 (method git-fetch)
9344 (uri (git-reference
9345 (url "https://github.com/hlissner/emacs-solaire-mode")
9346 (commit (string-append "v" version))))
9347 (file-name (git-file-name name version))
9348 (sha256
9349 (base32 "1lkm09wznal0grpz61ikc77mjrri1x1bi79qwyf1cah9s0wv3isq"))))
9350 (build-system emacs-build-system)
9351 (home-page "https://github.com/hlissner/emacs-solaire-mode")
9352 (synopsis "Change background of file-visiting buffers in Emacs")
9353 (description
9354 "@code{solaire-mode} is inspired by editors which visually distinguish
9355 code-editing windows from sidebars, popups, terminals, ecetera. It changes the
9356 background of file-visiting buffers (and certain aspects of the UI) to make
9357 them easier to distinguish from other, less important buffers.")
9358 (license license:expat)))
9359
9360 (define-public emacs-embark
9361 (package
9362 (name "emacs-embark")
9363 (version "0.17")
9364 (source
9365 (origin
9366 (method git-fetch)
9367 (uri (git-reference
9368 (url "https://github.com/oantolin/embark")
9369 (commit version)))
9370 (sha256
9371 (base32 "1s0ssf4q9kg4c5w87h2ypyvrhi31mz3s6k4h7pxi9a47lkccq8n1"))
9372 (file-name (git-file-name name version))))
9373 (build-system emacs-build-system)
9374 (propagated-inputs
9375 (list emacs-avy emacs-consult))
9376 (home-page "https://github.com/oantolin/embark")
9377 (synopsis "Emacs mini-buffer actions rooted in keymaps")
9378 (description
9379 "This package provides a sort of right-click contextual menu for Emacs
9380 offering you relevant @emph{actions} to use on a @emph{target} determined by
9381 the context.
9382
9383 In the minibuffer, the target is the current best completion candidate. In
9384 the @code{*Completions*} buffer the target is the completion at point. In
9385 a regular buffer, the target is the region if active, or else the file, symbol
9386 or URL at point.
9387
9388 The type of actions offered depend on the type of the target. For files you
9389 get offered actions like deleting, copying, renaming, visiting in another
9390 window, running a shell command on the file, etc. For buffers the actions
9391 include switching to or killing the buffer. For package names the actions
9392 include installing, removing or visiting the homepage.")
9393 (license license:gpl3+)))
9394
9395 (define-public emacs-prescient
9396 (package
9397 (name "emacs-prescient")
9398 (version "5.2.1")
9399 (source
9400 (origin
9401 (method git-fetch)
9402 (uri (git-reference
9403 (url "https://github.com/raxod502/prescient.el")
9404 (commit (string-append "v" version))))
9405 (file-name (git-file-name name version))
9406 (sha256
9407 (base32 "0z97d7nnl1hgxj4fsvgw3hb3j4dc9wkdq2vq3dw607f29lwqiadk"))))
9408 (build-system emacs-build-system)
9409 (propagated-inputs
9410 (list emacs-company emacs-ivy emacs-selectrum))
9411 (home-page "https://github.com/raxod502/prescient.el/")
9412 (synopsis "Emacs library for sorting and filtering candidates")
9413 (description
9414 "Prescient is a library for sorting and filtering, as well as extensions
9415 for Ivy and Company that make use of the library.")
9416 (license license:expat)))
9417
9418 (define-public emacs-selectrum
9419 (package
9420 (name "emacs-selectrum")
9421 (version "3.1")
9422 (source
9423 (origin
9424 (method git-fetch)
9425 (uri (git-reference
9426 (url "https://github.com/raxod502/selectrum")
9427 (commit (string-append "v" version))))
9428 (file-name (git-file-name name version))
9429 (sha256
9430 (base32 "02jrki6vzyfyi1bbslki5pk2348flh9dz18jkc4y7p60bvbr52cb"))))
9431 (build-system emacs-build-system)
9432 (home-page "https://github.com/raxod502/selectrum/")
9433 (synopsis "Incremental narrowing in Emacs")
9434 (description "Selectrum is a solution for incremental narrowing in
9435 Emacs, replacing Helm, Ivy, and IDO. Its design philosophy is based
9436 on choosing the right abstractions and prioritizing consistency and
9437 predictability over special-cased improvements for particular cases.
9438 As such, Selectrum follows existing Emacs conventions where they exist
9439 and are reasonable, and it declines to implement features which have
9440 marginal benefit compared to the additional complexity of a new
9441 interface.")
9442 (license license:expat)))
9443
9444 (define-public emacs-orderless
9445 (package
9446 (name "emacs-orderless")
9447 (version "0.7")
9448 (source
9449 (origin
9450 (method git-fetch)
9451 (uri (git-reference
9452 (url "https://github.com/oantolin/orderless")
9453 (commit version)))
9454 (sha256
9455 (base32 "0m9nyz80j0qnn14drbgk8vn5yr7sv0z6yiz8w95ahcw2qwlgyjs7"))
9456 (file-name (git-file-name name version))))
9457 (build-system emacs-build-system)
9458 (arguments
9459 `(#:phases
9460 (modify-phases %standard-phases
9461 (add-after 'install 'makeinfo
9462 (lambda* (#:key outputs #:allow-other-keys)
9463 (invoke "makeinfo" "orderless.texi")
9464 (install-file "orderless.info"
9465 (string-append (assoc-ref outputs "out")
9466 "/share/info")))))))
9467 (native-inputs
9468 (list texinfo))
9469 (home-page "https://github.com/oantolin/orderless")
9470 (synopsis "Emacs completion style that matches multiple regexps in any order")
9471 (description "This package provides an orderless completion style that
9472 divides the pattern into space-separated components, and matches candidates
9473 that match all of the components in any order. Each component can match in
9474 any one of several ways: literally, as a regexp, as an initialism, in the flex
9475 style, or as multiple word prefixes.")
9476 (license license:gpl3+)))
9477
9478 (define-public emacs-consult
9479 (package
9480 (name "emacs-consult")
9481 (version "0.19")
9482 (source
9483 (origin
9484 (method git-fetch)
9485 (uri (git-reference
9486 (url "https://github.com/minad/consult")
9487 (commit version)))
9488 (sha256
9489 (base32 "1lb7ci1kkgv07c4hcfxisr5zjx68hq15bqf4x3bhmnn13x38j7jw"))
9490 (file-name (git-file-name name version))))
9491 (build-system emacs-build-system)
9492 (propagated-inputs (list emacs-compat))
9493 (home-page "https://github.com/minad/consult")
9494 (synopsis "Consulting completing-read")
9495 (description "This package provides various handy commands based on the
9496 Emacs completion function completing-read, which allows quickly selecting from a
9497 list of candidates.")
9498 (license license:gpl3+)))
9499
9500 (define-public emacs-consult-bibtex
9501 ;; XXX: Upstream contains a single commit, which matches the version below.
9502 (let ((commit "2f870d6eefb54a53216d90a82cff0ff97ba54725"))
9503 (package
9504 (name "emacs-consult-bibtex")
9505 (version "0.1")
9506 (source (origin
9507 (method git-fetch)
9508 (uri (git-reference
9509 (url "https://github.com/mohkale/consult-bibtex")
9510 (commit commit)))
9511 (sha256
9512 (base32
9513 "0jxjvpg3j8zk77sfhyy27fd1zbj2zz7xayavan3hhj4853q92kwq"))))
9514 (build-system emacs-build-system)
9515 (inputs (list emacs-consult emacs-embark emacs-org-roam-bibtex))
9516 (home-page "https://github.com/mohkale/consult-bibtex")
9517 (synopsis "Consulting-read interface for BibTeX completion")
9518 (description "This package provides a read interface for BibTeX
9519 completion using Consult.")
9520 (license license:gpl3+))))
9521
9522 (define-public emacs-consult-dir
9523 (package
9524 (name "emacs-consult-dir")
9525 (version "0.1")
9526 (source (origin
9527 (method git-fetch)
9528 (uri (git-reference
9529 (url "https://github.com/karthink/consult-dir")
9530 (commit (string-append "v" version))))
9531 (sha256
9532 (base32 "1cff4ssrn1mw2s5n090pdmwdirnfih8idg5f0ll2bi2djc4hq5kn"))
9533 (file-name (git-file-name name version))))
9534 (build-system emacs-build-system)
9535 (propagated-inputs (list emacs-consult))
9536 (home-page "https://github.com/karthink/consult-dir")
9537 (synopsis "Insert paths into minibuffer prompts in Emacs")
9538 (description "Consult-dir allows you to easily insert directory
9539 paths into the minibuffer prompt in Emacs.
9540
9541 When using the minibuffer, you can switch---with completion and filtering
9542 provided by your completion setup---to any directory you’ve visited recently,
9543 or to a project or bookmarked directory. The minibuffer prompt will be
9544 replaced with the directory you choose.")
9545 (license license:gpl3+)))
9546
9547 (define-public emacs-consult-notmuch
9548 (package
9549 (name "emacs-consult-notmuch")
9550 (version "0.7")
9551 (source
9552 (origin
9553 (method git-fetch)
9554 (uri (git-reference
9555 (url "https://codeberg.org/jao/consult-notmuch")
9556 (commit version)))
9557 (file-name (git-file-name name version))
9558 (sha256
9559 (base32 "0xzpkpf2sb89qkbqcrwddp4pgnzdjp40bc5da22jq9r4pf67y7qs"))))
9560 (build-system emacs-build-system)
9561 (propagated-inputs
9562 (list emacs-consult emacs-notmuch))
9563 (home-page "https://codeberg.org/jao/consult-notmuch")
9564 (synopsis "Search and preview Notmuch emails using Consult")
9565 (description
9566 "This package provides two commands using consult to query Notmuch emails
9567 and present results either as single emails or full trees.")
9568 (license license:gpl3+)))
9569
9570 (define-public emacs-consult-org-roam
9571 (let* ((commit "9572c5bc194a583dc9e86ea7d2751959d86b5c78")
9572 (revision "0"))
9573 (package
9574 (name "emacs-consult-org-roam")
9575 (version (git-version "0.1" revision commit))
9576 (source
9577 (origin
9578 (method git-fetch)
9579 (uri (git-reference
9580 (url "https://github.com/jgru/consult-org-roam")
9581 (commit commit)))
9582 (sha256
9583 (base32
9584 "0c2hjd2gw77h77487fzdqfybg0ricsvlnwwfxai9baawz37bcn7q"))))
9585 (build-system emacs-build-system)
9586 (propagated-inputs (list emacs-consult emacs-org-roam))
9587 (home-page "https://github.com/jgru/consult-org-roam")
9588 (synopsis "Consult integration for Org Roam")
9589 (description
9590 "This is a set of functions to use Org Roam with Consult. This
9591 packages replaces Org Roam's own completing read functions with equivalent
9592 versions utilizing Consult's internal API.")
9593 (license license:gpl3+))))
9594
9595 (define-public emacs-consult-eglot
9596 (package
9597 (name "emacs-consult-eglot")
9598 (version "0.2.0")
9599 (source (origin
9600 (method git-fetch)
9601 (uri (git-reference
9602 (url "https://github.com/mohkale/consult-eglot")
9603 (commit (string-append "v" version))))
9604 (sha256
9605 (base32 "1qxk1npxbf8m3g9spikgdxcf6mzjx6cwy3f5vn6zz5ksh14xw3sd"))
9606 (file-name (git-file-name name version))))
9607 (build-system emacs-build-system)
9608 (propagated-inputs (list emacs-consult emacs-eglot))
9609 (home-page "https://github.com/mohkale/consult-eglot")
9610 (synopsis "Consulting-read interface for eglot")
9611 (description "This package acts as a parallel of consult-lsp for eglot and
9612 provides a front-end interface for the workspace/symbols LSP procedure
9613 call.")
9614 (license license:gpl3+)))
9615
9616 (define-public emacs-consult-yasnippet
9617 (let ((commit "ae0450889484f23dc4ec37518852a2c61b89f184")
9618 (revision "0"))
9619 (package
9620 (name "emacs-consult-yasnippet")
9621 (version (git-version "0.2" revision commit))
9622 (source
9623 (origin
9624 (method git-fetch)
9625 (uri (git-reference
9626 (url "https://github.com/mohkale/consult-yasnippet")
9627 (commit commit)))
9628 (file-name (git-file-name name version))
9629 (sha256
9630 (base32 "13hmmsnmh32vafws61sckzzy354rq0nslqpyzhw97iwvn0fpsa35"))))
9631 (build-system emacs-build-system)
9632 (propagated-inputs (list emacs-consult emacs-yasnippet))
9633 (home-page "https://github.com/mohkale/consult-yasnippet")
9634 (synopsis "Consulting-read interface for Yasnippet")
9635 (description
9636 "This package allows you to expand Yasnippet' snippets through
9637 a completing-read interface. It supports previewing the current snippet
9638 expansion and overwriting the marked region with a new snippet completion.")
9639 (license license:gpl3+))))
9640
9641 (define-public emacs-marginalia
9642 (package
9643 (name "emacs-marginalia")
9644 (version "0.14")
9645 (source
9646 (origin
9647 (method git-fetch)
9648 (uri (git-reference
9649 (url "https://github.com/minad/marginalia")
9650 (commit version)))
9651 (file-name (git-file-name name version))
9652 (sha256
9653 (base32 "1gbcjw447vxd3ivfjgnya2ix3w791kvbika1v9bzj8s7i996fb6f"))))
9654 (build-system emacs-build-system)
9655 (home-page "https://github.com/minad/marginalia")
9656 (synopsis "Marginalia in the minibuffer completions")
9657 (description
9658 "This package provides Marginalia mode which adds marginalia to the
9659 minibuffer completions. Marginalia are marks or annotations placed at the
9660 margin of the page of a book or in this case helpful colorful annotations
9661 placed at the margin of the minibuffer for your completion candidates.")
9662 (license license:gpl3+)))
9663
9664 (define-public emacs-smartparens
9665 (package
9666 (name "emacs-smartparens")
9667 (version "1.11.0")
9668 (source
9669 (origin
9670 (method git-fetch)
9671 (uri (git-reference
9672 (url "https://github.com/Fuco1/smartparens")
9673 (commit version)))
9674 (file-name (git-file-name name version))
9675 (sha256
9676 (base32 "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6"))))
9677 (build-system emacs-build-system)
9678 (propagated-inputs
9679 (list emacs-dash emacs-markdown-mode))
9680 (home-page "https://github.com/Fuco1/smartparens")
9681 (synopsis "Paredit-like insertion, wrapping and navigation with user
9682 defined pairs")
9683 (description
9684 "Smartparens is a minor mode for Emacs that deals with parens pairs
9685 and tries to be smart about it. It started as a unification effort to
9686 combine functionality of several existing packages in a single,
9687 compatible and extensible way to deal with parentheses, delimiters, tags
9688 and the like. Some of these packages include autopair, textmate,
9689 wrap-region, electric-pair-mode, paredit and others. With the basic
9690 features found in other packages it also brings many improvements as
9691 well as completely new features.")
9692 (license license:gpl3+)))
9693
9694 (define-public emacs-dumbparens
9695 ;; There are no releases.
9696 (let ((commit "18b668772f25e5f7b62c0a000b8169eaf7515057")
9697 (revision "0"))
9698 (package
9699 (name "emacs-dumbparens")
9700 (version (git-version "0" revision commit))
9701 (source
9702 (origin
9703 (method git-fetch)
9704 (uri
9705 (git-reference
9706 (url "https://github.com/raxod502/dumbparens")
9707 (commit commit)))
9708 (file-name (git-file-name name version))
9709 (sha256
9710 (base32 "0xv2yzjzq2450z007jppf86knnwzb2s3sxvqyk1yp6qs9mgrmnyp"))))
9711 (build-system emacs-build-system)
9712 (arguments
9713 (list
9714 #:tests? #t
9715 #:test-command #~(list "make" "test")))
9716 (home-page "https://github.com/raxod502/dumbparens/")
9717 (synopsis "Minor mode that provides improvements on Smartparens")
9718 (description
9719 "@code{emacs-dumbparens} is a minor mode for Emacs that deals with parens
9720 pairs and doesn't try to be smart about it.")
9721 (license license:expat))))
9722
9723 (define-public emacs-highlight-symbol
9724 ;; We prefer a more recent commit that provides an option to squelch
9725 ;; echo-area alerts that can drown out useful information like eldoc
9726 ;; messages.
9727 (let ((commit "7a789c779648c55b16e43278e51be5898c121b3a")
9728 (version "1.3")
9729 (revision "1"))
9730 (package
9731 (name "emacs-highlight-symbol")
9732 (version (git-version version revision commit))
9733 (source
9734 (origin
9735 (method git-fetch)
9736 (uri (git-reference
9737 (url "https://github.com/nschum/highlight-symbol.el")
9738 (commit commit)))
9739 (file-name (git-file-name name version))
9740 (sha256
9741 (base32 "19cgyk0sh8nsmf3jbi92i8qsdx4l4yilfq5jj9zfdbj9p5gvwx96"))))
9742 (build-system emacs-build-system)
9743 (home-page "https://nschum.de/src/emacs/highlight-symbol/")
9744 (synopsis "Automatic and manual symbol highlighting for Emacs")
9745 (description
9746 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
9747 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
9748 the symbol at point highlighted.
9749
9750 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
9751 @code{highlight-symbol-next-in-defun} and
9752 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
9753 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
9754 bindings @code{M-p} and @code{M-p} for navigation. When
9755 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
9756 regardless of @code{highlight-symbol-idle-delay}.
9757
9758 @code{highlight-symbol-query-replace} can be used to replace the symbol.")
9759 (license license:gpl2+))))
9760
9761 (define-public emacs-symbol-overlay
9762 (package
9763 (name "emacs-symbol-overlay")
9764 (version "4.2")
9765 (source
9766 (origin
9767 (method git-fetch)
9768 (uri (git-reference
9769 (url "https://github.com/wolray/symbol-overlay")
9770 (commit version)))
9771 (file-name (git-file-name name version))
9772 (sha256
9773 (base32 "10n0871xzycifyqp73xnbqmrgy60imlb26yhm3p6vfj3d84mg1b2"))))
9774 (build-system emacs-build-system)
9775 (home-page "https://github.com/wolray/symbol-overlay")
9776 (synopsis "Highlight symbols and perform various search operations on them")
9777 (description
9778 "This package provides functions for highlighting and navigating
9779 between symbols.")
9780 (license license:gpl3+)))
9781
9782 (define-public emacs-hl-todo
9783 (package
9784 (name "emacs-hl-todo")
9785 (version "3.4.2")
9786 (source (origin
9787 (method git-fetch)
9788 (uri (git-reference
9789 (url "https://github.com/tarsius/hl-todo")
9790 (commit (string-append "v" version))))
9791 (file-name (git-file-name name version))
9792 (sha256
9793 (base32
9794 "03i3dvg7scvbxx6z07916zqc7p8w5s9nxv4v2phr68046zjz05dw"))))
9795 (build-system emacs-build-system)
9796 (home-page "https://github.com/tarsius/hl-todo")
9797 (synopsis "Emacs mode to highlight TODO and similar keywords")
9798 (description
9799 "This package provides an Emacs mode to highlight TODO and similar
9800 keywords in comments and strings. This package also provides commands for
9801 moving to the next or previous keyword and to invoke @code{occur} with a
9802 regexp that matches all known keywords.")
9803 (license license:gpl3+)))
9804
9805 (define-public emacs-perspective
9806 (package
9807 (name "emacs-perspective")
9808 (version "2.18")
9809 (source
9810 (origin
9811 (method git-fetch)
9812 (uri (git-reference
9813 (url "https://github.com/nex3/perspective-el")
9814 (commit version)))
9815 (file-name (git-file-name name version))
9816 (sha256
9817 (base32 "1r026cw6p2ss5wg8mxgzf6iv1lb9pdnqyf6yrqb914aibkrvp9b6"))))
9818 (build-system emacs-build-system)
9819 (arguments
9820 `(#:tests? #t
9821 #:test-command '("emacs" "-Q" "-batch" "-L" "."
9822 "-l" "test/test-perspective.el"
9823 "-f" "ert-run-tests-batch-and-exit")))
9824 (home-page "https://github.com/nex3/perspective-el")
9825 (synopsis "Switch between named \"perspectives\"")
9826 (description
9827 "This package provides tagged workspaces in Emacs, similar to workspaces in
9828 windows managers such as Awesome and XMonad. @code{perspective.el} provides
9829 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
9830 perspective is composed of a window configuration and a set of buffers.
9831 Switching to a perspective activates its window configuration, and when in a
9832 perspective only its buffers are available by default.")
9833 ;; This package is released under the same license as Emacs (GPLv3+) or
9834 ;; the Expat license.
9835 (license license:gpl3+)))
9836
9837 (define-public emacs-persp-mode
9838 (package
9839 (name "emacs-persp-mode")
9840 (version "2.9.8")
9841 (source
9842 (origin
9843 (method git-fetch)
9844 (uri (git-reference
9845 (url "https://github.com/Bad-ptr/persp-mode.el")
9846 (commit (string-append "v" version))))
9847 (file-name (git-file-name name version))
9848 (sha256
9849 (base32
9850 "0b4y7a6j70s9lvr37riyy9k5kh3yvmx0m6nd9c0c8572ji4ij65g"))))
9851 (build-system emacs-build-system)
9852 (home-page "https://github.com/Bad-ptr/persp-mode.el")
9853 (synopsis "Switch between named \"perspectives\" shared among frames")
9854 (description
9855 "This package extends @code{perspective.el} to enable perspectives that
9856 can be saved to and restored from a file.")
9857 (license license:gpl2+)))
9858
9859 (define-public emacs-eyebrowse
9860 ;; XXX: Upstream has no tagged release. Version is extracted from keyword
9861 ;; in main file.
9862 (let ((commit "88c7b59aa7c5c93bc23812217213adfa238f977b")
9863 (revision "0"))
9864 (package
9865 (name "emacs-eyebrowse")
9866 (version (git-version "0.7.8" revision commit))
9867 (source
9868 (origin
9869 (method git-fetch)
9870 (uri (git-reference
9871 (url "https://depp.brause.cc/eyebrowse.git")
9872 (commit commit)))
9873 (file-name (git-file-name name version))
9874 (sha256
9875 (base32 "09s07mvg5bz3dm9sxgn40c7z6d6ry1sdjzsxwgmy825f3xm66avs"))))
9876 (build-system emacs-build-system)
9877 (propagated-inputs
9878 (list emacs-dash))
9879 (home-page "https://depp.brause.cc/eyebrowse/")
9880 (synopsis "Simple-minded way to manage window configs in Emacs")
9881 (description
9882 "Eyebrowse is a global minor mode for Emacs that allows you to manage
9883 your window configurations in a simple manner, just like tiling window
9884 managers like i3wm with their workspaces do. It displays their current state
9885 in the modeline by default.")
9886 (license license:gpl3+))))
9887
9888 (define-public emacs-test-simple
9889 (package
9890 (name "emacs-test-simple")
9891 (version "1.3.0")
9892 (source
9893 (origin
9894 (method url-fetch)
9895 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
9896 version ".el"))
9897 (sha256
9898 (base32
9899 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
9900 (build-system emacs-build-system)
9901 (home-page "https://github.com/rocky/emacs-test-simple")
9902 (synopsis "Simple unit test framework for Emacs Lisp")
9903 (description
9904 "Test Simple is a simple unit test framework for Emacs Lisp. It
9905 alleviates the need for context macros, enclosing specifications or required
9906 test tags. It supports both interactive and non-interactive use.")
9907 (license license:gpl3+)))
9908
9909 (define-public emacs-load-relative
9910 (package
9911 (name "emacs-load-relative")
9912 (version "1.3.1")
9913 (source
9914 (origin
9915 (method url-fetch)
9916 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
9917 version ".el"))
9918 (sha256
9919 (base32 "1m37scr82lqqy954fchjxrmdh4lngrl4d1yzxhp3yfjhsydizhrj"))))
9920 (build-system emacs-build-system)
9921 (home-page "https://github.com/rocky/emacs-load-relative")
9922 (synopsis "Emacs Lisp relative file loading related functions")
9923 (description
9924 "Provides functions which facilitate writing multi-file Emacs packages
9925 and running from the source tree without having to \"install\" code or fiddle
9926 with @{load-path}.
9927
9928 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
9929 another (presumably currently running) Emacs Lisp file.")
9930 (license license:gpl3+)))
9931
9932 (define-public emacs-loc-changes
9933 (package
9934 (name "emacs-loc-changes")
9935 (version "1.2")
9936 (source
9937 (origin
9938 (method url-fetch)
9939 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
9940 version ".el"))
9941 (sha256
9942 (base32
9943 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
9944 (build-system emacs-build-system)
9945 (home-page "https://github.com/rocky/emacs-loc-changes")
9946 (synopsis "Keeps track of positions even after buffer changes")
9947 (description
9948 "This Emacs package provides a mean to track important buffer positions
9949 after buffer changes.")
9950 (license license:gpl3+)))
9951
9952 (define-public emacs-realgud
9953 (package
9954 (name "emacs-realgud")
9955 (version "1.5.1")
9956 (source
9957 (origin
9958 (method git-fetch)
9959 (uri (git-reference
9960 (url "https://github.com/realgud/realgud/")
9961 (commit version)))
9962 (sha256
9963 (base32
9964 "1d3s23jk0i34wpyxfajydgyyvsxnpbqrfl0mgydsq7zw2c75ylnq"))
9965 (file-name (git-file-name name version))))
9966 (build-system emacs-build-system)
9967 (arguments
9968 (list
9969 #:tests? #t
9970 #:phases
9971 #~(modify-phases %standard-phases
9972 (add-after 'unpack 'fix-realgud:run-process-void-error
9973 ;; See: https://github.com/realgud/realgud/issues/269.
9974 (lambda _
9975 (substitute* '("realgud/debugger/gdb/gdb.el"
9976 "realgud/debugger/gub/gub.el")
9977 (("^\\(require 'load-relative\\).*" anchor)
9978 (string-append anchor
9979 "(require-relative-list \
9980 '(\"../../common/run\") \"realgud:\")\n")))))
9981 (add-after 'expand-load-path 'fix-autogen-script
9982 (lambda _
9983 (substitute* "autogen.sh"
9984 (("./configure") "sh configure"))))
9985 (add-after 'fix-autogen-script 'autogen
9986 (lambda _
9987 (setenv "CONFIG_SHELL" "sh")
9988 (invoke "sh" "autogen.sh")))
9989 (add-after 'fix-autogen-script 'set-home
9990 (lambda _
9991 (setenv "HOME" (getenv "TMPDIR"))))
9992 (add-before 'patch-el-files 'remove-realgud-pkg.el
9993 (lambda _
9994 ;; FIXME: `patch-el-files' crashes on this file with error:
9995 ;; unable to locate "bashdb".
9996 (delete-file "./test/test-regexp-bashdb.el"))))
9997 #:include #~(cons* ".*\\.el$" %default-include)))
9998 (native-inputs
9999 (list autoconf automake emacs-test-simple))
10000 (propagated-inputs
10001 (list emacs-load-relative emacs-loc-changes))
10002 (home-page "https://github.com/realgud/realgud/")
10003 (synopsis
10004 "Modular front-end for interacting with external debuggers")
10005 (description
10006 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
10007 with external debuggers. It integrates various debuggers such as gdb, pdb,
10008 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows visually steping through code in the
10009 sources. Unlike GUD, it also supports running multiple debug sessions in
10010 parallel.")
10011 (license license:gpl3+)))
10012
10013 (define-public emacs-rmsbolt
10014 ;; There is no release tag. Version is extracted from main file.
10015 (let ((commit "ff496660cc52a6dd33d358ef0acc6d4bb70cc340")
10016 (revision "0")
10017 (version "0.1.2"))
10018 (package
10019 (name "emacs-rmsbolt")
10020 (version (git-version version revision commit))
10021 (source
10022 (origin
10023 (method git-fetch)
10024 (uri (git-reference
10025 (url "https://gitlab.com/jgkamat/rmsbolt")
10026 (commit commit)))
10027 (file-name (git-file-name name version))
10028 (sha256
10029 (base32 "05i0101238yy1da6z543nr9x5gpvgdxrrdn3sw5dibcn6z62ml3p"))))
10030 (build-system emacs-build-system)
10031 (home-page "https://gitlab.com/jgkamat/rmsbolt")
10032 (synopsis "Emacs viewer for compiler output")
10033 (description
10034 "RMSBolt is a package to provide assembly or bytecode output for
10035 a source code input file.")
10036 (license license:agpl3+))))
10037
10038 (define-public emacs-request
10039 ;; We prefer a more recent commit that has support for auth-source,
10040 ;; and has some bug fixes for Emacs 28.
10041 (let ((commit "3336eaa97de923f74b90dda3e35985e122d40805")
10042 (revision "1"))
10043 (package
10044 (name "emacs-request")
10045 (version (git-version "0.3.2" revision commit))
10046 (source (origin
10047 (method git-fetch)
10048 (uri (git-reference
10049 (url "https://github.com/tkf/emacs-request")
10050 (commit commit)))
10051 (file-name (git-file-name name version))
10052 (sha256
10053 (base32
10054 "0jckwy5zhz95d6l3lz8b9b34pppcjjzy97fg1wn8mqzhf3h460ac"))))
10055 (build-system emacs-build-system)
10056 (arguments
10057 `(#:tests? #f)) ; requires network access.
10058 (propagated-inputs
10059 (list emacs-deferred))
10060 (home-page "https://github.com/tkf/emacs-request")
10061 (synopsis "Package for speaking HTTP in Emacs Lisp")
10062 (description "This package provides a HTTP request library with multiple
10063 backends. It supports url.el which is shipped with Emacs and the curl command
10064 line program.")
10065 (license license:gpl3+))))
10066
10067 (define-public emacs-rudel
10068 (package
10069 (name "emacs-rudel")
10070 (version "0.3.2")
10071 (source
10072 (origin
10073 (method url-fetch)
10074 (uri (string-append "https://elpa.gnu.org/packages/rudel-"
10075 version ".tar"))
10076 (sha256
10077 (base32 "03hcvpp6ykavidwn5x48gs986w1i5icvh7ks6p74pdaagpgw4jmk"))))
10078 (build-system emacs-build-system)
10079 (home-page "http://rudel.sourceforge.net/")
10080 (synopsis "Collaborative editing framework")
10081 (description
10082 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
10083 is to share buffers with other users in order to edit the contents of those
10084 buffers collaboratively. Rudel supports multiple backends to enable
10085 communication with other collaborative editors using different protocols,
10086 though currently Obby (for use with the Gobby editor) is the only
10087 fully-functional one.")
10088 (license license:gpl3+)))
10089
10090 (define-public emacs-hydra
10091 (package
10092 (name "emacs-hydra")
10093 (version "0.15.0")
10094 (source
10095 (origin
10096 (method git-fetch)
10097 (uri (git-reference
10098 (url "https://github.com/abo-abo/hydra")
10099 (commit version)))
10100 (file-name (git-file-name name version))
10101 (sha256
10102 (base32
10103 "0fapvhmhgc9kppf3bvkgry0cd7gyilg7sfvlscfrfjxpx4xvwsfy"))))
10104 (build-system emacs-build-system)
10105 (arguments
10106 `(#:tests? #t
10107 #:test-command '("make" "test")))
10108 (home-page "https://github.com/abo-abo/hydra")
10109 (synopsis "Make Emacs bindings that stick around")
10110 (description
10111 "This package can be used to tie related commands into a family of short
10112 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
10113 the prefixed binding), all the heads can be called in succession with only a
10114 short extension. Any binding that isn't the Hydra's head vanquishes the
10115 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
10116 serve its original purpose, calling the command assigned to it. This makes
10117 the Hydra very seamless; it's like a minor mode that disables itself
10118 automatically.")
10119 (license license:gpl3+)))
10120
10121 (define-public emacs-pretty-hydra
10122 (package
10123 (name "emacs-pretty-hydra")
10124 (version "0.2.2")
10125 (source
10126 (origin
10127 (method git-fetch)
10128 (uri (git-reference
10129 (url "https://github.com/jerrypnz/major-mode-hydra.el")
10130 (commit version)))
10131 (file-name (git-file-name name version))
10132 (sha256
10133 (base32
10134 "08a15knkdq35pzjq82imff016fbfdib5q4glg2xmdy2b5fnk7jqa"))))
10135 (build-system emacs-build-system)
10136 (propagated-inputs
10137 (list emacs-dash emacs-hydra emacs-s))
10138 (arguments
10139 `(#:exclude (cons "^major-mode-hydra\\.el" %default-exclude)))
10140 (home-page "https://github.com/jerrypnz/major-mode-hydra.el")
10141 (synopsis "Major mode keybindings managed by Hydra")
10142 (description
10143 "This package offers an hydra-based method of managing major
10144 mode-specific key bindings. It is intended for use as a library only; see
10145 package @code{emacs-major-mode-hydra} for a user-friendly interface.")
10146 (license license:gpl3+)))
10147
10148 (define-public emacs-interleave
10149 (package
10150 (name "emacs-interleave")
10151 (version "1.4.0")
10152 (source
10153 (origin
10154 (method git-fetch)
10155 (uri
10156 (git-reference
10157 (url "https://github.com/rudolfochrist/interleave")
10158 (commit (string-append "interleave-" version))))
10159 (file-name (git-file-name name version))
10160 (sha256
10161 (base32 "0l5b681mrpk12lx5c16m7kc13p29z6zismwg1llsjg7cdmrmsrcb"))))
10162 (build-system emacs-build-system)
10163 (home-page "https://github.com/rudolfochrist/interleave")
10164 (synopsis "Emacs minor mode to interleave notes and text books")
10165 (description
10166 "Interleave is a minor mode that presents a document viewer side
10167 by side to an Org buffer with your notes relevant to the current page.")
10168 (license license:gpl3+)))
10169
10170 (define-public emacs-major-mode-hydra
10171 (package
10172 (inherit emacs-pretty-hydra)
10173 (name "emacs-major-mode-hydra")
10174 (propagated-inputs
10175 (list emacs-dash emacs-pretty-hydra))
10176 (arguments
10177 `(#:exclude (cons "^pretty-hydra\\.el" %default-exclude)))
10178 (synopsis "Create nice-looking hydras")
10179 (description
10180 "This package provides the macro @code{pretty-hydra-define} to define
10181 hydras with one column per group of heads.")))
10182
10183 (define-public emacs-ivy
10184 (package
10185 (name "emacs-ivy")
10186 (version "0.13.4")
10187 (source
10188 (origin
10189 (method url-fetch)
10190 (uri (string-append "https://elpa.gnu.org/packages/ivy-" version ".tar"))
10191 (sha256
10192 (base32 "0qpza1c45mr8fcpnm32cck4v22fnzz1yb7kww05rzgq1k9iivx5v"))))
10193 (build-system emacs-build-system)
10194 (propagated-inputs
10195 (list emacs-hydra))
10196 (home-page "https://github.com/abo-abo/swiper")
10197 (synopsis "Incremental vertical completion for Emacs")
10198 (description
10199 "This package provides @code{ivy-read} as an alternative to
10200 @code{completing-read} and similar functions. No attempt is made to determine
10201 the best candidate. Instead, the user can navigate candidates with
10202 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
10203 splitting the input text by spaces and re-building it into a regular
10204 expression.")
10205 (license license:gpl3+)))
10206
10207 (define-public emacs-counsel
10208 (package
10209 (name "emacs-counsel")
10210 (version "0.13.4")
10211 (source
10212 (origin
10213 (method url-fetch)
10214 (uri (string-append "https://elpa.gnu.org/packages/"
10215 "counsel-" version ".tar"))
10216 (sha256
10217 (base32 "094zfapfn1l8wjf3djkipk0d9nks0g77sbk107pfsbr3skkzh031"))))
10218 (build-system emacs-build-system)
10219 (propagated-inputs
10220 (list emacs-swiper))
10221 (home-page "https://github.com/abo-abo/swiper")
10222 (synopsis "Various completion functions using Ivy")
10223 (description
10224 "Just call one of the interactive functions in a file to complete the
10225 corresponding thing using Ivy.
10226
10227 The following completions are currently available:
10228 @itemize
10229 @item Symbol completion for Elisp, Common Lisp, Python, Clojure, C, C++.
10230 @item Describe functions for Elisp: function, variable, library, command,
10231 @item bindings, theme.
10232 @item Navigation functions: imenu, ace-line, semantic, outline.
10233 @item Git utilities: git-files, git-grep, git-log, git-stash, git-checkout.
10234 @item Grep utilities: grep, ag, pt, recoll, ack, rg.
10235 @item System utilities: process list, rhythmbox, linux-app.
10236 @item Many more.
10237 @end itemize")
10238 (license license:gpl3+)))
10239
10240 (define-public emacs-swiper
10241 (package
10242 (name "emacs-swiper")
10243 (version "0.13.4")
10244 (source
10245 (origin
10246 (method url-fetch)
10247 (uri (string-append "https://elpa.gnu.org/packages/swiper-" version ".tar"))
10248 (sha256
10249 (base32 "197pq2cvvskib87aky907wv2am55vilr7y5dabmmm07a8vr9py0v"))))
10250 (build-system emacs-build-system)
10251 (propagated-inputs
10252 (list emacs-ivy))
10253 (home-page "https://github.com/abo-abo/swiper")
10254 (synopsis "Isearch with an overview")
10255 (description
10256 "This package gives an overview of the current regex search candidates.
10257 The search regex can be split into groups with a space. Each group is
10258 highlighted with a different face.
10259
10260 It can double as a quick `regex-builder', although only single lines will be
10261 matched.")
10262 (license license:gpl3+)))
10263
10264 (define-public emacs-ivy-xref
10265 (let ((commit "1a35fc0f070388701b05b0a455cbe262e924d547")
10266 (revision "1"))
10267 (package
10268 (name "emacs-ivy-xref")
10269 (version (git-version "0.1" revision commit))
10270 (source
10271 (origin
10272 (method git-fetch)
10273 (uri (git-reference
10274 (url "https://github.com/alexmurray/ivy-xref")
10275 (commit commit)))
10276 (file-name (git-file-name name version))
10277 (sha256
10278 (base32
10279 "0d71nm9d9ajp5i6dnl8h1hw9jqp8gd1ajgninb1h13i80rplzl9k"))))
10280 (build-system emacs-build-system)
10281 (propagated-inputs
10282 (list emacs-ivy))
10283 (home-page "https://github.com/alexmurray/ivy-xref")
10284 (synopsis "Ivy interface for @code{xref}")
10285 (description "This package provides an Ivy interface for selecting from
10286 @code{xref} results.")
10287 (license license:gpl3))))
10288
10289 (define-public emacs-ivy-pass
10290 (let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5")
10291 (revision "1"))
10292 (package
10293 (name "emacs-ivy-pass")
10294 (version (git-version "0.1" revision commit))
10295 (source
10296 (origin
10297 (method git-fetch)
10298 (uri (git-reference
10299 (url "https://github.com/ecraven/ivy-pass")
10300 (commit commit)))
10301 (file-name (git-file-name name version))
10302 (sha256
10303 (base32
10304 "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk"))))
10305 (build-system emacs-build-system)
10306 (propagated-inputs
10307 (list emacs-ivy emacs-password-store password-store))
10308 (home-page "https://github.com/ecraven/ivy-pass")
10309 (synopsis "Ivy interface for password store (pass)")
10310 (description "This package provides an Ivy interface for working with
10311 the password store @code{pass}.")
10312 (license license:gpl3))))
10313
10314 (define-public emacs-ivy-yasnippet
10315 (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
10316 (revision "2"))
10317 (package
10318 (name "emacs-ivy-yasnippet")
10319 (version (git-version "0.1" revision commit))
10320 (source
10321 (origin
10322 (method git-fetch)
10323 (uri (git-reference
10324 (url "https://github.com/mkcms/ivy-yasnippet")
10325 (commit commit)))
10326 (file-name (git-file-name name version))
10327 (sha256
10328 (base32
10329 "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
10330 (build-system emacs-build-system)
10331 (propagated-inputs
10332 (list emacs-ivy emacs-yasnippet emacs-dash))
10333 (home-page "https://github.com/mkcms/ivy-yasnippet")
10334 (synopsis "Preview @code{yasnippets} with @code{ivy}")
10335 (description "This package allows you to select @code{yasnippet}
10336 snippets using @code{ivy} completion. When current selection changes in the
10337 minibuffer, the snippet contents are temporarily expanded in the buffer. To
10338 use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
10339 @code{yas-minor-mode} first).")
10340 (license license:gpl3+))))
10341
10342 ;; The 0.1.6 release is incompatible with newer ivy versions, so we instead
10343 ;; pick a more recent snapshot of the repository, see
10344 ;; https://github.com/Yevgnen/ivy-rich/pull/80.
10345 (define-public emacs-ivy-rich
10346 (let ((commit "600b8183ed0be8668dcc548cc2c8cb94b001363b")
10347 (revision "2"))
10348 (package
10349 (name "emacs-ivy-rich")
10350 (version (git-version "0.1.6" revision commit))
10351 (source
10352 (origin
10353 (method git-fetch)
10354 (uri (git-reference
10355 (url "https://github.com/Yevgnen/ivy-rich")
10356 (commit commit)))
10357 (file-name (git-file-name name version))
10358 (sha256
10359 (base32 "1dv6vr7fv32v5m04zdy02sdajpvrnpc4i3pbh2dwfv73ff8d8yxm"))))
10360 (build-system emacs-build-system)
10361 (propagated-inputs
10362 (list emacs-ivy))
10363 (home-page "https://github.com/Yevgnen/ivy-rich")
10364 (synopsis "More friendly interface for @code{ivy}")
10365 (description
10366 "This package extends Ivy by showing more information in the minibuffer
10367 for each candidate. It adds columns showing buffer modes, file sizes,
10368 docstrings, etc. If @code{emacs-all-the-icons} is installed, it can show
10369 icons as well.")
10370 (license license:gpl3+))))
10371
10372 (define-public emacs-avy
10373 (package
10374 (name "emacs-avy")
10375 (version "0.5.0")
10376 (source
10377 (origin
10378 (method git-fetch)
10379 (uri (git-reference
10380 (url "https://github.com/abo-abo/avy")
10381 (commit version)))
10382 (file-name (git-file-name name version))
10383 (sha256
10384 (base32 "09qdni1s74i5pv8741szl5g4ynj8fxn0x65qmwa9rmfkbimnc0fs"))))
10385 (build-system emacs-build-system)
10386 (arguments
10387 `(#:tests? #t
10388 #:test-command '("make" "test")))
10389 (home-page "https://github.com/abo-abo/avy")
10390 (synopsis "Tree-based completion for Emacs")
10391 (description
10392 "This package provides a generic completion method based on building a
10393 balanced decision tree with each candidate being a leaf. To traverse the tree
10394 from the root to a desired leaf, typically a sequence of @code{read-key} can
10395 be used.
10396
10397 In order for @code{read-key} to make sense, the tree needs to be visualized
10398 appropriately, with a character at each branch node. So this completion
10399 method works only for things that you can see on your screen, all at once,
10400 such as the positions of characters, words, line beginnings, links, or
10401 windows.")
10402 (license license:gpl3+)))
10403
10404 (define-public emacs-ace-window
10405 (package
10406 (name "emacs-ace-window")
10407 (version "0.10.0")
10408 (source
10409 (origin
10410 (method git-fetch)
10411 (uri (git-reference
10412 (url "https://github.com/abo-abo/ace-window")
10413 (commit version)))
10414 (file-name (git-file-name name version))
10415 (sha256
10416 (base32
10417 "0f3r40d5yxp2pm2j0nn86s29nqj8py0jxjbj50v4ci3hsd92d8jl"))))
10418 (build-system emacs-build-system)
10419 (propagated-inputs
10420 (list emacs-avy))
10421 (home-page "https://github.com/abo-abo/ace-window")
10422 (synopsis "Quickly switch windows in Emacs")
10423 (description
10424 "@code{ace-window} is meant to replace @code{other-window}.
10425 In fact, when there are only two windows present, @code{other-window} is
10426 called. If there are more, each window will have its first character
10427 highlighted. Pressing that character will switch to that window.")
10428 (license license:gpl3+)))
10429
10430 (define-public emacs-windsize
10431 ;; There is no proper release. The base version is extracted from the
10432 ;; "Version" keyword in the main file.
10433 (let ((revision "1")
10434 (commit "62c2846bbe95b0a73e996c75e4a644d05f57aaaa"))
10435 (package
10436 (name "emacs-windsize")
10437 (version (git-version "0.1" revision commit))
10438 (source
10439 (origin
10440 (method git-fetch)
10441 (uri (git-reference
10442 (url "https://github.com/grammati/windsize")
10443 (commit commit)))
10444 (file-name (git-file-name name version))
10445 (sha256
10446 (base32 "13kfrmv3vmkfanxv9nym5v43hx5p7xkgqmx65zcxh4gcbaham1mi"))))
10447 (build-system emacs-build-system)
10448 (home-page "https://github.com/grammati/windsize")
10449 (synopsis "Easy resizing of Emacs windows")
10450 (description
10451 "This package allows moving the borders of the active window
10452 with the arrow keys. It prefers to move the right or bottom border when
10453 possible, and falls back to moving the left or top border otherwise.")
10454 (license license:gpl3+))))
10455
10456 (define-public emacs-window-purpose
10457 (package
10458 (name "emacs-window-purpose")
10459 (version "1.8.1")
10460 (source
10461 (origin
10462 (method git-fetch)
10463 (uri (git-reference
10464 (url "https://github.com/bmag/emacs-purpose.git")
10465 (commit (string-append "v" version))))
10466 (file-name (git-file-name name version))
10467 (sha256
10468 (base32
10469 "1cw513mh3gyl21qpmgwqjgpi8kwddmd4n69l4ax5a5pv3vvwrcx9"))))
10470 (build-system emacs-build-system)
10471 (propagated-inputs
10472 (list emacs-let-alist emacs-imenu-list))
10473 (arguments
10474 '(#:include
10475 '("^[^/]+.el$"
10476 "^[^/]+.el.in$"
10477 "^dir$"
10478 "^[^/]+.info$"
10479 "^[^/]+.texi$"
10480 "^[^/]+.texinfo$"
10481 "^doc/dir$"
10482 "^doc/[^/]+.info$"
10483 "^doc/[^/]+.texi$"
10484 "^doc/[^/]+.texinfo$"
10485 "^layouts$")
10486 #:exclude
10487 '("^.dir-locals.el$"
10488 "^test.el$"
10489 "^tests.el$"
10490 "^[^/]+-test.el$"
10491 "^[^/]+-tests.el$")))
10492 (home-page "https://github.com/bmag/emacs-purpose")
10493 (synopsis "Purpose-based window management for Emacs")
10494 (description "Purpose is a package that introduces the concept of a
10495 \"purpose\" for windows and buffers, and then helps you maintain a robust
10496 window layout easily.")
10497 (license license:gpl3+)))
10498
10499 (define-public emacs-iedit
10500 (package
10501 (name "emacs-iedit")
10502 (version "0.9.9.9.9")
10503 (source
10504 (origin
10505 (method git-fetch)
10506 (uri (git-reference
10507 (url "https://github.com/victorhge/iedit")
10508 (commit (string-append "v" version))))
10509 (file-name (git-file-name name version))
10510 (sha256
10511 (base32 "02jdyrff88n69d4kadjaac38gwcv28lhiqqa93rlqzdvmgqsbwak"))))
10512 (build-system emacs-build-system)
10513 (home-page "https://www.emacswiki.org/emacs/Iedit")
10514 (synopsis "Edit multiple regions in the same way simultaneously")
10515 (description
10516 "This package is an Emacs minor mode and allows you to edit one
10517 occurrence of some text in a buffer (possibly narrowed) or region, and
10518 simultaneously have other occurrences edited in the same way.
10519
10520 You can also use Iedit mode as a quick way to temporarily show only the buffer
10521 lines that match the current text being edited. This gives you the effect of
10522 a temporary @code{keep-lines} or @code{occur}.")
10523 (license license:gpl3+)))
10524
10525 (define-public emacs-zoutline
10526 (package
10527 (name "emacs-zoutline")
10528 (version "0.2.0")
10529 (source
10530 (origin
10531 (method git-fetch)
10532 (uri (git-reference
10533 (url "https://github.com/abo-abo/zoutline")
10534 (commit version)))
10535 (sha256
10536 (base32
10537 "1w0zh6vs7klgivq5r030a82mcfg1zwic4x3fimyiqyg5n8p67hyx"))
10538 (file-name (git-file-name name version))))
10539 (build-system emacs-build-system)
10540 (home-page "https://github.com/abo-abo/zoutline")
10541 (synopsis "Simple outline library")
10542 (description
10543 "This library provides helpers for outlines. Outlines allow users to
10544 navigate code in a tree-like fashion.")
10545 (license license:gpl3+)))
10546
10547 (define-public emacs-lispy
10548 ;; No release since May 2019 and tons of fixes have landed on master.
10549 ;; https://github.com/abo-abo/lispy/issues/513
10550 (let ((commit "df1b7e614fb0f73646755343e8892ddda310f427"))
10551 (package
10552 (name "emacs-lispy")
10553 (version (git-version "0.27.0" "3" commit))
10554 (home-page "https://github.com/abo-abo/lispy")
10555 (source (origin
10556 (method git-fetch)
10557 (uri (git-reference
10558 (url "https://github.com/abo-abo/lispy")
10559 (commit commit)))
10560 (sha256
10561 (base32
10562 "02pmnn9cqslahnvllqzawp2j5icmb3wgkrk4qrfxjds68jg7pjj4"))
10563 (patches
10564 (search-patches "emacs-lispy-fix-thread-last-test.patch"))
10565 (file-name (git-file-name name version))))
10566 (build-system emacs-build-system)
10567 (propagated-inputs
10568 (list emacs-ace-window emacs-hydra emacs-iedit emacs-swiper
10569 emacs-zoutline))
10570 (native-inputs
10571 (list which emacs-clojure-mode emacs-undercover))
10572 (arguments
10573 (list
10574 #:include #~(cons* "^lispy-clojure\\.clj$"
10575 "^lispy-python\\.py$"
10576 %default-include)
10577 #:phases
10578 ;; XXX: Some failing tests
10579 #~(modify-phases %standard-phases
10580 (add-before 'check 'make-test-writable
10581 (lambda _
10582 (make-file-writable "lispy-test.el")))
10583 (add-before 'check 'remove-failing-test
10584 (lambda _
10585 (emacs-batch-edit-file "lispy-test.el"
10586 `(progn
10587 (dolist (test '("lispy-eval-python-str" "lispy--clojure-dot-object"))
10588 (goto-char (point-min))
10589 (re-search-forward
10590 (concat "ert-deftest " test))
10591 (beginning-of-line)
10592 (kill-sexp))
10593 (basic-save-buffer))))))
10594 #:tests? #t
10595 ;; Set BEMACS to prevent the test suite from loading straight.el.
10596 #:test-command #~(list "make" "test" "BEMACS=emacs -batch")))
10597 (synopsis "Modal S-expression editing")
10598 (description
10599 "Due to the structure of Lisp syntax it's very rare for the programmer
10600 to want to insert characters right before \"(\" or right after \")\". Thus
10601 unprefixed printable characters can be used to call commands when the point is
10602 at one of these special locations. Lispy provides unprefixed keybindings for
10603 S-expression editing when point is at the beginning or end of an
10604 S-expression.")
10605 (license license:gpl3+))))
10606
10607 (define-public emacs-lispyville
10608 (let ((commit "89316f01822b2135e52ca27fd308d207ef618052")
10609 (revision "3"))
10610 (package
10611 (name "emacs-lispyville")
10612 (version (git-version "0.1" revision commit))
10613 (home-page "https://github.com/noctuid/lispyville")
10614 (source (origin
10615 (method git-fetch)
10616 (uri (git-reference (url home-page) (commit commit)))
10617 (sha256
10618 (base32
10619 "10k3hxxpx2v2k4dyad7j1bzmr1q7rzvv4y6c67pa9zcqyaw8m91v"))
10620 (file-name (git-file-name name version))))
10621 (propagated-inputs
10622 (list emacs-evil emacs-lispy))
10623 (build-system emacs-build-system)
10624 (synopsis "Minor mode for integrating Evil with lispy")
10625 (description
10626 "LispyVille's main purpose is to provide a Lisp editing environment
10627 suited towards Evil users. It can serve as a minimal layer on top of lispy
10628 for better integration with Evil, but it does not require the use of lispy’s
10629 keybinding style. The provided commands allow for editing Lisp in normal
10630 state and will work even without lispy being enabled.")
10631 (license license:gpl3+))))
10632
10633 (define-public emacs-lpy
10634 ;; There is no proper release/tag.
10635 (let ((commit "ce78a4613458790cc785c1687af7eed8f0d8d66c")
10636 (revision "5"))
10637 (package
10638 (name "emacs-lpy")
10639 (version (git-version "0.1.0" revision commit))
10640 (source
10641 (origin
10642 (method git-fetch)
10643 (uri (git-reference
10644 (url "https://github.com/abo-abo/lpy")
10645 (commit commit)))
10646 (sha256
10647 (base32
10648 "1vxrjy6k030hcbclblgcaaw7h6k17kl3n9zla08527525c0gma01"))
10649 (file-name (git-file-name name version))))
10650 (propagated-inputs
10651 (list emacs-zoutline emacs-lispy))
10652 (build-system emacs-build-system)
10653 (home-page "https://github.com/abo-abo/lpy")
10654 (synopsis "Modal editing for Python")
10655 (description
10656 "This package provides a minor mode for Python that binds useful
10657 commands to unprefixed keys, such as @code{j} or @code{e}, under certain
10658 circumstances, and leaves the keys untouched outside of those situations,
10659 allowing unprefixed keys to insert their respective characters as expected.")
10660 (license license:gpl3+))))
10661
10662 (define-public emacs-clojure-mode
10663 (package
10664 (name "emacs-clojure-mode")
10665 (version "5.15.1")
10666 (source
10667 (origin
10668 (method git-fetch)
10669 (uri (git-reference
10670 (url "https://github.com/clojure-emacs/clojure-mode")
10671 (commit (string-append "v" version))))
10672 (file-name (git-file-name name version))
10673 (sha256
10674 (base32 "12m3yjhy4q0x3ri4xxb9raqg9lmw4hk4jgn436d9zvsk4fr3h1nd"))))
10675 (build-system emacs-build-system)
10676 (native-inputs
10677 (list emacs-buttercup emacs-dash emacs-paredit emacs-s))
10678 (arguments
10679 `(#:tests? #t
10680 #:test-command '("buttercup")))
10681 (home-page "https://github.com/clojure-emacs/clojure-mode")
10682 (synopsis "Major mode for Clojure code")
10683 (description
10684 "This Emacs package provides font-lock, indentation, navigation and basic
10685 refactoring for the @uref{http://clojure.org, Clojure programming language}.
10686 It is recommended to use @code{clojure-mode} with Paredit or Smartparens.")
10687 (license license:gpl3+)))
10688
10689 (define-public emacs-clojure-snippets
10690 ;; Use latest commit (2018) since latest tagged release is too old and is
10691 ;; missing important changes.
10692 (let ((version "1.0.1")
10693 (revision "0")
10694 (commit "6068dca90467a0f4ebc2cd39338a173d6f5ddc04"))
10695 (package
10696 (name "emacs-clojure-snippets")
10697 (version (git-version version revision commit))
10698 (source
10699 (origin
10700 (method git-fetch)
10701 (uri (git-reference
10702 (url "https://github.com/mpenet/clojure-snippets")
10703 (commit commit)))
10704 (file-name (git-file-name name version))
10705 (sha256
10706 (base32 "0vvadcydpsz4b17dlm1jd4fbddzfqibh3mlzv3k4gvp67vv10cqy"))))
10707 (build-system emacs-build-system)
10708 (arguments
10709 `(#:include (cons* "^.*\\/" %default-include)))
10710 (propagated-inputs
10711 (list emacs-yasnippet))
10712 (home-page "https://github.com/mpenet/clojure-snippets")
10713 (synopsis "Yasnippets for Clojure")
10714 (description
10715 "This package provides Yasnippets snippets for Clojure.")
10716 (license license:gpl3+))))
10717
10718 (define-public emacs-anakondo
10719 ;; This particular commit introduces bug fixes above latest release.
10720 (let ((version "0.2.1")
10721 (revision "0")
10722 (commit "c48518560815c49d8d78fb9069906d17e883385e"))
10723 (package
10724 (name "emacs-anakondo")
10725 (version (git-version version revision commit))
10726 (source
10727 (origin
10728 (method git-fetch)
10729 (uri (git-reference
10730 (url "https://github.com/didibus/anakondo")
10731 (commit commit)))
10732 (file-name (git-file-name name version))
10733 (sha256
10734 (base32 "1fzsqd150gpmrj8kz3zy9cd78x9vank7ra720mljhyf04z0h1mj6"))))
10735 (build-system emacs-build-system)
10736 (home-page "https://github.com/didibus/anakondo")
10737 (synopsis "clj-kondo based Clojure[Script] editing facilities")
10738 (description
10739 "This package makes use of clj-kondo's analysis data to provide code
10740 editing facilities related to Clojure, ClojureScript and cljc source.")
10741 (license license:expat))))
10742
10743 (define-public emacs-epl
10744 (package
10745 (name "emacs-epl")
10746 (version "0.9")
10747 (source
10748 (origin
10749 (method git-fetch)
10750 (uri (git-reference
10751 (url "https://github.com/cask/epl")
10752 (commit version)))
10753 (file-name (git-file-name name version))
10754 (sha256
10755 (base32 "0d3z5z90ln8ipk1yds1n1p8fj9yyh2kpspqjs7agl38indra3nb4"))))
10756 (build-system emacs-build-system)
10757 (home-page "https://github.com/cask/epl")
10758 (synopsis "Emacs Package Library")
10759 (description
10760 "A package management library for Emacs, based on @code{package.el}.
10761
10762 The purpose of this library is to wrap all the quirks and hassle of
10763 @code{package.el} into a sane API.")
10764 (license license:gpl3+)))
10765
10766 (define-public emacs-counsel-jq
10767 (package
10768 (name "emacs-counsel-jq")
10769 (version "1.1")
10770 (home-page "https://github.com/200ok-ch/counsel-jq")
10771 (source
10772 (origin
10773 (method git-fetch)
10774 (uri (git-reference
10775 (url home-page)
10776 (commit "aaf33fc2447096cd0d03b77395fe2a95c9fe1481")))
10777 (file-name (git-file-name name version))
10778 (sha256
10779 (base32 "10rz0qm8a4bl0m86kx19zq8lri047p4sxqyny08bgm9pbam0wvwn"))))
10780 (build-system emacs-build-system)
10781 (propagated-inputs
10782 (list emacs-swiper jq))
10783 (synopsis "Live preview @code{jq} queries using counsel")
10784 (description
10785 "This Emacs package provides the ability to live preview @code{jq}
10786 queries using counsel.")
10787 (license license:gpl3+)))
10788
10789 (define-public emacs-counsel-notmuch
10790 ;; Upstream provides no release. Extract version for main file.
10791 (let ((commit "a4a1562935e4180c42524c51609d1283e9be0688")
10792 (revision "0"))
10793 (package
10794 (name "emacs-counsel-notmuch")
10795 (version (git-version "1.0" revision commit))
10796 (source
10797 (origin
10798 (method git-fetch)
10799 (uri (git-reference
10800 (url "https://github.com/fuxialexander/counsel-notmuch")
10801 (commit commit)))
10802 (file-name (git-file-name name version))
10803 (sha256
10804 (base32 "01k1321d961kc2i660a5595bqk0d85f16snsxngsn5si6y83kqr7"))))
10805 (build-system emacs-build-system)
10806 (arguments
10807 `(#:phases
10808 (modify-phases %standard-phases
10809 (add-after 'unpack 'locate-notmuch
10810 (lambda* (#:key inputs #:allow-other-keys)
10811 (make-file-writable "counsel-notmuch.el")
10812 (emacs-substitute-variables "counsel-notmuch.el"
10813 ("counsel-notmuch-path"
10814 (search-input-file inputs "/bin/notmuch"))))))))
10815 (inputs
10816 (list emacs-counsel notmuch emacs-s))
10817 (propagated-inputs
10818 (list emacs-notmuch))
10819 (home-page "https://github.com/fuxialexander/counsel-notmuch")
10820 (synopsis "Search emails in Notmuch asynchronously with Ivy")
10821 (description
10822 "This package can be used to search emails in Notmuch
10823 asynchronously, with Counsel and Ivy. Simply call
10824 @code{counsel-notmuch} and input your Notmuch query.")
10825 (license license:gpl3+))))
10826
10827 (define-public emacs-counsel-projectile
10828 (package
10829 (name "emacs-counsel-projectile")
10830 (version "0.3.2")
10831 (source
10832 (origin
10833 (method git-fetch)
10834 (uri (git-reference
10835 (url "https://github.com/ericdanan/counsel-projectile")
10836 (commit version)))
10837 (file-name (git-file-name name version))
10838 (sha256
10839 (base32 "1vp39r5njfzchkqv9g0w77whazp070anh9gmbkp3z4n3xxbik27f"))))
10840 (build-system emacs-build-system)
10841 (propagated-inputs
10842 (list emacs-counsel emacs-projectile))
10843 (home-page "https://github.com/ericdanan/counsel-projectile")
10844 (synopsis "Enhance Projectile with Ivy")
10845 (description
10846 "This package uses Ivy to provide additional actions for Projectile
10847 commands and replacements for existing functions.")
10848 (license license:gpl3+)))
10849
10850 (define-public emacs-qml-mode
10851 (package
10852 (name "emacs-qml-mode")
10853 (version "0.4")
10854 (source (origin
10855 (method git-fetch)
10856 (uri (git-reference
10857 (url "https://github.com/coldnew/qml-mode")
10858 (commit version)))
10859 (file-name (git-file-name name version))
10860 (sha256
10861 (base32
10862 "1sncsvzjfgmhp4m8w5jd4y51k24n2jfpgvrkd64wlhhzbj3wb947"))))
10863 (build-system emacs-build-system)
10864 (home-page "https://github.com/coldnew/qml-mode/")
10865 (synopsis "Qt Modeling Language (QML) mode for Emacs")
10866 (description "This package provides the @code{qml-mode} major Emacs mode
10867 for editing source files written in the Qt Modeling Language (QML) user
10868 interface markup language. It provides syntax highlighting and basic
10869 navigation commands. @code{qml-mode} is derived from code{js-mode}, the Emacs
10870 builtin JavaScript mode.")
10871 (license license:gpl2+)))
10872
10873 (define-public emacs-queue
10874 (package
10875 (name "emacs-queue")
10876 (version "0.2")
10877 (source (origin
10878 (method url-fetch)
10879 (uri (string-append "https://elpa.gnu.org/packages/queue-"
10880 version ".el"))
10881 (sha256
10882 (base32
10883 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
10884 (build-system emacs-build-system)
10885 (home-page "https://www.dr-qubit.org/emacs_data-structures.html")
10886 (synopsis "Queue data structure for Emacs")
10887 (description
10888 "This Emacs library provides queue data structure. These queues can be
10889 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
10890 stack, i.e. elements can be added to the front or back of the queue, and can
10891 be removed from the front. This type of data structure is sometimes called an
10892 \"output-restricted deque\".")
10893 (license license:gpl3+)))
10894
10895 (define-public emacs-quickrun
10896 (package
10897 (name "emacs-quickrun")
10898 (version "2.3.1")
10899 (source
10900 (origin
10901 (method git-fetch)
10902 (uri (git-reference
10903 (url "https://github.com/emacsorphanage/quickrun")
10904 (commit version)))
10905 (sha256
10906 (base32 "0a1n2v09h0n7d9p2izflqqang4ny0b46dlqvmxvkkik4bb6f4wcz"))
10907 (file-name (git-file-name name version))))
10908 (build-system emacs-build-system)
10909 (home-page "https://github.com/emacsorphanage/quickrun")
10910 (synopsis "Execute editing buffer and show its output quickly")
10911 (description
10912 "This package evaluates the content of a buffer, or region, and displays
10913 the result. Quickrun executes not only script languages (Perl, Ruby, Python
10914 etc), but also compiling languages (C, C++, Go, Java etc) and markup
10915 languages.")
10916 (license license:gpl3+)))
10917
10918 (define-public emacs-pkg-info
10919 (package
10920 (name "emacs-pkg-info")
10921 (version "0.6")
10922 (source
10923 (origin
10924 (method git-fetch)
10925 (uri (git-reference
10926 (url "https://github.com/lunaryorn/pkg-info.el")
10927 (commit version)))
10928 (file-name (git-file-name name version))
10929 (sha256
10930 (base32 "0nk12dcppdyhav6m6yf7abpywyd7amxd4237zsfd32w4zxsx39k1"))))
10931 (build-system emacs-build-system)
10932 (propagated-inputs (list emacs-epl))
10933 (home-page "https://github.com/lunaryorn/pkg-info.el")
10934 (synopsis "Information about Emacs packages")
10935 (description
10936 "This library extracts information from the installed Emacs packages.")
10937 (license license:gpl3+)))
10938
10939 (define-public emacs-spinner
10940 (package
10941 (name "emacs-spinner")
10942 (version "1.7.4")
10943 (source (origin
10944 (method url-fetch)
10945 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
10946 version ".tar"))
10947 (sha256
10948 (base32 "140kss25ijbwf8hzflbjz67ry76w2cyrh02axk95n6qcxv7jr7pv"))))
10949 (build-system emacs-build-system)
10950 (home-page "https://github.com/Malabarba/spinner.el")
10951 (synopsis "Emacs mode-line spinner for operations in progress")
10952 (description
10953 "This Emacs package adds spinners and progress-bars to the mode-line for
10954 ongoing operations.")
10955 (license license:gpl3+)))
10956
10957 (define-public emacs-sparql-mode
10958 (package
10959 (name "emacs-sparql-mode")
10960 (version "4.0.2")
10961 (source
10962 (origin
10963 (method git-fetch)
10964 (uri (git-reference
10965 (url "https://github.com/ljos/sparql-mode")
10966 (commit (string-append "v" version))))
10967 (file-name (git-file-name name version))
10968 (sha256
10969 (base32 "0hqp8r24wvzrkl630wbm0lynrcrnawv2yn2a3xgwqwwhwgva35rn"))))
10970 (build-system emacs-build-system)
10971 (propagated-inputs
10972 (list emacs-company))
10973 (home-page "https://github.com/ljos/sparql-mode")
10974 (synopsis "SPARQL mode for Emacs")
10975 (description
10976 "This package is a major mode for Emacs that provides syntax highlighting
10977 for SPARQL. It can also execute queries against a SPARQL HTTP endpoint, such
10978 as Fuseki or DBPedia.")
10979 (license license:gpl3+)))
10980
10981 (define-public emacs-better-defaults
10982 (package
10983 (name "emacs-better-defaults")
10984 (version "0.1.3")
10985 (source
10986 (origin
10987 (method git-fetch)
10988 (uri (git-reference
10989 (url "https://git.sr.ht/~technomancy/better-defaults")
10990 (commit version)))
10991 (file-name (git-file-name name version))
10992 (sha256
10993 (base32
10994 "1rxznx2l0cdpiz8mad8s6q17m1fngpgb1cki7ch6yh18r3qz8ysr"))))
10995 (build-system emacs-build-system)
10996 (home-page "https://git.sr.ht/~technomancy/better-defaults")
10997 (synopsis "Better defaults for Emacs")
10998 (description
10999 "Better defaults attempts to address the most obvious deficiencies of the
11000 Emacs default configuration in uncontroversial ways that nearly everyone can
11001 agree upon.")
11002 (license license:gpl3+)))
11003
11004 (define-public emacs-undohist-el
11005 (package
11006 (name "emacs-undohist-el")
11007 (version "0.2.1")
11008 (source
11009 (origin
11010 (method git-fetch)
11011 (uri (git-reference
11012 (url "https://github.com/m2ym/undohist-el")
11013 (commit version)))
11014 (file-name (git-file-name name version))
11015 (sha256
11016 (base32 "0hmx2b20nrxg2lb8vplgrzdh8chgxwlbmjvbq5scddggd302sd56"))))
11017 (build-system emacs-build-system)
11018 (home-page "https://github.com/m2ym/undohist-el")
11019 (synopsis "Save undo history between sessions")
11020 (description "This package allows persistent use of undo history for
11021 individual file buffers.")
11022 (license license:gpl3+)))
11023
11024 (define-public emacs-eprime
11025 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
11026 (package
11027 (name "emacs-eprime")
11028 (version (string-append "20140513-" (string-take commit 7)))
11029 (source (origin
11030 (method url-fetch)
11031 (uri (string-append "https://raw.githubusercontent.com"
11032 "/AndrewHynes/eprime-mode/"
11033 commit "/eprime-mode.el"))
11034 (file-name (string-append "eprime-" version ".el"))
11035 (sha256
11036 (base32
11037 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
11038 (build-system emacs-build-system)
11039 (home-page "https://github.com/AndrewHynes/eprime-mode")
11040 (synopsis "E-prime checking mode for Emacs")
11041 (description "This package provides an E-prime checking mode for Emacs
11042 that highlights non-conforming text. The subset of the English language called
11043 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
11044 (license license:gpl3+))))
11045
11046 (define-public emacs-julia-mode
11047 (package
11048 (name "emacs-julia-mode")
11049 (version "0.4")
11050 (source
11051 (origin
11052 (method git-fetch)
11053 (uri (git-reference
11054 (url "https://github.com/JuliaEditorSupport/julia-emacs")
11055 (commit version)))
11056 (file-name (git-file-name name version))
11057 (sha256
11058 (base32
11059 "1w131jb9mhvyjxa0p93iwfhzidgbcs6b8i6jg79yisqb9wchik99"))))
11060 (build-system emacs-build-system)
11061 (arguments
11062 `(#:tests? #t
11063 #:test-command '("emacs" "--batch"
11064 "-l" "julia-mode-tests.el"
11065 "-f" "ert-run-tests-batch-and-exit")))
11066 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
11067 (synopsis "Major mode for Julia")
11068 (description "This Emacs package provides a mode for the Julia
11069 programming language.")
11070 (license license:expat)))
11071
11072 (define-public emacs-julia-repl
11073 (package
11074 (name "emacs-julia-repl")
11075 (version "1.3.0")
11076 (source (origin
11077 (method git-fetch)
11078 (uri (git-reference
11079 (url "https://github.com/tpapp/julia-repl")
11080 (commit version)))
11081 (file-name (git-file-name name version))
11082 (sha256
11083 (base32
11084 "11vpqqnxqj9nxh8kccj4y6h3f8lib6jxnsk6vxc2j2fqw6alnafm"))))
11085 (build-system emacs-build-system)
11086 (home-page "https://github.com/tpapp/julia-repl")
11087 (synopsis "Minor mode for interacting with a Julia REPL")
11088 (description "This package provides a minor mode for interacting with a
11089 Julia REPL running inside Emacs. The julia process is started in an ANSI
11090 terminal (term), which allows text formatting and colors, and interaction with
11091 the help system and the debugger. It is recommended that you use this minor
11092 mode with the package emacs-julia-mode.")
11093 (license license:expat)))
11094
11095 (define-public emacs-julia-snail
11096 (package
11097 (name "emacs-julia-snail")
11098 (version "1.1.5")
11099 (source (origin
11100 (method git-fetch)
11101 (uri (git-reference
11102 (url "https://github.com/gcv/julia-snail")
11103 (commit version)))
11104 (file-name (git-file-name name version))
11105 (sha256
11106 (base32
11107 "04nh37izz04lxkvkxhsig8khbrrgdl4p6pkjsv5bxymnp84zwlw7"))))
11108 (build-system emacs-build-system)
11109 (arguments
11110 (list #:include #~(cons "^JuliaSnail\\.jl" %default-include)))
11111 (inputs
11112 (list emacs-dash emacs-s emacs-spinner emacs-xref))
11113 (propagated-inputs
11114 (list libvterm
11115 emacs-julia-mode ;required by parser
11116 emacs-parsec ;required by parser
11117 emacs-vterm))
11118 (home-page "https://github.com/gcv/julia-snail")
11119 (synopsis "Development environment and REPL interaction package for Julia")
11120 (description "This package provides a development environment and REPL
11121 interaction package for Julia in the spirit of Common Lisp’s SLIME and
11122 Clojure’s CIDER. It enables convenient and dynamic REPL-driven development.")
11123 (license license:gpl3)))
11124
11125 (define-public emacs-smex
11126 (package
11127 (name "emacs-smex")
11128 (version "3.0")
11129 (source (origin
11130 (method url-fetch)
11131 (uri (string-append "https://raw.githubusercontent.com"
11132 "/nonsequitur/smex/" version "/smex.el"))
11133 (file-name (string-append "smex-" version ".el"))
11134 (sha256
11135 (base32
11136 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
11137 (build-system emacs-build-system)
11138 (home-page "https://github.com/nonsequitur/smex/")
11139 (synopsis "M-x interface with Ido-style fuzzy matching")
11140 (description
11141 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
11142 convenient interface to your recently and most frequently used commands. And
11143 to all the other commands, too.")
11144 (license license:gpl3+)))
11145
11146 (define-public emacs-js2-mode
11147 (package
11148 (name "emacs-js2-mode")
11149 (version "20220710")
11150 (source
11151 (origin
11152 (method git-fetch)
11153 (uri (git-reference
11154 (url "https://github.com/mooz/js2-mode")
11155 (commit version)))
11156 (file-name (git-file-name name version))
11157 (sha256
11158 (base32 "0whvhmgpv6yxqiljd1l4a880i0dhp0z0jxqaad7jjvwij07vvla4"))))
11159 (build-system emacs-build-system)
11160 (arguments
11161 `(#:tests? #t
11162 #:test-command '("make" "test")))
11163 (home-page "https://github.com/mooz/js2-mode/")
11164 (synopsis "Improved JavaScript editing mode for Emacs")
11165 (description
11166 "Js2-mode provides a JavaScript major mode for Emacs that is more
11167 advanced than the built-in javascript-mode. Features include accurate syntax
11168 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
11169 errors and strict-mode warnings, smart line-wrapping within comments and
11170 strings, and code folding.")
11171 (license license:gpl3+)))
11172
11173 (define-public emacs-js-comint
11174 (package
11175 (name "emacs-js-comint")
11176 (version "1.2.0")
11177 (source
11178 (origin
11179 (method url-fetch)
11180 (uri (string-append "https://stable.melpa.org/packages/"
11181 "js-comint-" version ".el"))
11182 (sha256
11183 (base32 "1qin0hclm3ly62nl5ddiim64bcd2k74b1yqsqqc61cf9k2q8k287"))))
11184 (build-system emacs-build-system)
11185 (home-page "https://github.com/redguardtoo/js-comint")
11186 (synopsis "Interacting with a JavaScript interpeter")
11187 (description
11188 "This program is a comint mode for Emacs which allows you to run a
11189 compatible JavaScript REPL, such as node, SpiderMonkey or Rhino.
11190 It also defines a few functions for sending JavaScript input to this REPL from
11191 an Emacs buffer.")
11192 (license license:gpl3+)))
11193
11194 (define-public emacs-nodejs-repl
11195 (package
11196 (name "emacs-nodejs-repl")
11197 (version "0.2.4")
11198 (source (origin
11199 (method git-fetch)
11200 (uri (git-reference
11201 (url "https://github.com/abicky/nodejs-repl.el")
11202 (commit version)))
11203 (file-name (git-file-name name version))
11204 (sha256
11205 (base32
11206 "0a5mmg3cmdi73giblp07ksl06xzl9nb2m3f96ny4r3rv0ar3v1bx"))))
11207 (build-system emacs-build-system)
11208 (inputs
11209 (list node))
11210 (native-inputs
11211 (list emacs-ert-expectations))
11212 (arguments
11213 `(#:phases
11214 (modify-phases %standard-phases
11215 (add-after 'unpack 'set-shell
11216 ;; Setting the SHELL environment variable is required for the tests
11217 ;; to find sh.
11218 (lambda _
11219 (setenv "SHELL" (which "sh"))
11220 #t))
11221 (add-after 'unpack 'configure
11222 (lambda* (#:key inputs outputs #:allow-other-keys)
11223 (let ((node (assoc-ref inputs "node")))
11224 ;; Specify the absolute file names of the various
11225 ;; programs so that everything works out-of-the-box.
11226 (make-file-writable "nodejs-repl.el")
11227 (emacs-substitute-variables
11228 "nodejs-repl.el"
11229 ("nodejs-repl-command"
11230 (string-append node "/bin/node")))))))
11231 #:tests? #t
11232 #:test-command '("emacs" "-Q" "--batch"
11233 "-L" "."
11234 "-l" "test/test.el"
11235 "-f" "ert-run-tests-batch-and-exit")))
11236 (home-page "https://github.com/abicky/nodejs-repl.el")
11237 (synopsis "Node.js REPL inside Emacs")
11238 (description
11239 "This program is derived from comint-mode and provides the following
11240 features:
11241
11242 @itemize
11243 @item TAB completion same as Node.js REPL
11244 @item file name completion in string
11245 @item incremental history search
11246 @end itemize")
11247 (license license:gpl3+)))
11248
11249 (define-public emacs-typescript-mode
11250 (package
11251 (name "emacs-typescript-mode")
11252 (version "0.4")
11253 (source (origin
11254 (method git-fetch)
11255 (uri (git-reference
11256 (url "https://github.com/ananthakumaran/typescript.el")
11257 (commit (string-append "v" version))))
11258 (file-name (git-file-name name version))
11259 (sha256
11260 (base32
11261 "186bpvqxx87kp3857mq0mzn1ddsvzmpijix810k6bdz8522x7zdw"))))
11262 (build-system emacs-build-system)
11263 (home-page "https://github.com/ananthakumaran/typescript.el")
11264 (synopsis "Emacs major mode for editing Typescript code")
11265 (description
11266 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
11267 This is much more robust and works with @code{cc-mode}'s comment
11268 filling (mostly). The modifications to the original @code{javascript.el} mode
11269 mainly consisted in replacing \"javascript\" with \"typescript\"
11270
11271 The main features of this Typescript mode are syntactic highlighting (enabled
11272 with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
11273 indentation and filling of comments and C preprocessor fontification.")
11274 (license license:gpl3+)))
11275
11276 (define-public emacs-tide
11277 (package
11278 (name "emacs-tide")
11279 (version "4.5.4")
11280 (source (origin
11281 (method git-fetch)
11282 (uri (git-reference
11283 (url "https://github.com/ananthakumaran/tide")
11284 (commit (string-append "v" version))))
11285 (file-name (git-file-name name version))
11286 (sha256
11287 (base32
11288 "0zrapfxdarakp3kwp73c2ymjx51fsnfk6azi2y1wb2kgsdxl2yim"))))
11289 (build-system emacs-build-system)
11290 (propagated-inputs
11291 (list emacs-dash emacs-flycheck emacs-s emacs-typescript-mode))
11292 (home-page "https://github.com/ananthakumaran/tide")
11293 (synopsis "Typescript IDE for Emacs")
11294 (description
11295 "Tide is an Interactive Development Environment (IDE) for Emacs which
11296 provides the following features:
11297
11298 @itemize
11299 @item ElDoc
11300 @item Auto complete
11301 @item Flycheck
11302 @item Jump to definition, Jump to type definition
11303 @item Find occurrences
11304 @item Rename symbol
11305 @item Imenu
11306 @item Compile On Save
11307 @item Highlight Identifiers
11308 @item Code Fixes
11309 @item Code Refactor
11310 @item Organize Imports
11311 @end itemize")
11312 (license license:gpl3+)))
11313
11314 (define-public emacs-markdown-mode
11315 (package
11316 (name "emacs-markdown-mode")
11317 (version "2.5")
11318 (source
11319 (origin
11320 (method git-fetch)
11321 (uri (git-reference
11322 (url "https://github.com/jrblevin/markdown-mode")
11323 (commit (string-append "v" version))))
11324 (file-name (git-file-name name version))
11325 (sha256
11326 (base32 "02vw1zsbwa2hc3sxvbpvbldi5cf1xgd5b9l6fwg24d24j6b2af0j"))))
11327 (build-system emacs-build-system)
11328 (home-page "https://jblevins.org/projects/markdown-mode/")
11329 (synopsis "Emacs Major mode for Markdown files")
11330 (description
11331 "Markdown-mode is a major mode for editing Markdown-formatted text files
11332 in Emacs.")
11333 (license license:gpl3+)))
11334
11335 (define-public emacs-evil-markdown
11336 (let ((commit "685d7fbb81bc02fa32779d2a127b99a0c8c7436b")
11337 (revision "2"))
11338 (package
11339 (name "emacs-evil-markdown")
11340 (version (git-version "0.0.2" revision commit))
11341 (source
11342 (origin
11343 (method git-fetch)
11344 (uri (git-reference
11345 (url "https://github.com/Somelauw/evil-markdown")
11346 (commit commit)))
11347 (file-name (git-file-name name version))
11348 (sha256
11349 (base32 "1z1sjn6dcqv8mmkh6nfcwhnql2z6xr9yx3hs77bfxj79pf3c466p"))))
11350 (build-system emacs-build-system)
11351 (propagated-inputs
11352 (list emacs-evil emacs-markdown-mode))
11353 (home-page "https://github.com/Somelauw/evil-markdown/")
11354 (synopsis "Evil keybindings for @code{markdown-mode}")
11355 (description
11356 "This package provides custom text objects and bindings for
11357 @code{markdown-mode}.")
11358 (license license:gpl3+))))
11359
11360 (define-public emacs-edit-indirect
11361 (package
11362 (name "emacs-edit-indirect")
11363 (version "0.1.10")
11364 (source
11365 (origin
11366 (method git-fetch)
11367 (uri (git-reference
11368 (url "https://github.com/Fanael/edit-indirect")
11369 (commit version)))
11370 (file-name (git-file-name name version))
11371 (sha256
11372 (base32 "13v0fvzh3nv3bm4c3ld7pknw2g76cjkx81hsrmbrd1irlv4s4b00"))))
11373 (build-system emacs-build-system)
11374 (home-page "https://github.com/Fanael/edit-indirect")
11375 (synopsis "Edit regions in separate buffers")
11376 (description "This package allows you to edit regions in separate buffers,
11377 like @code{org-edit-src-code} but for arbitrary regions.")
11378 (license license:bsd-2)))
11379
11380 (define-public emacs-projectile
11381 (package
11382 (name "emacs-projectile")
11383 (version "2.5.0")
11384 (source (origin
11385 (method url-fetch)
11386 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
11387 "/projectile/v" version "/projectile.el"))
11388 (file-name (string-append "projectile-" version ".el"))
11389 (sha256
11390 (base32
11391 "1wy2kpli90z7p4dqr4b7f1fv99g6lfxi1kzy2bfl0p8qi40rpmyv"))))
11392 (build-system emacs-build-system)
11393 (propagated-inputs
11394 (list emacs-dash emacs-pkg-info))
11395 (home-page "https://github.com/bbatsov/projectile")
11396 (synopsis "Manage and navigate projects in Emacs easily")
11397 (description
11398 "This library provides easy project management and navigation. The
11399 concept of a project is pretty basic - just a folder containing special file.
11400 Currently git, mercurial and bazaar repos are considered projects by default.
11401 If you want to mark a folder manually as a project just create an empty
11402 .projectile file in it.")
11403 (license license:gpl3+)))
11404
11405 (define-public emacs-skeletor
11406 (let ((commit "47c5b761aee8452716c97a69949ac2f675affe13")
11407 (revision "1"))
11408 (package
11409 (name "emacs-skeletor")
11410 (version (git-version "1.6.1" revision commit))
11411 (source (origin
11412 (method git-fetch)
11413 (uri (git-reference
11414 (url "https://github.com/chrisbarrett/skeletor.el")
11415 (commit commit)))
11416 (file-name (git-file-name name version))
11417 (sha256
11418 (base32
11419 "12bdgykfh4mwsqdazxjdvha62h3q3v33159ypy91f6x59y01fi0n"))))
11420 (build-system emacs-build-system)
11421 (propagated-inputs
11422 (list emacs-s emacs-f emacs-dash emacs-let-alist))
11423 (native-inputs
11424 (list emacs-ert-runner))
11425 (arguments
11426 `(#:include (cons "^project-skeletons\\/" %default-include)
11427 ;; XXX: one failing test involving initializing a git repo
11428 #:phases
11429 (modify-phases %standard-phases
11430 (add-before 'check 'make-test-writable
11431 (lambda _
11432 (make-file-writable "test/skeletor-test.el")
11433 #t))
11434 (add-before 'check 'remove-git-test
11435 (lambda _
11436 (emacs-batch-edit-file "test/skeletor-test.el"
11437 `(progn
11438 (progn
11439 (goto-char (point-min))
11440 (re-search-forward
11441 "ert-deftest initialises-git-repo")
11442 (beginning-of-line)
11443 (kill-sexp))
11444 (basic-save-buffer)))
11445 #t)))
11446 #:tests? #t
11447 #:test-command '("ert-runner")))
11448 (home-page "https://github.com/chrisbarrett/skeletor.el")
11449 (synopsis "Project skeletons for Emacs")
11450 (description "This package provides project templates and automates the
11451 mundane parts of setting up a new project, such as version control, licenses,
11452 and tooling.")
11453 (license license:gpl3+))))
11454
11455 (define-public emacs-elfeed
11456 (package
11457 (name "emacs-elfeed")
11458 (version "3.4.1")
11459 (source
11460 (origin
11461 (method git-fetch)
11462 (uri (git-reference
11463 (url "https://github.com/skeeto/elfeed")
11464 (commit version)))
11465 (file-name (git-file-name name version))
11466 (sha256
11467 (base32 "1ghdvfn4f9y69r59i1ga9b3ib1r8sbqg6q1v5rz3f9paagfavrd1"))))
11468 (build-system emacs-build-system)
11469 (arguments
11470 `(#:tests? #t
11471 #:test-command '("make" "test")))
11472 (home-page "https://github.com/skeeto/elfeed")
11473 (synopsis "Atom/RSS feed reader for Emacs")
11474 (description
11475 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
11476 and RSS, with a user interface inspired by notmuch.")
11477 (license license:gpl3+)))
11478
11479 (define-public emacs-elfeed-org
11480 (let ((commit "77b6bbf222487809813de260447d31c4c59902c9"))
11481 (package
11482 (name "emacs-elfeed-org")
11483 (version (git-version "0.1" "1" commit))
11484 (source
11485 (origin
11486 (method git-fetch)
11487 (uri (git-reference
11488 (url "https://github.com/remyhonig/elfeed-org")
11489 (commit commit)))
11490 (file-name (git-file-name name version))
11491 (sha256
11492 (base32 "0a2ibka82xq1dhy2z7rd2y9zhcj8rna8357881yz49wf55ccgm53"))))
11493 (build-system emacs-build-system)
11494 (arguments
11495 `(#:tests? #t
11496 #:test-command '("ert-runner" "-L" "org-mode/lisp")
11497 #:phases
11498 (modify-phases %standard-phases
11499 (add-before 'check 'chmod
11500 (lambda _
11501 (chmod "test/fixture-mark-feed-ignore.org" #o644))))))
11502 (propagated-inputs
11503 (list emacs-elfeed emacs-org emacs-dash emacs-s))
11504 (native-inputs
11505 (list emacs-ert-runner emacs-xtest))
11506 (home-page "https://github.com/remyhonig/elfeed-org")
11507 (synopsis "Configure Elfeed with an Org-mode file")
11508 (description
11509 "@code{elfeed-org} lets you manage your Elfeed subscriptions
11510 in Org-mode. Maintaining tags for all RSS feeds is cumbersome using
11511 the regular flat list, where there is no hierarchy and tag names are
11512 duplicated a lot. Org-mode makes the book keeping of tags and feeds
11513 much easier.")
11514 (license license:gpl3+))))
11515
11516 (define-public emacs-elfeed-protocol
11517 (package
11518 (name "emacs-elfeed-protocol")
11519 (version "0.8.1")
11520 (source
11521 (origin
11522 (method git-fetch)
11523 (uri (git-reference
11524 (url "https://github.com/fasheng/elfeed-protocol")
11525 (commit version)))
11526 (file-name (git-file-name name version))
11527 (sha256
11528 (base32 "0k9rkghp9rg7aidmx7q0n4wpb9z5cwr7j8z167yzaqgf9s3y4jj2"))))
11529 (build-system emacs-build-system)
11530 (propagated-inputs
11531 (list emacs-elfeed))
11532 (home-page "https://github.com/fasheng/elfeed-protocol")
11533 (synopsis "Fever/NewsBlur/ownCloud/tt-RSS protocols for Elfeed")
11534 (description
11535 "Elfeed-protocol provides extra protocols to make self-hosting RSS
11536 readers like Fever, NewsBlur, ownCloud News and Tiny TIny RSS work
11537 with Elfeed.")
11538 (license license:gpl3+)))
11539
11540 (define-public emacs-elfeed-score
11541 (package
11542 (name "emacs-elfeed-score")
11543 (version "1.2.4")
11544 (source
11545 (origin
11546 (method git-fetch)
11547 (uri (git-reference
11548 (url "https://github.com/sp1ff/elfeed-score")
11549 (commit version)))
11550 (file-name (git-file-name name version))
11551 (sha256
11552 (base32 "0d1yh4wv81n5mnrzdi88z0vbs94m7j3q20r5fc1wk35r4hrl3xqw"))))
11553 (build-system emacs-build-system)
11554 (propagated-inputs
11555 (list emacs-elfeed))
11556 (home-page "https://github.com/sp1ff/elfeed-score")
11557 (synopsis "Gnus-style scoring for Elfeed")
11558 (description
11559 "Elfeed-score is an add-on for Elfeed, an RSS reader for Emacs. It
11560 brings Gnus-style scoring to your RSS feeds. Elfeed, by default, displays
11561 feed entries by date. This package allows you to setup rules for assigning
11562 numeric scores to entries, and sorting entries with higher scores ahead of
11563 those with lower, regardless of date. The idea is to prioritize content
11564 important to you.")
11565 (license license:gpl3+)))
11566
11567 (define-public emacs-el-x
11568 (package
11569 (name "emacs-el-x")
11570 (version "0.3.1")
11571 (source (origin
11572 (method git-fetch)
11573 (uri (git-reference
11574 (url "https://github.com/sigma/el-x")
11575 (commit (string-append "v" version))))
11576 (file-name (git-file-name name version))
11577 (sha256
11578 (base32
11579 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
11580 (build-system emacs-build-system)
11581 (arguments
11582 `(#:phases
11583 (modify-phases %standard-phases
11584 ;; Move the source files to the top level, which is included in
11585 ;; the EMACSLOADPATH.
11586 (add-after 'unpack 'move-source-files
11587 (lambda _
11588 (let ((el-files (find-files "./lisp" ".*\\.el$")))
11589 (for-each (lambda (f)
11590 (rename-file f (basename f)))
11591 el-files))
11592 #t)))))
11593 (home-page "https://github.com/sigma/el-x")
11594 (synopsis "Emacs Lisp extensions")
11595 (description "command@{emacs-el-x} defines the @code{dflet} macro to
11596 provide the historic behavior of @code{flet}, as well as
11597 @code{declare-function} stub for older Emacs.")
11598 (license license:gpl2+)))
11599
11600 (define-public emacs-epithet
11601 ;; No tags.
11602 (let ((commit "cc42338376c2c58da561214c554be8e8856f6a2b"))
11603 (package
11604 (name "emacs-epithet")
11605 (version "0.1")
11606 (source (origin
11607 (method git-fetch)
11608 (uri (git-reference
11609 (url "https://github.com/oantolin/epithet")
11610 (commit commit)))
11611 (file-name (git-file-name name version))
11612 (sha256
11613 (base32
11614 "06irgshgcgmm09nswrny8mam6l660ai71rgn0l3rmyp9li8n97j0"))))
11615 (build-system emacs-build-system)
11616 (home-page "https://github.com/oantolin/epithet")
11617 (synopsis "Rename Emacs buffers with descriptive names")
11618 (description
11619 "This package provides a function---@code{epithet-rename-buffer}---to rename
11620 the current buffer with a descriptive name. The name suggestion is governed by
11621 the @code{epithet-suggesters} hook variable: each hook should return either a
11622 name suggestion or @code{nil}, they are called in turn and the first non-nil
11623 suggestion is taken.")
11624 (license license:gpl3+))))
11625
11626 (define-public emacs-eterm-256color
11627 (package
11628 (name "emacs-eterm-256color")
11629 (version "0.3.13")
11630 (source (origin
11631 (method git-fetch)
11632 (uri (git-reference
11633 (url "https://github.com/dieggsy/eterm-256color")
11634 (commit version)))
11635 (file-name (git-file-name name version))
11636 (sha256
11637 (base32
11638 "0ysxblc90kjcz84siprnyxwh94scflivqbxylzkvjm7hbx93rsh1"))))
11639 (build-system emacs-build-system)
11640 (propagated-inputs
11641 (list emacs-f emacs-xterm-color))
11642 (home-page "https://github.com/dieggsy/eterm-256color")
11643 (synopsis
11644 "Customizable 256 colors for Emacs @code{term} and @code{ansi-term}")
11645 (description "This package uses @code{emacs-xterm-color} to add
11646 customizable 256 color support to @code{term} and @code{ansi-term}.")
11647 (license license:gpl3+)))
11648
11649 (define-public emacs-mocker
11650 (package
11651 (name "emacs-mocker")
11652 (version "0.5.0")
11653 (source
11654 (origin
11655 (method git-fetch)
11656 (uri (git-reference
11657 (url "https://github.com/sigma/mocker.el")
11658 (commit (string-append "v" version))))
11659 (file-name (git-file-name name version))
11660 (sha256
11661 (base32 "1dc514cqbfmg33sb3j90s5jmw6jnm3wzvs0zhw3maz13bp7w6z48"))))
11662 (build-system emacs-build-system)
11663 (arguments
11664 `(#:tests? #t
11665 #:test-command '("ert-runner")))
11666 (native-inputs
11667 (list emacs-ert-runner))
11668 (propagated-inputs
11669 (list emacs-el-x))
11670 (home-page "https://github.com/sigma/mocker.el")
11671 (synopsis "Mocking framework for Emacs Lisp")
11672 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
11673 It uses regular Lisp rather than a domain specific language (DSL), which
11674 maximizes flexibility (at the expense of conciseness).")
11675 (license license:gpl2+)))
11676
11677 (define-public emacs-find-file-in-project
11678 (package
11679 (name "emacs-find-file-in-project")
11680 (version "6.2.0")
11681 (source
11682 (origin
11683 (method git-fetch)
11684 (uri (git-reference
11685 (url "https://github.com/technomancy/find-file-in-project")
11686 (commit version)))
11687 (file-name (git-file-name name version))
11688 (sha256
11689 (base32 "0sq8fyq19jw1hm0m6hiqnvzzvx0c3xigfx7x6i40ib5hnfjlqs0a"))))
11690 (build-system emacs-build-system)
11691 (arguments
11692 `(#:tests? #t
11693 #:test-command '("ert-runner" "tests")))
11694 (native-inputs
11695 (list emacs-ert-runner))
11696 (home-page "https://github.com/technomancy/find-file-in-project")
11697 (synopsis "File/directory finder for Emacs")
11698 (description "@code{find-file-in-project} finds files or
11699 directories quickly in the current project. The project root is detected
11700 automatically when Git, Subversion or Mercurial are used. It also provides
11701 functions to assist in reviewing changes on files.")
11702 (license license:gpl3+)))
11703
11704 (define-public emacs-pyvenv
11705 (package
11706 (name "emacs-pyvenv")
11707 (version "1.21")
11708 (source
11709 (origin
11710 (method git-fetch)
11711 (uri (git-reference
11712 (url "https://github.com/jorgenschaefer/pyvenv")
11713 (commit (string-append "v" version))))
11714 (file-name (git-file-name name version))
11715 (sha256
11716 (base32 "055sgk8zf4wb5nqsf3qasf5gg861zlb1831733f1qcrd2ij5gzxx"))))
11717 (build-system emacs-build-system)
11718 (arguments
11719 `(#:phases
11720 (modify-phases %standard-phases
11721 ;; This phase incorrectly attempts to substitute "activate" and fails
11722 ;; doing so.
11723 (delete 'patch-el-files))
11724 #:tests? #t
11725 #:test-command '("ert-runner")))
11726 (native-inputs
11727 (list emacs-ert-runner emacs-mocker))
11728 (home-page "https://github.com/jorgenschaefer/pyvenv")
11729 (synopsis "Python virtual environment interface for Emacs")
11730 (description "pyvenv.el is a minor mode to support using Python virtual
11731 environments (virtualenv) inside Emacs.")
11732 (license license:gpl3+)))
11733
11734 (define-public emacs-highlight-indent-guides
11735 (let ((version "0.8.5") ; from package metadata
11736 (revision "0")
11737 (commit "c2c9de4d01edfb89609c91d4d7f1d81312015a2c"))
11738 (package
11739 (name "emacs-highlight-indent-guides")
11740 (version (git-version version revision commit))
11741 (source
11742 (origin
11743 (method git-fetch)
11744 (uri (git-reference
11745 (url "https://github.com/DarthFennec/highlight-indent-guides")
11746 (commit commit)))
11747 (file-name (git-file-name name version))
11748 (sha256
11749 (base32 "10chvqnmdmkx6i9sigqframr85ziyafiz44glwhvhjajfkv42ad2"))))
11750 (build-system emacs-build-system)
11751 (home-page
11752 "https://github.com/DarthFennec/highlight-indent-guides")
11753 (synopsis "Minor mode to highlight indentation")
11754 (description
11755 "This package provides a minor mode to highlight indentation levels via
11756 font-lock. Indent widths are dynamically discovered, which means this
11757 correctly highlights in any mode, regardless of indent width, even in
11758 languages with non-uniform indentation such as Haskell. This mode works
11759 properly around hard tabs and mixed indentation and behaves well in large
11760 buffers.")
11761 (license license:expat))))
11762
11763 (define-public emacs-highlight-indentation
11764 ;; Last release version is from 2015.
11765 (let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f")
11766 (revision "1"))
11767 (package
11768 (name "emacs-highlight-indentation")
11769 (version (git-version "0.7.0" revision commit))
11770 (source
11771 (origin
11772 (method git-fetch)
11773 (uri (git-reference
11774 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs")
11775 (commit commit)))
11776 (file-name (git-file-name name version))
11777 (sha256
11778 (base32
11779 "1jq0gf4kcx9hvrw40rnw5c2qynjpjw1vsjbi2i4lqjbsnfnxn4wz"))))
11780 (build-system emacs-build-system)
11781 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
11782 (synopsis "Highlighting indentation for Emacs")
11783 (description "This package provides two minor modes to highlight
11784 indentation guides in Emacs:
11785
11786 @enumerate
11787 @item @code{highlight-indentation-mode}, which displays guidelines
11788 indentation (space indentation only).
11789 @item @code{highlight-indentation-current-column-mode}, which displays
11790 guidelines for the current-point indentation (space indentation only).
11791 @end enumerate")
11792 (license license:gpl2+))))
11793
11794 (define-public emacs-elpy
11795 ;; Using the latest commit fixes outstanding bugs such as the following:
11796 ;; https://github.com/jorgenschaefer/elpy/issues/1824
11797 ;; https://github.com/jorgenschaefer/elpy/pull/1951
11798 ;; https://github.com/jorgenschaefer/elpy/issues/1940.
11799 (let ((commit "1746e7009000b7635c0ea6f1559018143aa61642")
11800 (revision "1"))
11801 (package
11802 (name "emacs-elpy")
11803 (version (git-version "1.35.0" revision commit))
11804 (source (origin
11805 (method git-fetch)
11806 (uri (git-reference
11807 (url "https://github.com/jorgenschaefer/elpy")
11808 (commit commit)))
11809 (file-name (git-file-name name version))
11810 (sha256
11811 (base32
11812 "120xzzaa8jxls3lri6d53zq6gafnkc6d9mlg09an334kkmh8k2fc"))))
11813 (build-system emacs-build-system)
11814 (arguments
11815 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
11816 #:phases
11817 (modify-phases %standard-phases
11818 (add-after 'unpack 'disable-broken-tests
11819 ;; Some tests are known to have problems with Python 3.9; disable
11820 ;; them (see:
11821 ;; https://github.com/jorgenschaefer/elpy/issues/1856).
11822 ;; Aggressively remove the modules where failing tests were
11823 ;; discovered, as they are similar and fail in a nondeterministic
11824 ;; way.
11825 (lambda _
11826 (with-directory-excursion "test"
11827 (for-each delete-file
11828 (append (find-files "." "elpy-refactor")
11829 (find-files "." "elpy-multiedit")
11830 (find-files "." "elpy-pdb")
11831 (find-files "." "elpy-promise")))
11832 ;; These test fail since upgrading Emacs from version 27 to
11833 ;; 28.1 (see:
11834 ;; https://github.com/jorgenschaefer/elpy/issues/1982).
11835 (delete-file "elpy-project-find-git-root-test.el")
11836 (substitute* "elpy-company-backend-test.el"
11837 (("elpy-company-backend-should-add-shell-candidates.*" all)
11838 (string-append all " :expected-result :failed\n")))
11839 (substitute* "elpy-eldoc-documentation-test.el"
11840 (("elpy-eldoc-documentation-should-show-object-onelinedoc.*" all)
11841 (string-append all " :expected-result :failed\n")))
11842 (substitute* "elpy-shell-send-file-test.el"
11843 (("elpy-shell-send-file-should-accept-large-strings.*" all)
11844 (string-append all " :expected-result :failed\n")))
11845 (substitute* "elpy-shell-echo-inputs-and-outputs-test.el"
11846 (("elpy-shell-should-echo-outputs.*" all)
11847 (string-append all " :expected-result :failed\n"))))))
11848 ;; The default environment of the RPC uses Virtualenv to install
11849 ;; Python dependencies from PyPI. We don't want/need this in Guix.
11850 (add-before 'check 'do-not-use-virtualenv
11851 (lambda _
11852 (setenv "ELPY_TEST_DONT_USE_VIRTUALENV" "1")
11853 (substitute* "elpy-rpc.el"
11854 (("defcustom elpy-rpc-virtualenv-path 'default")
11855 "defcustom elpy-rpc-virtualenv-path 'system"))))
11856 (add-before 'check 'build-doc
11857 (lambda _
11858 (with-directory-excursion "docs"
11859 (invoke "make" "info" "man"))
11860 ;; Move .info file at the root so that it can installed by the
11861 ;; 'move-doc phase.
11862 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")))
11863 (add-after 'build-doc 'install-manpage
11864 (lambda* (#:key outputs #:allow-other-keys)
11865 (let* ((out (assoc-ref outputs "out"))
11866 (man1 (string-append out "/share/man/man1")))
11867 (mkdir-p man1)
11868 (copy-file "docs/_build/man/elpy.1"
11869 (string-append man1 "/elpy.1"))))))
11870 #:tests? #t
11871 #:test-command '("ert-runner")))
11872 (propagated-inputs
11873 (list emacs-company
11874 emacs-find-file-in-project
11875 emacs-highlight-indentation
11876 emacs-yasnippet
11877 emacs-pyvenv
11878 emacs-s
11879 ;; The following are recommended Python dependencies that make
11880 ;; Elpy much more useful. Installing these avoids Elpy prompting
11881 ;; to install them from PyPI using pip.
11882 python-autopep8
11883 python-black
11884 python-flake8
11885 python-jedi
11886 python-yapf))
11887 (native-inputs
11888 (list emacs-ert-runner
11889 emacs-f
11890 python-wrapper
11891 ;; For documentation.
11892 python-sphinx
11893 texinfo))
11894 (home-page "https://github.com/jorgenschaefer/elpy")
11895 (synopsis "Python development environment for Emacs")
11896 (description "Elpy brings powerful Python editing to Emacs. It combines
11897 and configures a number of other packages written in Emacs Lisp as well as
11898 Python, together offering features such as navigation, documentation,
11899 completion, interactive development and more.")
11900 (license license:gpl3+))))
11901
11902 (define-public emacs-rainbow-delimiters
11903 (package
11904 (name "emacs-rainbow-delimiters")
11905 (version "2.1.5")
11906 (source (origin
11907 (method git-fetch)
11908 (uri (git-reference
11909 (url "https://github.com/Fanael/rainbow-delimiters")
11910 (commit version)))
11911 (file-name (git-file-name name version))
11912 (sha256
11913 (base32
11914 "179mzsd8nvlr0ym9zf9fgdngsgxj3kdgbjblynliirsyk05ssrwc"))))
11915 (build-system emacs-build-system)
11916 (home-page "https://github.com/Fanael/rainbow-delimiters")
11917 (arguments
11918 `(#:tests? #t
11919 #:test-command '("emacs" "-Q" "-batch"
11920 "-l" "rainbow-delimiters-test.el"
11921 "-f" "ert-run-tests-batch-and-exit")))
11922 (synopsis "Highlight brackets according to their depth")
11923 (description
11924 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
11925 highlights parentheses, brackets, and braces according to their depth. Each
11926 successive level is highlighted in a different color, making it easy to spot
11927 matching delimiters, orient yourself in the code, and tell which statements
11928 are at a given level.")
11929 (license license:gpl3+)))
11930
11931 (define-public emacs-rainbow-identifiers
11932 (package
11933 (name "emacs-rainbow-identifiers")
11934 (version "0.2.2")
11935 (source (origin
11936 (method url-fetch)
11937 (uri (string-append "https://raw.githubusercontent.com/Fanael"
11938 "/rainbow-identifiers/" version
11939 "/rainbow-identifiers.el"))
11940 (file-name (string-append "rainbow-identifiers-" version ".el"))
11941 (sha256
11942 (base32
11943 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
11944 (build-system emacs-build-system)
11945 (home-page "https://github.com/Fanael/rainbow-identifiers")
11946 (synopsis "Highlight identifiers in source code")
11947 (description
11948 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
11949 identifiers based on their names. Each identifier gets a color based on a hash
11950 of its name.")
11951 (license license:bsd-2)))
11952
11953 (define-public emacs-rainbow-mode
11954 (package
11955 (name "emacs-rainbow-mode")
11956 (version "1.0.6")
11957 (source
11958 (origin
11959 (method url-fetch)
11960 (uri (string-append "https://elpa.gnu.org/packages/"
11961 "rainbow-mode-" version ".tar"))
11962 (sha256
11963 (base32 "04v73cm1cap19vwc8lqsw0rmfr9v7r3swc4wgxnk9dnzxi9j2527"))))
11964 (build-system emacs-build-system)
11965 (home-page "https://elpa.gnu.org/packages/rainbow-mode.html")
11966 (synopsis "Colorize color names in buffers")
11967 (description
11968 "This minor mode sets background color to strings that match color
11969 names, e.g., @samp{#0000ff} is displayed in white with a blue background.")
11970 (license license:gpl3+)))
11971
11972 (define-public emacs-ryo-modal
11973 ;; Package has no release. Version is extracted from "Version:" keyword in
11974 ;; main file.
11975 (let ((commit "a10f564474cc8fa28a74b04e3b15375315223c44")
11976 (revision "0"))
11977 (package
11978 (name "emacs-ryo-modal")
11979 (version (git-version "0.45" revision commit))
11980 (source
11981 (origin
11982 (method git-fetch)
11983 (uri (git-reference
11984 (url "https://github.com/Kungsgeten/ryo-modal")
11985 (commit commit)))
11986 (file-name (git-file-name name version))
11987 (sha256
11988 (base32 "0ypm1rnyry6hb4znb8sgwfi0la6q46ihm8k99kisk0mkgz7im93d"))))
11989 (build-system emacs-build-system)
11990 (home-page "https://github.com/Kungsgeten/ryo-modal")
11991 (synopsis "Emacs minor mode for defining modal editing environments")
11992 (description "RYO modal provides a convenient way of defining modal
11993 keybindings in Emacs, and does not come with any predefined bindings.")
11994 (license license:expat))))
11995
11996 (define-public emacs-valign
11997 (package
11998 (name "emacs-valign")
11999 (version "3.1.1")
12000 (source
12001 (origin
12002 (method git-fetch)
12003 (uri (git-reference
12004 (url "https://github.com/casouri/valign")
12005 (commit (string-append "v" version))))
12006 (file-name (git-file-name name version))
12007 (sha256
12008 (base32 "11ks6z532i7vxi6f9g32zhimvikhsqywa2bd5fnnj2ahfx3msa95"))))
12009 (build-system emacs-build-system)
12010 (home-page "https://github.com/casouri/valign")
12011 (synopsis "Pixel-perfect visual alignment for Org and Markdown tables")
12012 (description
12013 "Valign provides visual alignment for Org mode, Markdown and Table.el
12014 tables on GUI Emacs. It can properly align tables containing variable-pitch
12015 font, CJK characters and images. Meanwhile, the text-based alignment
12016 generated by Org mode (or Markdown mode) is left untouched.")
12017 (license license:gpl3+)))
12018
12019 (define-public emacs-visual-fill-column
12020 (package
12021 (name "emacs-visual-fill-column")
12022 (version "2.5")
12023 (source
12024 (origin
12025 (method git-fetch)
12026 (uri (git-reference
12027 (url "https://codeberg.org/joostkremers/visual-fill-column")
12028 (commit version)))
12029 (file-name (git-file-name name version))
12030 (sha256
12031 (base32 "168wiywaffhhn7j4nfbnq4lfxpxl0x17z9ckk3nwkpaz45d9a2q6"))))
12032 (build-system emacs-build-system)
12033 (home-page "https://codeberg.org/joostkremers/visual-fill-column")
12034 (synopsis "Fill-column for visual-line-mode")
12035 (description
12036 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
12037 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
12038 wrapping lines at the window edge, which is the standard behaviour of
12039 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
12040 @code{fill-column} is too large for the window, the text is wrapped at the
12041 window edge.")
12042 (license license:gpl3+)))
12043
12044 (define-public emacs-writeroom
12045 (package
12046 (name "emacs-writeroom")
12047 (version "3.11")
12048 (source
12049 (origin
12050 (method git-fetch)
12051 (uri (git-reference
12052 (url "https://github.com/joostkremers/writeroom-mode")
12053 (commit version)))
12054 (file-name (git-file-name name version))
12055 (sha256
12056 (base32
12057 "0y4jcja9kml1lq88r8b9myk39dgaggh7q7f3a43sj828hvzlccb7"))))
12058 (build-system emacs-build-system)
12059 (propagated-inputs
12060 (list emacs-visual-fill-column))
12061 (home-page "https://github.com/joostkremers/writeroom-mode")
12062 (synopsis "Distraction-free writing for Emacs")
12063 (description
12064 "This package defines a minor mode for distraction-free writing. Some of
12065 the default effects include entering fullscreen, deleting other windows of the
12066 current frame, disabling the mode line, and adding margins to the buffer that
12067 restrict the text width to 80 characters.")
12068 (license license:bsd-3)))
12069
12070 (define-public emacs-wucuo
12071 (package
12072 (name "emacs-wucuo")
12073 (version "0.2.9")
12074 (source
12075 (origin
12076 (method git-fetch)
12077 (uri (git-reference
12078 (url "https://github.com/redguardtoo/wucuo")
12079 (commit "89b99166768afb811c48a7db7c93c02d51a32b09")))
12080 (file-name (git-file-name name version))
12081 (sha256
12082 (base32 "03a6jlbv9axrd9yr0xscq3ni7fipm20ppc51kxy0sn241rplv0pg"))))
12083 (build-system emacs-build-system)
12084 (arguments
12085 `(#:tests? #t
12086 #:test-command '("make" "test")
12087 #:phases (modify-phases %standard-phases
12088 ;; Set HOME, otherwise tests fail on loading aspell dict.
12089 (add-before 'check 'set-home
12090 (lambda _ (setenv "HOME" (getcwd)))))))
12091 (native-inputs
12092 ;; For tests.
12093 (list aspell aspell-dict-en))
12094 (home-page "https://github.com/redguardtoo/wucuo")
12095 (synopsis "Fast spell checker for camel case code or plain text")
12096 (description
12097 "Wucuo provides a spell checker on top of either Aspell or Hunspell, and
12098 relies on Flyspell internally. It operates on the current region or buffer,
12099 a file, or a complete directory.")
12100 (license license:gpl3+)))
12101
12102 (define-public emacs-ido-completing-read+
12103 (package
12104 (name "emacs-ido-completing-read+")
12105 (version "4.14")
12106 (source (origin
12107 (method url-fetch)
12108 (uri (string-append "https://raw.githubusercontent.com"
12109 "/DarwinAwardWinner/ido-ubiquitous/v"
12110 version "/ido-completing-read+.el"))
12111 (file-name (string-append "ido-completing-read+-" version ".el"))
12112 (sha256
12113 (base32
12114 "1wn94nkfv6qyyj6clvms7m7ncqf09bgszv67may530y75kylivav"))))
12115 (build-system emacs-build-system)
12116 (propagated-inputs
12117 (list emacs-s))
12118 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
12119 (synopsis "Replacement for completing-read using ido")
12120 (description
12121 "The ido-completing-read+ function is a wrapper for ido-completing-read.
12122 Importantly, it detects edge cases that ordinary ido cannot handle and either
12123 adjusts them so ido can handle them, or else simply falls back to the standard
12124 Emacs completion function instead.")
12125 (license license:gpl3+)))
12126
12127 (define-public emacs-ido-ubiquitous
12128 (package
12129 (name "emacs-ido-ubiquitous")
12130 (version "4.13")
12131 (source (origin
12132 (method url-fetch)
12133 (uri (string-append "https://raw.githubusercontent.com"
12134 "/DarwinAwardWinner/ido-ubiquitous/v"
12135 version "/ido-ubiquitous.el"))
12136 (file-name (string-append "ido-ubiquitous-" version ".el"))
12137 (sha256
12138 (base32
12139 "08iwvqknicqlffda7ixwgzw7q9g2g4j4nsxdw6544r85vaysi4cc"))))
12140 (build-system emacs-build-system)
12141 (propagated-inputs
12142 (list emacs-ido-completing-read+))
12143 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
12144 (synopsis "Use ido (nearly) everywhere")
12145 (description
12146 "Ido-ubiquitous enables ido-style completion for almost every function
12147 that uses the standard completion function completing-read.")
12148 (license license:gpl3+)))
12149
12150 (define-public emacs-yaml
12151 (package
12152 (name "emacs-yaml")
12153 (version "0.5.1")
12154 (source
12155 (origin
12156 (method git-fetch)
12157 (uri (git-reference
12158 (url "https://github.com/zkry/yaml.el")
12159 (commit (string-append "v" version))))
12160 (file-name (git-file-name name version))
12161 (sha256
12162 (base32 "0n0cf5y862ajyf2q0pnvbkhg57ggsri33x8y4q99s0a17ksk4qrm"))))
12163 (build-system emacs-build-system)
12164 (home-page "https://github.com/zkry/yaml.el")
12165 (synopsis "YAML parser in Elisp")
12166 (description
12167 "@code{yaml.el} is a YAML parser written in Emacs Lisp without any
12168 external dependencies. It provides an interface similar to the Emacs JSON
12169 parsing utility.")
12170 (license license:gpl3+)))
12171
12172 (define-public emacs-yaml-mode
12173 (package
12174 (name "emacs-yaml-mode")
12175 (version "0.0.15")
12176 (source
12177 (origin
12178 (method git-fetch)
12179 (uri (git-reference
12180 (url "https://github.com/yoshiki/yaml-mode")
12181 (commit version)))
12182 (file-name (git-file-name name version))
12183 (sha256
12184 (base32 "0gsa153yp8lmwrvcc3nzpw5lj037y7q2nm23k5k404r5as4k355l"))))
12185 (build-system emacs-build-system)
12186 (home-page "https://github.com/yoshiki/yaml-mode")
12187 (synopsis "Major mode for editing YAML files")
12188 (description
12189 "Yaml mode is an Emacs major mode for editing files in the YAML data
12190 serialization format. As YAML and Python share the fact that indentation
12191 determines structure, this mode provides indentation and indentation command
12192 behavior very similar to that of Python mode.")
12193 (license license:gpl3+)))
12194
12195 (define-public emacs-gitlab-ci-mode
12196 (package
12197 (name "emacs-gitlab-ci-mode")
12198 (version "20190824.12.2")
12199 (source (origin
12200 (method git-fetch)
12201 (uri (git-reference
12202 (url "https://gitlab.com/joewreschnig/gitlab-ci-mode")
12203 (commit (string-append "v" version))))
12204 (file-name (git-file-name name version))
12205 (sha256
12206 (base32
12207 "16fb4r3vq8xkzl911v7gaky95w1agfxjlpaxpjmidwx48rbcar59"))))
12208 (build-system emacs-build-system)
12209 (propagated-inputs
12210 (list emacs-yaml-mode))
12211 (home-page "https://gitlab.com/joewreschnig/gitlab-ci-mode/")
12212 (synopsis "Emacs mode for editing GitLab CI files")
12213 (description
12214 "@code{gitlab-ci-mode} is an Emacs major mode for editing GitLab CI
12215 files. It provides syntax highlighting and completion for keywords and
12216 special variables. An interface to GitLab’s CI file linter is also provided
12217 via @code{gitlab-ci-lint}.")
12218 (license license:gpl3+)))
12219
12220 (define-public emacs-gitlab-snip-helm
12221 (package
12222 (name "emacs-gitlab-snip-helm")
12223 (version "0.0.2")
12224 (source (origin
12225 (method git-fetch)
12226 (uri (git-reference
12227 (url "https://gitlab.com/sasanidas/gitlab-snip-helm.git")
12228 (commit version)))
12229 (file-name (git-file-name name version))
12230 (sha256
12231 (base32
12232 "1c5js19zyb1z61hapvbfcl5jhrjqij46cxldgqij6al0scw44dga"))))
12233 (build-system emacs-build-system)
12234 (propagated-inputs
12235 (list emacs-dash emacs-helm))
12236 (home-page "https://gitlab.com/sasanidas/gitlab-snip-helm/")
12237 (synopsis "GitLab snippet API interaction for Emacs")
12238 (description "This package provides GitLab snippet API interaction for
12239 Emacs.")
12240 (license license:gpl3+)))
12241
12242 (define-public emacs-web-mode
12243 (package
12244 (name "emacs-web-mode")
12245 (version "17.2.1")
12246 (source
12247 (origin
12248 (method git-fetch)
12249 (uri (git-reference
12250 (url "https://github.com/fxbois/web-mode")
12251 (commit (string-append "v" version))))
12252 (file-name (git-file-name name version))
12253 (sha256
12254 (base32 "0sd2ysysn8x4iwz2fhnvh8knr3pdqgkvhkhsl948smmfl0dwj42f"))))
12255 (build-system emacs-build-system)
12256 (synopsis "Major mode for editing web templates")
12257 (description "Web mode is an Emacs major mode for editing web templates
12258 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
12259 client/server side engines). Web mode is compatible with many template
12260 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
12261 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
12262 Dust.js, React/JSX, Angularjs, ejs, etc.")
12263 (home-page "https://web-mode.org/")
12264 (license license:gpl3+)))
12265
12266 (define-public emacs-templatel
12267 (package
12268 (name "emacs-templatel")
12269 (version "0.1.6")
12270 (source
12271 (origin
12272 (method git-fetch)
12273 (uri (git-reference
12274 (url "https://github.com/clarete/templatel")
12275 (commit version)))
12276 (file-name (git-file-name name version))
12277 (sha256
12278 (base32 "03n7amd2mfr4jmc4s1ar5ckm86knr7qarxxlkdhbnw3svy5kbc57"))))
12279 (build-system emacs-build-system)
12280 (home-page "https://clarete.li/templatel")
12281 (synopsis "Jinja inspired template language for Emacs Lisp")
12282 (description
12283 "templatel is the modern templating language. It provides variable
12284 substitution and control flow through a clean and powerful language inspired
12285 by Python's Jinja.")
12286 (license license:gpl3+)))
12287
12288 (define-public emacs-wgrep
12289 (package
12290 (name "emacs-wgrep")
12291 (version "2.3.2")
12292 (source (origin
12293 (method git-fetch)
12294 (uri (git-reference
12295 (url "https://github.com/mhayashi1120/Emacs-wgrep")
12296 (commit version)))
12297 (file-name (git-file-name name version))
12298 (sha256
12299 (base32
12300 "00cwqzb94jlq4mwgv8z7r3mn0a6mhq95z6j189kacq9g4473zh8d"))))
12301 (build-system emacs-build-system)
12302 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
12303 (synopsis "Edit a grep buffer and apply those changes to the files")
12304 (description
12305 "Emacs wgrep allows you to edit a grep buffer and apply those changes
12306 to the file buffer. Several backends are supported beside the classic grep:
12307 ack, ag, helm and pt.")
12308 (license license:gpl3+)))
12309
12310 (define-public emacs-helm
12311 (package
12312 (name "emacs-helm")
12313 (version "3.8.7")
12314 (source
12315 (origin
12316 (method git-fetch)
12317 (uri (git-reference
12318 (url "https://github.com/emacs-helm/helm")
12319 (commit (string-append "v" version))))
12320 (file-name (git-file-name name version))
12321 (sha256
12322 (base32 "1a8zkp00ahb84ww5072naxwllzbjhi7ccarkk2d7xsykn5lig54c"))))
12323 (build-system emacs-build-system)
12324 (propagated-inputs
12325 (list emacs-async emacs-popup))
12326 (home-page "https://emacs-helm.github.io/helm/")
12327 (synopsis
12328 "Incremental completion and selection narrowing framework for Emacs")
12329 (description
12330 "Helm is an incremental completion and selection narrowing framework for
12331 Emacs. It will help steer you in the right direction when you're looking for
12332 stuff in Emacs (like buffers, files, etc).")
12333 (license license:gpl3+)))
12334
12335 (define-public emacs-helm-org
12336 (let ((commit "8457e1e46227bf87726e05c42cec5a4b51c2ef7b")
12337 (revision "3"))
12338 (package
12339 (name "emacs-helm-org")
12340 (version (git-version "1.0" revision commit))
12341 (source
12342 (origin
12343 (method git-fetch)
12344 (uri (git-reference
12345 (url "https://github.com/emacs-helm/helm-org")
12346 (commit commit)))
12347 (file-name (git-file-name name version))
12348 (sha256
12349 (base32 "0kcjhwwi492n9m2w894hvdavfvhj45zygy7bwvx103wvpay5h6h6"))))
12350 (build-system emacs-build-system)
12351 (propagated-inputs
12352 (list emacs-helm))
12353 (home-page "https://github.com/emacs-helm/helm-org")
12354 (synopsis "Helm interface to the Silver Searcher")
12355 (description
12356 "This package provides a frontend for grepping tools like ag and ack,
12357 as well as features for editing search results.")
12358 (license license:gpl3+))))
12359
12360 (define-public emacs-helm-swoop
12361 (package
12362 (name "emacs-helm-swoop")
12363 (version "3.0.0")
12364 (source
12365 (origin
12366 (method git-fetch)
12367 (uri (git-reference
12368 (url "https://github.com/emacsorphanage/helm-swoop")
12369 (commit version)))
12370 (file-name (git-file-name name version))
12371 (sha256
12372 (base32 "1qjay0fvryxa8n1ws6r1by512p2fylb2nj7ycm1497fcalb0d706"))))
12373 (build-system emacs-build-system)
12374 (propagated-inputs
12375 (list emacs-helm))
12376 (home-page "https://github.com/emacsorphanage/helm-swoop")
12377 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
12378 (description
12379 "This package builds on the Helm interface to provide several commands
12380 for search-based navigation of buffers.")
12381 (license license:gpl2+)))
12382
12383 (define-public emacs-helm-ag
12384 (package
12385 (name "emacs-helm-ag")
12386 (version "0.64")
12387 (source
12388 (origin
12389 (method git-fetch)
12390 (uri (git-reference
12391 (url "https://github.com/syohex/emacs-helm-ag")
12392 (commit version)))
12393 (file-name (git-file-name name version))
12394 (sha256
12395 (base32 "0ml9yp3qaiwn7iixyxvsj3fxn7gw913qxisr47df57q4ka912law"))))
12396 (build-system emacs-build-system)
12397 (propagated-inputs
12398 (list emacs-helm))
12399 (home-page "https://github.com/syohex/emacs-helm-ag")
12400 (synopsis "Helm interface to the Silver Searcher")
12401 (description
12402 "This package provides a frontend for grepping tools like ag and ack,
12403 as well as features for editing search results.")
12404 (license license:gpl3+)))
12405
12406 (define-public emacs-helm-projectile
12407 (package
12408 (name "emacs-helm-projectile")
12409 (version "1.0.0")
12410 (source
12411 (origin
12412 (method git-fetch)
12413 (uri (git-reference
12414 (url "https://github.com/bbatsov/helm-projectile")
12415 (commit (string-append "v" version))))
12416 (file-name (git-file-name name version))
12417 (sha256
12418 (base32 "05gpg90gg03yalmv9fw1y9k21i2l617iipvs0p9n80aln8nrzs8g"))))
12419 (build-system emacs-build-system)
12420 (propagated-inputs
12421 (list emacs-helm emacs-projectile))
12422 (home-page "https://github.com/bbatsov/helm-projectile")
12423 (synopsis "Helm integration for Projectile")
12424 (description
12425 "This Emacs library provides a Helm interface for Projectile.")
12426 (license license:gpl3+)))
12427
12428 (define-public emacs-taskrunner
12429 (let ((commit "3afd4a546d42339543d3d4e51b175fc3e82b3358")
12430 (revision "1"))
12431 (package
12432 (name "emacs-taskrunner")
12433 (version (git-version "0.6" revision commit))
12434 (source
12435 (origin
12436 (method git-fetch)
12437 (uri (git-reference
12438 (url "https://github.com/emacs-taskrunner/emacs-taskrunner")
12439 (commit commit)))
12440 (file-name (git-file-name name version))
12441 (sha256
12442 (base32
12443 "1lkdvmjn3alhqxq2i64sdr977sbw3g0b2670d9bwyzi67qh0jxrv"))))
12444 (build-system emacs-build-system)
12445 (propagated-inputs
12446 (list emacs-async emacs-projectile))
12447 (home-page "https://github.com/emacs-taskrunner/emacs-taskrunner")
12448 (synopsis "Retrieve tasks from various build systems and task-runners")
12449 (description "This package parses Makefiles and build-system files for
12450 multiple project types.")
12451 (license license:gpl3+))))
12452
12453 (define-public emacs-ivy-taskrunner
12454 (let ((commit "75d8d67cfe3c29663fe0f5508a887adf40ed5162")
12455 (revision "1"))
12456 (package
12457 (name "emacs-ivy-taskrunner")
12458 (version (git-version "0.9" revision commit))
12459 (source
12460 (origin
12461 (method git-fetch)
12462 (uri (git-reference
12463 (url "https://github.com/emacs-taskrunner/ivy-taskrunner")
12464 (commit commit)))
12465 (file-name (git-file-name name version))
12466 (sha256
12467 (base32
12468 "1wf4s4k0ap21f7g5w6128an8nsvbja7f5n889vcml5b6gjz058db"))))
12469 (build-system emacs-build-system)
12470 (propagated-inputs
12471 (list emacs-ivy emacs-taskrunner emacs-projectile))
12472 (home-page "https://github.com/emacs-taskrunner/ivy-taskrunner")
12473 (synopsis "Retrieve build-system tasks using Ivy")
12474 (description "This package provides an Ivy interface for selecting
12475 Makefile targets.")
12476 (license license:gpl3+))))
12477
12478 (define-public emacs-helm-taskrunner
12479 (let ((commit "1910dac19cbc7bd4fd08b0faf9affd455339fbea")
12480 (revision "1"))
12481 (package
12482 (name "emacs-helm-taskrunner")
12483 (version (git-version "0.9" revision commit))
12484 (source
12485 (origin
12486 (method git-fetch)
12487 (uri (git-reference
12488 (url "https://github.com/emacs-taskrunner/helm-taskrunner")
12489 (commit commit)))
12490 (file-name (git-file-name name version))
12491 (sha256
12492 (base32
12493 "182lmr858fx6rdhp1fy7kv8dvrhzcnxzwfck1q22s6xs8x85d5q7"))))
12494 (build-system emacs-build-system)
12495 (propagated-inputs
12496 (list emacs-helm emacs-taskrunner emacs-projectile))
12497 (home-page "https://github.com/emacs-taskrunner/helm-taskrunner")
12498 (synopsis "Retrieve build-system tasks using Helm")
12499 (description "This package provides a Helm interface for selecting
12500 Makefile targets.")
12501 (license license:gpl3+))))
12502
12503 (define-public emacs-helm-make
12504 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
12505 (revision "1"))
12506 (package
12507 (name "emacs-helm-make")
12508 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
12509 (source
12510 (origin
12511 (method git-fetch)
12512 (uri (git-reference
12513 (url "https://github.com/abo-abo/helm-make")
12514 (commit commit)))
12515 (file-name (git-file-name name version))
12516 (sha256
12517 (base32
12518 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
12519 (build-system emacs-build-system)
12520 (propagated-inputs
12521 (list emacs-helm emacs-projectile))
12522 (home-page "https://github.com/abo-abo/helm-make")
12523 (synopsis "Select a Makefile target with helm")
12524 (description "@code{helm-make} or @code{helm-make-projectile} will give
12525 you a @code{helm} selection of directory Makefile's targets. Selecting a
12526 target will call @code{compile} on it.")
12527 (license license:gpl3+))))
12528
12529 (define-public emacs-cider
12530 (package
12531 (name "emacs-cider")
12532 (version "1.5.0")
12533 (source
12534 (origin
12535 (method git-fetch)
12536 (uri (git-reference
12537 (url "https://github.com/clojure-emacs/cider")
12538 (commit (string-append "v" version))))
12539 (file-name (git-file-name name version))
12540 (sha256
12541 (base32 "1ih902n8p3pl1apprprkyrlnrp2dxli86y5k09zahy9mglfz2z5n"))))
12542 (build-system emacs-build-system)
12543 (arguments
12544 '(#:exclude ;don't exclude 'cider-test.el'
12545 '("^\\.dir-locals\\.el$" "^test/")
12546 #:phases
12547 ;; XXX: file "test/cider-tests.el" contains a bogus "/bin/command"
12548 ;; string, and `patch-el-files' phase chokes on it (even though the
12549 ;; file is excluded from installation). Remove the phase altogether
12550 ;; since there is no "/bin/executable" to replace in the code base
12551 ;; anyway.
12552 (modify-phases %standard-phases
12553 (delete 'patch-el-files))))
12554 (propagated-inputs
12555 (list emacs-clojure-mode
12556 emacs-parseedn
12557 emacs-pkg-info
12558 emacs-queue
12559 emacs-sesman
12560 emacs-spinner))
12561 (home-page "https://cider.mx/")
12562 (synopsis "Clojure development environment for Emacs")
12563 (description
12564 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
12565 provide an interactive development experience similar to the one you'd get
12566 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
12567 Geiser) and Smalltalk.
12568
12569 CIDER is the successor to the now deprecated combination of using SLIME +
12570 swank-clojure for Clojure development.
12571
12572 There are plenty of differences between CIDER and SLIME, but the core ideas
12573 are pretty much the same (and SLIME served as the principle inspiration for
12574 CIDER).")
12575 (license license:gpl3+)))
12576
12577 (define-public emacs-sly
12578 ;; Update together with sbcl-slynk.
12579 (let ((commit "4513c382f07a2a2cedb3c046231b69eae2f5e6f0")
12580 (revision "6"))
12581 ;; Versions are not always tagged. Besides, latest master contains
12582 ;; important fixes.
12583 (package
12584 (name "emacs-sly")
12585 (version (git-version "1.0.43" revision commit))
12586 (source
12587 (origin
12588 (method git-fetch)
12589 (uri (git-reference
12590 (url "https://github.com/joaotavora/sly")
12591 (commit commit)))
12592 (file-name (git-file-name name version))
12593 (sha256
12594 (base32
12595 "10bzxhi5d7h18hqclxqy2z857d0sfbsnyxvrhmfkdi0h75zz7m4n"))))
12596 (build-system emacs-build-system)
12597 (native-inputs
12598 (list texinfo))
12599 (arguments
12600 `(#:include (cons* "^contrib\\/" "^lib\\/" "^slynk\\/" %default-include)
12601 #:phases
12602 ;; The package provides autoloads.
12603 (modify-phases %standard-phases
12604 (delete 'make-autoloads)
12605 (add-before 'install 'install-doc
12606 (lambda* (#:key outputs #:allow-other-keys)
12607 (let* ((out (assoc-ref outputs "out"))
12608 (info-dir (string-append out "/share/info"))
12609 (doc-dir (string-append out "/share/doc/"
12610 ,name "-" ,version))
12611 (doc-files '( ;; "doc/sly-refcard.pdf" ; See sly-refcard.pdf below.
12612 "README.md" "NEWS.md" "PROBLEMS.md"
12613 "CONTRIBUTING.md")))
12614 (with-directory-excursion "doc"
12615 (substitute* "Makefile"
12616 (("infodir=/usr/local/info")
12617 (string-append "infodir=" info-dir))
12618 ;; Don't rebuild contributors.texi since we are not in
12619 ;; the git repo.
12620 (("contributors.texi: Makefile texinfo-tabulate.awk")
12621 "contributors.texi:"))
12622 (invoke "make" "html/index.html")
12623 (invoke "make" "sly.info")
12624 ;; TODO: We need minimal texlive with "preprint" package
12625 ;; (for fullpage.sty). (invoke "make" "sly-refcard.pdf")
12626 (install-file "sly.info" info-dir)
12627 (copy-recursively "html" (string-append doc-dir "/html")))
12628 (for-each (lambda (f)
12629 (install-file f doc-dir)
12630 (delete-file f))
12631 doc-files)
12632 (delete-file-recursively "doc")
12633 #t))))))
12634 (home-page "https://github.com/joaotavora/sly")
12635 (synopsis "Sylvester the Cat's Common Lisp IDE")
12636 (description
12637 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
12638 contains the following improvements over it:
12639
12640 @enumerate
12641 @item A full-featured REPL based on Emacs's @code{comint.el}. Everything
12642 can be copied to the REPL;
12643 @item Stickers, or live code annotations that record values as code traverses them.
12644 @item Flex-style completion out-of-the-box, using Emacs's completion API.
12645 Company, Helm, and other supported natively, no plugin required;
12646 @item An interactive Trace Dialog;
12647 @item Multiple inspectors and multiple REPLs, with independent history.
12648 @item Regexp-capable @code{M-x sly-apropos}.
12649 @item Cleanly ASDF-loaded by default, including contribs, enabled out-of-the-box;
12650 @item \"Presentations\" replaced by interactive backreferences, which
12651 highlight the object and remain stable throughout the REPL session;
12652 @end enumerate
12653
12654 SLY tracks SLIME's bugfixes and all its familiar features (debugger, inspector,
12655 xref, etc.) are still available, but with better integration.")
12656 (license license:gpl3+))))
12657
12658 (define-public emacs-sly-quicklisp
12659 (let ((commit "01ebe3976a244309f2e277c09206831135a0b66c")
12660 (revision "1"))
12661 (package
12662 (name "emacs-sly-quicklisp")
12663 (version (git-version "0.0.0" revision commit))
12664 (home-page "https://github.com/joaotavora/sly-quicklisp")
12665 (source
12666 (origin
12667 (method git-fetch)
12668 (uri (git-reference
12669 (url home-page)
12670 (commit commit)))
12671 (file-name (git-file-name name version))
12672 (sha256
12673 (base32
12674 "1vfqmvayf35g6y3ljsm3rlzv5jm50qikhh4lv2zkkswj6gkkb1cv"))))
12675 (build-system emacs-build-system)
12676 (propagated-inputs
12677 (list emacs-sly))
12678 (arguments
12679 `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
12680 #:phases
12681 ;; The package provides autoloads.
12682 (modify-phases %standard-phases
12683 (delete 'make-autoloads)
12684 (delete 'enable-autoloads-compilation))))
12685 (synopsis "Quicklisp support for SLY")
12686 (description
12687 "@command{sly-quicklisp} is an external contrib for SLY that provides a
12688 sly-quickload command that prompts the user for a package to install.")
12689 (license license:gpl3+))))
12690
12691 (define-public emacs-sly-asdf
12692 (let ((commit "3180921efdc19a2195960e1d601b2a6f31a6feea")
12693 (revision "5"))
12694 (package
12695 (name "emacs-sly-asdf")
12696 (version (git-version "0.1.0" revision commit))
12697 (home-page "https://github.com/mmgeorge/sly-asdf")
12698 (source
12699 (origin
12700 (method git-fetch)
12701 (uri (git-reference
12702 (url home-page)
12703 (commit commit)))
12704 (file-name (git-file-name name version))
12705 (sha256
12706 (base32
12707 "0gncp8xv33s4wx594bgd35vr1455bcggv1bg28qv75mhv41nzw97"))))
12708 (build-system emacs-build-system)
12709 (propagated-inputs
12710 (list emacs-sly emacs-popup))
12711 (arguments
12712 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)))
12713 (synopsis "ASDF contrib for SLY")
12714 (description
12715 "@command{sly-asdf} is an external contrib for SLY that provides
12716 additional support for working with ASDF projects.")
12717 (license license:gpl3+))))
12718
12719 (define-public emacs-sly-named-readtables
12720 (let ((commit "a5a42674ccffa97ccd5e4e9742beaf3ea719931f")
12721 (revision "1"))
12722 (package
12723 (name "emacs-sly-named-readtables")
12724 (version (git-version "0.1" revision commit))
12725 (home-page "https://github.com/joaotavora/sly-named-readtables")
12726 (source
12727 (origin
12728 (method git-fetch)
12729 (uri (git-reference
12730 (url home-page)
12731 (commit commit)))
12732 (file-name (git-file-name name version))
12733 (sha256
12734 (base32
12735 "16asd119rzqrlclps2q6yrkis8jy5an5xgzzqvb7jdyq39zxg54q"))))
12736 (build-system emacs-build-system)
12737 (propagated-inputs
12738 (list emacs-sly))
12739 (arguments
12740 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
12741 #:phases (modify-phases %standard-phases
12742 ;; Byte compilation of the autoload file fails.
12743 (delete 'enable-autoloads-compilation))))
12744 (synopsis "Named-readtables support for SLY")
12745 (description
12746 "@command{sly-named-readtables} is an external contrib for SLY that
12747 enables different readtables to be active in different parts of the same
12748 file.")
12749 (license license:gpl3+))))
12750
12751 (define-public emacs-sly-macrostep
12752 (let ((commit "5113e4e926cd752b1d0bcc1508b3ebad5def5fad")
12753 (revision "2"))
12754 (package
12755 (name "emacs-sly-macrostep")
12756 (version (git-version "0.1" revision commit))
12757 (home-page "https://github.com/joaotavora/sly-macrostep")
12758 (source
12759 (origin
12760 (method git-fetch)
12761 (uri (git-reference
12762 (url home-page)
12763 (commit commit)))
12764 (file-name (git-file-name name version))
12765 (sha256
12766 (base32
12767 "1nxf28gn4f3n0wnv7nb5sgl36fz175y470zs9hig4kq8cp0yal0r"))))
12768 (build-system emacs-build-system)
12769 (propagated-inputs
12770 (list emacs-sly emacs-macrostep))
12771 (arguments
12772 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
12773 #:phases
12774 ;; The package provides autoloads.
12775 (modify-phases %standard-phases
12776 (delete 'make-autoloads)
12777 (delete 'enable-autoloads-compilation))))
12778 (synopsis "Expand Common Lisp macros inside source files with SLY")
12779 (description
12780 "@command{sly-macrostep} is a SLY contrib for expanding CL macros right
12781 inside the source file.")
12782 (license license:gpl3+))))
12783
12784 (define-public emacs-sly-stepper
12785 (let ((commit "da84e3bba8466c2290c2dc7c27d7f4c48c27b39e"))
12786 (package
12787 (name "emacs-sly-stepper")
12788 (version (git-version "0.0.0" "2" commit))
12789 (home-page "https://github.com/joaotavora/sly-stepper")
12790 (source
12791 (origin
12792 (method git-fetch)
12793 (uri (git-reference
12794 (url home-page)
12795 (commit commit)))
12796 (file-name (git-file-name name version))
12797 (sha256
12798 (base32
12799 "07p0k797fagn1qha191p6g2b55hsqqkcj59mh0ms9id0ildydil0"))
12800 (modules '((guix build utils)))
12801 (snippet
12802 '(begin
12803 (map delete-file (find-files "." ".*-autoloads\\.elc?$"))
12804 #t))))
12805 (build-system emacs-build-system)
12806 (inputs
12807 (list cl-agnostic-lizard))
12808 (propagated-inputs
12809 (list emacs-sly))
12810 (arguments
12811 `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
12812 #:phases
12813 (modify-phases %standard-phases
12814 (add-after 'expand-load-path 'expand-sly-contrib
12815 (lambda* (#:key inputs #:allow-other-keys)
12816 (let* ((sly (assoc-ref inputs "emacs-sly"))
12817 (contrib (find-files sly "^contrib$" #:directories? #t)))
12818 (setenv "EMACSLOADPATH"
12819 (string-append (string-join contrib ":")
12820 ":"
12821 (getenv "EMACSLOADPATH")))
12822 #t)))
12823 (add-after 'install 'find-agnostic-lizard
12824 (lambda* (#:key inputs outputs #:allow-other-keys)
12825 (let* ((out (assoc-ref outputs "out"))
12826 (file (string-append (elpa-directory out)
12827 "/slynk-stepper.lisp"))
12828 (asd (string-append
12829 (assoc-ref inputs "cl-agnostic-lizard")
12830 "/share/common-lisp/systems/agnostic-lizard.asd")))
12831 ;; agnostic-lizard is found at runtime.
12832 (substitute* file
12833 (("\\(require :asdf\\)")
12834 (string-append
12835 "(require :asdf)\n"
12836 " (funcall (read-from-string \"asdf:load-asd\")\n"
12837 " \"" asd "\")\n")))))))))
12838 (synopsis "Portable Common Lisp stepper interface for Emacs")
12839 (description
12840 "This package features a new, portable, visual stepping facility for
12841 Common Lisp, realized as an extension to SLY.")
12842 (license license:gpl3+))))
12843
12844 (define-public emacs-sly-package-inferred
12845 (let ((commit "800e71e2be631422277e2ec77e6d6f6ea20e95ef")
12846 (revision "1"))
12847 (package
12848 (name "emacs-sly-package-inferred")
12849 (version (git-version "0.1" revision commit))
12850 (home-page "https://github.com/40ants/sly-package-inferred")
12851 (source
12852 (origin
12853 (method git-fetch)
12854 (uri (git-reference
12855 (url home-page)
12856 (commit commit)))
12857 (file-name (git-file-name name version))
12858 (sha256
12859 (base32
12860 "1216idyp034nkqddhw4p53jkhhdxa6xnjjmsvijpf4rxqnfqvapg"))))
12861 (build-system emacs-build-system)
12862 (propagated-inputs
12863 (list emacs-sly))
12864 (arguments
12865 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
12866 #:phases
12867 ;; The package provides autoloads.
12868 (modify-phases %standard-phases
12869 (delete 'make-autoloads))))
12870 (synopsis "Improved package inferred systems support for SLY")
12871 (description
12872 "@command{sly-package-inferred} is an external contrib for SLY that
12873 replaces its completion with a function which is better suited for systems
12874 using package inferred style.")
12875 (license license:gpl3+))))
12876
12877 (define-public emacs-lua-mode
12878 (package
12879 (name "emacs-lua-mode")
12880 (version "20210802")
12881 (home-page "https://github.com/immerrr/lua-mode/")
12882 (source
12883 (origin
12884 (method git-fetch)
12885 (uri (git-reference
12886 (url home-page)
12887 (commit (string-append "v" version))))
12888 (file-name (git-file-name name version))
12889 (sha256
12890 (base32 "0r3svhggdml2n256k3b0zmbjnw51p46gan6dg07bhavpfrqs5196"))))
12891 (build-system emacs-build-system)
12892 (arguments
12893 `(#:tests? #t
12894 #:test-command '("buttercup" "-l" "lua-mode.el")))
12895 (native-inputs
12896 (list emacs-buttercup-1.25 lua))
12897 (synopsis "Major mode for lua")
12898 (description
12899 "This Emacs package provides a mode for @uref{https://www.lua.org/,
12900 Lua programming language}.")
12901 (license license:gpl2+)))
12902
12903 (define-public emacs-ebuild-mode
12904 (package
12905 (name "emacs-ebuild-mode")
12906 (version "1.60")
12907 (source
12908 (origin
12909 (method url-fetch)
12910 (uri (string-append
12911 "https://dev.gentoo.org/~ulm/emacs/"
12912 "ebuild-mode-" version ".tar.xz"))
12913 (file-name (string-append name "-" version ".tar.xz"))
12914 (sha256
12915 (base32 "1n7knzssvz0yyhnn6m37lz8d9v2840skcbm0ipqjpqyzawnr3psw"))))
12916 (build-system emacs-build-system)
12917 (arguments
12918 (list
12919 #:phases
12920 #~(modify-phases %standard-phases
12921 (add-after 'install 'install-doc
12922 (lambda _
12923 (invoke "make" "ebuild-mode.info")
12924 (install-file "ebuild-mode.info"
12925 (string-append #$output "/share/info")))))))
12926 (native-inputs
12927 (list texinfo))
12928 (home-page "https://devmanual.gentoo.org")
12929 (synopsis "Major modes for Gentoo package files")
12930 (description
12931 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
12932 news items, openrc and runscripts.")
12933 (license license:gpl2+)))
12934
12935 (define-public emacs-evil
12936 ;; Commit message claims this is 1.15.0, but there's no tag for it, so we
12937 ;; use full git-version instead
12938 (let ((commit "008a6cdb12f15e748979a7d1c2f26c34c84dedbf")
12939 (revision "0"))
12940 (package
12941 (name "emacs-evil")
12942 (version (git-version "1.15.0" revision commit))
12943 (source
12944 (origin
12945 (method git-fetch)
12946 (uri (git-reference
12947 (url "https://github.com/emacs-evil/evil")
12948 (commit commit)))
12949 (file-name (git-file-name name version))
12950 (sha256
12951 (base32
12952 "1hxhw1rsm0wbrhz85gfabncanijpxd47g5yrdnl3bbm499z1gsvg"))))
12953 (arguments
12954 `(#:phases
12955 (modify-phases %standard-phases
12956 (add-before 'check 'fix-test-helpers
12957 (lambda _
12958 (substitute* "evil-test-helpers.el"
12959 (("\\(undo-tree-mode 1\\)") ""))
12960 #t))
12961 (add-before 'install 'make-info
12962 (lambda _
12963 (with-directory-excursion "doc/build/texinfo"
12964 (invoke "makeinfo" "--no-split"
12965 "-o" "evil.info" "evil.texi")))))))
12966 (build-system emacs-build-system)
12967 (native-inputs (list texinfo))
12968 (home-page "https://github.com/emacs-evil/evil")
12969 (synopsis "Extensible Vi layer for Emacs")
12970 (description
12971 "Evil is an extensible vi layer for Emacs. It emulates the
12972 main features of Vim, and provides facilities for writing custom
12973 extensions.")
12974 (license license:gpl3+))))
12975
12976 (define-public emacs-evil-collection
12977 (package
12978 (name "emacs-evil-collection")
12979 (version "0.0.8")
12980 (source
12981 (origin
12982 (method git-fetch)
12983 (uri (git-reference
12984 (url "https://github.com/emacs-evil/evil-collection")
12985 (commit version)))
12986 (file-name (git-file-name name version))
12987 (sha256
12988 (base32 "159i3qvjnp7jiffwpr517nnxcy3w3g40302vyzxvz6mb6qay6f2c"))))
12989 (build-system emacs-build-system)
12990 (propagated-inputs
12991 (list emacs-evil emacs-annalist))
12992 (arguments
12993 `(#:include (cons* "^modes\\/" %default-include)))
12994 (home-page "https://github.com/emacs-evil/evil-collection")
12995 (synopsis "Collection of Evil bindings for many major and minor modes")
12996 (description "This is a collection of Evil bindings for the parts of
12997 Emacs that Evil does not cover properly by default, such as @code{help-mode},
12998 @code{M-x calendar}, Eshell and more.")
12999 (license license:gpl3+)))
13000
13001 (define-public emacs-evil-goggles
13002 (let ((commit "08a22058fd6a167f9f1b684c649008caef571459")
13003 (version "0.0.1")
13004 (revision "0"))
13005 (package
13006 (name "emacs-evil-goggles")
13007 (version (git-version version revision commit))
13008 (source
13009 (origin
13010 (method git-fetch)
13011 (uri (git-reference
13012 (url "https://github.com/edkolev/evil-goggles")
13013 (commit commit)))
13014 (file-name (git-file-name name version))
13015 (sha256
13016 (base32 "1p3vjrij63v9nrcyj3b5jsqzv9y7dgv9i1inx1q7x3s90vndavac"))))
13017 (build-system emacs-build-system)
13018 (propagated-inputs
13019 (list emacs-evil))
13020 (home-page "https://github.com/edkolev/evil-goggles")
13021 (synopsis "Displays visual hints when editing with evil")
13022 (description "Creates a visual pulse to indicate the region that is
13023 being deleted, changed, yanked, or pasted when using evil commands")
13024 (license license:gpl3+))))
13025
13026 (define-public emacs-goggles
13027 (package
13028 (name "emacs-goggles")
13029 (version "0.2")
13030 (source
13031 (origin
13032 (method git-fetch)
13033 (uri (git-reference
13034 (url "https://github.com/minad/goggles")
13035 (commit version)))
13036 (file-name (git-file-name name version))
13037 (sha256
13038 (base32 "15bqjmwfdqp2np6fln6xjyw59c5iddvzsyga0lvb8raa753cdh2k"))))
13039 (build-system emacs-build-system)
13040 (home-page "https://github.com/minad/goggles")
13041 (synopsis "Pulse modified region")
13042 (description "Goggles highlights the modified region using pulse.
13043 Currently the commands undo, yank, kill and delete are supported.")
13044 (license license:gpl3+)))
13045
13046 (define-public emacs-goto-chg
13047 (package
13048 (name "emacs-goto-chg")
13049 (version "1.7.5")
13050 (source
13051 (origin
13052 (method git-fetch)
13053 (uri (git-reference
13054 (url "https://github.com/emacs-evil/goto-chg")
13055 (commit version)))
13056 (file-name (git-file-name name version))
13057 (sha256
13058 (base32
13059 "0rgdzhan4n5bd78wvivacqkp0g7jvnwzgh0571p2m4yra09a36mv"))))
13060 (build-system emacs-build-system)
13061 (home-page "https://github.com/emacs-evil/goto-chg")
13062 (synopsis "Go to the last change in the Emacs buffer")
13063 (description
13064 "This package provides @code{M-x goto-last-change} command that goes to
13065 the point of the most recent edit in the current Emacs buffer. When repeated,
13066 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
13067 used for reverse direction.")
13068 (license license:gpl2+)))
13069
13070 (define-public emacs-janpath-evil-numbers
13071 (let ((commit "d988041c1fe6e941dc8d591390750b237f71f524")
13072 (version "0.5")
13073 (revision "1"))
13074 (package
13075 (name "emacs-janpath-evil-numbers")
13076 (version (git-version version revision commit))
13077 (source
13078 (origin
13079 (method git-fetch)
13080 (uri (git-reference
13081 (url "https://github.com/janpath/evil-numbers")
13082 (commit commit)))
13083 (file-name (git-file-name name version))
13084 (sha256
13085 (base32
13086 "16zixhxxcb83m82f2cfiardfn99j3w41v6vh1qk6j9pplrlfw70v"))))
13087 (build-system emacs-build-system)
13088 (propagated-inputs (list emacs-evil))
13089 (home-page "https://github.com/janpath/evil-numbers")
13090 (synopsis "Increment and decrement numeric literals")
13091 (description
13092 "This package provides functionality to search for a number up to the
13093 end of a line and increment or decrement it.")
13094 (license license:gpl3+))))
13095
13096 (define-public emacs-evil-owl
13097 (let ((commit "24c5f43df375194386344e69bc720ea3986c9510")
13098 (revision "3"))
13099 (package
13100 (name "emacs-evil-owl")
13101 (version (git-version "0.0.1" revision commit))
13102 (source
13103 (origin
13104 (method git-fetch)
13105 (uri (git-reference
13106 (url "https://github.com/mamapanda/evil-owl")
13107 (commit commit)))
13108 (file-name (git-file-name name version))
13109 (sha256
13110 (base32
13111 "0bqzch14whlmrcasakah3psrzswvkzd7mmi8hx5s64kfp29wbdhi"))))
13112 (build-system emacs-build-system)
13113 (propagated-inputs
13114 (list emacs-evil))
13115 (arguments
13116 `(#:tests? #t
13117 #:test-command '("make" "test")))
13118 (home-page "https://github.com/mamapanda/evil-owl")
13119 (synopsis "Preview candidates when using Evil registers and marks")
13120 (description
13121 "This package supplements Evil's register- and mark-based commands with
13122 a popup window for previewing candidates.")
13123 (license license:gpl3+))))
13124
13125 (define-public emacs-evil-paredit
13126 (let ((commit "e058fbdcf9dbf7ad6cc77f0172d7517ef233d55f"))
13127 (package
13128 (name "emacs-evil-paredit")
13129 (version "0.0.2") ; says 0.0.2 in evil-paredit.el
13130 (source
13131 (origin
13132 (method git-fetch)
13133 (uri (git-reference
13134 (url "https://github.com/roman/evil-paredit")
13135 (commit commit)))
13136 (file-name (git-file-name name version))
13137 (sha256
13138 (base32 "0b08y4spapl4g2292j3l4cr84gjlvm3rpma3gqld4yb1sxd7v78p"))))
13139 (build-system emacs-build-system)
13140 (propagated-inputs
13141 (list emacs-evil emacs-paredit))
13142 (home-page "https://github.com/roman/evil-paredit")
13143 (synopsis "Evil extension to integrate nicely with Paredit")
13144 (description
13145 "This package helps you to not screw up your Paredit setup when using
13146 Evil mode. Whenever you try to use a modifier command like @kbd{d}, @kbd{c},
13147 @kbd{y} to modify the Paredit buffer, it will stop you to do so in the case
13148 you break the parity of parenthesis.")
13149 (license license:expat))))
13150
13151 (define-public emacs-evil-args
13152 (let ((commit "758ad5ae54ad34202064fec192c88151c08cb387")
13153 (revision "1"))
13154 (package
13155 (name "emacs-evil-args")
13156 (version (git-version "1.0" revision commit))
13157 (source
13158 (origin
13159 (method git-fetch)
13160 (uri (git-reference
13161 (url "https://github.com/wcsmith/evil-args")
13162 (commit commit)))
13163 (file-name (git-file-name name version))
13164 (sha256
13165 (base32
13166 "0k35glgsirc3cph8v5hhjrqfh4ndwh8a28qbr03y3jl8s453xcj7"))))
13167 (build-system emacs-build-system)
13168 (propagated-inputs (list emacs-evil))
13169 (home-page "https://github.com/wcsmith/evil-args")
13170 (synopsis "Motions and text objects for delimited arguments in Evil")
13171 (description
13172 "This package provides motions and text objects for delimited
13173 arguments, such as arguments separated by commas and semicolons.")
13174 (license license:expat))))
13175
13176 (define-public emacs-evil-escape
13177 (package
13178 (name "emacs-evil-escape")
13179 (version "3.14")
13180 (source
13181 (origin
13182 (method git-fetch)
13183 (uri
13184 (git-reference
13185 (url "https://github.com/syl20bnr/evil-escape")
13186 (commit (string-append "v" version))))
13187 (file-name (git-file-name name version))
13188 (sha256
13189 (base32 "0s8lmmm25qabicwaj9jybpbd8mkc62yl7jnhk1lpablydjkv3w2i"))))
13190 (propagated-inputs
13191 (list emacs-evil))
13192 (build-system emacs-build-system)
13193 (home-page "https://github.com/syl20bnr/evil-escape")
13194 (synopsis "Escape from insert state and everything else in Emacs")
13195 (description
13196 "Evil escape provides a customizable key sequence to escape from insert
13197 state and everything else in Emacs.")
13198 (license license:gpl3+)))
13199
13200 (define-public emacs-evil-exchange
13201 (let ((commit "47691537815150715e64e6f6ec79be7746c96120")
13202 (version "0.41")
13203 (revision "1"))
13204 (package
13205 (name "emacs-evil-exchange")
13206 (version (git-version version revision commit))
13207 (source
13208 (origin
13209 (method git-fetch)
13210 (uri (git-reference
13211 (url "https://github.com/Dewdrops/evil-exchange")
13212 (commit commit)))
13213 (file-name (git-file-name name version))
13214 (sha256
13215 (base32
13216 "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa"))))
13217 (build-system emacs-build-system)
13218 (propagated-inputs (list emacs-evil))
13219 (native-inputs (list emacs-ert-runner))
13220 (arguments
13221 `(#:phases
13222 (modify-phases %standard-phases
13223 (add-before 'check 'fix-makefile
13224 (lambda _
13225 (substitute* "Makefile"
13226 (("cask exec ") ""))
13227 #t)))
13228 #:tests? #t
13229 #:test-command '("make" "test")))
13230 (home-page "https://github.com/Dewdrops/evil-exchange")
13231 (synopsis "Exchange text easily within Evil")
13232 (description
13233 "This package, a port of @code{vim-exchange}, provides an Evil operator
13234 for exchanging text.")
13235 (license license:gpl3+))))
13236
13237 (define-public emacs-evil-replace-with-register
13238 (let ((commit "91cc7bf21a94703c441cc9212214075b226b7f67")
13239 (version "0.1")
13240 (revision "1"))
13241 (package
13242 (name "emacs-evil-replace-with-register")
13243 (version (git-version version revision commit))
13244 (source
13245 (origin
13246 (method git-fetch)
13247 (uri (git-reference
13248 (url "https://github.com/Dewdrops/evil-ReplaceWithRegister")
13249 (commit commit)))
13250 (file-name (git-file-name name version))
13251 (sha256
13252 (base32
13253 "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11"))))
13254 (build-system emacs-build-system)
13255 (propagated-inputs (list emacs-evil))
13256 (home-page "https://github.com/Dewdrops/evil-ReplaceWithRegister")
13257 (synopsis "Quickly replace text with the contents of a register")
13258 (description
13259 "This package provides an Evil operator for replacing text with the
13260 contents of a register.")
13261 (license license:gpl3+))))
13262
13263 (define-public emacs-evil-indent-plus
13264 (let ((commit "0c7501e6efed661242c3a20e0a6c79a6455c2c40")
13265 (version "1.0.0")
13266 (revision "1"))
13267 (package
13268 (name "emacs-evil-indent-plus")
13269 (version (git-version version revision commit))
13270 (source
13271 (origin
13272 (method git-fetch)
13273 (uri (git-reference
13274 (url "https://github.com/TheBB/evil-indent-plus")
13275 (commit commit)))
13276 (file-name (git-file-name name version))
13277 (sha256
13278 (base32
13279 "1g6r1ydscwjvmhh1zg4q3nap4avk8lb9msdqrh7dff6pla0r2qs6"))))
13280 (build-system emacs-build-system)
13281 (propagated-inputs (list emacs-evil))
13282 (home-page "https://github.com/TheBB/evil-indent-plus")
13283 (synopsis "Text objects based on indentation")
13284 (description
13285 "This package adds new text objects for @code{evil-mode} based on
13286 blocks having the same or higher indentation, including or excluding
13287 surrounding lines.")
13288 (license license:gpl2+))))
13289
13290 (define-public emacs-evil-text-object-python
13291 (let ((commit "9a064fe6475429145cbcc3b270fcc963b67adb15")
13292 (version "1.0.1")
13293 (revision "1"))
13294 (package
13295 (name "emacs-evil-text-object-python")
13296 (version (git-version version revision commit))
13297 (source
13298 (origin
13299 (method git-fetch)
13300 (uri (git-reference
13301 (url "https://github.com/wbolster/evil-text-object-python")
13302 (commit commit)))
13303 (file-name (git-file-name name version))
13304 (sha256
13305 (base32
13306 "074zpm6mmr1wfl6d5xdf8jk1fs4ccpbzf4ahhkwga9g71xiplszv"))))
13307 (build-system emacs-build-system)
13308 (propagated-inputs (list emacs-evil))
13309 (home-page "https://github.com/wbolster/evil-text-object-python")
13310 (synopsis "Text objects for Python")
13311 (description
13312 "This package provides @code{evil-mode} text objects for Python.")
13313 (license license:gpl3+))))
13314
13315 (define-public emacs-evil-lion
13316 (let ((commit "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab")
13317 (revision "1"))
13318 (package
13319 (name "emacs-evil-lion")
13320 (version (git-version "0.0.2" revision commit))
13321 (source
13322 (origin
13323 (method git-fetch)
13324 (uri (git-reference
13325 (url "https://github.com/edkolev/evil-lion")
13326 (commit commit)))
13327 (file-name (git-file-name name version))
13328 (sha256
13329 (base32
13330 "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q"))))
13331 (build-system emacs-build-system)
13332 (propagated-inputs (list emacs-evil))
13333 (arguments
13334 `(#:tests? #t
13335 #:test-command '("make" "test")))
13336 (home-page "https://github.com/edkolev/evil-lion")
13337 (synopsis "Align operator for @code{evil-mode}")
13338 (description
13339 "This package, a port of @code{vim-lion}, provides an operator for
13340 aligning text objects based on separators.")
13341 (license license:gpl3+))))
13342
13343 (define-public emacs-evil-expat
13344 (let ((commit "f4fcd0aa3edc359adb5c986b5dd9188d220d84e2")
13345 (revision "1"))
13346 (package
13347 (name "emacs-evil-expat")
13348 (version (git-version "0.0.1" revision commit))
13349 (source
13350 (origin
13351 (method git-fetch)
13352 (uri (git-reference
13353 (url "https://github.com/edkolev/evil-expat")
13354 (commit commit)))
13355 (file-name (git-file-name name version))
13356 (sha256
13357 (base32
13358 "0872ix682hkdz0k8pn6sb54rqkx00rz5fxpd5j2snx406yagpaxz"))))
13359 (build-system emacs-build-system)
13360 (propagated-inputs (list emacs-evil))
13361 (arguments
13362 `(#:tests? #t
13363 #:test-command '("make" "test")))
13364 (home-page "https://github.com/edkolev/evil-expat")
13365 (synopsis "Extra @code{ex} commands for @code{evil-mode}")
13366 (description
13367 "This package provides additional commands for the @code{ex} command
13368 line, including functions for version control with Git and for copying and
13369 pasting into and from @code{tmux} paste buffers.")
13370 (license license:gpl3+))))
13371
13372 (define-public emacs-evil-nerd-commenter
13373 (package
13374 (name "emacs-evil-nerd-commenter")
13375 (version "3.5.7")
13376 (source
13377 (origin
13378 (method git-fetch)
13379 (uri (git-reference
13380 (url "https://github.com/redguardtoo/evil-nerd-commenter")
13381 (commit version)))
13382 (file-name (git-file-name name version))
13383 (sha256
13384 (base32
13385 "0xnm8i23c2p3mdf4xxjk00766ygvysk7c8iib2jkah5pfg6jc9vb"))))
13386 (build-system emacs-build-system)
13387 (propagated-inputs (list emacs-evil))
13388 (home-page "https://github.com/redguardtoo/evil-nerd-commenter")
13389 (synopsis "Comment and uncomment lines efficiently")
13390 (description
13391 "This package provides text objects and operators for comments within
13392 @code{evil-mode}.")
13393 (license license:gpl3+)))
13394
13395 (define-public emacs-evil-visual-replace
13396 (package
13397 (name "emacs-evil-visual-replace")
13398 (version "0.0.5")
13399 (source
13400 (origin
13401 (method git-fetch)
13402 (uri (git-reference
13403 (url "https://github.com/troyp/evil-visual-replace")
13404 (commit version)))
13405 (file-name (git-file-name name version))
13406 (sha256
13407 (base32
13408 "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"))))
13409 (build-system emacs-build-system)
13410 (propagated-inputs (list emacs-evil))
13411 (home-page "https://github.com/troyp/evil-visual-replace")
13412 (synopsis "Replacement commands for @code{evil-mode} visual blocks")
13413 (description
13414 "This package provides versions of @code{query-replace} and
13415 @code{replace-regexp} that work for @code{evil-mode} visual blocks.")
13416 (license license:gpl2+)))
13417
13418 (define-public emacs-evil-visualstar
13419 (let ((commit "06c053d8f7381f91c53311b1234872ca96ced752")
13420 (version "0.2.0")
13421 (revision "1"))
13422 (package
13423 (name "emacs-evil-visualstar")
13424 (version (git-version version revision commit))
13425 (source
13426 (origin
13427 (method git-fetch)
13428 (uri (git-reference
13429 (url "https://github.com/bling/evil-visualstar")
13430 (commit commit)))
13431 (file-name (git-file-name name version))
13432 (sha256
13433 (base32
13434 "0mkbzw12fav945icibc2293m5haxqr3hzkyli2cf4ssk6yvn0x4c"))))
13435 (build-system emacs-build-system)
13436 (propagated-inputs (list emacs-evil))
13437 (home-page "https://github.com/bling/evil-visualstar")
13438 (synopsis "Instantly search using the visual selection")
13439 (description
13440 "This package provides @code{evil-mode} functions for using selected text
13441 to search.")
13442 (license license:gpl3+))))
13443
13444 (define-public emacs-monky
13445 (package
13446 (name "emacs-monky")
13447 (version "0.1")
13448 (source (origin
13449 (method git-fetch)
13450 (uri (git-reference
13451 (url "https://github.com/ananthakumaran/monky")
13452 (commit version)))
13453 (file-name (git-file-name name version))
13454 (sha256
13455 (base32
13456 "1fgn7al4zwz2k5wb5dy3byqg9lsrjk9fra341mxh5ma2pfwxjgps"))))
13457 (build-system emacs-build-system)
13458 (home-page "https://ananthakumaran.in/monky/index.html")
13459 (arguments
13460 `(#:tests? #t
13461 #:test-command '("emacs" "--batch"
13462 "-l" "test/monky-unit-test.el"
13463 "-f" "ert-run-tests-batch-and-exit")))
13464 (synopsis "Interactive interface for the Mercurial version control system")
13465 (description
13466 "Monky provides an Emacs interface for Mercurial (Hg). Using Monky, you
13467 can selectively commit files, view the diffs, and other things.")
13468 (license license:gpl3+)))
13469
13470 (define-public emacs-monroe
13471 (package
13472 (name "emacs-monroe")
13473 (version "0.3.1")
13474 (source
13475 (origin
13476 (method git-fetch)
13477 (uri (git-reference
13478 (url "https://github.com/sanel/monroe")
13479 (commit version)))
13480 (file-name (git-file-name name version))
13481 (sha256
13482 (base32 "101lfrykdbv37spkbw7zihhx26bc1lhjyxbanrcp9880bxj04jiy"))))
13483 (build-system emacs-build-system)
13484 (home-page "https://github.com/sanel/monroe")
13485 (synopsis "Clojure nREPL client for Emacs")
13486 (description
13487 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
13488 distribution, primarily targeting Clojure users")
13489 (license license:gpl3+)))
13490
13491 (define-public emacs-orgalist
13492 (package
13493 (name "emacs-orgalist")
13494 (version "1.13")
13495 (source
13496 (origin
13497 (method url-fetch)
13498 (uri (string-append "https://elpa.gnu.org/packages/"
13499 "orgalist-" version ".el"))
13500 (sha256
13501 (base32 "1wkxc5kcy1g4lx6pd78pa8znncjyl9zyhsvz7wpp56qmhq4hlav3"))))
13502 (build-system emacs-build-system)
13503 (home-page "https://elpa.gnu.org/packages/orgalist.html")
13504 (synopsis "Manage Org-like lists in non-Org buffers")
13505 (description "Orgalist writes and manages Org mode's plain lists in
13506 non-Org buffers. More specifically, it supports the syntax of Org mode for
13507 numbered, unnumbered, description items, checkboxes, and counter cookies.
13508
13509 The library also implements radio lists, i.e., lists written in Org syntax
13510 later translated into the host format, e.g., LaTeX or HTML.")
13511 (license license:gpl3+)))
13512
13513 (define-public emacs-writegood-mode
13514 (package
13515 (name "emacs-writegood-mode")
13516 (version "2.2.0")
13517 (home-page "https://github.com/bnbeckwith/writegood-mode")
13518 (source (origin
13519 (method git-fetch)
13520 (uri (git-reference
13521 (url home-page)
13522 (commit (string-append "v" version))))
13523 (sha256
13524 (base32
13525 "1a3gmaaa344kigr209b6wnjiw9ikkmw1j5jda04h3g8f9817njyv"))
13526 (file-name (string-append name "-checkout"))))
13527 (build-system emacs-build-system)
13528 (synopsis "Polish up poor writing on the fly")
13529 (description
13530 "This minor mode tries to find and highlight problems with your writing
13531 in English as you type. It primarily detects \"weasel words\" and abuse of
13532 passive voice.")
13533 (license license:gpl3+)))
13534
13535 (define-public emacs-neotree
13536 (package
13537 (name "emacs-neotree")
13538 (version "0.5.2")
13539 (home-page "https://github.com/jaypei/emacs-neotree")
13540 (source (origin
13541 (method git-fetch)
13542 (uri (git-reference
13543 (url home-page)
13544 (commit version)))
13545 (sha256
13546 (base32
13547 "0hx72fq10772bbyqrj7mhhp02k26cccjxdadiqm1ykainhfmn1x0"))
13548 (file-name (git-file-name name version))))
13549 (build-system emacs-build-system)
13550 (synopsis "Folder tree view for Emacs")
13551 (description "This Emacs package provides a folder tree view.")
13552 (license license:gpl3+)))
13553
13554 (define-public emacs-org
13555 (package
13556 (name "emacs-org")
13557 (version "9.5.5")
13558 (source
13559 (origin
13560 (method git-fetch)
13561 (uri (git-reference
13562 (url "https://git.savannah.gnu.org/git/emacs/org-mode.git")
13563 (commit (string-append "release_" version))))
13564 (file-name (git-file-name name version))
13565 (sha256
13566 (base32 "0bswysz5laiya9pm689v4rpxjlfqg21azyh1jal9jq80iwjwi2p8"))))
13567 (build-system emacs-build-system)
13568 (arguments
13569 `(#:tests? #t
13570 #:test-command '("make" "test-dirty")
13571 #:phases
13572 (modify-phases %standard-phases
13573 (add-before 'check 'make
13574 (lambda _
13575 (invoke "make" (string-append "ORGVERSION=" ,version))))
13576 (replace 'install
13577 (lambda* (#:key outputs #:allow-other-keys)
13578 (substitute* "local.mk"
13579 (("^prefix.*")
13580 (string-append "prefix = " (assoc-ref outputs "out")))
13581 (("^lispdir.*")
13582 (string-append "lispdir = "
13583 (elpa-directory (assoc-ref outputs "out")))))
13584 ;; The dependent targets for install perform cleanup that
13585 ;; partially undoes our make phase
13586 (substitute* "lisp/Makefile"
13587 (("^install:.*") "install:\n"))
13588 (invoke "make" "install")))
13589 (add-after 'unpack 'fix-tests
13590 (lambda* (#:key inputs #:allow-other-keys)
13591 ;; These files are modified during testing
13592 (with-directory-excursion "testing/examples"
13593 (for-each make-file-writable
13594 '("babel.org"
13595 "ob-awk-test.org"
13596 "ob-sed-test.org"
13597 "ob-shell-test.org"))
13598 ;; Specify where sh is
13599 (substitute* "babel.org"
13600 (("/bin/sh" sh)
13601 (string-append (assoc-ref inputs "bash") sh)))))))))
13602 (native-inputs
13603 (list texinfo))
13604 (home-page "https://orgmode.org/")
13605 (synopsis "Outline-based notes management and organizer")
13606 (description "Org is an Emacs mode for keeping notes, maintaining TODO
13607 lists, and project planning with a fast and effective lightweight markup
13608 language. It also is an authoring system with unique support for literate
13609 programming and reproducible research.")
13610 (license license:gpl3+)))
13611
13612 (define-public emacs-org-contrib
13613 (package
13614 (name "emacs-org-contrib")
13615 (version "0.4")
13616 (source
13617 (origin
13618 (method git-fetch)
13619 (uri (git-reference
13620 (url "https://git.sr.ht/~bzg/org-contrib")
13621 (commit (string-append "release_" version))))
13622 (file-name (git-file-name name version))
13623 (sha256
13624 (base32 "06b1rpywj596nnnap6pj6fnmcq8fcc4i30zv7qsvs3ryxciw01fb"))))
13625 (build-system emacs-build-system)
13626 (arguments
13627 `(#:phases
13628 (modify-phases %standard-phases
13629 (add-after 'unpack 'enter-source-directory
13630 (lambda _
13631 (chdir "lisp"))))))
13632 (native-inputs
13633 (list emacs-cider))
13634 (propagated-inputs
13635 (list emacs-org))
13636 (home-page "https://git.sr.ht/~bzg/org-contrib")
13637 (synopsis "Unmaintained add-ons for Org mode")
13638 (description
13639 "This package contains add-ons to Org. Be warned that these libraries
13640 receive little if no maintenance and there is no guaranty that they are
13641 compatible with the Org stable version.")
13642 (license license:gpl3+)))
13643
13644 (define-public emacs-org-contacts
13645 ;; XXX: Upstream does not tag version bumps. Commit below matches latest
13646 ;; version bump.
13647 (let ((commit "217ba04c9d638067a6ccb0829cf1885f54c1d568"))
13648 (package
13649 (name "emacs-org-contacts")
13650 (version "1.1")
13651 (source
13652 (origin
13653 (method git-fetch)
13654 (uri (git-reference
13655 (url "https://repo.or.cz/org-contacts")
13656 (commit commit)))
13657 (file-name (git-file-name name version))
13658 (sha256
13659 (base32 "0f0vjdvx0hffj2xvyrya8yfl77djmzmpxdxsx58ym4lmdvwyb6x3"))))
13660 (build-system emacs-build-system)
13661 (propagated-inputs (list emacs-org))
13662 (home-page "https://repo.or.cz/org-contacts")
13663 (synopsis "Contacts management system for Org mode")
13664 (description "Manage your contacts from Org mode. You can auto
13665 complete email addresses, export contacts to a vCard file, put birthdays
13666 in your Org Agenda, and more.")
13667 (license license:gpl3+))))
13668
13669 (define-public emacs-org-vcard
13670 (package
13671 (name "emacs-org-vcard")
13672 (version "0.2.0")
13673 (source
13674 (origin
13675 (method git-fetch)
13676 (uri (git-reference
13677 (url "https://github.com/flexibeast/org-vcard")
13678 (commit (string-append "v" version))))
13679 (file-name (git-file-name name version))
13680 (sha256
13681 (base32 "14l3xqahqmnfl3sskqcr33xpcsic8dm9cr9wmbv5la3xv14n10k7"))))
13682 (build-system emacs-build-system)
13683 (home-page "https://github.com/flexibeast/org-vcard")
13684 (synopsis "Org mode support for vCard export and import")
13685 (description
13686 "This package exports and imports vCard files from within GNU Emacs' Org
13687 mode.")
13688 (license license:gpl3+)))
13689
13690 (define-public emacs-org-pretty-table
13691 ;; There is no release yet.
13692 (let ((commit "1331c600b83d95b28730b1bfcb48369ac1cf12ef")
13693 (revision "0"))
13694 (package
13695 (name "emacs-org-pretty-table")
13696 (version (git-version "0.0.1" revision commit))
13697 (source
13698 (origin
13699 (method git-fetch)
13700 (uri (git-reference
13701 (url "https://github.com/Fuco1/org-pretty-table")
13702 (commit commit)))
13703 (file-name (git-file-name name version))
13704 (sha256
13705 (base32 "0yvqxh66y400n2n5ykmb1zrzd80bakffpwn6nmf37728x4cj8krh"))))
13706 (build-system emacs-build-system)
13707 (home-page "https://github.com/Fuco1/org-pretty-table")
13708 (synopsis "Make tables in Org mode and OrgTbl mode prettier")
13709 (description
13710 "This package displays tables in Org mode and OrgTbl mode using Unicode
13711 characters.")
13712 (license license:gpl3+))))
13713
13714 (define-public emacs-ob-sclang
13715 (package
13716 (inherit emacs-org-contrib)
13717 (name "emacs-ob-sclang")
13718 (source
13719 (origin
13720 (inherit (package-source emacs-org-contrib))
13721 (modules '((guix build utils)))
13722 (snippet
13723 '(begin
13724 (with-directory-excursion "lisp"
13725 (for-each (lambda (file)
13726 (unless (equal? file "./ob-sclang.el")
13727 (delete-file file)))
13728 (find-files "." "\\.el$")))))))
13729 (propagated-inputs
13730 (list emacs-org emacs-scel))
13731 (synopsis "Org Babel support for SuperCollider")
13732 (description "This package adds support for evaluating @code{sclang}
13733 Org mode source blocks. It is extracted from the @code{emacs-org-contrib}
13734 package.")))
13735
13736 (define-public emacs-org-edna
13737 (package
13738 (name "emacs-org-edna")
13739 (version "1.1.2")
13740 (source (origin
13741 (method bzr-fetch)
13742 (uri (bzr-reference
13743 (url "bzr://bzr.savannah.nongnu.org/org-edna-el")
13744 (revision version)))
13745 (file-name (string-append name "-" version "-checkout"))
13746 (sha256
13747 (base32
13748 "01dblddgx0yid5hrgl4swbr4grhv057kfbdy122wihzqpsrgq86n"))))
13749 (build-system emacs-build-system)
13750 (home-page "https://savannah.nongnu.org/projects/org-edna-el/")
13751 (synopsis "Manage Org task dependencies")
13752 (description "This package provides an extensible means of specifying
13753 conditions which must be fulfilled before a task can be completed and actions
13754 to take once it is. Org Edna runs when either the BLOCKER or TRIGGER
13755 properties are set on a heading, and when it is changing from a TODO state to
13756 a DONE state.")
13757 (license license:gpl3+)))
13758
13759 (define-public emacs-toodoo
13760 ;; Package has no release. Version is extracted from "Version:" keyword in
13761 ;; main file, and commit below matches version bump.
13762 (package
13763 (name "emacs-toodoo")
13764 (version "0.2")
13765 (source
13766 (origin
13767 (method git-fetch)
13768 (uri (git-reference
13769 (url "https://github.com/ChanderG/toodoo.el")
13770 (commit "149a563863c2f728c5f903475dbce50547c51000")))
13771 (file-name (git-file-name name version))
13772 (sha256
13773 (base32
13774 "00q7aym0kl03j9m66pivgy0snxcjjg402049b2wdy18kgyypfvx8"))))
13775 (build-system emacs-build-system)
13776 (propagated-inputs (list emacs-evil))
13777 (home-page "https://github.com/ChanderG/toodoo.el")
13778 (synopsis "Magit-like interface for a Todo workflow built on top of Org")
13779 (description "This package provides a minor mode for fast and easy management of Todos
13780 using Org mode and transients.")
13781 (license license:asl2.0)))
13782
13783 (define-public emacs-flx
13784 (package
13785 (name "emacs-flx")
13786 (version "0.6.1")
13787 (source
13788 (origin
13789 (method git-fetch)
13790 (uri (git-reference
13791 (url "https://github.com/lewang/flx")
13792 (commit (string-append "v" version))))
13793 (sha256
13794 (base32
13795 "0sjybrcnb2sl33swy3q664vqrparajcl0m455gciiih2j87hwadc"))
13796 (file-name (git-file-name name version))))
13797 (build-system emacs-build-system)
13798 (home-page "https://github.com/lewang/flx")
13799 (synopsis "Fuzzy matching for Emacs")
13800 (description
13801 "Flx provides fuzzy matching for emacs a la sublime text.
13802 The sorting algorithm is a balance between word beginnings (abbreviation)
13803 and contiguous matches (substring). The longer the substring match,
13804 the higher it scores. This maps well to how we think about matching.
13805 Flx has support for ido (interactively do things) through flx-ido.")
13806 (license license:gpl3+)))
13807
13808 (define-public emacs-cyberpunk-theme
13809 (package
13810 (name "emacs-cyberpunk-theme")
13811 (version "1.22")
13812 (source
13813 (origin
13814 (method git-fetch)
13815 (uri (git-reference
13816 (url "https://github.com/n3mo/cyberpunk-theme.el/")
13817 (commit version)))
13818 (sha256
13819 (base32
13820 "06nff38pcy5rgz13svkajsg0jjk73qy4a8m7p9f76yxcywxlgxlc"))
13821 (file-name (git-file-name name version))))
13822 (build-system emacs-build-system)
13823 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
13824 (synopsis "Cyberpunk theme for Emacs built-in color theme support")
13825 (description
13826 "Cyberpunk color theme for the Emacs 24+ built-in color theme support
13827 known loosely as deftheme. Many mode-specific customizations are included.")
13828 (license license:gpl3+)))
13829
13830 (define-public emacs-dart-mode
13831 (package
13832 (name "emacs-dart-mode")
13833 (version "1.0.7")
13834 (source
13835 (origin
13836 (method git-fetch)
13837 (uri (git-reference
13838 (url "https://github.com/bradyt/dart-mode")
13839 (commit version)))
13840 (file-name (git-file-name name version))
13841 (sha256
13842 (base32 "1vql8m4nj0brmv58b6lkbhykik8n6j4i7d3nylcls78y7ihc2cz8"))))
13843 (build-system emacs-build-system)
13844 (propagated-inputs
13845 (list emacs-dash emacs-flycheck emacs-s))
13846 (home-page "https://github.com/bradyt/dart-mode")
13847 (synopsis "Emacs mode for the Dart programming language")
13848 (description
13849 "Dart mode is an Emacs major mode for editing Dart files. It provides
13850 basic syntax highlighting and indentation.")
13851 (license license:gpl3+)))
13852
13853 (define-public emacs-danneskjold-theme
13854 (let* ((commit "e4d1f2c76245fe9d0d07133a841e789d139df28d")
13855 (revision "2"))
13856 (package
13857 (name "emacs-danneskjold-theme")
13858 (version (git-version "0.0.0" revision commit))
13859 (source
13860 (origin
13861 (method git-fetch)
13862 (uri (git-reference
13863 (url "https://github.com/rails-to-cosmos/danneskjold-theme")
13864 (commit commit)))
13865 (file-name (git-file-name name version))
13866 (sha256
13867 (base32 "1ii3cgf4hlclwaraisxksv98mmhajx517i60p1cgd7vapznn2b6v"))))
13868 (build-system emacs-build-system)
13869 (arguments
13870 `(#:phases
13871 (modify-phases %standard-phases
13872 (add-after 'unpack 'delete-screenshots
13873 (lambda _
13874 (delete-file-recursively "screenshots"))))))
13875 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
13876 (synopsis "High-contrast Emacs theme")
13877 (description
13878 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
13879 (license license:gpl3+))))
13880
13881 (define-public emacs-dream-theme
13882 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
13883 (revision "1"))
13884 (package
13885 (name "emacs-dream-theme")
13886 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
13887 (source
13888 (origin
13889 (method git-fetch)
13890 (uri (git-reference
13891 (url "https://github.com/djcb/dream-theme")
13892 (commit commit)))
13893 (file-name (git-file-name name version))
13894 (sha256
13895 (base32
13896 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
13897 (build-system emacs-build-system)
13898 (home-page "https://github.com/djcb/dream-theme")
13899 (synopsis "High-contrast Emacs theme")
13900 (description
13901 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
13902 by zenburn, sinburn and similar themes, but slowly diverging from them.")
13903 (license license:gpl3+))))
13904
13905 (define-public emacs-dracula-theme
13906 (package
13907 (name "emacs-dracula-theme")
13908 (version "1.7.0")
13909 (source
13910 (origin
13911 (method git-fetch)
13912 (uri (git-reference
13913 (url "https://github.com/dracula/emacs")
13914 (commit (string-append "v" version))))
13915 (file-name (git-file-name name version))
13916 (sha256
13917 (base32 "15y2djc5jljlvls1x9kp50m1kp0dcksmyixafsyimj66xpq9ngh0"))))
13918 (build-system emacs-build-system)
13919 (home-page "https://draculatheme.com/")
13920 (synopsis "Dark theme for Emacs")
13921 (description
13922 "Dracula is a dark color theme for many editors, shells and more. This
13923 package provides the Emacs theme.")
13924 (license license:expat)))
13925
13926 (define-public emacs-auto-complete
13927 (package
13928 (name "emacs-auto-complete")
13929 (version "1.5.1")
13930 (source
13931 (origin
13932 (method git-fetch)
13933 (uri (git-reference
13934 (url "https://github.com/auto-complete/auto-complete")
13935 (commit (string-append "v" version))))
13936 (sha256
13937 (base32
13938 "04i9b11iksg6acn885wl3qgi5xpsm3yszlqmd2x21yhprndlz7gb"))
13939 (file-name (git-file-name name version))))
13940 (build-system emacs-build-system)
13941 (propagated-inputs
13942 (list emacs-popup))
13943 (home-page "https://github.com/auto-complete/auto-complete")
13944 (synopsis "Intelligent auto-completion extension for Emacs")
13945 (description
13946 "Auto-Complete is an intelligent auto-completion extension for Emacs.
13947 It extends the standard Emacs completion interface and provides an environment
13948 that allows users to concentrate more on their own work. Its features are:
13949 a visual interface, reduce overhead of completion by using statistic method,
13950 extensibility.")
13951 (license license:gpl3+)))
13952
13953 (define-public emacs-autocrypt
13954 (let ((commit "5b55f8d37545e9c441788627c17e350d7edf4055")
13955 (revision "0"))
13956 (package
13957 (name "emacs-autocrypt")
13958 (version (git-version "0.4.0" revision commit))
13959 (source (origin
13960 (method git-fetch)
13961 (uri (git-reference
13962 (url "https://git.sr.ht/~pkal/autocrypt")
13963 (commit commit)))
13964 (file-name (git-file-name name version))
13965 (sha256
13966 (base32
13967 "0b06xnjkgwjpxl96mdi674pmvdaiwncifi1a30wxhl1dwr7kr084"))))
13968 (build-system emacs-build-system)
13969 (home-page "https://git.sr.ht/~pkal/autocrypt")
13970 (synopsis "Autocrypt implementation for Emacs")
13971 (description "@code{emacs-autocrypt} is an implementation of
13972 Autocrypt (@url{https://autocrypt.org/}) for various Emacs MUAs. Autocrypt is
13973 a cryptographic protocol for email clients aiming to simplify key exchange and
13974 encryption.
13975
13976 Run @code{M-x autocrypt-create-account} to initialize an autocrypt key, and
13977 add @code{autocrypt-mode} to your MUA's hooks (@code{gnus-mode-hook},
13978 @code{message-mode-hook}, ...) to activate its usage.")
13979 (license license:cc0))))
13980
13981 (define-public emacs-nginx-mode
13982 (package
13983 (name "emacs-nginx-mode")
13984 (version "1.1.9")
13985 (source
13986 (origin
13987 (method git-fetch)
13988 (uri (git-reference
13989 (url "https://github.com/ajc/nginx-mode")
13990 (commit (string-append "v" version))))
13991 (file-name (git-file-name name version))
13992 (sha256
13993 (base32 "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"))))
13994 (build-system emacs-build-system)
13995 (home-page "https://github.com/ajc/nginx-mode")
13996 (synopsis "Emacs major mode for editing nginx config files")
13997 (description "This package provides an Emacs major mode for
13998 editing nginx config files.")
13999 (license license:gpl2+)))
14000
14001 (define-public emacs-stream
14002 (package
14003 (name "emacs-stream")
14004 (version "2.2.5")
14005 (source
14006 (origin
14007 (method url-fetch)
14008 (uri (string-append "https://elpa.gnu.org/packages/"
14009 "stream-" version ".tar"))
14010 (sha256
14011 (base32 "00c3n4gyxzv7vczqms0d62kl8zsmjfyxa92mwxn2snyx857a9jfw"))))
14012 (build-system emacs-build-system)
14013 (home-page "http://elpa.gnu.org/packages/stream.html")
14014 (synopsis "Implementation of streams for Emacs")
14015 (description "This library provides an implementation of streams for Emacs.
14016 Streams are implemented as delayed evaluation of cons cells.")
14017 (license license:gpl3+)))
14018
14019 (define-public emacs-cl-print
14020 (let ((commit "1a70c553dfb04352afb5b8696fe0cef8acc8f991")
14021 (revision "1"))
14022 (package
14023 (name "emacs-cl-print")
14024 (version (git-version "1.0" revision commit))
14025 (source
14026 (origin
14027 (method git-fetch)
14028 (uri (git-reference
14029 (url "https://github.com/emacsmirror/cl-print")
14030 (commit commit)))
14031 (file-name (git-file-name name version))
14032 (sha256
14033 (base32 "164zbnsi5mssvcpy0158fm7fw5cmd1r5nkpn29fmd2b2scy3gm79"))))
14034 (build-system emacs-build-system)
14035 (home-page "https://github.com/emacsmirror/cl-print")
14036 (synopsis "CL-style generic printing")
14037 (description "This package provides a generic function,
14038 @code{cl-print-object}, to which the programmer can add any method they
14039 please.")
14040 (license license:gpl3+))))
14041
14042 (define-public emacs-el-search
14043 (let ((commit "07bed84dd8ae9e4c6c648834224b1d33fdbd51e0")
14044 (revision "2"))
14045 (package
14046 (name "emacs-el-search")
14047 (version (git-version "1.12.6.1" revision commit))
14048 (source
14049 (origin
14050 (method git-fetch)
14051 (uri (git-reference
14052 (url "https://github.com/emacsmirror/el-search")
14053 (commit commit)))
14054 (file-name (git-file-name name version))
14055 (sha256
14056 (base32 "10w1ldgijdhfsrazp0y3bm76jv5wvdn94k1yp0pmc2m1896b58ak"))))
14057 (build-system emacs-build-system)
14058 (inputs
14059 (list emacs-stream emacs-cl-print))
14060 (home-page "https://github.com/emacsmirror/el-search")
14061 (synopsis "Expression based interactive search for emacs-lisp-mode")
14062 (description "This package provides expression based interactive search
14063 procedures for emacs-lisp-mode.")
14064 (license license:gpl3+))))
14065
14066 (define-public emacs-ht
14067 (package
14068 (name "emacs-ht")
14069 (version "2.3")
14070 (source
14071 (origin
14072 (method git-fetch)
14073 (uri (git-reference
14074 (url "https://github.com/Wilfred/ht.el")
14075 (commit version)))
14076 (file-name (git-file-name name version))
14077 (sha256
14078 (base32 "0can9v336lgnq0q2ha3js0565jzp3dlwwqxhcbx5swk5kp148f07"))))
14079 (build-system emacs-build-system)
14080 (propagated-inputs (list emacs-dash))
14081 (native-inputs
14082 (list emacs-ert-runner))
14083 (arguments
14084 `(#:tests? #t
14085 #:test-command '("ert-runner")))
14086 (home-page "https://github.com/Wilfred/ht.el")
14087 (synopsis "Hash table library for Emacs")
14088 (description
14089 "This package simplifies the use of hash tables in elisp. It also
14090 provides functions to convert hash tables from and to alists and plists.")
14091 (license license:gpl3+)))
14092
14093 (define-public emacs-log4e
14094 (package
14095 (name "emacs-log4e")
14096 (version "0.3.3")
14097 (source
14098 (origin
14099 (method git-fetch)
14100 (uri (git-reference
14101 (url "https://github.com/aki2o/log4e")
14102 (commit (string-append "v" version))))
14103 (file-name (git-file-name name version))
14104 (sha256
14105 (base32 "0dbnks76v05allzkhx9zmyqpn6sk5376n8k2rbpnaw6gmz1ib2fv"))))
14106 (build-system emacs-build-system)
14107 (arguments
14108 `(#:phases
14109 (modify-phases %standard-phases
14110 (add-after 'unpack 'remove-tests
14111 ;; Guile builder complains about null characters in some
14112 ;; strings of test files. Remove "test" directory (it is not
14113 ;; needed anyway).
14114 (lambda _
14115 (delete-file-recursively "test"))))))
14116 (home-page "https://github.com/aki2o/log4e")
14117 (synopsis "Logging framework for elisp")
14118 (description
14119 "This package provides a logging framework for elisp. It allows
14120 you to deal with multiple log levels.")
14121 (license license:gpl3+)))
14122
14123 (define-public emacs-denote
14124 (package
14125 (name "emacs-denote")
14126 (version "0.5.1")
14127 (source
14128 (origin
14129 (method git-fetch)
14130 (uri (git-reference
14131 (url "https://git.sr.ht/~protesilaos/denote")
14132 (commit version)))
14133 (file-name (git-file-name name version))
14134 (sha256
14135 (base32 "00f50dhw0x1hn87rc6vkrdwpybnbphg5z0g2c6c4r4cbgaiia8bi"))))
14136 (build-system emacs-build-system)
14137 (native-inputs (list texinfo))
14138 (home-page "https://protesilaos.com/emacs/denote/")
14139 (synopsis "Simple notes for Emacs")
14140 (description
14141 "Denote is a simple note-taking tool for Emacs. It is based on the idea that
14142 notes should follow a predictable and descriptive file-naming scheme. The
14143 file name must offer a clear indication of what the note is about, without
14144 reference to any other metadata. Denote basically streamlines the creation of
14145 such files while providing facilities to link between them.")
14146 (license license:gpl3+)))
14147
14148 (define-public emacs-logos
14149 (package
14150 (name "emacs-logos")
14151 (version "0.4.0")
14152 (source (origin
14153 (method git-fetch)
14154 (uri (git-reference
14155 (url "https://git.sr.ht/~protesilaos/logos")
14156 (commit version)))
14157 (file-name (git-file-name name version))
14158 (sha256
14159 (base32
14160 "1f40h8kbmza2rgmz84rgwbb4bwqkbfxnc3sc7gqshvxdkz3flbb7"))))
14161 (native-inputs (list texinfo))
14162 (build-system emacs-build-system)
14163 (arguments
14164 (list
14165 #:phases
14166 #~(modify-phases %standard-phases
14167 (add-after 'install 'makeinfo
14168 (lambda* (#:key outputs #:allow-other-keys)
14169 (invoke "emacs"
14170 "--batch"
14171 "--eval=(require 'ox-texinfo)"
14172 "--eval=(find-file \"README.org\")"
14173 "--eval=(org-texinfo-export-to-info)")
14174 (install-file "logos.info" (string-append #$output "/share/info")))))))
14175 (home-page "https://protesilaos.com/emacs/logos")
14176 (synopsis "Simple focus mode for Emacs")
14177 (description "This package provides a simple focus mode which can be
14178 applied to any buffer for reading, writing, or even doing a presentation. The
14179 buffer can be divided in pages using the @code{page-delimiter}, outline
14180 structure, or any other pattern.")
14181 (license (list license:gpl3+
14182 license:fdl1.3+)))) ; GFDLv1.3+ for the manual
14183
14184 (define-public emacs-tmr
14185 (package
14186 (name "emacs-tmr")
14187 (version "0.4.0")
14188 (source
14189 (origin
14190 (method git-fetch)
14191 (uri (git-reference
14192 (url "https://git.sr.ht/~protesilaos/tmr")
14193 (commit version)))
14194 (file-name (git-file-name name version))
14195 (sha256
14196 (base32 "1vz9zfqap221baiy41wpxph33g6h2plnanzgpjs0wk8dz1fpwfky"))))
14197 (build-system emacs-build-system)
14198 (arguments
14199 (list
14200 #:phases
14201 #~(modify-phases %standard-phases
14202 (add-after 'unpack 'patch-ffplay
14203 (lambda* (#:key inputs #:allow-other-keys)
14204 (let ((ffplay (search-input-file inputs "/bin/ffplay")))
14205 (make-file-writable "tmr.el")
14206 (substitute* "tmr.el"
14207 (("\"ffplay")
14208 (string-append "\"" ffplay)))))))))
14209 (native-inputs (list texinfo))
14210 (inputs (list ffmpeg))
14211 (home-page "https://protesilaos.com/emacs/tmr/")
14212 (synopsis "Set timers using a convenient notation")
14213 (description
14214 "TMR is an Emacs package that provides facilities for setting timers
14215 using a convenient notation.")
14216 (license license:gpl3+)))
14217
14218 (define-public emacs-gn-mode
14219 (package
14220 (name "emacs-gn-mode")
14221 (version "0.4.1")
14222 (source
14223 (origin
14224 (method git-fetch)
14225 (uri (git-reference
14226 (url "https://github.com/lashtear/gn-mode")
14227 (commit version)))
14228 (file-name (git-file-name name version))
14229 (sha256
14230 (base32 "0dz5kgzbgsssr38z2kg6m915cvfys42ag1k42bsra3la2pixywfx"))))
14231 (build-system emacs-build-system)
14232 (home-page "https://github.com/lashtear/gn-mode")
14233 (synopsis "Emacs major mode for editing GN (ninja generator) config files")
14234 (description
14235 "GN mode is a major mode for editing @acronym{GN,Ninja Generator} config
14236 files in Emacs. Files of this type (e.g., @file{BUILD.gn} or @file{*.gni})
14237 are common in Chromium-derived projects.")
14238 (license license:bsd-3)))
14239
14240 (define-public emacs-drag-stuff
14241 (package
14242 (name "emacs-drag-stuff")
14243 (version "0.3.0")
14244 (source
14245 (origin
14246 (method git-fetch)
14247 (uri (git-reference
14248 (url "https://github.com/rejeep/drag-stuff")
14249 (commit (string-append "v" version))))
14250 (file-name (git-file-name name version))
14251 (sha256
14252 (base32 "1jrr59iazih3imkl9ja1lbni9v3xv6b8gmqs015g2mxhlql35jka"))))
14253 (build-system emacs-build-system)
14254 (home-page "https://github.com/rejeep/drag-stuff")
14255 (synopsis "Drag stuff around in Emacs")
14256 (description
14257 "Drag Stuff is a minor mode for Emacs that makes it possible to drag
14258 stuff (words, region, lines) around in Emacs.")
14259 (license license:gpl3+)))
14260
14261 (define-public emacs-bazel
14262 ;; From 2021-11-21.
14263 ;; No releases available.
14264 (let ((commit "cdb2643dba39fe2bd64ba3b190b94d1ef1d83b18")
14265 (revision "0"))
14266 (package
14267 (name "emacs-bazel")
14268 (version (git-version "0" revision commit))
14269 (source (origin
14270 (method git-fetch)
14271 (uri (git-reference
14272 (url "https://github.com/bazelbuild/emacs-bazel-mode")
14273 (commit commit)))
14274 (file-name (git-file-name name version))
14275 (sha256
14276 (base32 "0ln06dprnivx9zxm6n23ppyx7x4kbn0f85pxwvkq32aq7wnqz82m"))))
14277 (build-system emacs-build-system)
14278 (home-page "https://github.com/bazelbuild/emacs-bazel-mode")
14279 (synopsis "Bazel support for Emacs")
14280 (description
14281 "This package provides support for the Bazel build system. See
14282 @uref{https://bazel.build/} for background on Bazel.")
14283 (license license:asl2.0))))
14284
14285 (define-public emacs-gntp
14286 (package
14287 (name "emacs-gntp")
14288 (version "0.1")
14289 (source
14290 (origin
14291 (method git-fetch)
14292 (uri (git-reference
14293 (url "https://github.com/tekai/gntp.el")
14294 (commit (string-append "v" version))))
14295 (file-name (git-file-name name version))
14296 (sha256
14297 (base32 "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a"))))
14298 (build-system emacs-build-system)
14299 (home-page "https://github.com/tekai/gntp.el")
14300 (synopsis "Growl Notification Protocol for Emacs")
14301 (description
14302 "This package implements the Growl Notification Protocol GNTP
14303 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
14304 It is incomplete as it only lets you send but not receive
14305 notifications.")
14306 (license license:bsd-3)))
14307
14308 (define-public emacs-alert
14309 (package
14310 (name "emacs-alert")
14311 (version "1.3")
14312 (source
14313 (origin
14314 (method git-fetch)
14315 (uri (git-reference
14316 (url "https://github.com/jwiegley/alert")
14317 (commit (string-append "v" version))))
14318 (file-name (git-file-name name version))
14319 (sha256
14320 (base32 "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r"))))
14321 (build-system emacs-build-system)
14322 (propagated-inputs
14323 (list emacs-gntp emacs-log4e))
14324 (home-page "https://github.com/jwiegley/alert")
14325 (synopsis "Growl-style notification system for Emacs")
14326 (description
14327 "Alert is a Growl-workalike for Emacs which uses a common notification
14328 interface and multiple, selectable \"styles\", whose use is fully
14329 customizable by the user.")
14330 (license license:gpl2+)))
14331
14332 (define-public emacs-zones
14333 (package
14334 (name "emacs-zones")
14335 (version "2019.7.13")
14336 (source
14337 (origin
14338 (method url-fetch)
14339 (uri (string-append "https://elpa.gnu.org/packages/"
14340 "zones-" version ".el"))
14341 (sha256
14342 (base32 "0qp1ba2pkqx9d35g7z8hf8qs2k455krf2a92l4rka3ipsbnmq5k1"))))
14343 (build-system emacs-build-system)
14344 (home-page "https://www.emacswiki.org/emacs/Zones")
14345 (synopsis "Define and act on multiple zones of buffer text")
14346 (description
14347 "Library @file{zones.el} lets you easily define and subsequently act on
14348 multiple zones of buffer text. You can think of this as enlarging the notion
14349 of region. In effect, it can remove the requirement of target text being
14350 a contiguous sequence of characters. A set of buffer zones is, in effect,
14351 a (typically) noncontiguous set of text.")
14352 (license license:gpl3+)))
14353
14354 (define-public emacs-mu4e-alert
14355 (package
14356 (name "emacs-mu4e-alert")
14357 (version "1.0")
14358 (source
14359 (origin
14360 (method git-fetch)
14361 (uri (git-reference
14362 (url "https://github.com/iqbalansari/mu4e-alert")
14363 (commit (string-append "v" version))))
14364 (file-name (git-file-name name version))
14365 (sha256
14366 (base32 "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg"))))
14367 (build-system emacs-build-system)
14368 (propagated-inputs
14369 (list emacs-alert emacs-s emacs-ht mu))
14370 (home-page "https://github.com/iqbalansari/mu4e-alert")
14371 (synopsis "Desktop notification for mu4e")
14372 (description
14373 "This package provides desktop notifications for mu4e.
14374 Additionally it can display the number of unread emails in the
14375 mode-line.")
14376 (license license:gpl3+)))
14377
14378 (define-public emacs-mu4e-jump-to-list
14379 (let ((commit "358bba003543b49ffa266e503e54aebd0ebe614b")
14380 (revision "1"))
14381 (package
14382 (name "emacs-mu4e-jump-to-list")
14383 (version (git-version "1.0" revision commit))
14384 (source
14385 (origin
14386 (method git-fetch)
14387 (uri (git-reference
14388 (url "https://gitlab.com/wavexx/mu4e-jump-to-list.el.git")
14389 (commit commit)))
14390 (file-name (git-file-name name version))
14391 (sha256
14392 (base32
14393 "00y9nap61q1z2cdql4k9g7fgi2gdgd9iy5s5lzrd9a4agbx6r7sv"))))
14394 (build-system emacs-build-system)
14395 (propagated-inputs
14396 (list mu))
14397 (home-page "https://gitlab.com/wavexx/mu4e-jump-to-list.el")
14398 (synopsis "Select and view mailing lists in mu4e")
14399 (description
14400 "@code{mu4e-jump-to-list} allows you to select and view mailing lists
14401 automatically using existing List-ID headers in your mu database. Just press
14402 \"l\" in the headers view and any mailing list you've subscribed to will be
14403 automatically discovered and presented in recency order.")
14404 (license license:gpl3+))))
14405
14406 (define-public emacs-mentor
14407 (package
14408 (name "emacs-mentor")
14409 (version "0.4")
14410 (source
14411 (origin
14412 (method url-fetch)
14413 (uri (string-append "https://elpa.nongnu.org/nongnu/mentor-"
14414 version ".tar"))
14415 (sha256
14416 (base32
14417 "1n51yabm4npx62fpfn8rhky09x4y779ismdxa026fycy7va7ynzz"))))
14418 (build-system emacs-build-system)
14419 (propagated-inputs
14420 (list emacs-async emacs-xml-rpc))
14421 (home-page "https://elpa.nongnu.org/nongnu/mentor.html")
14422 (synopsis "Emacs front-end for the rTorrent bittorrent client")
14423 (description
14424 "Mentor is a GNU Emacs frontend for the rTorrent bittorrent client.
14425
14426 By default, it will start and run rTorrent from within Emacs but can also be
14427 configured to use an external rTorrent instance over XML-RPC.
14428
14429 This project aims to provide a feature complete and customizable interface,
14430 that will feel familiar to Emacs users. Key bindings are chosen to be as
14431 close to the vanilla rTorrent curses interface as possible.")
14432 (license license:gpl3+)))
14433
14434 (define-public emacs-message-view-patch
14435 (let ((commit "40bc2e554fc1d0b6f0c403192c0a3ceaa019a78d")
14436 (revision "2"))
14437 (package
14438 (name "emacs-message-view-patch")
14439 (version (git-version "0.2.0" revision commit))
14440 (source (origin
14441 (method git-fetch)
14442 (uri (git-reference
14443 (url "https://github.com/seanfarley/message-view-patch")
14444 (commit commit)))
14445 (file-name (git-file-name name version))
14446 (sha256
14447 (base32
14448 "0cmkiggrl42sjx31dwnzac32bs3q2ksmamkq1pjjl8fwshp4g8sv"))))
14449 (build-system emacs-build-system)
14450 (inputs (list emacs-magit))
14451 (home-page "https://github.com/seanfarley/message-view-patch")
14452 (synopsis "Colorize patch-like emails in mu4e or gnus")
14453 (description
14454 "Extension for mu4e or gnus to colorize patch-like emails with diff-mode.
14455 This is based on Frank Terbeck's @code{gnus-article-treat-patch.el} but has
14456 been adapted to also work with mu4e.")
14457 (license license:gpl3+))))
14458
14459 (define-public emacs-mu4e-patch
14460 (deprecated-package "emacs-mu4e-patch" emacs-message-view-patch))
14461
14462 (define-public emacs-pretty-mode
14463 (package
14464 (name "emacs-pretty-mode")
14465 (version "2.0.3")
14466 (source
14467 (origin
14468 (method git-fetch)
14469 (uri (git-reference
14470 (url "https://github.com/akatov/pretty-mode/")
14471 (commit version)))
14472 (file-name (git-file-name name version))
14473 (sha256
14474 (base32
14475 "013fig9i4fyx16krp2vfv953p3rwdzr38zs6i50af4pqz4vrcfvh"))))
14476 (build-system emacs-build-system)
14477 (home-page "https://github.com/akatov/pretty-mode")
14478 (synopsis "Redisplay parts of the buffer as Unicode symbols")
14479 (description
14480 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
14481 (license license:gpl3+)))
14482
14483 (define-public emacs-tempel
14484 (package
14485 (name "emacs-tempel")
14486 (version "0.4")
14487 (source (origin
14488 (method git-fetch)
14489 (uri (git-reference
14490 (url "https://github.com/minad/tempel")
14491 (commit version)))
14492 (file-name (git-file-name name version))
14493 (sha256
14494 (base32
14495 "0iyh6wxchqg83gpwvg6lz4qy4c2qh25iqjpjm56kif52346a99d2"))))
14496 (build-system emacs-build-system)
14497 (home-page "https://github.com/minad/tempel")
14498 (synopsis "Simple templates for Emacs")
14499 (description
14500 "Tempel is a tiny template package for Emacs, which uses the syntax of
14501 the Emacs Tempo library. You may also write your templates in Lisp.")
14502 (license license:gpl3+)))
14503
14504 (define-public emacs-yasnippet
14505 (package
14506 (name "emacs-yasnippet")
14507 (version "0.14.0")
14508 (source
14509 (origin
14510 (method git-fetch)
14511 (uri (git-reference
14512 (url "https://github.com/joaotavora/yasnippet")
14513 (commit version)))
14514 (file-name (git-file-name name version))
14515 (sha256
14516 (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))
14517 (patches
14518 (search-patches "emacs-yasnippet-fix-tests.patch"))))
14519 (build-system emacs-build-system)
14520 (arguments
14521 `(#:tests? #t
14522 #:test-command '("emacs" "--batch"
14523 "-l" "yasnippet-tests.el"
14524 "-f" "ert-run-tests-batch-and-exit")
14525 #:phases
14526 (modify-phases %standard-phases
14527 ;; Set HOME, otherwise test-rebindings fails.
14528 (add-before 'check 'set-home
14529 (lambda _
14530 (setenv "HOME" (getcwd))
14531 #t)))))
14532 (home-page "https://github.com/joaotavora/yasnippet")
14533 (synopsis "Yet another snippet extension for Emacs")
14534 (description "YASnippet is a template system for Emacs. It allows you to
14535 type an abbreviation and automatically expand it into function templates.")
14536 (license license:gpl3+)))
14537
14538 (define-public emacs-yasnippet-snippets
14539 (package
14540 (name "emacs-yasnippet-snippets")
14541 (version "1.0")
14542 (source
14543 (origin
14544 (method git-fetch)
14545 (uri (git-reference
14546 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
14547 (commit version)))
14548 (file-name (git-file-name name version))
14549 (sha256
14550 (base32 "0m78jxhjyf4212ig2ncxr6bhhd6yx4c3nc8x4ylamzq21x4fl21r"))))
14551 (build-system emacs-build-system)
14552 (arguments
14553 `(#:include (cons* "^snippets\\/" %default-include)))
14554 (propagated-inputs
14555 (list emacs-yasnippet))
14556 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
14557 (synopsis "Collection of YASnippet snippets for many languages")
14558 (description "This package provides an extensive collection of YASnippet
14559 snippets. When this package is installed, the extra snippets it provides are
14560 automatically made available to YASnippet.")
14561 (license license:gpl3+)))
14562
14563 (define-public emacs-doom-snippets
14564 ;; Use the latest commit, as there are no tagged releases. Version is
14565 ;; extracted from main file.
14566 (let ((release "1.1.0")
14567 (revision "0")
14568 (commit "bc613f448eed1bd363e61c41691a61e9fd139534"))
14569 (package
14570 (name "emacs-doom-snippets")
14571 (version (git-version release revision commit))
14572 (source
14573 (origin
14574 (method git-fetch)
14575 (uri (git-reference
14576 (url "https://github.com/hlissner/doom-snippets")
14577 (commit commit)))
14578 (file-name (git-file-name name version))
14579 (sha256
14580 (base32 "0n4b2pr0gpn8vb2n1rckdq4jk9sj995a62yxk6z2ygw5ad7pkj8f"))))
14581 (build-system emacs-build-system)
14582 (arguments
14583 `(#:include (cons* "^.*\\/" %default-include)))
14584 (propagated-inputs
14585 (list emacs-yasnippet))
14586 (home-page "https://github.com/hlissner/doom-snippets")
14587 (synopsis "Doom Emacs' snippet library")
14588 (description
14589 "This package provides Yasnippets snippets for Doom Emacs. It also
14590 exposes a small API to assist in writing your own snippets.")
14591 (license license:expat))))
14592
14593 (define-public emacs-helm-c-yasnippet
14594 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
14595 (revision "1"))
14596 (package
14597 (name "emacs-helm-c-yasnippet")
14598 (version (string-append "0.6.7" "-" revision "."
14599 (string-take commit 7)))
14600 (source (origin
14601 (method git-fetch)
14602 (uri (git-reference
14603 (url "https://github.com/emacs-jp/helm-c-yasnippet")
14604 (commit commit)))
14605 (file-name (git-file-name name version))
14606 (sha256
14607 (base32
14608 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
14609 (build-system emacs-build-system)
14610 (propagated-inputs
14611 (list emacs-helm emacs-yasnippet))
14612 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
14613 (synopsis "Helm integration for Yasnippet")
14614 (description "This Emacs library provides Helm interface for
14615 Yasnippet.")
14616 (license license:gpl2+))))
14617
14618 (define-public emacs-helm-system-packages
14619 (package
14620 (name "emacs-helm-system-packages")
14621 (version "1.10.2")
14622 (source (origin
14623 (method git-fetch)
14624 (uri (git-reference
14625 (url "https://github.com/emacs-helm/helm-system-packages")
14626 (commit (string-append "v" version))))
14627 (file-name (git-file-name name version))
14628 (sha256
14629 (base32
14630 "13a8jpj4wwm0yjv8hnsizgjf8wi3r2ap87lyvw7g4c7snp2dydwa"))))
14631 (build-system emacs-build-system)
14632 (inputs
14633 (list recutils))
14634 (propagated-inputs
14635 (list emacs-helm))
14636 (arguments
14637 `(#:phases
14638 (modify-phases %standard-phases
14639 (add-after 'unpack 'configure
14640 (lambda* (#:key inputs outputs #:allow-other-keys)
14641 (let ((recutils (assoc-ref inputs "recutils")))
14642 ;; Specify the absolute file names of the various
14643 ;; programs so that everything works out-of-the-box.
14644 (substitute* "helm-system-packages-guix.el"
14645 (("recsel") (string-append recutils "/bin/recsel")))))))))
14646 (home-page "https://github.com/emacs-helm/helm-system-packages")
14647 (synopsis "Helm System Packages is an interface to your package manager")
14648 (description "List all available packages in Helm (with installed
14649 packages displayed in their own respective face). Fuzzy-search, mark and
14650 execute the desired action over any selections of packages: Install,
14651 uninstall, display packages details (in Org Mode) or insert details at point,
14652 find files owned by packages... And much more, including performing all the
14653 above over the network.")
14654 (license license:gpl3+)))
14655
14656 (define-public emacs-helm-org-rifle
14657 (package
14658 (name "emacs-helm-org-rifle")
14659 (version "1.7.1")
14660 (source
14661 (origin
14662 (method git-fetch)
14663 (uri (git-reference
14664 (url "https://github.com/alphapapa/helm-org-rifle")
14665 (commit version)))
14666 (file-name (git-file-name name version))
14667 (sha256
14668 (base32
14669 "0pm6va26kadjvbai4qsnjc2bk379w2nk6h3b5f0c2yv3q5na0p49"))))
14670 (build-system emacs-build-system)
14671 (propagated-inputs
14672 (list emacs-dash emacs-f emacs-helm emacs-org emacs-s))
14673 (home-page "https://github.com/alphapapa/helm-org-rifle")
14674 (synopsis "Rifle through Org files")
14675 (description "This package searches both headings and contents of entries
14676 in Org buffers and displays matching entries.")
14677 (license license:gpl3+)))
14678
14679 (define-public emacs-dired-git-info
14680 ;; Upstream has no proper release. The base version is extracted from the
14681 ;; "Version" keyword in the main file.
14682 (let ((commit "91d57e3a4c5104c66a3abc18e281ee55e8979176")
14683 (revision "0"))
14684 (package
14685 (name "emacs-dired-git-info")
14686 (version (git-version "0.3.1" revision commit))
14687 (source
14688 (origin
14689 (method git-fetch)
14690 (uri
14691 (git-reference
14692 (url "https://github.com/clemera/dired-git-info")
14693 (commit commit)))
14694 (file-name (git-file-name name version))
14695 (sha256
14696 (base32 "1dr4iv95s4barxxj56znqkl9z0lg5jw731jmjr01s6vn8ar69gik"))))
14697 (build-system emacs-build-system)
14698 (home-page "https://github.com/clemera/dired-git-info/")
14699 (synopsis "Show git info in Emacs Dired")
14700 (description "This Emacs package provides a minor mode which shows git
14701 information inside the Dired buffer.")
14702 (license license:gpl3+))))
14703
14704 (define-public emacs-dired-toggle-sudo
14705 (let ((commit "13bbe52c54893f5aa3e56228450ffdd0c9e1d169")
14706 (revision "0"))
14707 (package
14708 (name "emacs-dired-toggle-sudo")
14709 (version (git-version "1.0" revision commit))
14710 (source
14711 (origin
14712 (method git-fetch)
14713 (uri (git-reference
14714 (url "https://github.com/renard/dired-toggle-sudo")
14715 (commit commit)))
14716 (file-name (git-file-name name version))
14717 (sha256
14718 (base32
14719 "1fw1pb1z6krqd1pfxxhr6rrfr9ckkcb0zsjzbjk0i2i1q5cg6car"))))
14720 (build-system emacs-build-system)
14721 (home-page "https://github.com/renard/dired-toggle-sudo")
14722 (synopsis "Browse directory with @code{sudo} privileges")
14723 (description "This package allows for the use of @code{dired} with
14724 @code{sudo} privileges.")
14725 (license license:wtfpl2))))
14726
14727 (define-public emacs-diredfl
14728 (package
14729 (name "emacs-diredfl")
14730 (version "0.4")
14731 (source
14732 (origin
14733 (method git-fetch)
14734 (uri
14735 (git-reference
14736 (url "https://github.com/purcell/diredfl")
14737 (commit version)))
14738 (file-name (git-file-name name version))
14739 (sha256
14740 (base32 "1zb2lz7rp58zqvpniqcsmqabi7nqg2d8bfd0hgmq68bn2hd25b5z"))))
14741 (build-system emacs-build-system)
14742 (home-page "https://github.com/purcell/diredfl/")
14743 (synopsis "Extra Emacs font lock rules for a more colourful Dired")
14744 (description "This library enables additional font locking in Dired mode.
14745 This is adapted from the extra font lock rules provided by Drew Adams' Dired+
14746 package.")
14747 (license license:gpl3+)))
14748
14749 (define-public emacs-memoize
14750 (package
14751 (name "emacs-memoize")
14752 (version "1.1")
14753 (source
14754 (origin
14755 (method git-fetch)
14756 (uri (git-reference
14757 (url "https://github.com/skeeto/emacs-memoize")
14758 (commit version)))
14759 (file-name (git-file-name name version))
14760 (sha256
14761 (base32 "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk"))))
14762 (build-system emacs-build-system)
14763 (arguments
14764 `(#:tests? #t
14765 #:test-command '("emacs" "--batch"
14766 "-l" "memoize-test.el"
14767 "-f" "ert-run-tests-batch-and-exit")))
14768 (home-page "https://github.com/skeeto/emacs-memoize")
14769 (synopsis "Emacs lisp memoization library")
14770 (description "@code{emacs-memoize} is an Emacs library for
14771 memoizing functions.")
14772 (license license:unlicense)))
14773
14774 (define-public emacs-linum-relative
14775 (package
14776 (name "emacs-linum-relative")
14777 (version "0.6")
14778 (source
14779 (origin
14780 (method git-fetch)
14781 (uri (git-reference
14782 (url "https://github.com/coldnew/linum-relative")
14783 (commit version)))
14784 (file-name (git-file-name name version))
14785 (sha256
14786 (base32 "0b3n1gk2w1p72x0zfdz9l70winq2fnjpjrgq0awxx730xk7ypp5n"))))
14787 (build-system emacs-build-system)
14788 (home-page "https://github.com/coldnew/linum-relative")
14789 (synopsis "Relative line numbering for Emacs")
14790 (description "@code{emacs-linum-relative} displays the relative line
14791 number on the left margin in Emacs.")
14792 (license license:gpl2+)))
14793
14794 (define-public emacs-lin
14795 (package
14796 (name "emacs-lin")
14797 (version "0.3.0")
14798 (source (origin
14799 (method git-fetch)
14800 (uri (git-reference
14801 (url "https://git.sr.ht/~protesilaos/lin")
14802 (commit version)))
14803 (file-name (git-file-name name version))
14804 (sha256
14805 (base32
14806 "1w1mli2wrxbnwagn3rx5ygslmzlri3drm74nqgwpl4pwh66xi98a"))))
14807 (native-inputs (list texinfo))
14808 (build-system emacs-build-system)
14809 (arguments
14810 (list
14811 #:phases
14812 #~(modify-phases %standard-phases
14813 (add-after 'install 'makeinfo
14814 (lambda _
14815 (invoke "emacs"
14816 "--batch"
14817 "--eval=(require 'ox-texinfo)"
14818 "--eval=(find-file \"README.org\")"
14819 "--eval=(org-texinfo-export-to-info)")
14820 (install-file "lin.info" (string-append #$output "/share/info")))))))
14821 (home-page "https://protesilaos.com/emacs/lin")
14822 (synopsis "Make @command{hl-line-mode} more suitable for selection UIs")
14823 (description "Lin is a stylistic enhancement for Emacs’ built-in
14824 @command{hl-line-mode}. It remaps the hl-line face (or equivalent)
14825 buffer-locally to a style that is optimal for major modes where line selection
14826 is the primary mode of interaction.")
14827 (license (list license:gpl3+
14828 license:fdl1.3+)))) ; GFDLv1.3+ for the manual
14829
14830 (define-public emacs-idle-highlight
14831 (package
14832 (name "emacs-idle-highlight")
14833 (version "1.1.3")
14834 (source
14835 (origin
14836 (method git-fetch)
14837 (uri (git-reference
14838 (url "https://github.com/nonsequitur/idle-highlight-mode")
14839 (commit version)))
14840 (file-name (git-file-name name version))
14841 (sha256
14842 (base32 "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv"))))
14843 (build-system emacs-build-system)
14844 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
14845 (synopsis "Highlights all occurrences of the word the point is on")
14846 (description
14847 "This Emacs package provides @code{idle-highlight-mode} that sets
14848 an idle timer to highlight all occurrences in the buffer of the word under
14849 the point.")
14850 (license license:gpl3+)))
14851
14852 (define-public emacs-ox-twbs
14853 (package
14854 (name "emacs-ox-twbs")
14855 (version "1.1.4")
14856 (source
14857 (origin
14858 (method git-fetch)
14859 (uri (git-reference
14860 (url "https://github.com/marsmining/ox-twbs")
14861 (commit (string-append "v" version))))
14862 (file-name (git-file-name name version))
14863 (sha256
14864 (base32 "0nffy7ivs8fw0dj3s66hbsby0riz5wrv7xzm8g9mrfvhki938pqa"))))
14865 (build-system emacs-build-system)
14866 (home-page "https://github.com/marsmining/ox-twbs")
14867 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
14868 (description
14869 "This Emacs package outputs your org-mode docs with a simple, clean and
14870 modern look. It implements a new HTML back-end for exporting org-mode docs as
14871 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
14872 jQuery and Bootstrap resources included via osscdn.")
14873 (license license:gpl3+)))
14874
14875 (define-public emacs-highlight-sexp
14876 (package
14877 (name "emacs-highlight-sexp")
14878 (version "1.0")
14879 (source
14880 (origin
14881 (method git-fetch)
14882 (uri (git-reference
14883 (url "https://github.com/daimrod/highlight-sexp")
14884 (commit (string-append "v" version))))
14885 (file-name (git-file-name name version))
14886 (sha256
14887 (base32 "12cyk2q5g6p4ac2hykw1cag7dp1prjjnck5f7nalwwaklmy62y79"))))
14888 (build-system emacs-build-system)
14889 (home-page "https://github.com/daimrod/highlight-sexp")
14890 (synopsis "Minor mode that highlights the s-exp at the current position")
14891 (description
14892 "This Emacs package highlights the s-exp at the current position.")
14893 (license license:gpl3+)))
14894
14895 (define-public emacs-highlight-stages
14896 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
14897 (revision "1"))
14898 (package
14899 (name "emacs-highlight-stages")
14900 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
14901 (source
14902 (origin
14903 (method git-fetch)
14904 (uri (git-reference
14905 (url "https://github.com/zk-phi/highlight-stages")
14906 (commit commit)))
14907 (file-name (git-file-name name version))
14908 (sha256
14909 (base32
14910 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
14911 (patches
14912 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
14913 (build-system emacs-build-system)
14914 (home-page "https://github.com/wigust/highlight-stages")
14915 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
14916 (description "@code{highlight-stages} provides an Emacs minor mode that
14917 highlights quasi-quoted expressions.")
14918 (license license:gpl3+))))
14919
14920 (define-public emacspeak
14921 (package
14922 (name "emacspeak")
14923 (version "53.0")
14924 (source
14925 (origin
14926 (method url-fetch)
14927 (uri (string-append
14928 "https://github.com/tvraman/emacspeak/releases/download/"
14929 version "/emacspeak-" version ".tar.bz2"))
14930 (sha256
14931 (base32 "0lasj4ggsh93ingf46n16wxfx5zzxvr1igikbmdqlz3i99j331gs"))))
14932 (build-system gnu-build-system)
14933 (arguments
14934 (list
14935 #:make-flags #~(list (string-append "prefix=" #$output))
14936 #:phases
14937 #~(modify-phases %standard-phases
14938 (replace 'configure
14939 (lambda* (#:key inputs outputs #:allow-other-keys)
14940 (setenv "SHELL" (which "sh"))
14941 ;; Ensure the tclespeak.so binary is found in the correct location
14942 ;; by adding the path to the Tclx library to the Tcl $auto_path
14943 ;; variable.
14944 (with-fluids ((%default-port-encoding "ISO-8859-1"))
14945 (substitute* "servers/espeak"
14946 (("package require Tclx")
14947 (string-append "set auto_path [linsert $auto_path 0 "
14948 #$tclx
14949 "/lib]\n"
14950 "package require Tclx"))))
14951 ;; Configure Emacspeak according to etc/install.org.
14952 (invoke "make" "config")))
14953 (add-after 'build 'build-espeak
14954 (lambda _
14955 (invoke "make" "espeak")))
14956 (replace 'install
14957 (lambda* (#:key inputs outputs #:allow-other-keys)
14958 (let* ((out (assoc-ref outputs "out"))
14959 (bin (string-append out "/bin"))
14960 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
14961 (info (string-append out "/share/info"))
14962 (emacs (search-input-file inputs "/bin/emacs")))
14963 ;; According to etc/install.org, the Emacspeak directory should
14964 ;; be copied to its installation destination.
14965 (for-each
14966 (lambda (file)
14967 (copy-recursively file (string-append lisp "/" file)))
14968 '("etc" "info" "js" "lisp" "media" "servers" "sounds"
14969 "stumpwm" "xsl"))
14970 ;; Make sure emacspeak is loaded from the correct directory.
14971 (substitute* "run"
14972 (("\\./lisp/emacspeak-setup.el")
14973 (string-append lisp "/lisp/emacspeak-setup.el")))
14974 ;; Install the convenient startup script.
14975 (mkdir-p bin)
14976 (copy-file "run" (string-append bin "/emacspeak"))))))
14977 #:tests? #f)) ; no check target
14978 (inputs
14979 (list emacs espeak-ng perl tcl tclx))
14980 (home-page "http://emacspeak.sourceforge.net")
14981 (synopsis "Audio desktop interface for Emacs")
14982 (description
14983 "Emacspeak is a speech interface that allows visually impaired users to
14984 interact independently and efficiently with the computer. Audio
14985 formatting---a technique pioneered by AsTeR---and full support for W3C's Aural
14986 CSS (ACSS) allows Emacspeak to produce rich aural presentations of electronic
14987 information. By seamlessly blending all aspects of the Internet such as
14988 Web-surfing and messaging, Emacspeak speech-enables local and remote
14989 information via a consistent and well-integrated user interface.")
14990 (license license:gpl2+)))
14991
14992 (define-public emacs-adaptive-wrap
14993 (package
14994 (name "emacs-adaptive-wrap")
14995 (version "0.8")
14996 (source
14997 (origin
14998 (method url-fetch)
14999 (uri (string-append "https://elpa.gnu.org/packages/"
15000 "adaptive-wrap-" version ".tar"))
15001 (sha256
15002 (base32 "1gs1pqzywvvw4prj63vpj8abh8h14pjky11xfl23pgpk9l3ldrb0"))))
15003 (build-system emacs-build-system)
15004 (home-page "https://elpa.gnu.org/packages/adaptive-wrap.html")
15005 (synopsis "Smart line-wrapping with wrap-prefix")
15006 (description
15007 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
15008 minor mode which sets the wrap-prefix property on the fly so that
15009 single-long-line paragraphs get word-wrapped in a way similar to what
15010 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
15011 actually changing the buffer's text.")
15012 (license license:gpl3+)))
15013
15014 (define-public emacs-diff-hl
15015 ;;; XXX: Latest release is not tagged. Use commit matching version bump.
15016 (let ((commit "37b00f3bad841e131d69442a89cbebc3041d996b"))
15017 (package
15018 (name "emacs-diff-hl")
15019 (version "1.9.0")
15020 (source
15021 (origin
15022 (method git-fetch)
15023 (uri (git-reference
15024 (url "https://github.com/dgutov/diff-hl")
15025 (commit commit)))
15026 (file-name (git-file-name name version))
15027 (sha256
15028 (base32 "0s3fcwk6c99n2q25bf0a33lphr9mcrxmvr5wz8qsj86jfbyi1is1"))))
15029 (build-system emacs-build-system)
15030 (home-page "https://github.com/dgutov/diff-hl")
15031 (synopsis
15032 "Highlight uncommitted changes using VC")
15033 (description
15034 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
15035 window (using the fringe, by default), allows you to jump between
15036 the hunks and revert them selectively.")
15037 (license license:gpl3+))))
15038
15039 (define-public emacs-diminish
15040 ;; XXX: Upstream did not tag last release.
15041 (let ((commit "fd486ef76e4c1d8211ae337a43b8bba106d4bca7")
15042 (revision "1"))
15043 (package
15044 (name "emacs-diminish")
15045 (version (git-version "0.46" revision commit))
15046 (source
15047 (origin
15048 (method git-fetch)
15049 (uri (git-reference
15050 (url "https://github.com/myrjola/diminish.el")
15051 (commit commit)))
15052 (file-name (git-file-name name version))
15053 (sha256
15054 (base32 "1vlgn7swwfzy6yr880698h3qsmfcqprcb1jvffkzmbvhvf458szf"))))
15055 (build-system emacs-build-system)
15056 (home-page "https://github.com/myrjola/diminish.el")
15057 (synopsis "Diminish minor modes with no modeline display")
15058 (description "@code{emacs-diminish} implements hiding or
15059 abbreviation of the mode line displays (lighters) of minor modes.")
15060 (license license:gpl3+))))
15061
15062 (define-public emacs-use-package
15063 (package
15064 (name "emacs-use-package")
15065 (version "2.4.1")
15066 (source (origin
15067 (method git-fetch)
15068 (uri (git-reference
15069 (url "https://github.com/jwiegley/use-package")
15070 (commit version)))
15071 (file-name (git-file-name name version))
15072 (sha256
15073 (base32
15074 "088kl3bml0rs5bkfymgzr15ram9qvy66h1kaisrbkynh0yxvf8g9"))))
15075 (build-system emacs-build-system)
15076 (native-inputs
15077 (list texinfo))
15078 (propagated-inputs
15079 (list emacs-diminish))
15080 (arguments
15081 `(#:tests? #t
15082 #:test-command '("emacs" "--batch"
15083 "-l" "use-package-tests.el"
15084 "-f" "ert-run-tests-batch-and-exit")
15085 #:phases
15086 (modify-phases %standard-phases
15087 (add-before 'install 'install-manual
15088 (lambda* (#:key outputs #:allow-other-keys)
15089 (let* ((out (assoc-ref outputs "out"))
15090 (info-dir (string-append out "/share/info")))
15091 (mkdir-p info-dir)
15092 (install-file "use-package.info" info-dir)
15093 #t)))
15094 (add-before 'install-manual 'build-manual
15095 (lambda _
15096 (invoke "makeinfo" "use-package.texi")
15097 #t)))))
15098 (home-page "https://github.com/jwiegley/use-package")
15099 (synopsis "Declaration for simplifying your .emacs")
15100 (description "The use-package macro allows you to isolate package
15101 configuration in your @file{.emacs} file in a way that is both
15102 performance-oriented and tidy.")
15103 (license license:gpl2+)))
15104
15105 (define-public emacs-leaf
15106 (package
15107 (name "emacs-leaf")
15108 (version "4.5.5")
15109 (source
15110 (origin
15111 (method url-fetch)
15112 (uri (string-append "https://elpa.gnu.org/packages/"
15113 "leaf-" version ".tar"))
15114 (sha256
15115 (base32 "1rdbrf84ijapiqhq72gy8r5xgk54sf0jy31pgd3w4rl1wywh5cas"))))
15116 (build-system emacs-build-system)
15117 (home-page "https://github.com/conao3/leaf.el")
15118 (synopsis "Simplify your init.el configuration, extended use-package")
15119 (description
15120 "This package provides macros that allows you to declaratively configure
15121 settings typical of an Elisp package with various keywords. The syntax is
15122 similar, but not identical to use-package -- overall, leaf aims at a cleaner
15123 and more predictable implementation.")
15124 (license license:agpl3+)))
15125
15126 (define-public emacs-strace-mode
15127 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
15128 (revision "1"))
15129 (package
15130 (name "emacs-strace-mode")
15131 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
15132 (source (origin
15133 (method git-fetch)
15134 (uri (git-reference
15135 (url "https://github.com/pkmoore/strace-mode")
15136 (commit commit)))
15137 (file-name (git-file-name name version))
15138 (sha256
15139 (base32
15140 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
15141 (build-system emacs-build-system)
15142 (home-page "https://github.com/pkmoore/strace-mode")
15143 (synopsis "Emacs major mode to highlight strace outputs")
15144 (description "@code{emacs-strace-mode} provides an Emacs major mode
15145 highlighting strace outputs.")
15146 (license license:gpl3+))))
15147
15148 (define-public emacs-default-encrypt
15149 (package
15150 (name "emacs-default-encrypt")
15151 (version "4.4")
15152 (source
15153 (origin
15154 (method url-fetch)
15155 (uri (string-append
15156 "https://informationelle-selbstbestimmung-im-internet.de"
15157 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
15158 (file-name (string-append "jl-encrypt-" version ".el"))
15159 (sha256
15160 (base32
15161 "0w9ggz075j1zwg7d0rv9k8238g600p7czfnnsnawswi7yps2xk78"))))
15162 (build-system emacs-build-system)
15163 (home-page
15164 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
15165 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
15166 (description
15167 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
15168 automatically encrypts messages that you send (e.g., email) when public keys
15169 for all recipients are available, and it protects you from accidentally
15170 sending un-encrypted messages. It can also be configured to automatically
15171 sign messages that you send. For details and instructions on how to use
15172 DefaultEncrypt, please refer to the home page or read the comments in the
15173 source file, @file{jl-encrypt.el}.")
15174 (license license:gpl3+)))
15175
15176 (define-public emacs-extend-smime
15177 (package
15178 (name "emacs-extend-smime")
15179 (version "3.3")
15180 (source
15181 (origin
15182 (method url-fetch)
15183 (uri (string-append
15184 "https://informationelle-selbstbestimmung-im-internet.de"
15185 "/emacs/jl-smime" version "/jl-smime.el"))
15186 (file-name (string-append "jl-smime-" version ".el"))
15187 (sha256
15188 (base32
15189 "1iv8s2wjmv3v5qfwlcy9hvvrmxxvp3f8m1krlr789q7bbh35jynh"))))
15190 (build-system emacs-build-system)
15191 (home-page
15192 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
15193 (synopsis "Improved S/MIME support for Gnus in Emacs")
15194 (propagated-inputs
15195 (list emacs-default-encrypt))
15196 (description
15197 ;; TRANSLATORS: ExtendSMIME, DefaultEncrypt, and emacs-default-encrypt
15198 ;; should not be translated. The name "emacs-default-encrypt" refers to
15199 ;; the Guix package that provides DefaultEncrypt.
15200 "ExtendSMIME is designed to be used with Gnus in Emacs. It enhances
15201 DefaultEncrypt (emacs-default-encrypt) to support S/MIME (Secure/Multipurpose
15202 Internet Mail Extensions) via LDAP (Lightweight Directory Access Protocol).
15203 Before a message (e.g., email) is sent, ExtendSMIME searches for missing
15204 certificates via LDAP and imports them into @code{gpgsm}. When certificates
15205 for all recipients are available, DefaultEncrypt automatically encrypts the
15206 message. For details and instructions on how to use ExtendSMIME, please refer
15207 to the home page or read the comments in the source file,
15208 @file{jl-smime.el}.")
15209 (license license:gpl3+)))
15210
15211 (define-public emacs-htmlize
15212 (package
15213 (name "emacs-htmlize")
15214 (version "1.56")
15215 (source
15216 (origin
15217 (method git-fetch)
15218 (uri (git-reference
15219 (url "https://github.com/hniksic/emacs-htmlize")
15220 (commit (string-append "release/" version))))
15221 (file-name (git-file-name name version))
15222 (sha256
15223 (base32 "14m8si49br62lgx7asdyp9jysq0v6midrfk32sxy521ydqmqr3c1"))))
15224 (build-system emacs-build-system)
15225 (home-page "https://github.com/hniksic/emacs-htmlize")
15226 (synopsis "Convert buffer text and decorations to HTML")
15227 (description "@code{emacs-htmlize} converts the buffer text and
15228 the associated decorations to HTML. Output to CSS, inline CSS and
15229 fonts is supported.")
15230 (license license:gpl2+)))
15231
15232 (define-public emacs-xmlgen
15233 (package
15234 (name "emacs-xmlgen")
15235 (version "0.5")
15236 (source
15237 (origin
15238 (method git-fetch)
15239 (uri (git-reference
15240 (url "https://github.com/philjackson/xmlgen")
15241 (commit version)))
15242 (file-name (git-file-name name version))
15243 (sha256
15244 (base32 "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s"))))
15245 (build-system emacs-build-system)
15246 (arguments
15247 `(#:tests? #t
15248 #:test-command '("emacs" "--batch"
15249 "-l" "xmlgen-test.el"
15250 "-f" "ert-run-tests-batch-and-exit")))
15251 (home-page "https://github.com/philjackson/xmlgen")
15252 (synopsis "S-expression to XML domain specific language (DSL) in
15253 Emacs Lisp")
15254 (description "@code{emacs-xmlgen} provides S-expression to XML
15255 conversion for Emacs Lisp.")
15256 (license license:gpl2+)))
15257
15258 (define-public emacs-cdlatex
15259 (package
15260 (name "emacs-cdlatex")
15261 (version "4.7")
15262 (source
15263 (origin
15264 (method git-fetch)
15265 (uri (git-reference
15266 (url "https://github.com/cdominik/cdlatex")
15267 (commit version)))
15268 (file-name (git-file-name name version))
15269 (sha256
15270 (base32 "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d"))))
15271 (build-system emacs-build-system)
15272 (propagated-inputs
15273 (list emacs-auctex))
15274 (home-page "https://github.com/cdominik/cdlatex")
15275 (synopsis "Fast Emacs input methods for LaTeX environments and
15276 math")
15277 (description "CDLaTeX is an Emacs minor mode supporting fast
15278 insertion of environment templates and math in LaTeX. Similar
15279 commands are also offered as part of the AUCTeX package, but it is not
15280 the same - CDLaTeX focuses on speediness for inserting LaTeX
15281 constructs.")
15282 (license license:gpl3+)))
15283
15284 (define-public emacs-cnfonts
15285 (package
15286 (name "emacs-cnfonts")
15287 (version "0.9.1")
15288 (source
15289 (origin
15290 (method git-fetch)
15291 (uri (git-reference
15292 (url "https://github.com/tumashu/cnfonts")
15293 (commit (string-append "v" version))))
15294 (file-name (git-file-name name version))
15295 (sha256
15296 (base32 "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx"))))
15297 (build-system emacs-build-system)
15298 (home-page "https://github.com/tumashu/cnfonts")
15299 (synopsis "Emacs Chinese fonts setup tool")
15300 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
15301 configuration of Chinese fonts.")
15302 (license license:gpl2+)))
15303
15304 (define-public emacs-boon
15305 (package
15306 (name "emacs-boon")
15307 (version "1.2")
15308 (source
15309 (origin
15310 (method git-fetch)
15311 (uri (git-reference
15312 (url "https://github.com/jyp/boon")
15313 (commit version)))
15314 (file-name (git-file-name name version))
15315 (sha256
15316 (base32 "18il2licf8pgfcrpx2bk55gpf8f537kb9cxqz83jldkhiyry74il"))))
15317 (build-system emacs-build-system)
15318 (propagated-inputs
15319 (list emacs-dash emacs-expand-region emacs-multiple-cursors
15320 emacs-powerline emacs-spaceline))
15321 (home-page "https://github.com/jyp/boon")
15322 (synopsis "Ergonomic command mode for Emacs")
15323 (description "Boon is a complete package for modal editing with a focus on
15324 ergonomics and modularity. Spacial allocation of keys comes first, mnemonics
15325 second. Most common operations are mapped to the home row, common editing
15326 commands are bound to keys reachable with the left hand and movement keys are
15327 reached with the right hand.")
15328 (license license:gpl3+)))
15329
15330 (define-public emacs-cc-mode
15331 (package
15332 (name "emacs-cc-mode")
15333 (version "5.35")
15334 (source
15335 (origin
15336 (method hg-fetch)
15337 (uri (hg-reference
15338 (url "http://hg.code.sf.net/p/cc-mode/cc-mode")
15339 (changeset
15340 (string-append "Release_"
15341 (string-replace-substring version "." "_")))))
15342 (file-name (hg-file-name name version))
15343 (sha256
15344 (base32 "03cvl61baccx57zd62nz2wy4hvij5hl2syg7byaxgrs4c7grr414"))))
15345 (build-system emacs-build-system)
15346 (arguments
15347 '(#:tests? #t
15348 #:test-command '("make" "test")
15349 #:phases
15350 (modify-phases %standard-phases
15351 (add-before 'install 'make-info
15352 (lambda _
15353 (invoke "make" "info"))))))
15354 (native-inputs
15355 (list texinfo))
15356 (home-page "http://cc-mode.sourceforge.net/")
15357 (synopsis "Framework for creating major modes for C-style languages")
15358 (description
15359 "CC Mode is an Emacs and XEmacs mode for editing C and other languages with
15360 similar syntax; currently C++, Objective-C, Java, CORBA's IDL, Pike, and AWK.")
15361 (license license:gpl3+)))
15362
15363 (define-public emacs-csharp-mode
15364 (package
15365 (name "emacs-csharp-mode")
15366 (version "1.1.1")
15367 (source
15368 (origin
15369 (method git-fetch)
15370 (uri (git-reference
15371 (url "https://github.com/josteink/csharp-mode")
15372 (commit version)))
15373 (file-name (git-file-name name version))
15374 (sha256
15375 (base32 "0wfd4jdjsq8qp6pavf25y87dxvlnsqapfi4c4m3xj24baalr2dpq"))))
15376 (build-system emacs-build-system)
15377 (home-page "https://github.com/josteink/csharp-mode")
15378 (synopsis "Major mode for C# code")
15379 (description
15380 "This is a C# editing mode for Emacs, based on CC mode. It handles
15381 syntax coloring, indentation, insertion of matched pairs of curly braces and
15382 documentation generation. In addition, it provides menu-based navigation
15383 using Imenu, and Compilation mode support for MSBuild, devenv and xbuild.")
15384 (license license:gpl3+)))
15385
15386 (define-public emacs-vala-mode
15387 ;; Upstream has no tagged release.
15388 (let ((commit "d696a8177e94c81ea557ad364a3b3dcc3abbc50f")
15389 (revision "0"))
15390 (package
15391 (name "emacs-vala-mode")
15392 (version (git-version "0.1" revision commit))
15393 (source
15394 (origin
15395 (method git-fetch)
15396 (uri (git-reference
15397 (url "https://github.com/rrthomas/vala-mode")
15398 (commit commit)))
15399 (file-name (git-file-name name version))
15400 (sha256
15401 (base32 "0g5pdq757z9d8rk489n5ilhqipdc4i4sfkjwwrxyvgjlapjc04c0"))))
15402 (build-system emacs-build-system)
15403 (arguments
15404 '(#:phases
15405 (modify-phases %standard-phases
15406 (add-after 'unpack 'disable-multiline-support
15407 (lambda* (#:key inputs #:allow-other-keys)
15408 (make-file-writable "vala-mode.el")
15409 (emacs-batch-edit-file "vala-mode.el"
15410 '(progn
15411 (require 'thingatpt) ;; beginning-of-thing, end-of-thing
15412 (goto-char (point-min))
15413 (save-excursion
15414 (re-search-forward ";; Support multiline strings")
15415 (goto-char (match-beginning 0))
15416 (kill-sexp)
15417 (insert ";; FIXME: Support multiline strings
15418 (c-lang-defconst c-multiline-string-start-char vala nil)"))
15419 (save-excursion
15420 (re-search-forward "(defcustom vala-multiline-strings")
15421 (goto-char (match-beginning 0))
15422 (insert ";; FIXME: Support multiline strings\n")
15423 (comment-region (beginning-of-thing 'sexp)
15424 (end-of-thing 'sexp)))
15425 (basic-save-buffer))))))))
15426 (home-page "https://github.com/rrthomas/vala-mode")
15427 (synopsis "Vala mode for Emacs")
15428 (description
15429 "This package provides a major mode for editing .vala and .vapi files
15430 in Emacs.")
15431 (license license:gpl2+))))
15432
15433 (define-public emacs-php-mode
15434 (package
15435 (name "emacs-php-mode")
15436 (version "1.24.1")
15437 (source
15438 (origin
15439 (method git-fetch)
15440 (uri (git-reference
15441 (url "https://github.com/ejmr/php-mode")
15442 (commit (string-append "v" version))))
15443 (file-name (git-file-name name version))
15444 (sha256
15445 (base32 "06xgmlbvqhkrnk6390mdbpjij34msxxwzqmagi6zpwpsf38mn6qf"))))
15446 (build-system emacs-build-system)
15447 (arguments
15448 `(#:phases
15449 (modify-phases %standard-phases
15450 (add-after 'unpack 'enter-source-directory
15451 (lambda _
15452 (chdir "lisp"))))))
15453 (propagated-inputs (list emacs-projectile))
15454 (home-page "https://github.com/ejmr/php-mode")
15455 (synopsis "Major mode for editing PHP code")
15456 (description
15457 "PHP mode is a major mode for editing PHP source code. It's an extension
15458 of C mode; thus it inherits all C mode's navigation functionality. But it
15459 colors according to the PHP grammar and indents according to the PEAR coding
15460 guidelines. It also includes a couple handy IDE-type features such as
15461 documentation search and a source and class browser.")
15462 (license license:gpl3+)))
15463
15464 (define-public emacs-pos-tip
15465 (package
15466 (name "emacs-pos-tip")
15467 (version "0.4.6")
15468 (source
15469 (origin
15470 (method git-fetch)
15471 (uri (git-reference
15472 (url "https://github.com/pitkali/pos-tip")
15473 (commit version)))
15474 (file-name (git-file-name name version))
15475 (sha256
15476 (base32 "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33"))))
15477 (build-system emacs-build-system)
15478 ;; The following functions and variables needed by emacs-pos-tip are
15479 ;; not included in emacs-minimal:
15480 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
15481 (arguments `(#:emacs ,emacs))
15482 (home-page "https://github.com/pitkali/pos-tip")
15483 (synopsis "Show tooltip at point")
15484 (description "The standard library tooltip.el provides a function for
15485 displaying a tooltip at the mouse position. However, locating a tooltip at an
15486 arbitrary buffer position in a window is not easy. Pos-tip provides such a
15487 function to be used by other frontend programs.")
15488 (license license:gpl2+)))
15489
15490 (define-public emacs-pyim-basedict
15491 ;; XXX: The commit below points to the lastest (un-tagged) release.
15492 (let ((commit "d61af27686f7a39e6c138b7261a686e7ea7a0ef7"))
15493 (package
15494 (name "emacs-pyim-basedict")
15495 (version "0.5.4")
15496 (source
15497 (origin
15498 (method git-fetch)
15499 (uri (git-reference
15500 (url "https://github.com/tumashu/pyim-basedict")
15501 (commit commit)))
15502 (file-name (git-file-name name version))
15503 (sha256
15504 (base32 "0fzyh8qmicq2vy9j1ca708ir67dpxp1cwjaw0sw469p24cvj12yy"))))
15505 (build-system emacs-build-system)
15506 (propagated-inputs
15507 (list emacs-pyim))
15508 (home-page "https://github.com/tumashu/pyim-basedict")
15509 (synopsis "Input method dictionary of pyim")
15510 (description "Pyim-basedict is the default pinyin input method dictionary,
15511 containing words from the Rime project.")
15512 (license license:gpl2+))))
15513
15514 (define-public emacs-pyim
15515 (package
15516 (name "emacs-pyim")
15517 (version "5.2.4")
15518 (source
15519 (origin
15520 (method url-fetch)
15521 (uri (string-append "https://elpa.gnu.org/packages/pyim-" version ".tar"))
15522 (sha256
15523 (base32 "1dzl4xaf31nyjb5hnwwf29i75x0i8dakpmmagbn4ks5hi3jl2ig0"))))
15524 (build-system emacs-build-system)
15525 (propagated-inputs
15526 (list emacs-async emacs-popup emacs-posframe emacs-xr))
15527 (home-page "https://github.com/tumashu/pyim")
15528 (synopsis "Chinese input method")
15529 (description
15530 "This package provides a Chinese input method which supports quanpin,
15531 shuangpin, wubi and cangjie.")
15532 (license license:gpl2+)))
15533
15534 (define-public emacs-pinyinlib
15535 (package
15536 (name "emacs-pinyinlib")
15537 (version "0.1.1")
15538 (source
15539 (origin
15540 (method git-fetch)
15541 (uri (git-reference
15542 (url "https://github.com/cute-jumper/pinyinlib.el")
15543 (commit version)))
15544 (file-name (git-file-name name version))
15545 (sha256
15546 (base32
15547 "1nwj4c3y0kdlkf3jqd2dnibaiazrq6qcj533xk2qw4wmx072yij0"))))
15548 (build-system emacs-build-system)
15549 (home-page "https://github.com/cute-jumper/pinyinlib.el")
15550 (synopsis "Convert first letter of Pinyin to Chinese characters")
15551 (description
15552 "This Emacs library provides functionality for converting the first
15553 letter of Pinyin to Simplified/Traditional Chinese characters.")
15554 (license license:gpl3+)))
15555
15556 (define-public emacs-reverse-im
15557 (package
15558 (name "emacs-reverse-im")
15559 (version "0.0.8")
15560 (source
15561 (origin
15562 (method git-fetch)
15563 (uri (git-reference
15564 (url "https://github.com/a13/reverse-im.el")
15565 (commit (string-append "v" version))))
15566 (file-name (git-file-name name version))
15567 (sha256
15568 (base32 "1h4gpyqir0kqf6a7ni8dbqwd4mr33imay0fmprrpfpfqxj0lj7c1"))))
15569 (build-system emacs-build-system)
15570 (home-page "https://github.com/a13/reverse-im.el")
15571 (synopsis "Reverse mapping for non-default system layouts")
15572 (description
15573 "Reverse IM provides a minor mode that toggles translations for all input
15574 methods from a given list.")
15575 (license license:gpl3+)))
15576
15577 (define-public emacs-mini-frame
15578 (let ((commit "60838f3cab438dcbda8eaa15ab3e5d1af88910e9")
15579 (revision "0"))
15580 (package
15581 (name "emacs-mini-frame")
15582 (version (git-version "1.19" revision commit))
15583 (source
15584 (origin
15585 (uri (git-reference
15586 (url "https://github.com/muffinmad/emacs-mini-frame.git")
15587 (commit commit)))
15588 (method git-fetch)
15589 (sha256
15590 (base32 "0q01iymz657bg3mcmq7vcl8r0ypsa1pqj1p6gxs7ywx1d33lan4d"))
15591 (file-name (git-file-name name version))))
15592 (build-system emacs-build-system)
15593 (home-page "https://github.com/muffinmad/emacs-mini-frame")
15594 (synopsis "Show minibuffer in child frame")
15595 (description
15596 "@dfn{mini-frame-mode} adds an advice around @code{read-from-minibuffer}
15597 to show the minibuffer as a child frame on top of the current frame.
15598 @code{find-file} and similar functions associated mini-buffers may appear at
15599 the center of the screen and not at the bottom.")
15600 (license license:gpl3+))))
15601
15602 (define-public emacs-posframe
15603 (package
15604 (name "emacs-posframe")
15605 (version "1.1.7")
15606 (source
15607 (origin
15608 (method url-fetch)
15609 (uri (string-append "https://elpa.gnu.org/packages/"
15610 "posframe-" version ".tar"))
15611 (sha256
15612 (base32 "13i2wxx079gfq0vbq0iwmsig5b7x4aspd1q02yqc79846f1dsx4w"))))
15613 (build-system emacs-build-system)
15614 ;; emacs-minimal does not include the function font-info.
15615 (arguments
15616 `(#:emacs ,emacs))
15617 (home-page "https://github.com/tumashu/posframe")
15618 (synopsis "Pop a posframe (a child frame) at point")
15619 (description
15620 "Posframe can pop a posframe at point. A posframe is a child frame
15621 displayed within its root window's buffer. Posframe is fast and works well
15622 with CJK languages.")
15623 (license license:gpl3+)))
15624
15625 (define-public emacs-el2org
15626 (package
15627 (name "emacs-el2org")
15628 (version "0.6.0")
15629 (source
15630 (origin
15631 (method git-fetch)
15632 (uri (git-reference
15633 (url "https://github.com/tumashu/el2org")
15634 (commit (string-append "v" version))))
15635 (file-name (git-file-name name version))
15636 (sha256
15637 (base32 "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b"))))
15638 (build-system emacs-build-system)
15639 (home-page "https://github.com/tumashu/el2org")
15640 (synopsis "Convert Emacs-lisp file to org file")
15641 (description "El2org is a simple tool, which can convert Emacs-lisp file
15642 to org file, you can use this tool to write orgify commentary.")
15643 (license license:gpl2+)))
15644
15645 (define-public emacs-muse
15646 (package
15647 (name "emacs-muse")
15648 (version "3.20.2")
15649 (source
15650 (origin
15651 (method url-fetch)
15652 (uri (string-append "https://elpa.gnu.org/packages/"
15653 "muse-" version ".tar"))
15654 (sha256
15655 (base32 "0g2ff6x45x2k5dnkp31sk3bjj92jyhhnar7l5hzn8vp22l0rv8wn"))))
15656 (build-system emacs-build-system)
15657 (home-page "https://www.gnu.org/software/emacs-muse")
15658 (synopsis "Authoring and publishing environment for Emacs")
15659 (description
15660 "Emacs Muse (also known as Muse) is an authoring and publishing
15661 environment for Emacs. It simplifies the process of writing documents and
15662 publishing them to various output formats such as HTML, LaTeX, or PDF.")
15663 (license license:gpl3+)))
15664
15665 (define-public emacs-mustache
15666 (package
15667 (name "emacs-mustache")
15668 (version "0.23")
15669 (source
15670 (origin
15671 (method git-fetch)
15672 (uri (git-reference
15673 (url "https://github.com/Wilfred/mustache.el")
15674 (commit version)))
15675 (file-name (git-file-name name version))
15676 (sha256
15677 (base32 "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"))))
15678 (build-system emacs-build-system)
15679 (propagated-inputs
15680 (list emacs-dash emacs-ht emacs-s))
15681 (home-page "https://github.com/Wilfred/mustache.el")
15682 (synopsis "Mustache templating library for Emacs")
15683 (description "Mustache templating library for Emacs, mustache is
15684 a simple web template system, which is described as a logic-less system
15685 because it lacks any explicit control flow statements, both looping and
15686 conditional evaluation can be achieved using section tags processing lists
15687 and lambdas.")
15688 (license license:gpl3+)))
15689
15690 (define-public emacs-org2web
15691 (package
15692 (name "emacs-org2web")
15693 (version "0.9.1")
15694 (source
15695 (origin
15696 (method git-fetch)
15697 (uri (git-reference
15698 (url "https://github.com/tumashu/org2web")
15699 (commit (string-append "v" version))))
15700 (file-name (git-file-name name version))
15701 (sha256
15702 (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"))))
15703 (build-system emacs-build-system)
15704 (propagated-inputs
15705 (list emacs-dash emacs-el2org emacs-ht emacs-mustache
15706 emacs-simple-httpd))
15707 (home-page "https://github.com/tumashu/org2web")
15708 (synopsis "Static site generator based on org-mode")
15709 (description "Org2web is a static site generator based on org-mode,
15710 which code derived from Kelvin H's org-page.")
15711 (license license:gpl2+)))
15712
15713 (define-public emacs-meow
15714 (package
15715 (name "emacs-meow")
15716 (version "1.4.2")
15717 (source
15718 (origin
15719 (method git-fetch)
15720 (uri (git-reference
15721 (url "https://github.com/meow-edit/meow")
15722 (commit (string-append "v" version))))
15723 (file-name (git-file-name name version))
15724 (sha256
15725 (base32 "11iz95lm25vpdc3plpm3h1zlmfmfz08xlman8iqk5fa13636v7hj"))))
15726 (build-system emacs-build-system)
15727 (home-page "https://github.com/meow-edit/meow")
15728 (synopsis "Yet another modal editing on Emacs")
15729 (description "Meow is yet another modal editing mode for Emacs. It aims
15730 to blend modal editing into Emacs with minimum interface with its original
15731 key-bindings, avoiding most if not all the hassle introduced by key-binding
15732 conflicts.")
15733 (license license:gpl3+)))
15734
15735 (define-public emacs-xelb
15736 (package
15737 (name "emacs-xelb")
15738 (version "0.18")
15739 (source (origin
15740 (method url-fetch)
15741 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
15742 version ".tar"))
15743 (sha256
15744 (base32
15745 "1fp5mzl63sh0h3ws4l5p4qgvi7ny8a3fj6k4dhqa98xgw2bx03v7"))))
15746 (build-system emacs-build-system)
15747 ;; The following functions and variables needed by emacs-xelb are
15748 ;; not included in emacs-minimal:
15749 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
15750 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
15751 ;; x-display-pixel-width, x-display-pixel-height
15752 (arguments
15753 `(#:emacs ,emacs
15754 #:phases
15755 (modify-phases %standard-phases
15756 (add-after 'unpack 'regenerate-el-files
15757 (lambda* (#:key inputs #:allow-other-keys)
15758 (invoke "make"
15759 (string-append "PROTO_PATH="
15760 (assoc-ref inputs "xcb-proto")
15761 "/share/xcb")
15762 (string-append "EMACS_BIN="
15763 (assoc-ref inputs "emacs")
15764 "/bin/emacs -Q")))))))
15765 (native-inputs (list xcb-proto))
15766 (home-page "https://github.com/ch11ng/xelb")
15767 (synopsis "X protocol Emacs Lisp binding")
15768 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
15769 X11 protocol based on the XML description files from the XCB project. It
15770 features an object-oriented API and permits a certain degree of concurrency.
15771 It should enable you to implement low-level X11 applications.")
15772 (license license:gpl3+)))
15773
15774 (define-public emacs-exwm
15775 (package
15776 (name "emacs-exwm")
15777 (version "0.26")
15778 (synopsis "Emacs X window manager")
15779 (source
15780 (origin
15781 (method url-fetch)
15782 (uri (string-append "https://elpa.gnu.org/packages/"
15783 "exwm-" version ".tar"))
15784 (sha256
15785 (base32 "03pg0r8a5vb1wc5grmjgzql74p47fniv47x39gdll5s3cq0haf6q"))))
15786 (build-system emacs-build-system)
15787 (propagated-inputs
15788 (list emacs-xelb))
15789 (inputs
15790 (list xhost dbus))
15791 ;; The following functions and variables needed by emacs-exwm are
15792 ;; not included in emacs-minimal:
15793 ;; scroll-bar-mode, fringe-mode
15794 ;; x-display-pixel-width, x-display-pixel-height
15795 (arguments
15796 `(#:emacs ,emacs
15797 #:phases
15798 (modify-phases %standard-phases
15799 (add-after 'build 'install-xsession
15800 (lambda* (#:key inputs outputs #:allow-other-keys)
15801 (let* ((out (assoc-ref outputs "out"))
15802 (xsessions (string-append out "/share/xsessions"))
15803 (bin (string-append out "/bin"))
15804 (exwm-executable (string-append bin "/exwm")))
15805 ;; Add a .desktop file to xsessions
15806 (mkdir-p xsessions)
15807 (mkdir-p bin)
15808 (make-desktop-entry-file
15809 (string-append xsessions "/exwm.desktop")
15810 #:name ,name
15811 #:comment ,synopsis
15812 #:exec exwm-executable
15813 #:try-exec exwm-executable)
15814 ;; Add a shell wrapper to bin
15815 (with-output-to-file exwm-executable
15816 (lambda _
15817 (format #t "#!~a ~@
15818 ~a +SI:localuser:$USER ~@
15819 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
15820 (search-input-file inputs "/bin/sh")
15821 (search-input-file inputs "/bin/xhost")
15822 (search-input-file inputs "/bin/dbus-launch")
15823 (search-input-file inputs "/bin/emacs")
15824 '(cond
15825 ((file-exists-p "~/.exwm")
15826 (load-file "~/.exwm"))
15827 ((not (featurep 'exwm))
15828 (require 'exwm)
15829 (require 'exwm-config)
15830 (exwm-config-default)
15831 (message (concat "exwm configuration not found. "
15832 "Falling back to default configuration...")))))))
15833 (chmod exwm-executable #o555)
15834 #t))))))
15835 (home-page "https://github.com/ch11ng/exwm")
15836 (description
15837 "EXWM is a full-featured tiling X window manager for Emacs built on top
15838 of XELB.")
15839 (license license:gpl3+)))
15840
15841 (define-public emacs-xelb-no-x-toolkit
15842 (package
15843 (inherit emacs-xelb)
15844 (name "emacs-xelb-no-x-toolkit")
15845 (arguments
15846 (substitute-keyword-arguments (package-arguments emacs-xelb)
15847 ((#:emacs emacs) `,emacs-no-x-toolkit)))))
15848
15849 (define-public emacs-exwm-no-x-toolkit
15850 (package
15851 (inherit emacs-exwm)
15852 (name "emacs-exwm-no-x-toolkit")
15853 (synopsis "Emacs X window manager (without an X toolkit)")
15854 (propagated-inputs
15855 (list emacs-xelb-no-x-toolkit))
15856 (arguments
15857 (substitute-keyword-arguments (package-arguments emacs-exwm)
15858 ((#:emacs emacs) `,emacs-no-x-toolkit)))))
15859
15860 (define-public emacs-switch-window
15861 (package
15862 (name "emacs-switch-window")
15863 (version "1.6.2")
15864 (source
15865 (origin
15866 (method git-fetch)
15867 (uri (git-reference
15868 (url "https://github.com/dimitri/switch-window")
15869 (commit (string-append "v" version))))
15870 (file-name (git-file-name name version))
15871 (sha256
15872 (base32
15873 "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
15874 (build-system emacs-build-system)
15875 (home-page "https://github.com/dimitri/switch-window")
15876 (synopsis "Emacs window switch tool")
15877 (description "Switch-window is an emacs window switch tool, which
15878 offer a visual way to choose a window to switch to, delete, split or
15879 other operations.")
15880 (license license:wtfpl2)))
15881
15882 (define-public emacs-exwm-x
15883 (package
15884 (name "emacs-exwm-x")
15885 (version "2.0.2")
15886 (synopsis "Derivative window manager based on EXWM")
15887 (source
15888 (origin
15889 (method git-fetch)
15890 (uri (git-reference
15891 (url "https://github.com/tumashu/exwm-x")
15892 (commit (string-append "v" version))))
15893 (file-name (git-file-name name version))
15894 (sha256
15895 (base32
15896 "0h248mma7kky30jr9bbhmp95wchl2cx5p6kh0gxmzpbc247dn2cc"))))
15897 (build-system emacs-build-system)
15898 (propagated-inputs
15899 (list emacs-counsel emacs-exwm emacs-switch-window emacs-use-package))
15900 (inputs
15901 (list xhost dbus))
15902 ;; Need emacs instead of emacs-minimal,
15903 ;; for emacs's bin path will be inserted into bin/exwm-x file.
15904 (arguments
15905 `(#:emacs ,emacs
15906 #:phases
15907 (modify-phases %standard-phases
15908 (add-after 'build 'install-xsession
15909 (lambda* (#:key inputs outputs #:allow-other-keys)
15910 (let* ((out (assoc-ref outputs "out"))
15911 (xsessions (string-append out "/share/xsessions"))
15912 (bin (string-append out "/bin"))
15913 (exwm-executable (string-append bin "/exwm-x")))
15914 ;; Add a .desktop file to xsessions
15915 (mkdir-p xsessions)
15916 (mkdir-p bin)
15917 (with-output-to-file
15918 (string-append xsessions "/exwm-x.desktop")
15919 (lambda _
15920 (format #t "[Desktop Entry]~@
15921 Name=~a~@
15922 Comment=~a~@
15923 Exec=~a~@
15924 TryExec=~@*~a~@
15925 Type=Application~%" ,name ,synopsis exwm-executable)))
15926 ;; Add a shell wrapper to bin
15927 (with-output-to-file exwm-executable
15928 (lambda _
15929 (format #t "#!~a ~@
15930 ~a +SI:localuser:$USER ~@
15931 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
15932 (search-input-file inputs "/bin/sh")
15933 (search-input-file inputs "/bin/xhost")
15934 (search-input-file inputs "/bin/dbus-launch")
15935 (search-input-file inputs "/bin/emacs")
15936 '(require 'exwmx-loader))))
15937 (chmod exwm-executable #o555)
15938 #t))))))
15939 (home-page "https://github.com/tumashu/exwm-x")
15940 (description "EXWM-X is a derivative window manager based on EXWM, with focus
15941 on mouse-control.")
15942 (license license:gpl3+)))
15943
15944 (define-public emacs-gnugo
15945 (package
15946 (name "emacs-gnugo")
15947 (version "3.1.2")
15948 (source
15949 (origin
15950 (method url-fetch)
15951 (uri (string-append "https://elpa.gnu.org/packages/gnugo-"
15952 version ".tar"))
15953 (sha256
15954 (base32
15955 "138gzdyi8scqimvs49da66j8f5a43bhgpasn1bxzdj2zffwlwp6g"))))
15956 (build-system emacs-build-system)
15957 (arguments
15958 `(#:phases
15959 (modify-phases %standard-phases
15960 (add-after 'unpack 'configure
15961 (lambda* (#:key inputs #:allow-other-keys)
15962 (emacs-substitute-variables "gnugo.el"
15963 ("gnugo-xpms" "#'gnugo-imgen-create-xpms" (as-display))
15964 ("gnugo-program" (search-input-file inputs "/bin/gnugo"))))))))
15965 (inputs (list gnugo))
15966 (propagated-inputs
15967 (list emacs-ascii-art-to-unicode emacs-xpm))
15968 (home-page "https://elpa.gnu.org/packages/gnugo.html")
15969 (synopsis "Emacs major mode for playing GNU Go")
15970 (description "This package provides an Emacs based interface for GNU Go,
15971 which can be started via @samp{M-x gnugo}. It has a graphical mode where the
15972 board and stones are drawn using XPM images and supports the use of a mouse.
15973 You can switch to the graphical mode by running @samp{M-x
15974 gnugo-image-display-mode}.")
15975 (license license:gpl3+)))
15976
15977 (define-public emacs-gnuplot
15978 (package
15979 (name "emacs-gnuplot")
15980 (version "0.8.0")
15981 (source
15982 (origin
15983 (method git-fetch)
15984 (uri (git-reference
15985 (url "https://github.com/emacsorphanage/gnuplot-mode")
15986 (commit version)))
15987 (file-name (git-file-name name version))
15988 (sha256
15989 (base32 "09y177sq24gs7wwjihw59g0m4n1rv2ws9890ynxjxawv823r0fxm"))))
15990 (build-system emacs-build-system)
15991 (home-page "https://github.com/emacsorphanage/gnuplot-mode")
15992 (synopsis "Emacs major mode for interacting with Gnuplot")
15993 (description
15994 "Emacs Gnuplot is an Emacs major mode for interacting with Gnuplot.")
15995 (license license:gpl2+)))
15996
15997 (define-public emacs-transpose-frame
15998 (package
15999 (name "emacs-transpose-frame")
16000 (version "0.2.1")
16001 (source
16002 (origin
16003 (method git-fetch)
16004 (uri (git-reference
16005 (url "https://github.com/emacsorphanage/transpose-frame")
16006 (commit (string-append "v" version))))
16007 (file-name (git-file-name name version))
16008 (sha256
16009 (base32 "0m9jmfwwhgkwxbq3y000ymx7parbgqr7gq3yjm2wh1ll747gv51y"))))
16010 (build-system emacs-build-system)
16011 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
16012 (synopsis "Transpose window arrangement in current frame")
16013 (description "@code{emacs-transpose-frame} provides some interactive
16014 functions which allows users to transpose windows arrangement in currently
16015 selected frame.")
16016 (license license:bsd-2)))
16017
16018 (define-public emacs-transpose-mark
16019 ;; XXX: Upstream made no release so far, and did not add a Version keyword.
16020 (let ((commit "667327602004794de97214cf336ac61650ef75b7")
16021 (revision "0"))
16022 (package
16023 (name "emacs-transpose-mark")
16024 (version (git-version "0" revision commit))
16025 (source
16026 (origin
16027 (method git-fetch)
16028 (uri (git-reference
16029 (url "https://github.com/kwrooijen/transpose-mark")
16030 (commit commit)))
16031 (file-name (git-file-name name version))
16032 (sha256
16033 (base32 "03wc50vn1kmrgnzzhs06pwpap2p2rx84wwzxw0hawsg1f1l35m2x"))))
16034 (build-system emacs-build-system)
16035 (home-page "https://github.com/kwrooijen/transpose-mark")
16036 (synopsis "Library for transposing lines and regions")
16037 (description "Transpose mark provides some commands that makes
16038 transposing lines and regions easier. You can mark a line and transpose it
16039 with a line at point, or mark a region and transpose it with another region
16040 a point. The plugin provides visual feedback for marked regions.")
16041 (license license:gpl3+))))
16042
16043 (define-public emacs-key-chord
16044 (package
16045 (name "emacs-key-chord")
16046 (version "0.6")
16047 (source
16048 (origin
16049 (method url-fetch)
16050 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
16051 (file-name (string-append "key-chord-" version ".el"))
16052 (sha256
16053 (base32
16054 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
16055 (build-system emacs-build-system)
16056 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
16057 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
16058 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
16059 mode for binding key chords to commands. A key chord is defined as two keys
16060 pressed simultaneously or a single key quickly pressed twice.")
16061 (license license:gpl2+)))
16062
16063 (define-public emacs-evil-surround
16064 (package
16065 (name "emacs-evil-surround")
16066 (version "1.1.1")
16067 (source
16068 (origin
16069 (method git-fetch)
16070 (uri (git-reference
16071 (url "https://github.com/emacs-evil/evil-surround")
16072 (commit version)))
16073 (file-name (git-file-name name version))
16074 (sha256
16075 (base32 "1gfgmr4909m36gknprcam6q4rkcqfbi6w43ky7x6jnlmgb6mxggg"))))
16076 (build-system emacs-build-system)
16077 (propagated-inputs
16078 (list emacs-evil))
16079 (arguments
16080 `(#:tests? #t
16081 #:test-command '("make" "test")))
16082 (home-page "https://github.com/emacs-evil/evil-surround")
16083 (synopsis "Easily modify surrounding parentheses and quotes")
16084 (description "@code{emacs-evil-surround} allows easy deletion, change and
16085 addition of surrounding pairs, such as parentheses and quotes, in evil mode.")
16086 (license license:gpl3+)))
16087
16088 (define-public emacs-evil-commentary
16089 (package
16090 (name "emacs-evil-commentary")
16091 (version "2.2.0")
16092 (source
16093 (origin
16094 (method git-fetch)
16095 (uri (git-reference
16096 (url "https://github.com/linktohack/evil-commentary")
16097 (commit (string-append "v" version))))
16098 (file-name (git-file-name name version))
16099 (sha256
16100 (base32 "1l8zi9wlg1f7ffm8gh92qwk3q7h6cdl8b8zkd9hcda53mq6klpjr"))))
16101 (build-system emacs-build-system)
16102 (propagated-inputs
16103 (list emacs-evil))
16104 (home-page "https://github.com/linktohack/evil-commentary")
16105 (synopsis "Comment out code in evil mode")
16106 (description "@code{emacs-evil-commentary} adds keybindings to easily
16107 comment out lines of code in evil mode. It provides @code{gcc} to comment out
16108 lines, and @code{gc} to comment out the target of a motion.")
16109 (license license:gpl3+)))
16110
16111 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
16112 ;; therefore cannot be run
16113 (define-public emacs-ansi
16114 (let ((commit "2367fba7b3b2340364a30cd6de7f3eb6bb9898a3")
16115 (revision "2"))
16116 (package
16117 (name "emacs-ansi")
16118 (version (git-version "0.4.1" revision commit))
16119 (source
16120 (origin
16121 (method git-fetch)
16122 (uri (git-reference
16123 (url "https://github.com/rejeep/ansi.el")
16124 (commit commit)))
16125 (file-name (git-file-name name version))
16126 (sha256
16127 (base32 "1n7h6l4icm6lks3zpvd83j1fzrnspw19rmz7c96vy7pdh1y4v3p3"))))
16128 (build-system emacs-build-system)
16129 (home-page "https://github.com/rejeep/ansi.el")
16130 (synopsis "Convert strings to ANSI")
16131 (description "@code{emacs-ansi} defines functions that turns simple
16132 strings to ANSI strings. Turning a string into an ANSI string can be to add
16133 color to a text, add color in the background of a text or adding a style, such
16134 as bold, underscore or italic.")
16135 (license license:gpl3+))))
16136
16137 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
16138 ;; therefore cannot be run
16139 (define-public emacs-commander
16140 (package
16141 (name "emacs-commander")
16142 (version "0.7.0")
16143 (source
16144 (origin
16145 (method git-fetch)
16146 (uri (git-reference
16147 (url "https://github.com/rejeep/commander.el")
16148 (commit (string-append "v" version))))
16149 (file-name (git-file-name name version))
16150 (sha256
16151 (base32 "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45"))))
16152 (build-system emacs-build-system)
16153 (propagated-inputs
16154 (list emacs-dash emacs-f emacs-s))
16155 (home-page "https://github.com/rejeep/commander.el")
16156 (synopsis "Emacs command line parser")
16157 (description "@code{emacs-commander} provides command line parsing for
16158 Emacs.")
16159 (license license:gpl3+)))
16160
16161 (define-public emacs-eglot
16162 (package
16163 (name "emacs-eglot")
16164 (version "1.8")
16165 (source
16166 (origin
16167 (method url-fetch)
16168 (uri (string-append "https://elpa.gnu.org/packages/"
16169 "eglot-" version ".tar"))
16170 (sha256
16171 (base32 "1n04jnf3wwpxafrzfd02l53wf90brjc8p835f84k0n0rjxin99k5"))))
16172 (build-system emacs-build-system)
16173 (propagated-inputs
16174 (list emacs-eldoc emacs-jsonrpc emacs-project))
16175 (home-page "https://github.com/joaotavora/eglot")
16176 (synopsis "Client for Language Server Protocol (LSP) servers")
16177 (description
16178 "Emacs Polyglot, or Eglot, is an Emacs @acronym{Language Server Protocol,
16179 LSP} client that stays out of the way. It guesses the LSP program to start
16180 for the current file, using the major mode as a hint. It prompts you to enter
16181 one if it fails.")
16182 (license license:gpl3+)))
16183
16184 (define-public emacs-eldoc
16185 (package
16186 (name "emacs-eldoc")
16187 (version "1.13.0")
16188 (source
16189 (origin
16190 (method url-fetch)
16191 (uri (string-append
16192 "https://elpa.gnu.org/packages/eldoc-" version ".tar"))
16193 (sha256
16194 (base32 "0c05dzrs7vrhibj46jpz625482ah6xywji7way6wcvwc711y74fz"))))
16195 (build-system emacs-build-system)
16196 (home-page "http://elpa.gnu.org/packages/eldoc.html")
16197 (synopsis "Show function arglist or variable docstring in echo area")
16198 (description
16199 "This program was inspired by the behavior of the ``mouse documentation
16200 window'' on many Lisp Machine systems; as you type a function's symbol name as
16201 part of a sexp, it will print the argument list for that function. Behavior
16202 is not identical; for example, you need not actually type the function name,
16203 you need only move point around in a sexp that calls it. Also, if point is
16204 over a documented variable, it will print the one-line documentation for that
16205 variable instead, to remind you of that variable's meaning.")
16206 (license license:gpl3+)))
16207
16208 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
16209 ;; cannot be run
16210 (define-public emacs-ert-runner
16211 (package
16212 (name "emacs-ert-runner")
16213 (version "0.8.0")
16214 (source
16215 (origin
16216 (method git-fetch)
16217 (uri (git-reference
16218 (url "https://github.com/rejeep/ert-runner.el")
16219 (commit (string-append "v" version))))
16220 (file-name (git-file-name name version))
16221 (sha256
16222 (base32
16223 "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98"))))
16224 (build-system emacs-build-system)
16225 (inputs
16226 (list emacs-ansi
16227 emacs-commander
16228 emacs-dash
16229 emacs-f
16230 emacs-s
16231 emacs-shut-up))
16232 (arguments
16233 `(#:phases
16234 (modify-phases %standard-phases
16235 (add-after 'install 'install-executable
16236 (lambda* (#:key inputs outputs #:allow-other-keys)
16237 (let ((out (assoc-ref outputs "out"))
16238 (source-directory (string-append
16239 (getenv "TMPDIR") "/source")))
16240 (substitute* "bin/ert-runner"
16241 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
16242 (string-append "ERT_RUNNER=\"" (elpa-directory out))))
16243 (install-file "bin/ert-runner" (string-append out "/bin"))
16244 (wrap-program (string-append out "/bin/ert-runner")
16245 (list "EMACSLOADPATH" ":" 'prefix
16246 ;; Do not capture the transient source directory in
16247 ;; the wrapper.
16248 (delete source-directory
16249 (string-split (getenv "EMACSLOADPATH") #\:))))
16250 #t))))
16251 #:include (cons* "^reporters/.*\\.el$" %default-include)))
16252 (home-page "https://github.com/rejeep/ert-runner.el")
16253 (synopsis "Opinionated Ert testing workflow")
16254 (description "@code{ert-runner} is a tool for Emacs projects tested
16255 using ERT. It assumes a certain test structure setup and can therefore make
16256 running tests easier.")
16257 (license license:gpl3+)))
16258
16259 (define-public emacs-xtest
16260 (package
16261 (name "emacs-xtest")
16262 (version "1.1.0")
16263 (source (origin
16264 (method git-fetch)
16265 (uri (git-reference
16266 (url "https://github.com/promethial/xtest")
16267 (commit (string-append "v" version))))
16268 (file-name (git-file-name name version))
16269 (sha256
16270 (base32
16271 "1wqx6hlqcmqiljydih5fx89dw06g8w728pyn4iqsap8jwgjngb09"))))
16272 (arguments
16273 `(#:exclude '()))
16274 (build-system emacs-build-system)
16275 (home-page "https://github.com/promethial/xtest/")
16276 (synopsis "Simple testing with Emacs")
16277 (description "This package provides a simple testing library for Emacs.")
16278 (license license:gpl3+)))
16279
16280 (define-public emacs-org-transclusion
16281 (package
16282 (name "emacs-org-transclusion")
16283 (version "1.3.0")
16284 (source
16285 (origin
16286 (method git-fetch)
16287 (uri (git-reference
16288 (url "https://github.com/nobiot/org-transclusion")
16289 (commit (string-append "v" version))))
16290 (file-name (git-file-name name version))
16291 (sha256
16292 (base32 "0pjk6686ss50s9ws014if9mnixsf9m53z1d7bvkbx09lq3jqa7ry"))))
16293 (build-system emacs-build-system)
16294 (home-page "https://nobiot.github.io/org-transclusion/")
16295 (synopsis "Enable transclusion with Org Mode")
16296 (description "Org-transclusion lets you insert a copy of text content via
16297 a file link or ID link within an Org file. It lets you have the same content
16298 present in different buffers at the same time without copy-and-pasting it.
16299 Edit the source of the content, and you can refresh the transcluded copies to
16300 the up-to-date state. Org-transclusion keeps your files clear of the
16301 transcluded copies, leaving only the links to the original content.")
16302 (license license:gpl3+)))
16303
16304 (define-public emacs-disable-mouse
16305 (package
16306 (name "emacs-disable-mouse")
16307 (version "0.3")
16308 (source
16309 (origin
16310 (method git-fetch)
16311 (uri (git-reference
16312 (url "https://github.com/purcell/disable-mouse")
16313 (commit version)))
16314 (file-name (git-file-name name version))
16315 (sha256
16316 (base32 "0l6mai68ns3qw3rlvjvzsnqwdy7bxqiy0vdwflq0l1plxb1vazyc"))))
16317 (build-system emacs-build-system)
16318 (home-page "https://github.com/purcell/disable-mouse")
16319 (synopsis "Disable mouse commands globally")
16320 (description
16321 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
16322 pair of minor modes which suppress all mouse events by intercepting them and
16323 running a customisable handler command (@code{ignore} by default).")
16324 (license license:gpl3+)))
16325
16326 (define-public emacs-json-reformat
16327 (package
16328 (name "emacs-json-reformat")
16329 (version "0.0.7")
16330 (source
16331 (origin
16332 (method git-fetch)
16333 (uri (git-reference
16334 (url "https://github.com/gongo/json-reformat")
16335 (commit version)))
16336 (file-name (git-file-name name version))
16337 (sha256
16338 (base32 "1gaifz1brh7yh1wk1c02gddwis4ab6bggv27gy7gcd2s861f8bkx"))
16339 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
16340 (build-system emacs-build-system)
16341 (arguments
16342 `(#:tests? #t
16343 #:test-command '("ert-runner")
16344 #:phases
16345 (modify-phases %standard-phases
16346 (add-before 'check 'make-tests-writable
16347 (lambda _
16348 (for-each make-file-writable (find-files "test"))))
16349 (add-before 'check 'delete-json-objects-order-test
16350 (lambda _
16351 (emacs-batch-edit-file "test/json-reformat-test.el"
16352 `(progn (progn (goto-char (point-min))
16353 (re-search-forward
16354 "ert-deftest json-reformat-test:json-reformat-region")
16355 (beginning-of-line)
16356 (kill-sexp))
16357 (basic-save-buffer)))))
16358 (add-before 'check 'delete-json-reformat-region-occur-error-test
16359 (lambda _
16360 (emacs-batch-edit-file "test/json-reformat-test.el"
16361 `(progn (goto-char (point-min))
16362 (re-search-forward
16363 "ert-deftest json-reformat-test:json-reformat-region-occur-error")
16364 (beginning-of-line)
16365 (kill-sexp)
16366 (basic-save-buffer))))))))
16367 (native-inputs
16368 (list emacs-dash emacs-ert-runner emacs-shut-up))
16369 (propagated-inputs
16370 (list emacs-undercover))
16371 (home-page "https://github.com/gongo/json-reformat")
16372 (synopsis "Reformatting tool for JSON")
16373 (description "@code{json-reformat} provides a reformatting tool for
16374 @url{http://json.org/, JSON}.")
16375 (license license:gpl3+)))
16376
16377 (define-public emacs-json-snatcher
16378 (package
16379 (name "emacs-json-snatcher")
16380 (version "1.0.0")
16381 (source
16382 (origin
16383 (method git-fetch)
16384 (uri (git-reference
16385 (url "https://github.com/Sterlingg/json-snatcher")
16386 (commit version)))
16387 (file-name (git-file-name name version))
16388 (sha256
16389 (base32 "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw"))))
16390 (build-system emacs-build-system)
16391 (home-page "https://github.com/sterlingg/json-snatcher")
16392 (synopsis "Grabs the path to JSON values in a JSON file")
16393 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
16394 a @url{http://json.org/, JSON} file.")
16395 (license license:gpl3+)))
16396
16397 (define-public emacs-json-mode
16398 (package
16399 (name "emacs-json-mode")
16400 (version "1.8.0")
16401 (source
16402 (origin
16403 (method git-fetch)
16404 (uri (git-reference
16405 (url "https://github.com/joshwnj/json-mode")
16406 (commit (string-append "v" version))))
16407 (file-name (git-file-name name version))
16408 (sha256
16409 (base32 "0r0k56q58kb133l9x9nbisz9p2kbphfgw1l4g2xp0pjqsc9wvq8z"))))
16410 (build-system emacs-build-system)
16411 (propagated-inputs
16412 (list emacs-json-snatcher))
16413 (home-page "https://github.com/joshwnj/json-mode")
16414 (synopsis "Major mode for editing JSON files")
16415 (description "@code{json-mode} extends the builtin js-mode syntax
16416 highlighting.")
16417 (license license:gpl3+)))
16418
16419 (define-public emacs-jsonrpc
16420 ;; Commit refers to a commit in the Emacs repository, as jsonrpc.el was
16421 ;; upstreamed. By convention, it should refer to a commit in which
16422 ;; jsonrpc.el was actually touched.
16423 (let ((commit "50654cf0b1bf6210fc8f46d8e7ae13bbeeccecb5")
16424 (revision "0")) ; Currently a version bump
16425 (package
16426 (name "emacs-jsonrpc")
16427 (version (git-version "1.0.15" revision commit))
16428 (source
16429 (origin
16430 (method git-fetch)
16431 (uri (git-reference
16432 (url "https://git.savannah.gnu.org/git/emacs.git")
16433 (commit commit)))
16434 (file-name (git-file-name name version))
16435 (sha256
16436 (base32
16437 "0srwb171dxha1nfzppk6x9v4bdj3lk74pksqnhalw8jw9c67b72y"))))
16438 (build-system emacs-build-system)
16439 (arguments
16440 (list #:phases
16441 #~(modify-phases %standard-phases
16442 (replace 'unpack
16443 (lambda* (#:key source #:allow-other-keys)
16444 (mkdir "source")
16445 (chdir "source")
16446 (copy-file (string-append source "/lisp/jsonrpc.el")
16447 "jsonrpc.el"))))))
16448 (home-page "http://elpa.gnu.org/packages/jsonrpc.html")
16449 (synopsis "JSON-RPC library")
16450 (description
16451 "This library implements the JSONRPC 2.0 specification as
16452 described in @url{http://www.jsonrpc.org/}. As the name suggests,
16453 JSONRPC is a generic Remote Procedure Call protocol designed around
16454 JSON objects.")
16455 (license license:gpl3+))))
16456
16457 (define-public emacs-jsonnet-mode
16458 (package
16459 (name "emacs-jsonnet-mode")
16460 (version "0.1.3")
16461 (source
16462 (origin
16463 (method git-fetch)
16464 (uri (git-reference
16465 (url "https://github.com/tminor/jsonnet-mode")
16466 (commit (string-append "v" version))))
16467 (file-name (git-file-name name version))
16468 (sha256
16469 (base32
16470 "14nxfa91yg2243v4d5kvynp2645x3811ispmhmpgil3x9qbl9jg9"))))
16471 (build-system emacs-build-system)
16472 (propagated-inputs
16473 (list emacs-dash))
16474 (home-page "https://github.com/tminor/jsonnet-mode")
16475 (synopsis "Major mode for editing jsonnet files")
16476 (description "This package provides syntax highlighting, indenting,
16477 formatting, and utility methods for jsonnet files.")
16478 (license license:gpl3+)))
16479
16480 (define-public emacs-restclient
16481 (let ((commit "ac8aad6c6b9e9d918062fa3c89c22c2f4ec48bc3")
16482 (version "0")
16483 (revision "3")) ;Guix package revision,
16484 ;upstream doesn't have official releases
16485 (package
16486 (name "emacs-restclient")
16487 (version (git-version version revision commit))
16488 (source (origin
16489 (method git-fetch)
16490 (uri (git-reference
16491 (url "https://github.com/pashky/restclient.el")
16492 (commit commit)))
16493 (sha256
16494 (base32
16495 "1a2c7xzy7rsan1zcdskia6m7n6j29xacfkqjlfdhzk6rr1bpzkwk"))
16496 (file-name (git-file-name name version))))
16497 (build-system emacs-build-system)
16498 (propagated-inputs
16499 (list emacs-helm emacs-jq-mode))
16500 (home-page "https://github.com/pashky/restclient.el")
16501 (synopsis "Explore and test HTTP REST webservices")
16502 (description
16503 "This tool allows for testing and exploration of HTTP REST Web services
16504 from within Emacs. Restclient runs queries from a plan-text query sheet,
16505 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
16506 (license license:public-domain))))
16507
16508 (define-public emacs-jq-mode
16509 (package
16510 (name "emacs-jq-mode")
16511 (version "0.5.0")
16512 (source
16513 (origin
16514 (method git-fetch)
16515 (uri (git-reference
16516 (url "https://github.com/ljos/jq-mode")
16517 (commit (string-append "v" version))))
16518 (file-name (git-file-name name version))
16519 (sha256
16520 (base32 "0xk0if5i9cz4w06lx8v1vdm112pn1ybqgfw048sx15yyvfzgril1"))))
16521 (build-system emacs-build-system)
16522 (home-page "https://github.com/ljos/jq-mode")
16523 (synopsis "Major mode for editing jq queries")
16524 (description
16525 "Jq mode is an Emacs major mode for editing jq-scripts.")
16526 (license license:gpl3+)))
16527
16528 (define-public emacs-whitespace-cleanup-mode
16529 (let ((commit "72427144b054b0238a86e1348c45d986b8830d9d")
16530 (revision "1"))
16531 (package
16532 (name "emacs-whitespace-cleanup-mode")
16533 (version (git-version "0.10" revision commit))
16534 (source (origin
16535 (method git-fetch)
16536 (uri (git-reference
16537 (url "https://github.com/purcell/whitespace-cleanup-mode")
16538 (commit commit)))
16539 (sha256
16540 (base32
16541 "1zlk534jbwrsabcg3kqlzk4h4hwya60lh6q2n1v4yn4rpf5ghsag"))
16542 (file-name (git-file-name name version))))
16543 (build-system emacs-build-system)
16544 (home-page "https://github.com/purcell/whitespace-cleanup-mode")
16545 (synopsis "Intelligently call @code{whitespace-cleanup} on save")
16546 (description
16547 "This package provides a minor mode that calls
16548 @code{whitespace-cleanup} before saving the current buffer only if the
16549 whitespace in the buffer was initially clean.")
16550 (license license:gpl3+))))
16551
16552 (define-public emacs-eimp
16553 (let ((version "1.4.0")
16554 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
16555 (revision "1"))
16556 (package
16557 (name "emacs-eimp")
16558 (version (git-version version revision commit))
16559 (source
16560 (origin
16561 (method git-fetch)
16562 (uri (git-reference
16563 (url "https://github.com/nicferrier/eimp")
16564 (commit commit)))
16565 (file-name (git-file-name name version))
16566 (sha256
16567 (base32
16568 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
16569 (build-system emacs-build-system)
16570 (arguments
16571 `(#:phases
16572 (modify-phases %standard-phases
16573 (add-after 'unpack 'configure
16574 (lambda* (#:key inputs #:allow-other-keys)
16575 (let ((imagemagick (assoc-ref inputs "imagemagick")))
16576 ;; eimp.el is read-only in git.
16577 (chmod "eimp.el" #o644)
16578 (emacs-substitute-variables "eimp.el"
16579 ("eimp-mogrify-program"
16580 (string-append imagemagick "/bin/mogrify"))))
16581 #t)))))
16582 (inputs
16583 (list imagemagick))
16584 (home-page "https://github.com/nicferrier/eimp")
16585 (synopsis "Interactive image manipulation utility for Emacs")
16586 (description "@code{emacs-eimp} allows interactive image manipulation
16587 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
16588 the actual transformations.")
16589 (license license:gpl2+))))
16590
16591 (define-public emacs-dired-hacks
16592 (let ((commit "d1a2bda6aa8f890cb367297ed93aee6d3b5ba388")
16593 (revision "3"))
16594 (package
16595 (name "emacs-dired-hacks")
16596 (version (git-version "0.0.1" revision commit))
16597 (source (origin
16598 (method git-fetch)
16599 (uri (git-reference
16600 (url "https://github.com/Fuco1/dired-hacks")
16601 (commit commit)))
16602 (file-name (git-file-name name version))
16603 (sha256
16604 (base32
16605 "12m81a9kjhs4cyq3lym0vp5nx6z3sfnypyzrnia76x6rjvixjf6y"))))
16606 (build-system emacs-build-system)
16607 (propagated-inputs
16608 (list emacs-dash emacs-eimp emacs-f emacs-s))
16609 (home-page "https://github.com/Fuco1/dired-hacks")
16610 (synopsis
16611 "Collection of useful dired additions")
16612 (description
16613 "This package provides the following collection of Emacs dired mode
16614 additions:
16615
16616 @itemize
16617 @item dired-avfs
16618 @item dired-columns
16619 @item dired-filter
16620 @item dired-hacks-utils
16621 @item dired-images
16622 @item dired-list
16623 @item dired-narrow
16624 @item dired-open
16625 @item dired-rainbow
16626 @item dired-ranger
16627 @item dired-subtree
16628 @item dired-tagsistant
16629 @end itemize\n")
16630 (license license:gpl3+))))
16631
16632 (define-public emacs-dired-sidebar
16633 (package
16634 (name "emacs-dired-sidebar")
16635 (home-page "https://github.com/jojojames/dired-sidebar")
16636 (version "0.2.0")
16637 (source
16638 (origin
16639 (method git-fetch)
16640 (uri (git-reference
16641 (url home-page)
16642 (commit version)))
16643 (file-name (git-file-name name version))
16644 (sha256
16645 (base32 "090dqaqyjmkzrz4szjpk1iip0bdvb0frp4l79393f8ki8w7c16c1"))))
16646 (build-system emacs-build-system)
16647 (propagated-inputs
16648 (list emacs-dired-hacks))
16649 (synopsis "Sidebar for Emacs using Dired")
16650 (description
16651 "This package provides a sidebar for Emacs similar to @code{NeoTree}
16652 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
16653 (license license:gpl3+)))
16654
16655 (define-public emacs-which-key
16656 (package
16657 (name "emacs-which-key")
16658 (version "3.6.0")
16659 (source
16660 (origin
16661 (method git-fetch)
16662 (uri (git-reference
16663 (url "https://github.com/justbur/emacs-which-key")
16664 (commit (string-append "v" version))))
16665 (file-name (git-file-name name version))
16666 (sha256
16667 (base32 "0ph5mrzz3r7x4dmy93v6affl4jznvic97a30mrs3kvhwyr2v4mby"))))
16668 (build-system emacs-build-system)
16669 (arguments
16670 `(#:tests? #t
16671 #:test-command '("emacs" "--batch"
16672 "-l" "which-key-tests.el"
16673 "-f" "ert-run-tests-batch-and-exit")))
16674 (home-page "https://github.com/justbur/emacs-which-key")
16675 (synopsis "Display available key bindings in popup")
16676 (description
16677 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
16678 bindings following your currently entered incomplete command (a prefix) in a
16679 popup. For example, after enabling the minor mode if you enter C-x and wait
16680 for the default of 1 second, the minibuffer will expand with all of the
16681 available key bindings that follow C-x (or as many as space allows given your
16682 settings).")
16683 (license license:gpl3+)))
16684
16685 (define-public emacs-hercules
16686 (package
16687 (name "emacs-hercules")
16688 (version "0.3.1")
16689 (source
16690 (origin
16691 (method git-fetch)
16692 (uri (git-reference
16693 (url "https://gitlab.com/jjzmajic/hercules.el")
16694 (commit (string-append "v" version))))
16695 (file-name (git-file-name name version))
16696 (sha256
16697 (base32 "1rp37rhkj8jm07dwr74vc68dhrbvyvrxjdavpb0h073ps9vl9dsc"))))
16698 (build-system emacs-build-system)
16699 (propagated-inputs
16700 (list emacs-which-key))
16701 (home-page "https://gitlab.com/jjzmajic/hercules.el")
16702 (synopsis "Call a chain of related commands without repeated prefix keys")
16703 (description
16704 "This package provides sticky-key-like functionality to obviate the need
16705 for repeated prefix-key sequences, and can reuse existing keymaps. The list
16706 of commands is displayed in a handy popup.")
16707 (license license:gpl3+)))
16708
16709 (define-public emacs-ws-butler
16710 (package
16711 (name "emacs-ws-butler")
16712 (version "0.6")
16713 (source
16714 (origin
16715 (method git-fetch)
16716 (uri (git-reference
16717 (url "https://github.com/lewang/ws-butler")
16718 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
16719 (file-name (git-file-name name version))
16720 (sha256
16721 (base32 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
16722 (build-system emacs-build-system)
16723 (arguments
16724 `(#:tests? #t
16725 #:test-command '("ert-runner" "tests")))
16726 (native-inputs
16727 (list emacs-ert-runner))
16728 (home-page "https://github.com/lewang/ws-butler")
16729 (synopsis "Trim spaces from end of lines")
16730 (description
16731 "This Emacs package automatically and unobtrusively trims whitespace
16732 characters from end of lines.")
16733 (license license:gpl3+)))
16734
16735 (define-public emacs-opencl-mode
16736 ;; Upstream never makes any formal releases, there is only v1.0.
16737 ;; Use the latest commit instead.
16738 (let ((commit "15091eff92c33ee0d1ece40eb99299ef79fee92d")
16739 (revision "1"))
16740 (package
16741 (name "emacs-opencl-mode")
16742 (version (git-version "1.0" revision commit))
16743 (source (origin
16744 (method git-fetch)
16745 (uri (git-reference
16746 (url "https://github.com/salmanebah/opencl-mode")
16747 (commit commit)))
16748 (file-name (git-file-name name version))
16749 (sha256
16750 (base32 "1zn6rr48w0ai0sn51zzyp546va6flfgf9lm12vfrdb6kkiiiq403"))))
16751 (build-system emacs-build-system)
16752 (synopsis "Emacs major mode for editing OpenCL kernels")
16753 (description "This Emacs package provides the @code{opencl-mode} major
16754 mode for editing OpenCL kernels. It supports syntax highlighting and online
16755 access to the OpenCL documentation through the @code{opencl-lookup} function.")
16756 (home-page "https://github.com/salmanebah/opencl-mode")
16757 (license license:gpl3+))))
16758
16759 (define-public emacs-openwith
16760 ;; There is no release tag. Version is extracted from main file.
16761 (let ((version "20120531")
16762 (revision "0")
16763 (commit "5fe01dee520d24c839ad5ee18822667457d9f352"))
16764 (package
16765 (name "emacs-openwith")
16766 (version (git-version version revision commit))
16767 (source
16768 (origin
16769 (method git-fetch)
16770 (uri (git-reference
16771 (url "https://github.com/garberw/openwith")
16772 (commit commit)))
16773 (file-name (git-file-name name version))
16774 (sha256
16775 (base32 "1scbawhlzmj5nhix779rlqf462g37q84vpq205qhg4qyscvfx6bi"))))
16776 (build-system emacs-build-system)
16777 (home-page "https://github.com/garberw/openwith")
16778 (synopsis "Open external applications for files with Emacs")
16779 (description
16780 "This package enables you to associate file name patterns with external
16781 applications that are automatically invoked when you use commands like
16782 @code{find-file}. For example, you can have it open @code{png} files with
16783 @code{feh} and @code{mp4} files with @code{mpv}. This is especially useful
16784 when browsing files with Dired.")
16785 (license license:gpl2+))))
16786
16787 (define-public emacs-org-edit-latex
16788 (package
16789 (name "emacs-org-edit-latex")
16790 (version "0.8.3")
16791 (source
16792 (origin
16793 (method git-fetch)
16794 (uri (git-reference
16795 (url "https://github.com/et2010/org-edit-latex")
16796 (commit (string-append "v" version))))
16797 (file-name (git-file-name name version))
16798 (sha256
16799 (base32 "1w0lyz71dq8x28ira4hig1b70bqn1dr53w3k5dgch9szcf6xa86y"))))
16800 (build-system emacs-build-system)
16801 (arguments
16802 `(#:phases
16803 (modify-phases %standard-phases
16804 (add-before 'build 'set-home
16805 (lambda _ (setenv "HOME" "/tmp"))))))
16806 (propagated-inputs
16807 (list emacs-auctex emacs-org))
16808 (home-page "https://github.com/et2010/org-edit-latex")
16809 (synopsis "Edit a LaTeX fragment just like editing a source block")
16810 (description
16811 "Org Edit LaTeX is an extension for Org mode. It lets you edit a LaTeX
16812 fragment in a dedicated buffer just like editing a source block.")
16813 (license license:gpl3+)))
16814
16815 (define-public emacs-emamux
16816 (package
16817 (name "emacs-emamux")
16818 (version "0.14")
16819 (source
16820 (origin
16821 (method git-fetch)
16822 (uri (git-reference
16823 (url "https://github.com/syohex/emacs-emamux")
16824 (commit version)))
16825 (file-name (git-file-name name version))
16826 (sha256
16827 (base32 "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b"))))
16828 (build-system emacs-build-system)
16829 (home-page "https://github.com/syohex/emacs-emamux")
16830 (synopsis "Manipulate Tmux from Emacs")
16831 (description
16832 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
16833 multiplexer.")
16834 (license license:gpl3+)))
16835
16836 (define-public emacs-plz
16837 (package
16838 (name "emacs-plz")
16839 (version "0.2")
16840 (source
16841 (origin
16842 (method git-fetch)
16843 (uri (git-reference
16844 (url "https://github.com/alphapapa/plz.el")
16845 (commit version)))
16846 (file-name (git-file-name name version))
16847 (sha256
16848 (base32 "170pbqiywk1zyhd0ig4f25qnjf7r1gwy0c6h343bcnl6qxvkvlv2"))))
16849 (build-system emacs-build-system)
16850 (inputs (list curl))
16851 (home-page "https://github.com/alphapapa/plz.el")
16852 (synopsis "HTTP library for Emacs")
16853 (description
16854 "This package provides HTTP library for Emacs. It uses Curl as a backend,
16855 which avoids some of the issues with using Emacs’s built-in Url library.")
16856 (license license:gpl3+)))
16857
16858 (define-public emacs-ement
16859 (package
16860 (name "emacs-ement")
16861 (version "0.2")
16862 (source
16863 (origin
16864 (method git-fetch)
16865 (uri (git-reference
16866 (url "https://github.com/alphapapa/ement.el")
16867 (commit (string-append "v" version))))
16868 (file-name (git-file-name name version))
16869 (sha256
16870 (base32 "1f1a00lywzzaaj4sqziz43bbxjfc0gdkqgbfqmai1drn8ihgnhxn"))))
16871 (build-system emacs-build-system)
16872 (arguments
16873 `(#:emacs ,emacs)) ;need libxml support
16874 (propagated-inputs
16875 (list emacs-plz
16876 emacs-svg-lib
16877 emacs-taxy
16878 emacs-taxy-magit-section
16879 emacs-ts))
16880 (home-page "https://github.com/alphapapa/ement.el")
16881 (synopsis "Matrix client for Emacs")
16882 (description "Ement.el is a Matrix client for Emacs.")
16883 (license license:gpl3+)))
16884
16885 (define-public emacs-rpm-spec-mode
16886 (let ((commit "c1c38050c48ea330c7cea632b8785d66daeefb2b")
16887 (revision "0"))
16888 (package
16889 (name "emacs-rpm-spec-mode")
16890 (version (git-version "0.16" revision commit))
16891 (source (origin
16892 (method git-fetch)
16893 (uri (git-reference
16894 (url "https://github.com/stigbjorlykke/rpm-spec-mode")
16895 (commit commit)))
16896 (file-name (git-file-name name version))
16897 (sha256
16898 (base32
16899 "0427kcvf2ljhzwxskn3jzk0ncrl3f9zcz2sm83d9pmhh5jax2gch"))))
16900 (build-system emacs-build-system)
16901 (arguments
16902 (list
16903 #:phases
16904 #~(modify-phases %standard-phases
16905 (add-after 'unpack 'adjust-for-emacs-28
16906 (lambda _
16907 ;; Since Emacs 28, define-obsolete-variable-alias require a
16908 ;; 3rd argument to specify when the deprecation was
16909 ;; introduced.
16910 ;; The rpm-spec-mode.el file is encoded in ISO-8859-1 (iso-latin-1).
16911 (with-fluids ((%default-port-encoding "ISO-8859-1"))
16912 (substitute* "rpm-spec-mode.el"
16913 (("'rpm-spec-completion-ignore-case" all)
16914 (string-append all " \"0.12\""))
16915 (("'rpm-spec-nobuild" all)
16916 (string-append all " \"0.12\""))
16917 (("'rpm-spec-initialize-sections" all)
16918 (string-append all " \"0.12\""))
16919 (("'rpm-spec-insert-changelog-version" all)
16920 (string-append all " \"0.12\"")))))))))
16921 (home-page "https://github.com/stigbjorlykke/rpm-spec-mode")
16922 (synopsis "Emacs major mode for editing RPM spec files")
16923 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
16924 editing RPM spec files.")
16925 (license license:gpl2+))))
16926
16927 (define-public emacs-lcr
16928 (package
16929 (name "emacs-lcr")
16930 (version "1.1")
16931 (source
16932 (origin
16933 (method git-fetch)
16934 (uri (git-reference
16935 (url "https://github.com/jyp/lcr")
16936 (commit version)))
16937 (file-name (git-file-name name version))
16938 (sha256
16939 (base32 "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8"))))
16940 (build-system emacs-build-system)
16941 (propagated-inputs
16942 (list emacs-dash))
16943 (home-page "https://github.com/jyp/lcr")
16944 (synopsis "Lightweight coroutines in Emacs Lisp")
16945 (description "This package provides macros that can translate code into
16946 equivalent continuation-passing code, as well as miscellaneous utility
16947 functions written in continuation-passing style.")
16948 (license license:gpl3+)))
16949
16950 (define-public emacs-attrap
16951 (package
16952 (name "emacs-attrap")
16953 (version "1.1")
16954 (source
16955 (origin
16956 (method git-fetch)
16957 (uri (git-reference
16958 (url "https://github.com/jyp/attrap")
16959 (commit version)))
16960 (sha256
16961 (base32 "0wqc7bqx9rvk8r7fd3x84h8p01v97s6w2jf29nnjb59xakwp22i7"))
16962 (file-name (git-file-name name version))))
16963 (build-system emacs-build-system)
16964 (propagated-inputs
16965 (list emacs-dash emacs-f emacs-flycheck emacs-s))
16966 (home-page "https://github.com/jyp/attrap")
16967 (synopsis "Fix coding error at point")
16968 (description "This package provides a command to fix the Flycheck error
16969 at point.")
16970 (license license:gpl3+)))
16971
16972 (define-public emacs-git-messenger
16973 (package
16974 (name "emacs-git-messenger")
16975 (version "0.18")
16976 (source
16977 (origin
16978 (method git-fetch)
16979 (uri (git-reference
16980 (url "https://github.com/syohex/emacs-git-messenger")
16981 (commit version)))
16982 (file-name (git-file-name name version))
16983 (sha256
16984 (base32 "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"))))
16985 (build-system emacs-build-system)
16986 (propagated-inputs
16987 (list emacs-popup))
16988 (arguments
16989 `(#:tests? #t
16990 #:test-command '("emacs" "--batch" "-l" "test/test.el"
16991 "-f" "ert-run-tests-batch-and-exit")))
16992 (home-page "https://github.com/syohex/emacs-git-messenger")
16993 (synopsis "Popup commit message at current line")
16994 (description "@code{emacs-git-messenger} provides
16995 @code{git-messenger:popup-message}, a function that when called, will popup
16996 the last git commit message for the current line. This uses git-blame
16997 internally.")
16998 (license license:gpl3+)))
16999
17000 (define-public emacs-gitpatch
17001 (package
17002 (name "emacs-gitpatch")
17003 (version "0.5.1")
17004 (source
17005 (origin
17006 (method git-fetch)
17007 (uri (git-reference
17008 (url "https://github.com/tumashu/gitpatch")
17009 (commit (string-append "v" version))))
17010 (file-name (git-file-name name version))
17011 (sha256
17012 (base32 "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig"))))
17013 (build-system emacs-build-system)
17014 (home-page "https://github.com/tumashu/gitpatch")
17015 (synopsis "Mail git patch from Emacs")
17016 (description "@code{emacs-gitpatch} lets users easily send git patches,
17017 created by @code{git format-patch}, from @code{magit}, @code{dired} and
17018 @code{ibuffer} buffers.")
17019 (license license:gpl3+)))
17020
17021 (define-public emacs-git-email
17022 ;; Use latest commit since latest tagged release is missing important
17023 ;; changes.
17024 (let ((commit "b5ebade3a48dc0ce0c85699f25800808233c73be")
17025 (revision "0"))
17026 (package
17027 (name "emacs-git-email")
17028 (version (git-version "0.2.0" revision commit))
17029 (source
17030 (origin
17031 (method git-fetch)
17032 (uri (git-reference
17033 (url "https://git.sr.ht/~yoctocell/git-email")
17034 (commit commit)))
17035 (patches
17036 (search-patches "emacs-git-email-missing-parens.patch"))
17037 (file-name (git-file-name name version))
17038 (sha256
17039 (base32 "1lk1yds7idgawnair8l3s72rgjmh80qmy4kl5wrnqvpmjrmdgvnx"))))
17040 (build-system emacs-build-system)
17041 (arguments
17042 `(#:phases
17043 (modify-phases %standard-phases
17044 ;; piem is not yet packaged in Guix.
17045 (add-after 'unpack 'remove-piem
17046 (lambda _
17047 (delete-file "git-email-piem.el")))
17048 (add-before 'install 'makeinfo
17049 (lambda _
17050 (invoke "makeinfo" "doc/git-email.texi"))))))
17051 (native-inputs
17052 (list texinfo))
17053 (propagated-inputs
17054 (list mu emacs-magit emacs-notmuch))
17055 (license license:gpl3+)
17056 (home-page "https://sr.ht/~yoctocell/git-email")
17057 (synopsis "Format and send Git patches in Emacs")
17058 (description "This package provides utilities for formatting and
17059 sending Git patches via Email, without leaving Emacs."))))
17060
17061 (define-public emacs-erc-hl-nicks
17062 (package
17063 (name "emacs-erc-hl-nicks")
17064 (version "1.3.4")
17065 (source
17066 (origin
17067 (method git-fetch)
17068 (uri (git-reference
17069 (url "https://github.com/leathekd/erc-hl-nicks")
17070 (commit version)))
17071 (file-name (git-file-name name version))
17072 (sha256
17073 (base32 "0k57scxa8rm859fqsm8srhps7rlq06jzazhjbwnadzrh8i5fyvra"))))
17074 (build-system emacs-build-system)
17075 (synopsis "Nickname highlighting for Emacs ERC")
17076 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
17077 client for Emacs. The main features are:
17078 @itemize
17079 @item Auto-colorizes nicknames without having to specify colors
17080 @item Ignores certain characters that IRC clients add to nicknames to avoid
17081 duplicates (nickname, nickname’, nickname\", etc.)
17082 @item Attempts to produce colors with a sufficient amount of contrast between
17083 the nick color and the background color
17084 @end itemize\n")
17085 (home-page "https://github.com/leathekd/erc-hl-nicks")
17086 (license license:gpl3+)))
17087
17088 (define-public emacs-engine-mode
17089 (package
17090 (name "emacs-engine-mode")
17091 (version "2.1.1")
17092 (source
17093 (origin
17094 (method git-fetch)
17095 (uri (git-reference
17096 (url "https://github.com/hrs/engine-mode")
17097 (commit (string-append "v" version))))
17098 (file-name (git-file-name name version))
17099 (sha256
17100 (base32 "1xka8i4cdvp5r2v2mkli1zz17x1sdsnmszbhqav2rf94v656d91i"))))
17101 (build-system emacs-build-system)
17102 (synopsis "Minor mode for defining and querying search engines")
17103 (description "@code{engine-mode} is a global minor mode for Emacs. It
17104 enables you to easily define search engines, bind them to keybindings, and
17105 query them from the comfort of your editor.")
17106 (home-page "https://github.com/hrs/engine-mode")
17107 (license license:gpl3+)))
17108
17109 (define-public emacs-engrave-faces
17110 (package
17111 (name "emacs-engrave-faces")
17112 (version "0.3.1")
17113 (source (origin
17114 (method url-fetch)
17115 (uri (string-append "https://elpa.gnu.org/packages/engrave-faces-"
17116 version ".tar"))
17117 (sha256
17118 (base32
17119 "1q4sjl2rvcfwcirm32nmi53258ln71yhh1dgszlxwknm38a14v3i"))))
17120 (build-system emacs-build-system)
17121 (home-page "https://github.com/tecosaur/engrave-faces")
17122 (synopsis "Convert font-lock faces to other formats")
17123 (description "There are some great packages for exporting buffers to
17124 particular formats, but each one seems to reinvent the core mechanism of
17125 processing the font-lock in a buffer such that it can be exported to
17126 a particular format.
17127
17128 This package aims to produce a versatile generic core which can process
17129 a fontified buffer and pass the data to any number of backends which can deal
17130 with specific output formats.")
17131 (license license:gpl3+)))
17132
17133 (define-public emacs-inheritenv
17134 (package
17135 (name "emacs-inheritenv")
17136 (version "0.1")
17137 (source
17138 (origin
17139 (method git-fetch)
17140 (uri (git-reference
17141 (url "https://github.com/purcell/inheritenv")
17142 (commit version)))
17143 (file-name (git-file-name name version))
17144 (sha256
17145 (base32 "0ygzf70vfb7qwpsllcq5i3brprsnx3sxy2zng02mzwrr5jkx4ypc"))))
17146 (build-system emacs-build-system)
17147 (home-page "https://github.com/purcell/inheritenv/releases")
17148 (synopsis "Emacs temp buffers inherit buffer-local environment variables")
17149 (description
17150 "Inheritenv provides tools to execute processes inheriting the calling
17151 buffer's environment.")
17152 (license license:gpl3+)))
17153
17154 (define-public emacs-enlive
17155 (package
17156 (name "emacs-enlive")
17157 (version "0.0.1")
17158 (source
17159 (origin
17160 (method git-fetch)
17161 (uri (git-reference
17162 (url "https://github.com/zweifisch/enlive")
17163 (commit (string-append "v" version))))
17164 (file-name (git-file-name name version))
17165 (sha256
17166 (base32
17167 "08j6b79vy8ry4ad1abk3hvxjbb4ylrhkvrbrnq1gcikl4h1p2v63"))))
17168 (build-system emacs-build-system)
17169 (home-page "http://github.com/zweifisch/enlive")
17170 (synopsis "Query HTML document with CSS selectors in Emacs")
17171 (description
17172 "Enlive is an Emacs library that allows the user to query HTML documents
17173 from within Elisp using a DSL similar to CSS selectors.")
17174 (license license:gpl3+)))
17175
17176 (define-public emacs-envrc
17177 (package
17178 (name "emacs-envrc")
17179 (version "0.4")
17180 (source
17181 (origin
17182 (method git-fetch)
17183 (uri (git-reference
17184 (url "https://github.com/purcell/envrc")
17185 (commit version)))
17186 (file-name (git-file-name name version))
17187 (sha256
17188 (base32
17189 "0nqqx4qlw75lmbn0v927sg3xyjkk86ihw1q3rdbbn59va41grds4"))))
17190 (build-system emacs-build-system)
17191 (propagated-inputs
17192 (list emacs-inheritenv))
17193 (home-page "https://github.com/purcell/envrc")
17194 (synopsis "Support for Direnv which operates buffer-locally")
17195 (description
17196 "This is library which uses Direnv to set environment variables on
17197 a per-buffer basis. This means that when you work across multiple projects
17198 which have @file{.envrc} files, all processes launched from the buffers ``in''
17199 those projects will be executed with the environment variables specified in
17200 those files. This allows different versions of linters and other tools to be
17201 used in each project if desired.")
17202 (license license:gpl3+)))
17203
17204 (define-public emacs-prop-menu
17205 (package
17206 (name "emacs-prop-menu")
17207 (version "0.1.2")
17208 (source
17209 (origin
17210 (method git-fetch)
17211 (uri (git-reference
17212 (url "https://github.com/david-christiansen/prop-menu-el")
17213 (commit version)))
17214 (file-name (git-file-name name version))
17215 (sha256
17216 (base32
17217 "18ap2liz5r5a8ja2zz9182fnfm47jnsbyblpq859zks356k37iwc"))))
17218 (build-system emacs-build-system)
17219 (home-page
17220 "https://github.com/david-christiansen/prop-menu-el")
17221 (synopsis
17222 "Create and display a context menu based on text and overlay properties")
17223 (description
17224 "This is a library for computing context menus based on text
17225 properties and overlays. The intended use is to have tools that
17226 annotate source code and others that use these annotations, without
17227 requiring a direct coupling between them, but maintaining
17228 discoverability.
17229
17230 Major modes that wish to use this library should first define an
17231 appropriate value for @code{prop-menu-item-functions}. Then, they should
17232 bind @code{prop-menu-by-completing-read} to an appropriate
17233 key. Optionally, a mouse pop-up can be added by binding
17234 @code{prop-menu-show-menu} to a mouse event.")
17235 (license license:gpl3+)))
17236
17237 (define-public emacs-idris-mode
17238 (let ((commit "9bc7697406f719258d93835df3c1761efbfecaa7")
17239 (revision "1"))
17240 (package
17241 (name "emacs-idris-mode")
17242 (version (git-version "1.0" revision commit))
17243 (source
17244 (origin
17245 (method git-fetch)
17246 (uri (git-reference
17247 (url "https://github.com/idris-hackers/idris-mode")
17248 (commit commit)))
17249 (file-name (git-file-name name commit))
17250 (sha256
17251 (base32
17252 "1d1f7kx0fw632js7qd1sra5wbpwyamcqs5wpzhyynmr5ybb0vyl7"))))
17253 (build-system emacs-build-system)
17254 (propagated-inputs
17255 (list emacs-prop-menu))
17256 (home-page
17257 "https://github.com/idris-hackers/idris-mode")
17258 (synopsis "Major mode for editing Idris code")
17259 (description
17260 "This is an Emacs mode for editing Idris code. It is compatible with
17261 the latest versions of Idris 1.")
17262 (license license:gpl3+))))
17263
17264 (define-public emacs-browse-at-remote
17265 (package
17266 (name "emacs-browse-at-remote")
17267 (version "0.14.0")
17268 (source
17269 (origin
17270 (method git-fetch)
17271 (uri (git-reference
17272 (url "https://github.com/rmuslimov/browse-at-remote")
17273 (commit version)))
17274 (file-name (git-file-name name version))
17275 (sha256
17276 (base32 "0bx4ns0jb0sqrjk1nsspvl3mhz3n12925azf7brlwb1vcgnji09v"))))
17277 (build-system emacs-build-system)
17278 (arguments
17279 `(#:tests? #t
17280 #:test-command '("ert-runner")))
17281 (native-inputs
17282 (list emacs-ert-runner))
17283 (propagated-inputs
17284 (list emacs-f emacs-s))
17285 (home-page "https://github.com/rmuslimov/browse-at-remote")
17286 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
17287 (description
17288 "This Emacs package allows you to open a target page on
17289 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
17290 It supports dired buffers and opens them in tree mode at destination.")
17291 (license license:gpl3+)))
17292
17293 (define-public emacs-tiny
17294 (let ((commit "fd8a6b0b0c564d8242259e20e557ee6041f40908")
17295 (revision "1"))
17296 (package
17297 (name "emacs-tiny")
17298 (version (git-version "0.2.1" revision commit))
17299 (source
17300 (origin
17301 (method git-fetch)
17302 (uri (git-reference
17303 (url "https://github.com/abo-abo/tiny")
17304 (commit commit)))
17305 (file-name (git-file-name name version))
17306 (sha256
17307 (base32
17308 "1498j392ap2mk4zmsm2id16pfgvj78r428da9vw7hdrzzibai2cx"))))
17309 (build-system emacs-build-system)
17310 (arguments
17311 `(#:tests? #t
17312 #:test-command '("make" "test")))
17313 (home-page "https://github.com/abo-abo/tiny")
17314 (synopsis "Quickly generate linear ranges in Emacs")
17315 (description
17316 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
17317 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
17318 proficiency is an advantage, since you can transform your numeric range with
17319 an elisp expression.")
17320 (license license:gpl3+))))
17321
17322 (define-public emacs-taxy
17323 (package
17324 (name "emacs-taxy")
17325 (version "0.10.1")
17326 (source
17327 (origin
17328 (method url-fetch)
17329 (uri (string-append
17330 "https://elpa.gnu.org/packages/taxy-" version ".tar"))
17331 (sha256
17332 (base32
17333 "05czw8fkifb25rwl99dmncr1g0rjfx1bqijl7igqs9j6h9ia2xvg"))))
17334 (build-system emacs-build-system)
17335 (propagated-inputs
17336 (list emacs-magit))
17337 (home-page "https://github.com/alphapapa/taxy.el")
17338 (synopsis "Programmable taxonomical grouping for arbitrary objects")
17339 (description
17340 "Taxy provides a programmable way to classify arbitrary objects into
17341 a hierarchical taxonomy. Allows you to automatically put things in nested
17342 groups.")
17343 (license license:gpl3+)))
17344
17345 (define-public emacs-taxy-magit-section
17346 (package
17347 (name "emacs-taxy-magit-section")
17348 (version "0.10")
17349 (source (origin
17350 (method url-fetch)
17351 (uri (string-append
17352 "https://elpa.gnu.org/packages/taxy-magit-section-" version
17353 ".tar"))
17354 (sha256
17355 (base32
17356 "1g58nvpb04ldhn5qnjw2q5idrv6vhlfa0qmb46cvis6bkz46cxkw"))))
17357 (build-system emacs-build-system)
17358 (propagated-inputs (list emacs-magit emacs-taxy))
17359 (home-page "https://github.com/alphapapa/taxy.el")
17360 (synopsis "View Taxy structs in a Magit Section buffer")
17361 (description
17362 "This library provides a way to view @code{taxy} structs in a column-based,
17363 @code{magit-section} buffer. Columns are defined using simple top-level
17364 forms, and new columns may be easily defined by users in their
17365 configurations.")
17366 (license license:gpl3+)))
17367
17368 (define-public emacs-emojify
17369 (package
17370 (name "emacs-emojify")
17371 (version "1.2")
17372 (source
17373 (origin
17374 (method git-fetch)
17375 (uri (git-reference
17376 (url "https://github.com/iqbalansari/emacs-emojify")
17377 (commit (string-append "v" version))))
17378 (file-name (git-file-name name version))
17379 (sha256
17380 (base32
17381 "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm"))))
17382 (build-system emacs-build-system)
17383 (arguments
17384 `(#:include (cons "^data/" %default-include)))
17385 (propagated-inputs
17386 (list emacs-ht))
17387 (home-page "https://github.com/iqbalansari/emacs-emojify")
17388 (synopsis "Display emojis in Emacs")
17389 (description "This package displays emojis in Emacs similar to how Github,
17390 Slack, and other websites do. It can display plain ASCII like @code{:)} as
17391 well as Github-style emojis like @code{:smile:}. It provides a minor mode
17392 @code{emojify-mode} to enable the display of emojis in a buffer.")
17393 (license license:gpl3+)))
17394
17395 (define-public emacs-make-it-so
17396 (let ((commit "b73dfb640588123c9eece230ad72b37604f5c126")
17397 (revision "2"))
17398 (package
17399 (name "emacs-make-it-so")
17400 (version (git-version "0.1.0" revision commit))
17401 (source
17402 (origin
17403 (method git-fetch)
17404 (uri (git-reference
17405 (url "https://github.com/abo-abo/make-it-so")
17406 (commit commit)))
17407 (file-name (git-file-name name version))
17408 (sha256
17409 (base32
17410 "0p6xhyinzzkrwzbpxqfm8hlii0ikvmmylya240bwsa77w0g1k6xq"))))
17411 (build-system emacs-build-system)
17412 (arguments
17413 `(#:include (cons "^recipes/" %default-include)))
17414 (propagated-inputs
17415 (list emacs-ivy))
17416 (home-page "https://github.com/abo-abo/make-it-so")
17417 (synopsis "Transform files with Makefile recipes")
17418 (description "This package provides an interface for selecting from
17419 different conversion recipes, often including tools like @code{ffmpeg} or
17420 @code{convert}. The conversion command need only be written once, and
17421 subsequent invocations can be readily customized. Several recipes are
17422 included by default, and more can be readily added.")
17423 (license license:gpl3+))))
17424
17425 (define-public emacs-unidecode
17426 (let ((commit "5502ada9287b4012eabb879f12f5b0a9df52c5b7")
17427 (revision "1"))
17428 (package
17429 (name "emacs-unidecode")
17430 (version (git-version "0.2" revision commit))
17431 (source
17432 (origin
17433 (method git-fetch)
17434 (uri (git-reference
17435 (url "https://github.com/sindikat/unidecode")
17436 (commit commit)))
17437 (file-name (git-file-name name version))
17438 (sha256
17439 (base32
17440 "03x3nakbhmakwm977mwrf8jifvjnfwzpjv6wrwpizbqjnkgfchmn"))))
17441 (build-system emacs-build-system)
17442 (arguments
17443 `(#:include (cons* "^tools/" "^data/" %default-include)
17444 #:tests? #t
17445 #:test-command '("emacs" "--batch"
17446 "-l" "unidecode-test.el"
17447 "-f" "ert-run-tests-batch-and-exit")
17448 #:phases
17449 (modify-phases %standard-phases
17450 (add-before 'check 'make-tests-writable
17451 (lambda _
17452 (make-file-writable "unidecode-test.el")
17453 #t))
17454 (add-before 'check 'add-require
17455 (lambda _
17456 (emacs-batch-edit-file "unidecode-test.el"
17457 `(progn (progn (goto-char (point-min))
17458 (re-search-forward
17459 "ert-deftest")
17460 (forward-line -1)
17461 (insert "(require 'unidecode)"))
17462 (basic-save-buffer)))
17463 #t)))))
17464 (home-page "https://github.com/sindikat/unidecode")
17465 (synopsis "Transliterate Unicode text to ASCII")
17466 (description "This package provides functions for converting Unicode to ASCII.")
17467 (license license:gpl2+))))
17468
17469 (define-public emacs-pubmed
17470 (package
17471 (name "emacs-pubmed")
17472 (version "0.6.1")
17473 (source
17474 (origin
17475 (method git-fetch)
17476 (uri (git-reference
17477 (url "https://gitlab.com/fvdbeek/emacs-pubmed")
17478 (commit (string-append "v" version))))
17479 (file-name (git-file-name name version))
17480 (sha256
17481 (base32
17482 "1f884r3fs9nybf5y9dwp8f9m8azssxjy55z7bd0nl9pjll9rhsz2"))))
17483 (build-system emacs-build-system)
17484 (propagated-inputs
17485 (list emacs-deferred emacs-esxml emacs-s emacs-unidecode))
17486 (home-page "https://gitlab.com/fvdbeek/emacs-pubmed")
17487 (synopsis "Interface to PubMed")
17488 (description "This package provides an Emacs interface to the PubMed
17489 database of references on life sciences.")
17490 (license license:gpl3+)))
17491
17492 (define-public emacs-websocket
17493 (package
17494 (name "emacs-websocket")
17495 (version "1.13.1")
17496 (source
17497 (origin
17498 (method url-fetch)
17499 (uri (string-append "https://elpa.gnu.org/packages/"
17500 "websocket-" version ".tar"))
17501 (sha256
17502 (base32 "1x664zswas0fpml7zaj59zy97avrm49zb80zd69rlkqzz1m45psc"))))
17503 (build-system emacs-build-system)
17504 (home-page "https://elpa.gnu.org/packages/websocket.html")
17505 (synopsis "Emacs WebSocket client and server")
17506 (description
17507 "This is an Elisp library for WebSocket clients to talk to WebSocket
17508 servers, and for WebSocket servers to accept connections from WebSocket
17509 clients. This library is designed to be used by other library writers, to
17510 write applications that use WebSockets, and is not useful by itself.")
17511 (license license:gpl3+)))
17512
17513 (define-public emacs-oauth2
17514 (package
17515 (name "emacs-oauth2")
17516 (version "0.16")
17517 (source
17518 (origin
17519 (method url-fetch)
17520 (uri (string-append "https://elpa.gnu.org/packages/"
17521 "oauth2-" version ".tar"))
17522 (sha256
17523 (base32 "1rzly2nwjywrfgcmp8zidbmjl2ahyd8l8507lb1mxm4xqryvf316"))))
17524 (build-system emacs-build-system)
17525 (home-page "https://elpa.gnu.org/packages/oauth2.html")
17526 (synopsis "OAuth 2.0 authorization protocol implementation")
17527 (description
17528 "This package provides an Elisp implementation of the OAuth 2.0 draft.
17529 The main entry point is @code{oauth2-auth-and-store} which will return a token
17530 structure. This token structure can be then used with
17531 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
17532 retrieve any data that need OAuth authentication to be accessed. If the token
17533 needs to be refreshed, the code handles it automatically and stores the new
17534 value of the access token.")
17535 (license license:gpl3+)))
17536
17537 (define-public emacs-auth-source-xoauth2
17538 (package
17539 (name "emacs-auth-source-xoauth2")
17540 (version "1.0")
17541 (source
17542 (origin
17543 (method git-fetch)
17544 (uri (git-reference
17545 (url "https://github.com/ccrusius/auth-source-xoauth2")
17546 (commit (string-append "v" version))))
17547 (file-name (git-file-name name version))
17548 (sha256
17549 (base32 "0nl859csl8xcd6ybpjj15ph8l8fxwkwf45kbylss68alkyf1rl3v"))))
17550 (build-system emacs-build-system)
17551 (home-page "https://github.com/ccrusius/auth-source-xoauth2")
17552 (synopsis "XOAuth2 authentication capabilities for Emacs auth-source")
17553 (description
17554 "This package adds XOAuth2 authentication capabilities to Emacs
17555 auth-source. This integration requires some preliminary work on the users’
17556 part, which includes creating tokens.")
17557 (license license:asl2.0)))
17558
17559 (define-public emacs-circe
17560 (package
17561 (name "emacs-circe")
17562 (version "2.12")
17563 (source
17564 (origin
17565 (method git-fetch)
17566 (uri (git-reference
17567 (url "https://github.com/jorgenschaefer/circe")
17568 (commit (string-append "v" version))))
17569 (file-name (git-file-name name version))
17570 (sha256
17571 (base32 "0lrxd4hanaxj85nafsc0wss677slmyaks3qb7a95mj7vic3ib937"))))
17572 (build-system emacs-build-system)
17573 (arguments
17574 `(#:tests? #t
17575 #:test-command '("buttercup" "-L" ".")
17576 #:emacs ,emacs ;requires gnutls
17577 #:phases
17578 (modify-phases %standard-phases
17579 ;; The HOME environment variable should be set to an existing
17580 ;; directory for the tests to succeed.
17581 (add-before 'check 'set-home
17582 (lambda _
17583 (setenv "HOME" "/tmp")))
17584 (add-before 'check 'remove-failing-tests
17585 (lambda _
17586 (make-file-writable "tests/test-circe.el")
17587 (emacs-batch-edit-file "tests/test-circe.el"
17588 `(progn
17589 (dolist (test
17590 '("should have circe-server-buffer set in the mode hook"
17591 "should complete nicks with colon at the beginning of the input"
17592 "should complete nicks without colon later in the input"))
17593 (goto-char (point-min))
17594 (search-forward (format "(it %S" test))
17595 (beginning-of-line)
17596 (kill-sexp))
17597 (basic-save-buffer))))))))
17598 (native-inputs
17599 (list emacs-buttercup))
17600 ;; In order to securely connect to an IRC server using TLS, Circe requires
17601 ;; the GnuTLS binary.
17602 (propagated-inputs
17603 (list gnutls))
17604 (home-page "https://github.com/jorgenschaefer/circe")
17605 (synopsis "Client for IRC in Emacs")
17606 (description "Circe is a Client for IRC in Emacs. It integrates well with
17607 the rest of the editor, using standard Emacs key bindings and indicating
17608 activity in channels in the status bar so it stays out of your way unless you
17609 want to use it.")
17610 (license license:gpl3+)))
17611
17612 (define-public emacs-tracking
17613 (package
17614 (inherit emacs-circe)
17615 (name "emacs-tracking")
17616 (arguments
17617 ;; "tracking.el" is a library extracted from Circe package. It requires
17618 ;; "shorten.el".
17619 `(#:include '("^shorten.el$" "^tracking.el$")
17620 ,@(package-arguments emacs-circe)))
17621 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
17622 (synopsis "Buffer tracking library")
17623 (description "@code{tracking.el} provides a way for different modes to
17624 notify the user that a buffer needs attention. The user then can cycle
17625 through them using @key{C-c C-SPC}.")
17626 (license license:gpl3+)))
17627
17628 (define-public emacs-slack
17629 (let ((commit "1f6a40faec0d8d9c9de51c444508d05a3e995ccd")
17630 (revision "9"))
17631 (package
17632 (name "emacs-slack")
17633 (version (git-version "0.0.2" revision commit))
17634 (source (origin
17635 (method git-fetch)
17636 (uri (git-reference
17637 (url "https://github.com/yuya373/emacs-slack")
17638 (commit commit)))
17639 (file-name (git-file-name name commit))
17640 (sha256
17641 (base32
17642 "19lan9nd8qfw2ws7mx814vrin04c892yn5c8g3nad7lpnzszgr1r"))))
17643 (build-system emacs-build-system)
17644 (arguments
17645 `(#:phases
17646 (modify-phases %standard-phases
17647 ;; HOME needs to exist for source compilation.
17648 (add-before 'build 'set-HOME
17649 (lambda _ (setenv "HOME" "/tmp") #t)))))
17650 (propagated-inputs
17651 (list emacs-alert
17652 emacs-emojify
17653 emacs-helm
17654 emacs-request
17655 emacs-websocket
17656 emacs-oauth2
17657 emacs-circe))
17658 (home-page "https://github.com/yuya373/emacs-slack")
17659 (synopsis "Slack client for Emacs")
17660 (description "This package provides an Emacs client for the Slack
17661 messaging service.")
17662 (license license:gpl3+))))
17663
17664 (define-public emacs-helm-slack
17665 (let ((commit "465f6220f3f5bee4d95492991fca1290c89534eb")
17666 (revision "1"))
17667 (package
17668 (name "emacs-helm-slack")
17669 (version (git-version "0" revision commit))
17670 (source (origin
17671 (method git-fetch)
17672 (uri (git-reference
17673 (url "https://github.com/yuya373/helm-slack")
17674 (commit commit)))
17675 (file-name (git-file-name name commit))
17676 (sha256
17677 (base32
17678 "0p1s1kl8v68qjprqkf034cz911qzbqxbscqgpn0c3mbm3yfx81f7"))))
17679 (build-system emacs-build-system)
17680 (arguments
17681 `(#:phases
17682 (modify-phases %standard-phases
17683 ;; HOME needs to exist for source compilation.
17684 (add-before 'build 'set-HOME
17685 (lambda _ (setenv "HOME" "/tmp") #t)))))
17686 (propagated-inputs (list emacs-slack))
17687 (home-page "https://github.com/yuya373/helm-slack")
17688 (synopsis "Helm extension for emacs-slack")
17689 (description "This package provides an helm extension for emacs-slack
17690 Slack client.")
17691 (license license:gpl3+))))
17692
17693 (define-public emacs-bash-completion
17694 ;; Need to use a newer commit than the latest version in order to support
17695 ;; completion interfaces that alters the candidate list provided by the
17696 ;; package
17697 (let ((commit "c5eaeed156ab906190c662d491269230967104b1")
17698 (revision "0"))
17699 (package
17700 (name "emacs-bash-completion")
17701 (version (git-version "3.1.0" revision commit))
17702 (source
17703 (origin
17704 (method git-fetch)
17705 (uri (git-reference
17706 (url "https://github.com/szermatt/emacs-bash-completion")
17707 (commit commit)))
17708 (file-name (git-file-name name version))
17709 (sha256
17710 (base32 "0r221iirqsbz13s76r68i496izbirrvcw8ql3wsh205zmxa3jqg1"))))
17711 (inputs (list bash))
17712 (build-system emacs-build-system)
17713 (arguments
17714 (list
17715 #:phases
17716 #~(modify-phases %standard-phases
17717 (add-after 'unpack 'make-git-checkout-writable
17718 (λ _
17719 (for-each make-file-writable (find-files "."))))
17720 (add-before 'install 'configure
17721 (lambda* (#:key inputs #:allow-other-keys)
17722 (emacs-substitute-variables "bash-completion.el"
17723 ("bash-completion-prog"
17724 (search-input-file inputs "/bin/bash"))))))))
17725 (home-page "https://github.com/szermatt/emacs-bash-completion")
17726 (synopsis "Bash completion for the shell buffer")
17727 (description
17728 "@code{bash-completion} defines dynamic completion hooks for shell-mode
17729 and shell-command prompts that are based on Bash completion.")
17730 (license license:gpl2+))))
17731
17732 (define-public emacs-easy-kill
17733 (package
17734 (name "emacs-easy-kill")
17735 (version "0.9.5")
17736 (source (origin
17737 (method url-fetch)
17738 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
17739 version ".tar"))
17740 (sha256
17741 (base32
17742 "0h8rzd23sgkj3vxnyhis9iyq8n3xqp9x1mvxlm61s6wwj9j398j6"))))
17743 (build-system emacs-build-system)
17744 (home-page "https://github.com/leoliu/easy-kill")
17745 (synopsis "Kill and mark things easily in Emacs")
17746 (description
17747 "This package provides commands @code{easy-kill} and @code{easy-mark} to
17748 let users kill or mark things easily.")
17749 (license license:gpl3+)))
17750
17751 (define-public emacs-csv-mode
17752 (package
17753 (name "emacs-csv-mode")
17754 (version "1.21")
17755 (source
17756 (origin
17757 (method url-fetch)
17758 (uri (string-append "https://elpa.gnu.org/packages/"
17759 "csv-mode-" version ".tar"))
17760 (sha256
17761 (base32 "11f01lyz6i133njigg53r890cic8y13kz7dswc8mj7m60a316dmv"))))
17762 (build-system emacs-build-system)
17763 (home-page "https://elpa.gnu.org/packages/csv-mode.html")
17764 (synopsis "Major mode for editing comma/char separated values")
17765 (description
17766 "This Emacs package implements CSV mode, a major mode for editing records
17767 in a generalized CSV (character-separated values) format.")
17768 (license license:gpl3+)))
17769
17770 (define-public emacs-transmission
17771 (package
17772 (name "emacs-transmission")
17773 (version "0.12.2")
17774 (source
17775 (origin
17776 (method git-fetch)
17777 (uri (git-reference
17778 (url "https://github.com/holomorph/transmission")
17779 (commit version)))
17780 (file-name (git-file-name name version))
17781 (sha256
17782 (base32 "16bn8y2sd7kzihp8bxh4vyay16y91q3yc0gcd0bzywcx3hijqlfc"))))
17783 (build-system emacs-build-system)
17784 (home-page "https://github.com/holomorph/transmission")
17785 (synopsis "Emacs interface to a Transmission session")
17786 (description "This package provides an Emacs interface to interact with a
17787 running session of the Transmission Bittorrent client.
17788
17789 Features:
17790
17791 @itemize
17792 @item List, add, start/stop, verify, remove torrents.
17793 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
17794 @item Navigate to the corresponding file list, torrent info, peer info
17795 contexts.
17796 @item Toggle downloading and set priorities for individual files.
17797 @end itemize\n")
17798 (license license:gpl3+)))
17799
17800 (define-public emacs-polymode
17801 (package
17802 (name "emacs-polymode")
17803 (version "0.2.2")
17804 (source
17805 (origin
17806 (method git-fetch)
17807 (uri (git-reference
17808 (url "https://github.com/polymode/polymode")
17809 (commit (string-append "v" version))))
17810 (file-name (git-file-name name version))
17811 (sha256
17812 (base32 "18ssl2h861dm2jkd3df6wkfr48p8zk337dbvpq5522kia7fq1lbn"))
17813 (patches
17814 ;; XXX: Cherry-picked from upstream, remove when bumping to 0.2.3.
17815 (search-patches "emacs-polymode-fix-lexical-variable-error.patch"))))
17816 (build-system emacs-build-system)
17817 (home-page "https://github.com/polymode/polymode")
17818 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
17819 (description
17820 "Polymode is an Emacs package that offers generic support for multiple
17821 major modes inside a single Emacs buffer. It is lightweight, object oriented
17822 and highly extensible. Creating a new polymode typically takes only a few
17823 lines of code. Polymode also provides extensible facilities for external
17824 literate programming tools for exporting, weaving and tangling.")
17825 (license license:gpl3+)))
17826
17827 (define-public emacs-polymode-ansible
17828 (package
17829 (name "emacs-polymode-ansible")
17830 (version "0.3.0")
17831 (source
17832 (origin
17833 (method git-fetch)
17834 (uri (git-reference
17835 (url "https://gitlab.com/mavit/poly-ansible")
17836 (commit version)))
17837 (file-name (git-file-name name version))
17838 (sha256
17839 (base32 "0f0yq6gmkp194nxk90ipprglf1xkmxrgz1rkgrhfslvxq4q2l81h"))))
17840 (build-system emacs-build-system)
17841 (propagated-inputs
17842 (list emacs-ansible-doc emacs-jinja2-mode emacs-polymode
17843 emacs-yaml-mode))
17844 (properties '((upstream-name . "poly-ansible")))
17845 (home-page "https://gitlab.com/mavit/poly-ansible/")
17846 (synopsis "Polymode for Ansible - Jinja2 in YAML")
17847 (description
17848 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
17849 (license license:gpl3+)))
17850
17851 (define-public emacs-polymode-markdown
17852 (package
17853 (name "emacs-polymode-markdown")
17854 (version "0.2.2")
17855 (home-page "https://github.com/polymode/poly-markdown")
17856 (source
17857 (origin
17858 (method git-fetch)
17859 (uri (git-reference
17860 (url home-page)
17861 (commit (string-append "v" version))))
17862 (file-name (git-file-name name version))
17863 (sha256
17864 (base32 "1q4qq0ql08hxkdrd2aal03560k612my7bvnfpfij3g432hn0p7v6"))))
17865 (build-system emacs-build-system)
17866 (propagated-inputs
17867 (list emacs-markdown-mode emacs-polymode))
17868 (properties '((upstream-name . "poly-markdown")))
17869 (synopsis "Polymode for Markdown mode")
17870 (description
17871 "This package allows editing source code blocks embedded in Markdown
17872 files using the major mode corresponding to each block.")
17873 (license license:gpl3+)))
17874
17875 (define-public emacs-poly-noweb
17876 (package
17877 (name "emacs-poly-noweb")
17878 (version "0.2.2")
17879 (source
17880 (origin
17881 (method git-fetch)
17882 (uri (git-reference
17883 (url "https://github.com/polymode/poly-noweb")
17884 (commit (string-append "v" version))))
17885 (file-name (git-file-name name version))
17886 (sha256
17887 (base32 "1jl5h4nf10xd2gdlsxi6h2n3z5zh26ffcixn68xfp5q4zl34zk8p"))))
17888 (build-system emacs-build-system)
17889 (propagated-inputs
17890 (list emacs-polymode))
17891 (home-page "https://github.com/polymode/poly-noweb")
17892 (synopsis "Polymode for noweb")
17893 (description
17894 "This package provides @code{poly-noweb-mode}, a polymode for noweb
17895 files.")
17896 (license license:gpl3+)))
17897
17898 (define-public emacs-powershell
17899 ;; Tagged branch 0.1 is outdated (2015).
17900 (let ((revision "0")
17901 (commit "d1b3f95669343399f199f291ef76c09a0ede5e60"))
17902 (package
17903 (name "emacs-powershell")
17904 (build-system emacs-build-system)
17905 (version (git-version "0.3" revision commit))
17906 (source
17907 (origin
17908 (method git-fetch)
17909 (uri (git-reference
17910 (url "https://github.com/jschaf/powershell.el")
17911 (commit commit)))
17912 (file-name (git-file-name name version))
17913 (sha256
17914 (base32 "1cxhzaaig88zhylyycvb3849r85j1ijqklnh9zbqsfl2zhpb0g5c"))))
17915 (home-page "https://github.com/jschaf/powershell.el")
17916 (synopsis "Emacs mode for editing PowerShell scripts")
17917 (description
17918 "Powershell is an Emacs major mode for editing and running
17919 Microsoft PowerShell files.")
17920 (license license:gpl3+))))
17921
17922 (define-public emacs-polymode-org
17923 (package
17924 (name "emacs-polymode-org")
17925 (version "0.2.2")
17926 (source
17927 (origin
17928 (method git-fetch)
17929 (uri (git-reference
17930 (url "https://github.com/polymode/poly-org")
17931 (commit (string-append "v" version))))
17932 (file-name (git-file-name name version))
17933 (sha256
17934 (base32 "1srnwcsn2bh8gqzxixkhffk7gbnk66kd4dgvxbnps5nxqc6v0qhc"))))
17935 (build-system emacs-build-system)
17936 (propagated-inputs
17937 (list emacs-polymode))
17938 (properties '((upstream-name . "poly-org")))
17939 (home-page "https://github.com/polymode/poly-org")
17940 (synopsis "Polymode definitions for Org mode buffers")
17941 (description
17942 "This package provides definitions for Polymode to support Org buffers.
17943 It edits source blocks in an Org buffer using the native modes of the blocks'
17944 languages while remaining inside the primary Org buffer.")
17945 (license license:gpl3+)))
17946
17947 (define-public eless
17948 (package
17949 (name "eless")
17950 (version "0.7")
17951 (source
17952 (origin
17953 (method git-fetch)
17954 (uri (git-reference
17955 (url "https://github.com/kaushalmodi/eless")
17956 (commit (string-append "v" version))))
17957 (file-name (git-file-name name version))
17958 (sha256
17959 (base32 "01gpzg35v972ik4bimcyhqabjca6sjj41kw2i15xj1k33p4sjqpf"))))
17960 (build-system copy-build-system)
17961 (inputs
17962 (list bash emacs))
17963 (arguments
17964 `(#:install-plan
17965 '(("eless" "bin/")
17966 ("docs/eless.info" "share/info/")
17967 ("eless.org" ,(string-append "share/doc/eless-" version "/")))))
17968 (home-page "https://github.com/kaushalmodi/eless")
17969 (synopsis "Use Emacs as a paginator")
17970 (description "@code{eless} provides a combination of Bash script
17971 and a minimal Emacs view-mode.
17972
17973 Features:
17974
17975 @itemize
17976 @item Independent of a user’s Emacs config.
17977 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
17978 @item Not require an Emacs server to be already running.
17979 @item Syntax highlighting.
17980 @item Org-mode file rendering.
17981 @item @code{man} page viewer.
17982 @item Info viewer.
17983 @item Dired, wdired, (batch edit symbolic links).
17984 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
17985 @item Filter log files lines matching a regexp.
17986 @item Auto-revert log files similar to @code{tail -f}.
17987 @item Quickly change frame and font sizes.
17988 @end itemize\n")
17989 (license license:expat)))
17990
17991 (define-public emacs-evil-matchit
17992 (package
17993 (name "emacs-evil-matchit")
17994 (version "3.0.0")
17995 (source
17996 (origin
17997 (method git-fetch)
17998 (uri (git-reference
17999 (url "https://github.com/redguardtoo/evil-matchit")
18000 (commit version)))
18001 (file-name (git-file-name name version))
18002 (sha256
18003 (base32 "0a55hhqi14g0hy80cfi5anxs44rcdxm1jkkyl561b4d4g823bpbi"))))
18004 (build-system emacs-build-system)
18005 (propagated-inputs
18006 (list emacs-evil))
18007 (home-page "https://github.com/redguardtoo/evil-matchit")
18008 (synopsis "Vim matchit ported into Emacs")
18009 (description
18010 "@code{evil-matchit} is a minor mode for jumping between matching tags in
18011 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
18012 (license license:gpl3+)))
18013
18014 (define-public emacs-evil-smartparens
18015 (package
18016 (name "emacs-evil-smartparens")
18017 (version "0.4.0")
18018 (source
18019 (origin
18020 (method git-fetch)
18021 (uri (git-reference
18022 (url "https://github.com/expez/evil-smartparens")
18023 (commit version)))
18024 (file-name (git-file-name name version))
18025 (sha256
18026 (base32 "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl"))))
18027 (build-system emacs-build-system)
18028 (propagated-inputs
18029 (list emacs-evil emacs-smartparens))
18030 (home-page "https://github.com/expez/evil-smartparens")
18031 (synopsis "Emacs Evil integration for Smartparens")
18032 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
18033 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
18034 emulates Vim features and provides Vim-like key bindings.")
18035 (license license:gpl3+)))
18036
18037 (define-public emacs-evil-quickscope
18038 (package
18039 (name "emacs-evil-quickscope")
18040 (version "0.1.4")
18041 (source
18042 (origin
18043 (method git-fetch)
18044 (uri (git-reference
18045 (url "https://github.com/blorbx/evil-quickscope")
18046 (commit (string-append "v" version))))
18047 (file-name (git-file-name name version))
18048 (sha256
18049 (base32 "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"))))
18050 (build-system emacs-build-system)
18051 (propagated-inputs
18052 (list emacs-evil))
18053 (arguments
18054 `(#:tests? #t
18055 #:test-command '("emacs" "--batch"
18056 "-l" "evil-quickscope-tests.el"
18057 "-f" "ert-run-tests-batch-and-exit")))
18058 (home-page "https://github.com/blorbx/evil-quickscope")
18059 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
18060 (description "@code{emacs-evil-quickscope} highlights targets for Evil
18061 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
18062 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
18063 features and provides Vim-like key bindings.")
18064 (license license:gpl3+)))
18065
18066 (define-public emacs-bongo
18067 (package
18068 (name "emacs-bongo")
18069 (version "1.1")
18070 (source
18071 (origin
18072 (method git-fetch)
18073 (uri (git-reference
18074 (url "https://github.com/dbrock/bongo")
18075 (commit version)))
18076 (file-name (git-file-name name version))
18077 (sha256
18078 (base32 "1nszph9mn98flyhn1jq3y6mdh6jymjkvj5ng36ql016dj92apvhv"))))
18079 (build-system emacs-build-system)
18080 (home-page "https://github.com/dbrock/bongo")
18081 (synopsis "Media player for Emacs")
18082 (description
18083 "This package provides a flexible media player for Emacs. @code{Bongo}
18084 supports multiple backends such as @code{vlc}, @code{mpg123},
18085 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
18086 @code{afplay}.")
18087 (license license:gpl2+)))
18088
18089 (define-public emacs-groovy-modes
18090 (package
18091 (name "emacs-groovy-modes")
18092 (version "2.1")
18093 (source (origin
18094 (method git-fetch)
18095 (uri (git-reference
18096 (url "https://github.com/Groovy-Emacs-Modes\
18097 /groovy-emacs-modes")
18098 (commit version)))
18099 (file-name (git-file-name name version))
18100 (sha256
18101 (base32
18102 "1jpfyqnqd8nj0g8xbiw4ar2qzxx3pvhwibr6hdzhyy9mmc4yzdgk"))))
18103 (build-system emacs-build-system)
18104 (arguments
18105 `(#:tests? #t
18106 #:test-command '("ert-runner")))
18107 (native-inputs
18108 (list emacs-ert-runner emacs-undercover emacs-shut-up emacs-f))
18109 (propagated-inputs
18110 (list emacs-dash emacs-s))
18111 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
18112 (synopsis "Groovy related modes for Emacs")
18113 (description "This package provides @code{groovy-mode} for syntax
18114 highlighting in Groovy source files, REPL integration with run-groovy and
18115 Grails project navigation with the grails mode.")
18116 (license license:gpl3+)))
18117
18118 (define-public emacs-jenkinsfile-mode
18119 (let ((commit "65bf3925852c35c6bd499978f08f83c1193f4347")
18120 (revision "1"))
18121 (package
18122 (name "emacs-jenkinsfile-mode")
18123 (version (git-version "0.0.1" revision commit))
18124 (source (origin
18125 (method git-fetch)
18126 (uri (git-reference
18127 (url "https://github.com/john2x/jenkinsfile-mode")
18128 (commit commit)))
18129 (file-name (git-file-name name version))
18130 (sha256
18131 (base32
18132 "0w38g88yykslg71xr99ff4vx1ffgy90b7xqvvdflr189gwk3avx1"))))
18133 (propagated-inputs
18134 (list emacs-groovy-modes))
18135 (build-system emacs-build-system)
18136 (home-page "https://github.com/john2x/jenkinsfile-mode/")
18137 (synopsis "Emacs major-mode for editing Jenkinsfile")
18138 (description "This package provides a @code{jenkinsfile-mode} derived
18139 from @code{groovy-mode} for editing Jenkins declarative pipeline files.")
18140 (license license:gpl3+))))
18141
18142 (define-public emacs-kotlin-mode
18143 (let ((commit "0e4bafb31d1fc2a0a420a521c2723d5526646c0b")
18144 (revision "1"))
18145 (package
18146 (name "emacs-kotlin-mode")
18147 (version (git-version "0.0.1" revision commit))
18148 (source
18149 (origin
18150 (method git-fetch)
18151 (uri (git-reference
18152 (url "https://github.com/Emacs-Kotlin-Mode-Maintainers/kotlin-mode")
18153 (commit commit)))
18154 (file-name (git-file-name name version))
18155 (sha256
18156 (base32 "09inpgwmnnqaakyn4r4xs8kax8b89dw94kvl521x6d43h9zl5i70"))))
18157 (build-system emacs-build-system)
18158 (arguments
18159 `(#:tests? #t
18160 #:test-command '("ert-runner" "-L" "." "-L" "test")))
18161 (native-inputs (list emacs-ert-runner))
18162 (home-page "https://github.com/Emacs-Kotlin-Mode-Maintainers/kotlin-mode")
18163 (synopsis "Major major-mode for editing Kotlin files")
18164 (description
18165 "This package provides a @code{kotlin-mode} for editing Kotlin files.")
18166 (license license:gpl3+))))
18167
18168 (define-public emacs-org-tree-slide
18169 (let ((commit "036a36eec1cf712d3db155572aed325daa372eb5")
18170 (revision "2"))
18171 (package
18172 (name "emacs-org-tree-slide")
18173 (version (git-version "2.8.4" revision commit))
18174 (source (origin
18175 (method git-fetch)
18176 (uri (git-reference
18177 (url "https://github.com/takaxp/org-tree-slide")
18178 (commit commit)))
18179 (sha256
18180 (base32
18181 "1r8ncx25xmxicgciyv5przp68y8qgy40fm10ba55awvql4xcm0yk"))
18182 (file-name (git-file-name name version))))
18183 (build-system emacs-build-system)
18184 (home-page "https://github.com/takaxp/org-tree-slide")
18185 (synopsis "Presentation tool for org-mode")
18186 (description
18187 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
18188 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
18189 @kbd{C-<} to jump to the next and previous slide.")
18190 (license license:gpl3+))))
18191
18192 (define-public emacs-scratch-el
18193 (package
18194 (name "emacs-scratch-el")
18195 (version "1.4")
18196 (source
18197 (origin
18198 (method git-fetch)
18199 (uri (git-reference
18200 (url "https://github.com/ieure/scratch-el")
18201 (commit (string-append "v" version))))
18202 (file-name (git-file-name name version))
18203 (sha256
18204 (base32 "174d8ancnkgb7q62196kd6nrfib6rnwxw4visgbk1c6yd1w8kray"))))
18205 (build-system emacs-build-system)
18206 (native-inputs
18207 (list texinfo))
18208 (arguments
18209 '(#:phases
18210 (modify-phases %standard-phases
18211 (add-after 'install 'install-doc
18212 (lambda* (#:key outputs #:allow-other-keys)
18213 (unless (invoke "makeinfo" "scratch.texi")
18214 (error "makeinfo failed"))
18215 (install-file "scratch.info"
18216 (string-append (assoc-ref outputs "out")
18217 "/share/info"))
18218 #t)))))
18219 (home-page "https://github.com/ieure/scratch-el/")
18220 (synopsis "Create scratch buffers with the same mode as current buffer")
18221 (description "Scratch is an extension to Emacs that enables one to create
18222 scratch buffers that are in the same mode as the current buffer. This is
18223 notably useful when working on code in some language; you may grab code into a
18224 scratch buffer, and, by virtue of this extension, do so using the Emacs
18225 formatting rules for that language.")
18226 (license license:bsd-2)))
18227
18228 (define-public emacs-kv
18229 (package
18230 (name "emacs-kv")
18231 (version "0.0.19")
18232 (source
18233 (origin
18234 (method git-fetch)
18235 (uri (git-reference
18236 (url "https://github.com/nicferrier/emacs-kv")
18237 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
18238 (file-name (git-file-name name version))
18239 (sha256
18240 (base32
18241 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))
18242 (patches
18243 (search-patches "emacs-kv-fix-tests.patch"))))
18244 (build-system emacs-build-system)
18245 (arguments
18246 `(#:tests? #t
18247 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
18248 "-f" "ert-run-tests-batch-and-exit")))
18249 (home-page "https://github.com/nicferrier/emacs-kv")
18250 (synopsis "Key/Value data structures library for Emacs Lisp")
18251 (description "@code{emacs-kv} is a collection of tools for dealing with
18252 key/value data structures such as plists, alists and hash-tables in Emacs
18253 Lisp.")
18254 (license license:gpl3+)))
18255
18256 (define-public emacs-esxml
18257 (package
18258 (name "emacs-esxml")
18259 (version "0.3.7")
18260 (source (origin
18261 (method git-fetch)
18262 (uri (git-reference
18263 (url "https://github.com/tali713/esxml")
18264 (commit version)))
18265 (file-name (git-file-name name version))
18266 (sha256
18267 (base32
18268 "1xzxmgsg0j72sf1vjh9gjswz3c29js0kqhm7r3jrqrh3a5agdnml"))))
18269 (build-system emacs-build-system)
18270 (arguments
18271 `(#:emacs ,emacs ;need libxml
18272 ;; XXX: Only the two following files are meant to be packaged.
18273 ;; Byte-compiling the others Elisp files leads to build errors anyway.
18274 #:include (list "esxml.el" "esxml-query.el")))
18275 (propagated-inputs
18276 (list emacs-kv))
18277 (home-page "https://github.com/tali713/esxml/")
18278 (synopsis "SXML for EmacsLisp")
18279 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
18280 Simply, this is the easiest way to write HTML or XML in Lisp. This library
18281 uses the native form of XML representation as used by many libraries already
18282 included within Emacs. See @code{esxml-to-xml} for a concise description of
18283 the format.")
18284 (license license:gpl3+)))
18285
18286 (define-public emacs-nov-el
18287 (package
18288 (name "emacs-nov-el")
18289 (version "0.3.4")
18290 (source
18291 (origin
18292 (method git-fetch)
18293 (uri (git-reference
18294 (url "https://depp.brause.cc/nov.el.git")
18295 (commit version)))
18296 (file-name (git-file-name name version))
18297 (sha256
18298 (base32
18299 "0va9xjrq30cv5kb59a4rq5mcm83ggnv774r8spmskff3hj8012wf"))))
18300 (build-system emacs-build-system)
18301 (arguments
18302 `(#:emacs ,emacs ;need libxml
18303 #:phases
18304 (modify-phases %standard-phases
18305 (add-after 'unpack 'embed-path-to-unzip
18306 (lambda _
18307 (substitute* "nov.el"
18308 (("\\(executable-find \"unzip\"\\)")
18309 (string-append "\"" (which "unzip") "\"")))
18310 #t)))))
18311 (propagated-inputs
18312 (list emacs-dash emacs-esxml))
18313 (inputs
18314 (list unzip))
18315 (home-page "https://depp.brause.cc/nov.el/")
18316 (synopsis "Major mode for reading EPUBs in Emacs")
18317 (description "@code{nov.el} provides a major mode for reading EPUB
18318 documents.
18319
18320 Features:
18321
18322 @itemize
18323 @item Basic navigation (jump to TOC, previous/next chapter)
18324 @item Remembering and restoring the last read position
18325 @item Jump to next chapter when scrolling beyond end
18326 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
18327 @item Hyperlinks to internal and external targets
18328 @item Supports textual and image documents
18329 @item View source of document files
18330 @item Metadata display
18331 @item Image rescaling
18332 @end itemize
18333 ")
18334 (license license:gpl3+)))
18335
18336 (define-public epipe
18337 (package
18338 (name "epipe")
18339 (version "0.1.0")
18340 (source
18341 (origin
18342 (method git-fetch)
18343 (uri (git-reference
18344 (url "https://github.com/cute-jumper/epipe")
18345 (commit version)))
18346 (file-name (git-file-name name version))
18347 (sha256
18348 (base32 "0lkisi1s7sn12nx8zh58qmsxwnk1rjwryj18wcbr148xqz3swg57"))))
18349 (build-system trivial-build-system)
18350 (arguments
18351 `(#:modules
18352 ((guix build utils))
18353 #:builder
18354 (begin
18355 (use-modules (guix build utils))
18356 ;; Extract source.
18357 (copy-recursively (assoc-ref %build-inputs "source") "source")
18358 (chdir "source")
18359 ;; Patch shebangs.
18360 (substitute* "epipe"
18361 (("/usr/bin/env bash")
18362 (search-input-file %build-inputs "/bin/bash")))
18363 (patch-shebang "epipe.pl"
18364 (list (string-append (assoc-ref %build-inputs "perl")
18365 "/bin")))
18366 ;; Install.
18367 (for-each (lambda (file)
18368 (install-file file (string-append %output "/bin")))
18369 '("epipe" "epipe.pl")))))
18370 (inputs
18371 (list bash perl))
18372 (home-page "https://github.com/cute-jumper/epipe")
18373 (synopsis "Pipe to the @code{emacsclient}")
18374 (description "@code{epipe} provides an utility to use your editor in
18375 the pipeline, featuring the support for running @code{emacsclient}.")
18376 (license license:gpl3+)))
18377
18378 (define-public emacs-jupyter
18379 (package
18380 (name "emacs-jupyter")
18381 (version "0.8.2")
18382 (source
18383 (origin
18384 (method git-fetch)
18385 (uri (git-reference
18386 (url "https://github.com/nnicandro/emacs-jupyter")
18387 (commit (string-append "v" version))))
18388 (file-name (git-file-name name version))
18389 (sha256
18390 (base32 "1sr007wsl2y6wqpzkmv3inbpwhvgdcb2nmqzgfg7w1awapi2r13p"))))
18391 (build-system emacs-build-system)
18392 (propagated-inputs
18393 (list emacs-company ;optional
18394 emacs-markdown-mode ;optional
18395 emacs-simple-httpd
18396 emacs-websocket
18397 emacs-zmq))
18398 (home-page "https://github.com/nnicandro/emacs-jupyter")
18399 (synopsis "Emacs interface to communicate with Jupyter kernels")
18400 (description "This package provides an Emacs interface to communicate with
18401 Jupyter kernels. It provides REPL and @code{org-mode} source code block
18402 frontends to Jupyter kernels and kernel interactions integrated with Emacs'
18403 built-in features.")
18404 (license license:gpl3+)))
18405
18406 (define-public emacs-hcl-mode
18407 (package
18408 (name "emacs-hcl-mode")
18409 (version "0.03")
18410 (source
18411 (origin
18412 (method git-fetch)
18413 (uri (git-reference
18414 (url "https://github.com/syohex/emacs-hcl-mode")
18415 (commit version)))
18416 (file-name (git-file-name name version))
18417 (sha256
18418 (base32 "0jqrgq15jz6pvx38pnwkizzfiih0d3nxqphyrc92nqpcyimg8b6g"))))
18419 (build-system emacs-build-system)
18420 (home-page "https://github.com/syohex/emacs-hcl-mode")
18421 (synopsis "Major mode for the Hashicorp Configuration Language")
18422 (description
18423 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
18424 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
18425 highlighting and indentation support.")
18426 (license license:gpl3+)))
18427
18428 (define-public emacs-terraform-mode
18429 (package
18430 (name "emacs-terraform-mode")
18431 (version "0.06")
18432 (source
18433 (origin
18434 (method git-fetch)
18435 (uri (git-reference
18436 (url "https://github.com/syohex/emacs-terraform-mode")
18437 (commit version)))
18438 (file-name (git-file-name name version))
18439 (sha256
18440 (base32 "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx"))))
18441 (build-system emacs-build-system)
18442 (propagated-inputs
18443 (list emacs-hcl-mode))
18444 (home-page "https://github.com/syohex/emacs-terraform-mode")
18445 (synopsis "Major mode for Terraform")
18446 (description
18447 "@code{emacs-terraform-mode} provides a major mode for working with
18448 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
18449 functionality is inherited from @code{hcl-mode}.")
18450 (license license:gpl3+)))
18451
18452 (define-public emacs-exec-path-from-shell
18453 (package
18454 (name "emacs-exec-path-from-shell")
18455 (version "1.12")
18456 (source
18457 (origin
18458 (method git-fetch)
18459 (uri (git-reference
18460 (url "https://github.com/purcell/exec-path-from-shell")
18461 (commit version)))
18462 (file-name (git-file-name name version))
18463 (sha256
18464 (base32
18465 "1ga8bpxngd3ph2hdiik92c612ki71qxw818i6rgx6f6a5r0sbf3p"))))
18466 (build-system emacs-build-system)
18467 (home-page "https://github.com/purcell/exec-path-from-shell")
18468 (synopsis "Get environment variables such as @env{PATH} from the shell")
18469 (description
18470 "This library allows the user to set Emacs @code{exec-path} and @env{PATH}
18471 from the shell's @env{PATH}, so that @code{shell-command}, @code{compile} and
18472 the like work as expected on systems on which Emacs is not guaranteed to
18473 inherit a login shell's environment variables. It also allows other
18474 environment variables to be retrieved from the shell, so that Emacs will see
18475 the same values you get in a terminal.")
18476 (license license:gpl3+)))
18477
18478 (define-public emacs-frog-menu
18479 (package
18480 (name "emacs-frog-menu")
18481 (version "0.2.11")
18482 (source
18483 (origin
18484 (method url-fetch)
18485 (uri (string-append "https://elpa.gnu.org/packages/"
18486 "frog-menu-" version ".el"))
18487 (sha256
18488 (base32 "06iw11z61fd0g4w3562k3smcmzaq3nivvvc6gzm8y8k5pcrqzdff"))))
18489 (build-system emacs-build-system)
18490 (propagated-inputs
18491 (list emacs-avy emacs-posframe))
18492 (home-page "https://github.com/clemera/frog-menu")
18493 (synopsis "Quickly pick items from ad hoc menus")
18494 (description
18495 "This package provides a popup offering a preview of a list of candidates
18496 on which user-defined dispatch actions can act.")
18497 (license license:gpl3+)))
18498
18499 (define-public emacs-frog-jump-buffer
18500 (let ((commit "2d7b342785ae27d45f5d252272df6eb773c78e20")
18501 (revision "1"))
18502 (package
18503 (name "emacs-frog-jump-buffer")
18504 (version (git-version "0.1.4" revision commit))
18505 (source
18506 (origin
18507 (method git-fetch)
18508 (uri (git-reference
18509 (url "https://github.com/waymondo/frog-jump-buffer")
18510 (commit commit)))
18511 (file-name (git-file-name name version))
18512 (sha256
18513 (base32
18514 "1z00by8hiss1r2lwmzrl8pnz6jykia2849dqqm4l3z5rf6lwvc0f"))))
18515 (build-system emacs-build-system)
18516 (propagated-inputs
18517 (list emacs-dash emacs-frog-menu emacs-avy))
18518 (home-page "https://github.com/waymondo/frog-jump-buffer")
18519 (synopsis "Jump to any Emacs buffer with minimal keystrokes")
18520 (description
18521 "This package provides a preview window of buffers that can be switched
18522 to with quicklink-style selections.")
18523 (license license:gpl3+))))
18524
18525 (define-public emacs-deft
18526 (package
18527 (name "emacs-deft")
18528 (version "0.8")
18529 (source
18530 (origin
18531 (method git-fetch)
18532 (uri (git-reference
18533 (url "https://github.com/jrblevin/deft")
18534 (commit (string-append "v" version))))
18535 (file-name (git-file-name name version))
18536 (sha256
18537 (base32
18538 "0z7cilgiz6krvl5h2z72hkch43qxmypb0k6p5vxn5lx1p6v0mrf2"))))
18539 (build-system emacs-build-system)
18540 (home-page "https://jblevins.org/projects/deft/")
18541 (synopsis "Quickly browse, filter, and edit plain text notes")
18542 (description
18543 "Deft is an Emacs mode for quickly browsing, filtering, and editing
18544 directories of plain text notes, inspired by Notational Velocity.")
18545 (license license:bsd-3)))
18546
18547 (define-public emacs-anzu
18548 (package
18549 (name "emacs-anzu")
18550 (version "0.64")
18551 (source
18552 (origin
18553 (method git-fetch)
18554 (uri (git-reference
18555 (url "https://github.com/syohex/emacs-anzu")
18556 (commit version)))
18557 (file-name (git-file-name name version))
18558 (sha256
18559 (base32 "1jfn5nm6r68wa0gn2k2zy6sdq6c8shw8x04ylzzm5cw7zm60jw0n"))))
18560 (build-system emacs-build-system)
18561 (home-page "https://github.com/syohex/emacs-anzu")
18562 (synopsis "Show number of matches in mode-line while searching")
18563 (description
18564 "Anzu provides a minor mode which displays \"current match/total
18565 matches\" in the mode line in various search modes. This is an Emacs port of
18566 Anzu.zim.")
18567 (license license:gpl3+)))
18568
18569 (define-public emacs-ascii-art-to-unicode
18570 (package
18571 (name "emacs-ascii-art-to-unicode")
18572 (version "1.13")
18573 (source
18574 (origin
18575 (method url-fetch)
18576 (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-"
18577 version ".el"))
18578 (sha256
18579 (base32 "1c0jva3amhl9c5xc5yzdpi58c8m1djym4ccj31z6wmakq7npy07p"))))
18580 (build-system emacs-build-system)
18581 (home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html")
18582 (synopsis "ASCII to Unicode art converter for Emacs")
18583 (description "This Emacs package provides the commands @command{aa2u} and
18584 @command{aa2u-rectangle}. Both of these commands can be used to convert
18585 simple ASCII art line drawings to Unicode; the former works on the active
18586 region of the buffer, while the latter works on rectangular selections.")
18587 (license license:gpl3+)))
18588
18589 (define-public emacs-emmet-mode
18590 (let ((commit "1acb821e0142136344ccf40c1e5fb664d7db2e70")
18591 (revision "1"))
18592 (package
18593 (name "emacs-emmet-mode")
18594 (version (git-version "1.0.8" revision commit))
18595 (source (origin
18596 (method git-fetch)
18597 (uri (git-reference
18598 (url "https://github.com/smihica/emmet-mode")
18599 (commit commit)))
18600 (file-name (git-file-name name version))
18601 (sha256
18602 (base32
18603 "1p25h191bm0h5b3w5apg7wks51k7pb7h4dlww4jbl9ri4d33fzcl"))))
18604 (build-system emacs-build-system)
18605 (home-page "https://github.com/smihica/emmet-mode")
18606 (synopsis "Unofficial Emmet's support for Emacs")
18607 (description
18608 "Unfold CSS-selector-like expressions to markup. It is intended to be
18609 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
18610 (license license:gpl3+))))
18611
18612 (define-public emacs-ergoemacs-mode
18613 (package
18614 (name "emacs-ergoemacs-mode")
18615 (version "5.22.2.23")
18616 (source
18617 (origin
18618 (method git-fetch)
18619 (uri (git-reference
18620 (url "https://github.com/ergoemacs/ergoemacs-mode")
18621 (commit (string-append "v" version))))
18622 (file-name (git-file-name name version))
18623 (sha256
18624 (base32
18625 "1ipwzl0l26g5qvc1sgmz2ra5vn1j3hl0mnkgzpa3j4p8gsmxdiqr"))))
18626 (build-system emacs-build-system)
18627 (propagated-inputs
18628 (list emacs-undo-tree))
18629 (home-page "https://ergoemacs.github.io/")
18630 (synopsis "Emacs mode based on common modern interface and ergonomics")
18631 (description
18632 "This package provides an efficient Emacs keybinding set based on
18633 statistics of command frequency, and supports common shortcuts for open,
18634 close, copy, cut, paste, undo, redo.")
18635 (license license:gpl3+)))
18636
18637 (define-public emacs-password-store
18638 (let ((commit "918992c19231b33b3d4a3288a7288a620e608cb4")
18639 (revision "1"))
18640 (package
18641 (name "emacs-password-store")
18642 ;; The emacs package version does not match the password-store version,
18643 ;; even though it is part of the same repository. When updating, look
18644 ;; at the version declared in password-store.el.
18645 (version (git-version "2.1.4" revision commit))
18646 (source (origin
18647 (method git-fetch)
18648 (uri (git-reference
18649 (url "git://git.zx2c4.com/password-store")
18650 (commit commit)))
18651 (sha256
18652 (base32
18653 "0ni62f4pq96g0i0q66bch1dl9k4zqwhg7xaf746k3gbbqxcdh3vi"))
18654 (file-name (git-file-name name version))))
18655 (build-system emacs-build-system)
18656 (arguments
18657 `(#:phases
18658 (modify-phases %standard-phases
18659 (add-after 'unpack 'extract-el-file
18660 (lambda _
18661 (copy-file "contrib/emacs/password-store.el" "password-store.el")
18662 (delete-file-recursively "contrib")
18663 (delete-file-recursively "man")
18664 (delete-file-recursively "src")
18665 (delete-file-recursively "tests"))))))
18666 (propagated-inputs
18667 (list emacs-auth-source-pass emacs-s emacs-with-editor
18668 password-store))
18669 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
18670 (synopsis "Password store (pass) support for Emacs")
18671 (description
18672 "This package provides functions for working with pass (\"the
18673 standard Unix password manager\").")
18674 (license license:gpl2+))))
18675
18676 (define-public emacs-password-store-otp
18677 (package
18678 (name "emacs-password-store-otp")
18679 (version "0.1.5")
18680 (source
18681 (origin
18682 (method git-fetch)
18683 (uri (git-reference
18684 (url "https://github.com/volrath/password-store-otp.el")
18685 (commit version)))
18686 (sha256
18687 (base32 "0gb48blvnn6ci2wl45z81p41ny7vbgl610hqy6b2hyr2171qjd60"))
18688 (file-name (git-file-name name version))))
18689 (build-system emacs-build-system)
18690 (propagated-inputs
18691 (list emacs-password-store emacs-s))
18692 (home-page "https://github.com/volrath/password-store-otp.el")
18693 (synopsis
18694 "Interact with the @code{pass-otp} extension for @code{pass} from Emacs")
18695 (description "This package provides Emacs functions to interact with the
18696 @code{pass-otp} extension for @code{pass}. It includes functions to import
18697 OTP URIs from screenshots of QR codes, and to export them back to QR codes if
18698 needed.")
18699 (license license:gpl3+)))
18700
18701 (define-public emacs-auth-source-pass
18702 (let ((commit "847a1f54ed48856b4dfaaa184583ef2c84173edf")
18703 (revision "2"))
18704 (package
18705 (name "emacs-auth-source-pass")
18706 (version (git-version "5.0.0" revision commit))
18707 (source
18708 (origin
18709 (method git-fetch)
18710 (uri (git-reference
18711 (url "https://github.com/DamienCassou/auth-password-store")
18712 (commit commit)))
18713 (file-name (git-file-name name version))
18714 (sha256
18715 (base32 "0g48z5w6n3c54zqfpx65dfyl9jqbl15idvbb1hhw2pd9f9r8fykk"))))
18716 (build-system emacs-build-system)
18717 (arguments
18718 `(#:tests? #t
18719 #:test-command '("emacs" "--batch"
18720 "-L" "."
18721 "-l" "test/auth-source-pass-tests.el"
18722 "-f" "ert-run-tests-batch-and-exit")))
18723 (home-page "https://github.com/DamienCassou/auth-password-store")
18724 (synopsis "Integrate @code{auth-source} with @code{password-store}")
18725 (description "This package helps Emacs integrate with the Unix
18726 @code{password-store} application.")
18727 (license license:gpl3+))))
18728
18729 (define-public emacs-pass
18730 (package
18731 (name "emacs-pass")
18732 (version "2.0")
18733 (source
18734 (origin
18735 (method git-fetch)
18736 (uri (git-reference
18737 (url "https://github.com/NicolasPetton/pass")
18738 (commit version)))
18739 (file-name (git-file-name name version))
18740 (sha256
18741 (base32 "0jc8j421mlflspg24jvrqc2n3y5n3cpk3hjy560il8g36xi1049p"))))
18742 (build-system emacs-build-system)
18743 (propagated-inputs
18744 (list emacs-password-store emacs-f))
18745 (home-page "https://github.com/NicolasPetton/pass")
18746 (synopsis "Major mode for @file{password-store.el}")
18747 (description "This is a major mode for managing password-store (pass)
18748 keychains. The keychain entries are displayed in a directory-like structure
18749 and can be consulted and modified.")
18750 (license license:gpl3+)))
18751
18752 (define-public emacs-psc-ide
18753 ;; There is no proper release. The base version is extracted from the
18754 ;; "Version" keyword in the main file.
18755 (let ((commit "ce97d719458ea099b40c02f05b6609601c727e66")
18756 (revision "2"))
18757 (package
18758 (name "emacs-psc-ide")
18759 (version (git-version "0.1.0" revision commit))
18760 (source
18761 (origin
18762 (method git-fetch)
18763 (uri
18764 (git-reference
18765 (url "https://github.com/purescript-emacs/psc-ide-emacs")
18766 (commit commit)))
18767 (file-name (git-file-name name version))
18768 (sha256
18769 (base32 "0xfw93pdf744h2yswc53qwyawfzkc31rv8dmha3irq7k1nklhq6y"))))
18770 (build-system emacs-build-system)
18771 (propagated-inputs
18772 (list emacs-company emacs-dash emacs-flycheck emacs-let-alist
18773 emacs-s))
18774 (home-page "https://github.com/purescript-emacs/psc-ide-emacs")
18775 (synopsis "Emacs integration for PureScript's psc-ide tool")
18776 (description
18777 "This package provices Emacs integration for @code{psc-ide}, an IDE
18778 protocol for PureScript programming language. It features:
18779
18780 @itemize
18781 @item Completions
18782 @item Type at point
18783 @item Go to definition
18784 @item Automatic imports
18785 @item Case split
18786 @item Build system integration, and
18787 @item Flycheck support
18788 @end itemize")
18789 (license license:gpl3+))))
18790
18791 (define-public emacs-evil-anzu
18792 (package
18793 (name "emacs-evil-anzu")
18794 (version "0.03")
18795 (source
18796 (origin
18797 (method git-fetch)
18798 (uri (git-reference
18799 (url "https://github.com/syohex/emacs-evil-anzu")
18800 (commit version)))
18801 (file-name (git-file-name name version))
18802 (sha256
18803 (base32 "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr"))))
18804 (build-system emacs-build-system)
18805 (propagated-inputs
18806 (list emacs-evil emacs-anzu))
18807 (home-page "https://github.com/syohex/emacs-evil-anzu")
18808 (synopsis "Anzu for evil-mode")
18809 (description "@code{anzu} provides a minor mode that displays the current
18810 match and total match information in the mode-line in various search modes.")
18811 (license license:gpl3+)))
18812
18813 (define-public emacs-pg
18814 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
18815 (package
18816 (name "emacs-pg")
18817 (version (git-version "0.1" "1" commit))
18818 (source (origin
18819 (method git-fetch)
18820 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
18821 (commit commit)))
18822 (file-name (git-file-name name version))
18823 (sha256
18824 (base32
18825 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
18826 (build-system emacs-build-system)
18827 (home-page "https://github.com/cbbrowne/pg.el")
18828 (synopsis "Emacs Lisp interface for PostgreSQL")
18829 (description
18830 "This package provides an Emacs Lisp interface for PostgreSQL.")
18831 (license license:gpl3+))))
18832
18833 (define-public emacs-finalize
18834 (package
18835 (name "emacs-finalize")
18836 (version "2.0.0")
18837 (source
18838 (origin
18839 (method git-fetch)
18840 (uri (git-reference
18841 (url "https://github.com/skeeto/elisp-finalize")
18842 (commit version)))
18843 (file-name (git-file-name name version))
18844 (sha256
18845 (base32 "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"))))
18846 (build-system emacs-build-system)
18847 (home-page "https://github.com/skeeto/elisp-finalize")
18848 (synopsis "Finalizers for Emacs Lisp")
18849 (description
18850 "This package runs a callback (a finalizer)
18851 after its registered lisp object has been garbage collected. This allows
18852 extra resources, such as buffers and processes, to be cleaned up after the
18853 object has been freed.")
18854 (license license:unlicense)))
18855
18856 (define-public emacs-emacsql
18857 (package
18858 (name "emacs-emacsql")
18859 (version "3.0.0")
18860 (source
18861 (origin
18862 (method git-fetch)
18863 (uri (git-reference
18864 (url "https://github.com/skeeto/emacsql")
18865 (commit (string-append version))))
18866 (file-name (git-file-name name version))
18867 (sha256
18868 (base32 "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
18869 (build-system emacs-build-system)
18870 (arguments
18871 `(#:modules ((guix build emacs-build-system)
18872 (guix build utils)
18873 (guix build emacs-utils)
18874 (srfi srfi-26))
18875 #:phases
18876 (modify-phases %standard-phases
18877 (add-before 'install 'patch-elisp-shell-shebangs
18878 (lambda _
18879 (substitute* (find-files "." "\\.el")
18880 (("/bin/sh") (which "sh")))))
18881 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
18882 (lambda _
18883 (setenv "SHELL" "sh")))
18884 (add-after 'setenv-shell 'build-emacsql-sqlite
18885 (lambda _
18886 (invoke "make" "binary" (string-append "CC=" ,(cc-for-target)))))
18887 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
18888 ;; This build phase installs emacs-emacsql binary.
18889 (lambda* (#:key outputs #:allow-other-keys)
18890 (install-file "sqlite/emacsql-sqlite"
18891 (string-append (assoc-ref outputs "out") "/bin"))))
18892 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
18893 ;; This build phase removes interactive prompts
18894 ;; and makes sure Emacs look for binaries in the right places.
18895 (lambda* (#:key outputs #:allow-other-keys)
18896 (let ((file "emacsql-sqlite.el"))
18897 (chmod file #o644)
18898 (emacs-substitute-sexps file
18899 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
18900 ("(executable-find" (which "gcc"))
18901 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
18902 ;; in the right place.
18903 ("(defvar emacsql-sqlite-executable"
18904 (string-append (assoc-ref outputs "out")
18905 "/bin/emacsql-sqlite")))))))))
18906 (inputs
18907 (list emacs-minimal `(,mariadb "dev") `(,mariadb "lib") postgresql))
18908 (propagated-inputs
18909 (list emacs-finalize emacs-pg))
18910 (home-page "https://github.com/skeeto/emacsql")
18911 (synopsis "Emacs high-level SQL database front-end")
18912 (description "Any readable Lisp value can be stored as a value in EmacSQL,
18913 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
18914 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
18915 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
18916 (license license:gpl3+)))
18917
18918 (define-public emacs-emacsql-sqlite3
18919 (package
18920 (name "emacs-emacsql-sqlite3")
18921 (version "1.0.2")
18922 (source
18923 (origin
18924 (method git-fetch)
18925 (uri (git-reference
18926 (url "https://github.com/cireu/emacsql-sqlite3")
18927 (commit version)))
18928 (file-name (git-file-name name version))
18929 (sha256
18930 (base32 "1jzvvsvi8jm2ws3y49nmpmwd3zlvf8j83rl2vwizd1aplwwdnmd6"))))
18931 (build-system emacs-build-system)
18932 (arguments
18933 `(#:tests? #t
18934 #:test-command '("emacs" "-Q" "--batch" "-L" "."
18935 "--load" "emacsql-sqlite3-test.el"
18936 "-f" "ert-run-tests-batch-and-exit")
18937 #:phases
18938 (modify-phases %standard-phases
18939 (add-after 'unpack 'embed-path-to-sqlite3
18940 (lambda _
18941 (substitute* "emacsql-sqlite3.el"
18942 (("\\(executable-find \"sqlite3\"\\)")
18943 (string-append "\"" (which "sqlite3") "\""))))))))
18944 (native-inputs
18945 (list emacs-ert-runner))
18946 (inputs
18947 (list sqlite))
18948 (propagated-inputs
18949 (list emacs-emacsql))
18950 (home-page "https://github.com/cireu/emacsql-sqlite3")
18951 (synopsis "EmacSQL backend for SQLite")
18952 (description "This is yet another EmacSQL backend for SQLite which uses
18953 official @command{sqlite3} executable to access SQL database.")
18954 (license license:gpl3+)))
18955
18956 (define-public emacs-closql
18957 (package
18958 (name "emacs-closql")
18959 (version "1.2.1")
18960 (source
18961 (origin
18962 (method git-fetch)
18963 (uri (git-reference
18964 (url "https://github.com/emacscollective/closql")
18965 (commit (string-append "v" version))))
18966 (file-name (git-file-name name version))
18967 (sha256
18968 (base32
18969 "1s9riibws28xjn2bjn9qz3m2gvcmrn18b7g5y6am4sy7rgkx3nwx"))))
18970 (build-system emacs-build-system)
18971 (propagated-inputs
18972 (list emacs-emacsql))
18973 (home-page "https://github.com/emacscollective/closql")
18974 (synopsis "Store EIEIO objects using EmacSQL")
18975 (description
18976 "This package stores uniform EIEIO objects in an EmacSQL
18977 database. SQLite is used as backend. This library imposes some restrictions
18978 on what kind of objects can be stored; it isn't intended to store arbitrary
18979 objects. All objects have to share a common superclass and subclasses cannot
18980 add any additional instance slots.")
18981 (license license:gpl3)))
18982
18983 (define-public emacs-epkg
18984 (package
18985 (name "emacs-epkg")
18986 (version "3.3.3")
18987 (source
18988 (origin
18989 (method git-fetch)
18990 (uri (git-reference
18991 (url "https://github.com/emacscollective/epkg")
18992 (commit (string-append "v" version))))
18993 (file-name (git-file-name name version))
18994 (sha256
18995 (base32 "0d09ddlhvgp8rpybqmzvzpzdp1hjaq97wp2br4g90lpx2vclkgn7"))))
18996 (build-system emacs-build-system)
18997 (arguments
18998 `(#:phases
18999 (modify-phases %standard-phases
19000 (add-before 'install 'make-info
19001 ;; Documentation is located in "docs/".
19002 (lambda* (#:key outputs #:allow-other-keys)
19003 (with-directory-excursion "docs"
19004 (invoke "makeinfo" "-o" "epkg.info" "epkg.texi")
19005 (let ((info (string-append (assoc-ref outputs "out")
19006 "/share/info")))
19007 (install-file "epkg.info" info)))))
19008 (add-after 'make-info 'move-to-lisp-directory
19009 ;; Source code is located in "lisp/".
19010 (lambda _
19011 (chdir "lisp")))
19012 (add-after 'expand-load-path 'add-el-dir-to-emacs-load-path
19013 (lambda _
19014 (setenv "EMACSLOADPATH"
19015 (string-append (getcwd)
19016 "/lisp:"
19017 (getenv "EMACSLOADPATH"))))))))
19018 (native-inputs
19019 (list texinfo))
19020 (propagated-inputs
19021 (list emacs-closql emacs-dash))
19022 (home-page "https://emacsmirror.net")
19023 (synopsis "Browse the Emacsmirror package database")
19024 (description "This package provides access to a local copy of the
19025 Emacsmirror package database. It provides low-level functions for querying
19026 the database and a @file{package.el} user interface for browsing the database.
19027 Epkg itself is not a package manager.")
19028 (license license:gpl3+)))
19029
19030 (define-public emacs-elisp-slime-nav
19031 (package
19032 (name "emacs-elisp-slime-nav")
19033 (version "0.10")
19034 (source
19035 (origin
19036 (method git-fetch)
19037 (uri (git-reference
19038 (url "https://github.com/purcell/elisp-slime-nav")
19039 (commit version)))
19040 (file-name (git-file-name name version))
19041 (sha256
19042 (base32 "08k4zlawjkb0ldn4lgrhih8nzln398x7dwzpipqfyrmp0xziywma"))))
19043 (build-system emacs-build-system)
19044 (home-page "https://github.com/purcell/elisp-slime-nav")
19045 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
19046 (description
19047 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
19048 in @code{emacs-lisp-mode}, together with an elisp equivalent of
19049 @code{slime-describe-symbol}.")
19050 (license license:gpl3+)))
19051
19052 (define-public emacs-dedicated
19053 (package
19054 (name "emacs-dedicated")
19055 (version "1.0.0")
19056 (source
19057 (origin
19058 (method git-fetch)
19059 (uri (git-reference
19060 (url "https://github.com/emacsorphanage/dedicated")
19061 (commit version)))
19062 (file-name (git-file-name name version))
19063 (sha256
19064 (base32 "0pba9s0h37sxyqh733vi6k5raa4cs7aradipf3826inw36jcw414"))))
19065 (build-system emacs-build-system)
19066 (home-page "https://github.com/emacsorphanage/dedicated")
19067 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
19068 (description
19069 "This simple Emacs minor mode allows you to toggle a window's
19070 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
19071 files into that window. This can be quite handy since many commands will use
19072 another window to show results (compilation mode, starting info, and so on).
19073 A dedicated window won't be used for such a purpose. For details, please read
19074 the source file.")
19075 (license license:gpl2+)))
19076
19077 (define-public emacs-nnreddit
19078 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
19079 (revision "1"))
19080 (package
19081 (name "emacs-nnreddit")
19082 (version (string-append "0.0.1-" revision "."
19083 (string-take commit 7)))
19084 (source (origin
19085 (method git-fetch)
19086 (uri (git-reference
19087 (url "https://github.com/paul-issartel/nnreddit")
19088 (commit commit)))
19089 (file-name (git-file-name name version))
19090 (sha256
19091 (base32
19092 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
19093 (build-system emacs-build-system)
19094 (home-page "https://github.com/paul-issartel/nnreddit")
19095 (synopsis "Reddit backend for the Gnus newsreader")
19096 (description "@url{https://www.reddit.com} backend for the Gnus
19097 newsreader.")
19098 (license license:gpl3+))))
19099
19100 (define-public emacs-makey
19101 (package
19102 (name "emacs-makey")
19103 (version "0.3")
19104 (source
19105 (origin
19106 (method git-fetch)
19107 (uri (git-reference
19108 (url "https://github.com/mickeynp/makey")
19109 (commit version)))
19110 (file-name (git-file-name name version))
19111 (sha256
19112 (base32 "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"))))
19113 (build-system emacs-build-system)
19114 (home-page "https://github.com/mickeynp/makey")
19115 (synopsis "Emacs interactive command-line mode")
19116 (description
19117 "This package provides an Emacs interactive command-line mode.")
19118 (license license:gpl3+)))
19119
19120 (define-public emacs-outorg
19121 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
19122 (package
19123 (name "emacs-outorg")
19124 (version (git-version "2.0" "1" commit))
19125 (source
19126 (origin
19127 (method git-fetch)
19128 (uri (git-reference
19129 (url "https://github.com/alphapapa/outorg")
19130 (commit commit)))
19131 (file-name (git-file-name name version))
19132 (sha256
19133 (base32
19134 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
19135 (build-system emacs-build-system)
19136 (home-page "https://github.com/alphapapa/outorg")
19137 (synopsis "Org-style comment editing")
19138 (description "Outorg is for editing comment-sections of source-code
19139 files in temporary Org-mode buffers. It turns conventional
19140 literate-programming upside-down in that the default mode is the
19141 programming-mode, and special action has to be taken to switch to the
19142 text-mode (i.e. Org-mode).")
19143 (license license:gpl3+))))
19144
19145 (define-public emacs-outshine
19146 (package
19147 (name "emacs-outshine")
19148 (version "3.0.1")
19149 (source (origin
19150 (method git-fetch)
19151 (uri (git-reference
19152 (url "https://github.com/alphapapa/outshine")
19153 (commit (string-append "v" version))))
19154 (file-name (git-file-name name version))
19155 (sha256
19156 (base32
19157 "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg"))))
19158 (build-system emacs-build-system)
19159 (propagated-inputs
19160 (list emacs-outorg))
19161 (home-page "https://github.com/alphapapa/outshine")
19162 (synopsis "Emacs outline with outshine")
19163 (description "Outshine attempts to bring the look and feel of
19164 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
19165 of @code{outline-minor-mode} (@code{org-mode} itself derives from
19166 outline-mode), so there is no such thing like an outshine mode, only
19167 @code{outline-minor-mode} with outshine extensions loaded.")
19168 (license license:gpl3+)))
19169
19170 (define-public emacs-frecency
19171 (let ((commit "31ef9ff4af1a4fed3dcc24ea74037feea8795c87")
19172 (version "0.1-pre")
19173 (revision "1"))
19174 (package
19175 (name "emacs-frecency")
19176 (version (git-version version revision commit))
19177 (source (origin
19178 (method git-fetch)
19179 (uri (git-reference
19180 (url "https://github.com/alphapapa/frecency.el")
19181 (commit commit)))
19182 (sha256
19183 (base32
19184 "051aihjdg3x22svaxhwylpi8i6s2x9j8syvsj1jgilgjjdy15l6j"))
19185 (file-name (git-file-name name version))))
19186 (build-system emacs-build-system)
19187 (propagated-inputs
19188 (list emacs-a emacs-dash))
19189 (home-page "https://github.com/alphapapa/frecency.el")
19190 (synopsis "Sort items by frequency and recency of access")
19191 (description "This package provides a way of sorting items via
19192 a heuristic based on frequency and recency.")
19193 (license license:gpl3+))))
19194
19195 (define-public emacs-org-recent-headings
19196 (let ((commit "97418d581ea030f0718794e50b005e9bae44582e")
19197 (revision "0"))
19198 (package
19199 (name "emacs-org-recent-headings")
19200 (version (git-version "0.1" revision commit))
19201 (source
19202 (origin
19203 (method git-fetch)
19204 (uri (git-reference
19205 (url "https://github.com/alphapapa/org-recent-headings")
19206 (commit commit)))
19207 (file-name (git-file-name name version))
19208 (sha256
19209 (base32 "1y11rlnhi36lzhc1cagninv6hlcwbvj88xfr0g0xzpbzy7hys021"))))
19210 (build-system emacs-build-system)
19211 (propagated-inputs
19212 (list emacs-dash emacs-frecency emacs-helm emacs-org emacs-s))
19213 (home-page "https://github.com/alphapapa/org-recent-headings")
19214 (synopsis "Navigate to recently used Org headings and lists")
19215 (description
19216 "This package maintains a list of recently used Org headings,
19217 as well as functions for navigating between these headings.")
19218 (license license:gpl3+))))
19219
19220 (define-public emacs-org-super-agenda
19221 (package
19222 (name "emacs-org-super-agenda")
19223 (version "1.2")
19224 (source
19225 (origin
19226 (method git-fetch)
19227 (uri (git-reference
19228 (url "https://github.com/alphapapa/org-super-agenda")
19229 (commit version)))
19230 (file-name (git-file-name name version))
19231 (sha256
19232 (base32 "10l9h2n09cql4ih7nc0ma3ghdsq9l5v9xlj1lg7kq67icdwjlsvy"))))
19233 (build-system emacs-build-system)
19234 (arguments
19235 `(#:tests? #f ;FIXNE: Tests try to read "~/org/test.org"
19236 #:test-command '("test/run" "--debug")
19237 #:phases
19238 (modify-phases %standard-phases
19239 (add-after 'unpack 'prepare-for-tests.el
19240 (lambda _
19241 (make-file-writable "test/test.el")
19242 (emacs-substitute-variables "test/test.el"
19243 ("org-super-agenda-test-results-file"
19244 (string-append (getcwd) "/test/results.el")))
19245 ;; The following tests fail (see:
19246 ;; https://github.com/alphapapa/org-super-agenda/issues/183).
19247 (substitute* "test/test.el"
19248 ((".*org-super-agenda-test--:auto-(map|tags).*" all)
19249 (string-append all " (skip-unless nil)\n"))))))))
19250 (native-inputs
19251 (list emacs-f util-linux))
19252 (propagated-inputs
19253 (list emacs-dash emacs-ht emacs-org emacs-s emacs-ts))
19254 (home-page "https://github.com/alphapapa/org-super-agenda")
19255 (synopsis "Supercharged Org agenda")
19256 (description "This package allows items in the Org agenda to be grouped
19257 into sections while preserving the structure imposed by any timestamps.")
19258 (license license:gpl3+)))
19259
19260 (define-public emacs-elegant-agenda-mode
19261 (let ((commit "c72f42e0f551c3dd81e68262f07a96c0ec90a589")
19262 (revision "1"))
19263 (package
19264 (name "emacs-elegant-agenda-mode")
19265 (version (git-version "0.1.0" revision commit))
19266 (source
19267 (origin
19268 (method git-fetch)
19269 (uri (git-reference
19270 (url "https://github.com/justinbarclay/elegant-agenda-mode")
19271 (commit commit)))
19272 (file-name (git-file-name name version))
19273 (sha256
19274 (base32
19275 "0f8qk3vd41ffbkfqw5nks3bld0qpjrlnk9sb46wcbsyfnrs2v082"))))
19276 (build-system emacs-build-system)
19277 (home-page "https://github.com/justinbarclay/elegant-agenda-mode")
19278 (synopsis "Elegant theme for your org-agenda")
19279 (description
19280 "The elegant-agenda-mode package uses fonts and typography to give your
19281 org-agenda some breathing room and elegance. This package was inspired by the
19282 work Nicolas Rougier.")
19283 (license license:gpl3+))))
19284
19285 (define-public emacs-org-make-toc
19286 (package
19287 (name "emacs-org-make-toc")
19288 (version "0.5")
19289 (source (origin
19290 (method git-fetch)
19291 (uri (git-reference
19292 (url "https://github.com/alphapapa/org-make-toc")
19293 (commit version)))
19294 (file-name (git-file-name name version))
19295 (sha256
19296 (base32
19297 "180ji6nnj6qj0rs1rdp1zlcrfsqf7ikb44ym8icbp5d6al2s4hnr"))))
19298 (build-system emacs-build-system)
19299 (propagated-inputs
19300 (list emacs-org emacs-dash emacs-s))
19301 (home-page "https://github.com/alphapapa/org-make-toc")
19302 (synopsis "Maintain a table of contents for an Org file")
19303 (description "This package facilitates the creation and maintenance of
19304 tables of contents.")
19305 (license license:gpl3+)))
19306
19307 (define-public emacs-ts
19308 (package
19309 (name "emacs-ts")
19310 (version "0.2.2")
19311 (source
19312 (origin
19313 (method git-fetch)
19314 (uri (git-reference
19315 (url "https://github.com/alphapapa/ts.el")
19316 (commit version)))
19317 (sha256
19318 (base32 "0l35gz1hpada2kzascbyqgawa5d3sdyg67gzvak84p9zx62jppn8"))
19319 (file-name (git-file-name name version))))
19320 (build-system emacs-build-system)
19321 (propagated-inputs
19322 (list emacs-s emacs-dash))
19323 (arguments
19324 ;; XXX: Three tests are failing because of a timezone-related issue
19325 ;; with how they're written. On my machine, all the failing test
19326 ;; results are 18000 seconds (5 hours) off.
19327
19328 ;; The ts-parse-org function accepts a string without any timezone
19329 ;; info, not assumed to be in Unix time, and converts it to a so-called
19330 ;; ts struct. The ts-unix function (accessor) accepts a ts struct,
19331 ;; then seems to assume the struct's corresponding time is in terms of
19332 ;; the user's current time zone, before returning a Unix time in
19333 ;; seconds.
19334
19335 ;; The failing tests all have similar problems, but nothing else about
19336 ;; the library seems particularly off.
19337
19338 `(#:tests? #t
19339 #:test-command '("emacs" "--batch"
19340 "-l" "test/test.el"
19341 "-f" "ert-run-tests-batch-and-exit")
19342 #:phases
19343 (modify-phases %standard-phases
19344 (add-before 'check 'make-tests-writable
19345 (lambda _
19346 (make-file-writable "test/test.el")
19347 #t))
19348 (add-before 'check 'delete-failing-tests
19349 (lambda _
19350 (emacs-batch-edit-file "test/test.el"
19351 `(progn (progn
19352 (goto-char (point-min))
19353 (dolist (test-regexp
19354 '("ert-deftest ts-format"
19355 "ert-deftest ts-parse-org\\_>"
19356 "ert-deftest ts-parse-org-element"
19357 "ert-deftest ts-update"))
19358 (re-search-forward test-regexp)
19359 (beginning-of-line)
19360 (kill-sexp)))
19361 (basic-save-buffer)))
19362 #t)))))
19363 (home-page "https://github.com/alphapapa/ts.el")
19364 (synopsis "Timestamp and date/time library")
19365 (description "This package facilitates manipulating dates, times, and
19366 timestamps by providing a @code{ts} struct.")
19367 (license license:gpl3+)))
19368
19369 (define-public emacs-peg
19370 (package
19371 (name "emacs-peg")
19372 (version "1.0")
19373 (source
19374 (origin
19375 (method url-fetch)
19376 (uri (string-append "https://elpa.gnu.org/packages/peg-" version ".tar"))
19377 (sha256
19378 (base32 "0skr5dz9k34r409hisnj37n1b7n62l3md0glnfx578xkbmxlpcxl"))))
19379 (build-system emacs-build-system)
19380 (home-page "https://elpa.gnu.org/packages/peg.html")
19381 (synopsis "Parsing Expression Grammars in Elisp")
19382 (description "This package provides a macro that parses the current buffer
19383 according to a parsing expression grammar.")
19384 (license license:gpl3+)))
19385
19386 (define-public emacs-eldev
19387 (package
19388 (name "emacs-eldev")
19389 (version "1.2.2")
19390 (source
19391 (origin
19392 (method git-fetch)
19393 (uri (git-reference
19394 (url "https://github.com/doublep/eldev")
19395 (commit version)))
19396 (file-name (git-file-name name version))
19397 (sha256
19398 (base32 "0d6wbfim0q81sm5m45fjc6n0v6nk32qrgas5nzrs0vslym4bfxna"))))
19399 (build-system emacs-build-system)
19400 (arguments
19401 (list
19402 #:tests? #t
19403 #:test-command #~(list "./bin/eldev" "-p" "-dtTC" "test")
19404 #:phases
19405 #~(modify-phases %standard-phases
19406 (add-after 'unpack 'prepare-for-tests
19407 (lambda _
19408 (setenv "ELDEV_LOCAL" (getcwd))
19409 (make-file-writable "test/project-i/project-i-autoloads.el")))
19410 (add-after 'unpack 'skip-failing-tests
19411 ;; FIXME: 2 tests are failing. Skip them for now.
19412 (lambda _
19413 (delete-file "test/upgrade-self.el")))
19414 (add-after 'install 'install-eldev-executable
19415 ;; This constructs the eldev executable from templates and
19416 ;; installs it in the specified directory.
19417 (lambda _
19418 (let ((bin (string-append #$output "/bin"))
19419 (site-lisp (elpa-directory #$output)))
19420 (mkdir-p bin)
19421 (setenv "HOME" (getcwd))
19422 (invoke "./install.sh" bin)
19423 (substitute* (string-append bin "/eldev")
19424 ;; Point ELDEV_LOCAL to the installation directory so that
19425 ;; eldev doesn't try to bootstrap itself from MELPA when
19426 ;; invoked.
19427 (("export ELDEV_EMACS.*" all)
19428 (string-append "export ELDEV_LOCAL=" site-lisp "\n" all)))))))))
19429 (native-inputs
19430 (list texinfo)) ;for tests
19431 (home-page "https://github.com/doublep/eldev/")
19432 (synopsis "Emacs-based build tool for Elisp")
19433 (description "Eldev (Elisp Development Tool) is an Emacs-based build tool,
19434 targeted solely at Elisp projects. It is an alternative to Cask. Unlike
19435 Cask, Eldev itself is fully written in Elisp and its configuration files are
19436 also Elisp programs. For those familiar with the Java world, Cask can be seen
19437 as a parallel to Maven — it uses project description, while Eldev is sort of a
19438 parallel to Gradle — its configuration is a program on its own.")
19439 (license license:gpl3+)))
19440
19441 (define-public emacs-with-simulated-input
19442 (package
19443 (name "emacs-with-simulated-input")
19444 (version "3.0")
19445 (source
19446 (origin
19447 (method git-fetch)
19448 (uri (git-reference
19449 (url "https://github.com/DarwinAwardWinner/with-simulated-input")
19450 (commit (string-append "v" version))))
19451 (file-name (git-file-name name version))
19452 (sha256
19453 (base32
19454 "0n8h84whsh0aph8xhn9plprix9f6bysgvarz2anz7kwns19js6s4"))))
19455 (build-system emacs-build-system)
19456 (arguments
19457 ;; The test suite fails with error: "Spies can only be created in
19458 ;; ‘before-each’".
19459 `(#:tests? #f
19460 #:test-command '("buttercup" "-L" ".")))
19461 (native-inputs
19462 (list emacs-buttercup emacs-undercover))
19463 (propagated-inputs
19464 (list emacs-s))
19465 (home-page "https://github.com/DarwinAwardWinner/with-simulated-input")
19466 (synopsis "Non-interactive testing Emacs library")
19467 (description "This package provides an Emacs Lisp macro,
19468 @code{with-simulated-input}, which evaluates one or more forms while
19469 simulating a sequence of input events for those forms to read. The result is
19470 the same as if a user had evaluated the forms and then manually typed in the
19471 same input. This macro is useful for non-interactive testing of normally
19472 interactive commands and functions, such as @code{completing-read}.")
19473 (license license:gpl3+)))
19474
19475 (define-public emacs-org-ql
19476 (package
19477 (name "emacs-org-ql")
19478 (version "0.6.2")
19479 (source (origin
19480 (method git-fetch)
19481 (uri (git-reference
19482 (url "https://github.com/alphapapa/org-ql")
19483 (commit version)))
19484 (sha256
19485 (base32
19486 "0iamqv5j43ngj1xdqr36rkgk9lqpk9bg8y531jsldnvwzrp3srpf"))
19487 (file-name (git-file-name name version))))
19488 (build-system emacs-build-system)
19489 (propagated-inputs
19490 (list emacs-dash
19491 emacs-f
19492 emacs-helm
19493 emacs-helm-org
19494 emacs-org
19495 emacs-org-super-agenda
19496 emacs-ov
19497 emacs-peg
19498 emacs-ts
19499 emacs-s))
19500 (native-inputs
19501 (list emacs-buttercup emacs-with-simulated-input))
19502 (arguments
19503 `(#:tests? #t
19504 #:test-command '("buttercup" "-L" ".")))
19505 (home-page "https://github.com/alphapapa/org-ql/")
19506 (synopsis "Query language for Org buffers")
19507 (description "This package provides a Lispy query language for Org
19508 files, allowing for actions to be performed based on search criteria.")
19509 (license license:gpl3+)))
19510
19511 (define-public emacs-bing-dict
19512 (package
19513 (name "emacs-bing-dict")
19514 (version "0.2.4")
19515 (source (origin
19516 (method git-fetch)
19517 (uri (git-reference
19518 (url "https://github.com/cute-jumper/bing-dict.el")
19519 (commit version)))
19520 (file-name (git-file-name name version))
19521 (sha256
19522 (base32
19523 "1kn8kmljn0pj0hz7dj7r7nxw43xd6acndaqq92d02mla12hiqayz"))))
19524 (build-system emacs-build-system)
19525 (home-page "https://github.com/cute-jumper/bing-dict.el")
19526 (synopsis "Minimalist Bing dictionary interface in Emacs")
19527 (description
19528 "This package provides a minimalist Emacs extension to search
19529 @uref{http://www.bing.com/dict}. It supports English to Chinese, and
19530 Chinese to English.")
19531 (license license:gpl3+)))
19532
19533 (define-public emacs-org-auto-tangle
19534 (package
19535 (name "emacs-org-auto-tangle")
19536 (version "0.6.0")
19537 (source (origin
19538 (method git-fetch)
19539 (uri (git-reference
19540 (url "https://github.com/yilkalargaw/org-auto-tangle")
19541 (commit version)))
19542 (file-name (git-file-name name version))
19543 (sha256
19544 (base32
19545 "1kn1jsbv97ps280lcdx19d6hs7pvz7q9ng67xlb1kwjb680pa7rl"))))
19546 (build-system emacs-build-system)
19547 (propagated-inputs (list emacs-async))
19548 (home-page "https://github.com/yilkalargaw/org-auto-tangle")
19549 (synopsis "Automatically tangle code blocks on save")
19550 (description
19551 "@code{org-auto-tangle} allows you to automatically tangle code blocks
19552 whenever saving an @code{org-mode} file.")
19553 (license license:bsd-2)))
19554
19555 (define-public emacs-org-auto-expand
19556 (let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62")
19557 (revision "1"))
19558 (package
19559 (name "emacs-org-auto-expand")
19560 (version (git-version "0.1" revision commit))
19561 (source (origin
19562 (method git-fetch)
19563 (uri (git-reference
19564 (url "https://github.com/alphapapa/org-auto-expand")
19565 (commit commit)))
19566 (file-name (git-file-name name version))
19567 (sha256
19568 (base32
19569 "1my0c6xmkh37lwi6l472lz9d86lf20h6xcllzlxm1lxa24rhva6v"))))
19570 (build-system emacs-build-system)
19571 (propagated-inputs
19572 (list emacs-org emacs-dash))
19573 (home-page "https://github.com/alphapapa/org-auto-expand")
19574 (synopsis "Automatically expand certain Org headings")
19575 (description "This package allows a customizable set of headings in Org
19576 files to be expanded upon opening them.")
19577 (license license:gpl3+))))
19578
19579 (define-public emacs-parsebib
19580 (package
19581 (name "emacs-parsebib")
19582 (version "4.3")
19583 (source
19584 (origin
19585 (method git-fetch)
19586 (uri (git-reference
19587 (url "https://github.com/joostkremers/parsebib")
19588 (commit version)))
19589 (file-name (git-file-name name version))
19590 (sha256
19591 (base32 "0vcl2wvxwpr62c9ym0fm3qaxzhjcrpk4r6r0zaqhkvlf8qr3rg8y"))))
19592 (build-system emacs-build-system)
19593 (home-page "https://github.com/joostkremers/parsebib")
19594 (synopsis "Library for parsing @file{.bib} files")
19595 (description
19596 "This package provides an Emacs library for parsing @file{.bib} files.")
19597 (license license:gpl3+)))
19598
19599 (define-public emacs-ebib
19600 (package
19601 (name "emacs-ebib")
19602 (version "2.38.1")
19603 (source
19604 (origin
19605 (method git-fetch)
19606 (uri (git-reference
19607 (url "https://github.com/joostkremers/ebib")
19608 (commit version)))
19609 (file-name (git-file-name name version))
19610 (sha256
19611 (base32 "1a2pjnfk3yk7r13avjv4xcmq0ld1lw78ngifn9khpl28kd9fgv74"))))
19612 (build-system emacs-build-system)
19613 (propagated-inputs
19614 (list emacs-biblio emacs-ivy emacs-parsebib))
19615 (home-page "https://joostkremers.github.io/ebib/")
19616 (synopsis "BibTeX database manager for Emacs")
19617 (description
19618 "Ebib is a BibTeX database manager that runs in GNU Emacs.
19619 With Ebib you can create, sort and manage your @file{.bib} database files, all
19620 within Emacs. It supports searching, multi-line field values and
19621 @samp{@@String} and @samp{@@Preamble} definitions. Ebib integrates
19622 with (La)TeX mode, Org mode and other Emacs editing modes.")
19623 ;; The Ebib source files are released under a BSD license with
19624 ;; the exception of org-ebib.el, which is released under the GNU
19625 ;; GPL.
19626 (license (list license:bsd-3
19627 license:gpl3+))))
19628
19629 (define-public emacs-biblio
19630 (package
19631 (name "emacs-biblio")
19632 (version "0.2")
19633 (source
19634 (origin
19635 (method git-fetch)
19636 (uri (git-reference
19637 (url "https://github.com/cpitclaudel/biblio.el")
19638 (commit version)))
19639 (file-name (git-file-name name version))
19640 (sha256
19641 (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"))))
19642 (build-system emacs-build-system)
19643 (propagated-inputs
19644 (list emacs-dash emacs-let-alist))
19645 (home-page "https://github.com/cpitclaudel/biblio.el")
19646 (synopsis "Browse and import bibliographic references")
19647 (description "This package provides an extensible Emacs package for
19648 browsing and fetching references.
19649
19650 @file{biblio.el} makes it easy to browse and gather bibliographic references
19651 and publications from various sources, by keywords or by DOI. References are
19652 automatically fetched from well-curated sources, and formatted as BibTeX.")
19653 (license license:gpl3+)))
19654
19655 (define-public emacs-citar
19656 (package
19657 (name "emacs-citar")
19658 (version "1.0")
19659 (source (origin
19660 (method git-fetch)
19661 (uri (git-reference
19662 (url "https://github.com/bdarcus/citar")
19663 (commit (string-append "v" version))))
19664 (file-name (git-file-name name version))
19665 (sha256
19666 (base32
19667 "1n69lkp7298gasm9hlbx9nhgp9ggh8w8ffyvi1rmbj96lcnpsyi9"))))
19668 (build-system emacs-build-system)
19669 (arguments
19670 `(#:phases (modify-phases %standard-phases
19671 (add-before 'build 'set-home
19672 (lambda _
19673 (setenv "HOME" "/tmp"))))))
19674 (propagated-inputs (list emacs-auctex
19675 emacs-citeproc-el
19676 emacs-embark
19677 emacs-org
19678 emacs-parsebib
19679 emacs-s))
19680 (home-page "https://github.com/bdarcus/citar")
19681 (synopsis "Emacs package to quickly find and act on bibliographic entries")
19682 (description
19683 "This package provides a completing-read front-end to browse and
19684 act on BibTeX, BibLaTeX, and CSL JSON bibliographic data, and LaTeX,
19685 markdown, and Org cite editing support.
19686
19687 When used with Vertico (or Selectrum), Embark, and Marginalia, it
19688 provides similar functionality to helm-bibtex and ivy-bibtex: quick
19689 filtering and selecting of bibliographic entries from the minibuffer,
19690 and the option to run different commands against them.
19691
19692 With Embark, it also makes available at-point actions in Org
19693 citations.")
19694 (license license:gpl3+)))
19695
19696 (define-public emacs-citar-org-roam
19697 (package
19698 (name "emacs-citar-org-roam")
19699 (version "0.3")
19700 (source
19701 (origin
19702 (method git-fetch)
19703 (uri (git-reference
19704 (url "https://github.com/emacs-citar/citar-org-roam")
19705 (commit (string-append "v" version))))
19706 (file-name (git-file-name name version))
19707 (sha256
19708 (base32 "1ldfs7g7ixnrwj23draiph4vy6xq7qgw18vhi7vbw6wvkh9fcv9r"))))
19709 (build-system emacs-build-system)
19710 (propagated-inputs (list emacs-org-roam emacs-citar))
19711 (home-page "https://github.com/emacs-citar/citar-org-roam")
19712 (synopsis "Emacs pacakge to provide tighter Citar and Org-Roam integration")
19713 (description "\
19714 Out-of-box, Citar provides default support for file-per-note bibliographic
19715 notes that are compatible with Org-Roam v2. This package integrates directly
19716 with the Org-Roam database, and provides the following additional features to
19717 Citar note support:
19718 @itemize
19719 @item multiple references per note
19720 @item multiple reference notes per file
19721 @item ability to query note citations by reference
19722 @item ``live'' updating of Citar UI for presence of notes
19723 @end itemize")
19724 (license license:gpl3)))
19725
19726 (define-public emacs-helm-bibtex
19727 (let ((commit "aa775340ba691d2322948bfdc6a88158568a1399")
19728 (revision "3"))
19729 (package
19730 (name "emacs-helm-bibtex")
19731 (version (git-version "2.0.0" revision commit))
19732 (source
19733 (origin
19734 (method git-fetch)
19735 (uri (git-reference
19736 (url "https://github.com/tmalsburg/helm-bibtex")
19737 (commit commit)))
19738 (file-name (git-file-name name version))
19739 (sha256
19740 (base32 "1d3mc17ga09m41i06khghlvixr6gsiacifnhdbrfnp0w5592aprk"))))
19741 (build-system emacs-build-system)
19742 (propagated-inputs
19743 (list emacs-helm
19744 emacs-parsebib
19745 emacs-s
19746 emacs-dash
19747 emacs-f
19748 emacs-biblio
19749 emacs-ivy))
19750 (home-page "https://github.com/tmalsburg/helm-bibtex")
19751 (synopsis "Bibliography manager based on Helm")
19752 (description "This package provides bibliography manager for Emacs,
19753 based on Helm and the bibtex-completion backend.
19754
19755 Key features:
19756
19757 @itemize
19758 @item Quick access to your bibliography from within Emacs
19759 @item Powerful search capabilities
19760 @item Provides instant search results as you type
19761 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
19762 @item Open the PDFs, URLs, or DOIs associated with an entry
19763 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
19764 BibTeX entries, or plain text references at point, attach PDFs to emails
19765 @item Support for note taking
19766 @item Quick access to online bibliographic databases such as Pubmed,
19767 arXiv, Google Scholar, Library of Congress, etc.
19768 @item Imports BibTeX entries from CrossRef and other sources.
19769 @end itemize\n")
19770 (license license:gpl3+))))
19771
19772 (define-public emacs-ewmctrl
19773 (package
19774 (name "emacs-ewmctrl")
19775 (version "1.0.0")
19776 (source
19777 (origin
19778 (method git-fetch)
19779 (uri (git-reference
19780 (url "https://github.com/flexibeast/ewmctrl")
19781 (commit (string-append "v" version))))
19782 (file-name (git-file-name name version))
19783 (sha256
19784 (base32
19785 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
19786 (build-system emacs-build-system)
19787 (arguments
19788 '(#:phases
19789 (modify-phases %standard-phases
19790 (add-after 'unpack 'patch-ewmctrl
19791 ;; This build phase makes sure ‘ewmctrl’ looks
19792 ;; for ‘wmctrl’ in the right place.
19793 (lambda _
19794 (let ((file "ewmctrl.el"))
19795 (chmod file #o644)
19796 (emacs-substitute-sexps file
19797 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
19798 (inputs
19799 (list wmctrl))
19800 (home-page "https://github.com/flexibeast/ewmctrl")
19801 (synopsis "Emacs interface to @code{wmctrl}")
19802 (description "@code{ewmctrl} provides an Emacs interface to
19803 @code{wmctrl} command-line window-management program.")
19804 (license license:gpl3+)))
19805
19806 (define-public emacs-erc-image
19807 (let ((commit "82fb3871f02e24b1e880770b9a3d187aab43d0f0")
19808 (revision "3"))
19809 (package
19810 (name "emacs-erc-image")
19811 (version (git-version "0" revision commit))
19812 (source
19813 (origin
19814 (method git-fetch)
19815 (uri (git-reference
19816 (url "https://github.com/kidd/erc-image.el")
19817 (commit commit)))
19818 (file-name (git-file-name name version))
19819 (sha256
19820 (base32
19821 "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i"))))
19822 (build-system emacs-build-system)
19823 (arguments
19824 `(#:phases (modify-phases %standard-phases
19825 ;; The package autoloader fails to provide
19826 ;; the image module when handled by Guix.
19827 ;; Disable this phase, and let the package
19828 ;; handle the `eval-after-load' procedure.
19829 (delete 'make-autoloads))))
19830 (home-page "https://github.com/kidd/erc-image.el")
19831 (synopsis "Show inlined images (png/jpg/gif/svg) in ERC buffers")
19832 (description "This plugin subscribes to hooks @code{erc-insert-modify-hook}
19833 and @code{erc-send-modify-hook} to download and show images.")
19834 (license license:gpl3+))))
19835
19836 (define-public emacs-helm-gtags
19837 (package
19838 (name "emacs-helm-gtags")
19839 (version "1.5.7")
19840 (source
19841 (origin
19842 (method git-fetch)
19843 (uri (git-reference
19844 (url "https://github.com/syohex/emacs-helm-gtags")
19845 (commit version)))
19846 (file-name (git-file-name name version))
19847 (sha256
19848 (base32 "1kc1jzk10nfd2v20g8dwnb6a944afrwdwnkzl06w4ba8k4yim7gi"))))
19849 (build-system emacs-build-system)
19850 (propagated-inputs
19851 (list emacs-helm))
19852 (home-page "https://github.com/syohex/emacs-helm-gtags")
19853 (synopsis "Emacs Helm interface to GNU Global")
19854 (description
19855 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
19856 (license license:gpl3+)))
19857
19858 (define-public emacs-list-utils
19859 ;; Use a git snapshot until upstream fixes the build with emacs 28.1.
19860 ;; See <http://issues.guix.gnu.org/55558>.
19861 (let ((commit "0dec8c02962d2591766739e37c5714ba21133093") (revision "1"))
19862 (package
19863 (name "emacs-list-utils")
19864 (version (git-version "0.4.6" revision commit))
19865 (source (origin
19866 (method git-fetch)
19867 (uri (git-reference
19868 (url "https://github.com/rolandwalker/list-utils")
19869 (commit commit)))
19870 (file-name (git-file-name name version))
19871 (sha256
19872 (base32
19873 "11nm8649a131bn2kwj4fxkiijdx2d4f1byx7a985zlb3bzdwnaw8"))))
19874 (build-system emacs-build-system)
19875 (home-page "https://github.com/rolandwalker/list-utils")
19876 (synopsis "List-manipulation utility functions")
19877 (description
19878 "This package provides a list manipulation library for Emacs.")
19879 (license license:gpl3+))))
19880
19881 (define-public emacs-parsec
19882 (package
19883 (name "emacs-parsec")
19884 (version "0.1.4")
19885 (source
19886 (origin
19887 (method git-fetch)
19888 (uri (git-reference
19889 (url "https://github.com/cute-jumper/parsec.el")
19890 (commit version)))
19891 (file-name (git-file-name name version))
19892 (sha256
19893 (base32 "1g1s8s45g3kkbi3h7w0pmadmzdswb64mkdvdpg2lihg341kx37gm"))))
19894 (build-system emacs-build-system)
19895 (home-page "https://github.com/cute-jumper/parsec.el")
19896 (synopsis "Parser combinator library for Emacs Lisp")
19897 (description
19898 "Parsec is a parser combinator library for Emacs Lisp, similar to
19899 Haskell's Parsec library. It contains most of the parser combinators in
19900 Text.Parsec.Combinator, and more combinators can be added if necessary! Most
19901 of the parser combinators have the same behavior as their Haskell
19902 counterparts. Parsec also comes with a simple error handling mechanism so
19903 that it can display an error message showing how the parser fails.")
19904 (license license:gpl3+)))
19905
19906 (define-public emacs-move-text
19907 (package
19908 (name "emacs-move-text")
19909 (version "2.0.10")
19910 (source
19911 (origin
19912 (method git-fetch)
19913 (uri (git-reference
19914 (url "https://github.com/emacsfodder/move-text")
19915 (commit version)))
19916 (file-name (git-file-name name version))
19917 (sha256
19918 (base32 "0pxvipjp9xvr9zwiwij943jgpy7fk8pxphbdj0vrg8ar5avlqiam"))))
19919 (build-system emacs-build-system)
19920 (home-page "https://github.com/emacsfodder/move-text")
19921 (synopsis "Move current line or region with M-up or M-down")
19922 (description "This package provide functions to move the current line
19923 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
19924 region instead.")
19925 (license license:gpl3+)))
19926
19927 (define-public emacs-validate
19928 (package
19929 (name "emacs-validate")
19930 (version "1.0.5")
19931 (source (origin
19932 (method git-fetch)
19933 (uri (git-reference
19934 (url "https://github.com/Malabarba/validate.el")
19935 (commit version)))
19936 (file-name (git-file-name name version))
19937 (sha256
19938 (base32
19939 "1l12ibx6cw4mgicgjpw71fb4fr4sd0k54lvbpq7ngc29br3j6i4v"))))
19940 (build-system emacs-build-system)
19941 (home-page "https://github.com/Malabarba/validate.el")
19942 (synopsis "Emacs library for scheme validation")
19943 (description "This Emacs library provides two functions that perform
19944 schema validation.")
19945 (license license:gpl3+)))
19946
19947 (define-public emacs-rainbow-blocks
19948 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
19949 (package
19950 (name "emacs-rainbow-blocks")
19951 (version (git-version "1.0.0" "1" commit))
19952 (source (origin
19953 (method git-fetch)
19954 (uri (git-reference
19955 (url "https://github.com/istib/rainbow-blocks")
19956 (commit commit)))
19957 (file-name (git-file-name name version))
19958 (sha256
19959 (base32
19960 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
19961 (build-system emacs-build-system)
19962 (home-page "https://github.com/istib/rainbow-blocks")
19963 (synopsis "Highlight sexp blocks")
19964 (description "Rainbow-blocks is an Emacs mode that highlights blocks
19965 made of parentheses, brackets, and braces according to their depth. Each
19966 successive level is highlighted in a different color. This makes it easy to
19967 orient yourself in the code, and tell which statements are at a given level.")
19968 (license license:gpl3+))))
19969
19970 (define-public emacs-hierarchy
19971 (package
19972 (name "emacs-hierarchy")
19973 (version "0.7.0")
19974 (source
19975 (origin
19976 (method git-fetch)
19977 (uri (git-reference
19978 (url "https://github.com/DamienCassou/hierarchy")
19979 (commit (string-append "v" version))))
19980 (file-name (git-file-name name version))
19981 (sha256
19982 (base32 "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r"))))
19983 (build-system emacs-build-system)
19984 (native-inputs
19985 (list emacs-buttercup))
19986 (arguments
19987 `(#:tests? #t
19988 #:test-command '("buttercup" "-L" ".")))
19989 (home-page "https://github.com/DamienCassou/hierarchy")
19990 (synopsis "Library to create and display hierarchy structures")
19991 (description "This package provides an Emacs library to create, query,
19992 navigate and display hierarchy structures.")
19993 (license license:gpl3+)))
19994
19995 (define-public emacs-tree-mode
19996 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
19997 (revision "1"))
19998 (package
19999 (name "emacs-tree-mode")
20000 (version (string-append "0.0.1" "-" revision "."
20001 (string-take commit 7)))
20002 (source
20003 (origin
20004 (method git-fetch)
20005 (uri (git-reference
20006 (url "https://github.com/emacsorphanage/tree-mode")
20007 (commit commit)))
20008 (file-name (git-file-name name version))
20009 (sha256
20010 (base32
20011 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
20012 (build-system emacs-build-system)
20013 (home-page "https://github.com/emacsorphanage/tree-mode")
20014 (synopsis "Emacs mode to manage tree widgets")
20015 (description
20016 "This package provides an Emacs library to manage tree widgets.")
20017 (license license:gpl3+))))
20018
20019 (define-public emacs-md4rd
20020 (package
20021 (name "emacs-md4rd")
20022 (version "0.3.1")
20023 (source (origin
20024 (method git-fetch)
20025 (uri (git-reference
20026 (url "https://github.com/ahungry/md4rd")
20027 (commit version)))
20028 (file-name (git-file-name name version))
20029 (sha256
20030 (base32
20031 "1n6g6k4adzkkn1g7z4j27s35xy12c1fg2r08gv345ddr3wplq4ri"))))
20032 (propagated-inputs
20033 (list emacs-hierarchy emacs-request emacs-dash emacs-s
20034 emacs-tree-mode))
20035 (build-system emacs-build-system)
20036 (home-page "https://github.com/ahungry/md4rd")
20037 (synopsis "Emacs Mode for Reddit")
20038 (description
20039 "This package allows reading Reddit from within Emacs interactively.")
20040 (license license:gpl3+)))
20041
20042 (define-public emacs-pulseaudio-control
20043 (let ((commit "a931533140547510decdc368f39b2d2b97ca725f")
20044 (revision "4"))
20045 (package
20046 (name "emacs-pulseaudio-control")
20047 (version (git-version "0.0.1" revision commit))
20048 (source
20049 (origin
20050 (method git-fetch)
20051 (uri (git-reference
20052 (url "https://github.com/flexibeast/pulseaudio-control")
20053 (commit commit)))
20054 (file-name (git-file-name name version))
20055 (sha256
20056 (base32
20057 "1jvjn9jszjjapi167an49jxcvr88cvgjwykglhp4b8lwhbjfqw76"))))
20058 (build-system emacs-build-system)
20059 (arguments
20060 '(#:phases (modify-phases %standard-phases
20061 (add-after 'unpack 'patch-file-name
20062 (lambda* (#:key inputs #:allow-other-keys)
20063 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
20064 (chmod "pulseaudio-control.el" #o600)
20065 (emacs-substitute-variables "pulseaudio-control.el"
20066 ("pulseaudio-control-pactl-path"
20067 (string-append pulseaudio "/bin/pactl")))
20068 #t))))))
20069 (inputs (list pulseaudio))
20070 (home-page "https://github.com/flexibeast/pulseaudio-control")
20071 (synopsis "Control @code{pulseaudio} from Emacs")
20072 (description
20073 "This package allows controlling @code{pulseaudio} from Emacs.")
20074 (license license:gpl3+))))
20075
20076 (define-public emacs-pulsar
20077 (package
20078 (name "emacs-pulsar")
20079 (version "0.4.0")
20080 (source (origin
20081 (method git-fetch)
20082 (uri (git-reference
20083 (url "https://git.sr.ht/~protesilaos/pulsar")
20084 (commit version)))
20085 (file-name (git-file-name name version))
20086 (sha256
20087 (base32
20088 "05ig8p3y5k20w4xy0ahaml9z0i0xyw6fkypzvz0mjpldhxl7dbxd"))))
20089 (native-inputs (list texinfo))
20090 (build-system emacs-build-system)
20091 (arguments
20092 (list
20093 #:phases
20094 #~(modify-phases %standard-phases
20095 (add-after 'install 'makeinfo
20096 (lambda _
20097 (invoke "emacs"
20098 "--batch"
20099 "--eval=(require 'ox-texinfo)"
20100 "--eval=(find-file \"README.org\")"
20101 "--eval=(org-texinfo-export-to-info)")
20102 (install-file "pulsar.info" (string-append #$output "/share/info")))))))
20103 (home-page "https://protesilaos.com/emacs/pulsar")
20104 (synopsis "Pulse highlight line on demand or after running select functions")
20105 (description "This package temporarily highlights the current line after a
20106 given function is invoked.")
20107 (license (list license:gpl3+
20108 license:fdl1.3+)))) ; GFDLv1.3+ for the manual
20109
20110 (define-public emacs-datetime
20111 (package
20112 (name "emacs-datetime")
20113 (version "0.7.2")
20114 (source
20115 (origin
20116 (method git-fetch)
20117 (uri (git-reference
20118 (url "https://github.com/doublep/datetime")
20119 (commit version)))
20120 (file-name (git-file-name name version))
20121 (sha256
20122 (base32 "10nf3y4abwkwvi4g11mdwi0dydy4kzfyv21y06dsxm1hc1gmq7zx"))))
20123 (build-system emacs-build-system)
20124 (arguments
20125 `(#:include (cons "^[^/]*\\.extmap$" %default-include)))
20126 (inputs
20127 (list emacs-extmap))
20128 (home-page "https://github.com/doublep/datetime/")
20129 (synopsis "Library to work with dates in Emacs")
20130 (description "Parsing, formatting, matching and recoding
20131 timestamps and date-time format strings library for Emacs.")
20132 (license license:gpl3+)))
20133
20134 (define-public emacs-org-mind-map
20135 ;; XXX: Upstream does not provide any tag. The commit below corresponds to
20136 ;; an exact version bump from the main file.
20137 (let ((commit "477701b15cb0c8ed7f021ca76a4cb1a7d9ad6aa5"))
20138 (package
20139 (name "emacs-org-mind-map")
20140 (version "0.4")
20141 (source
20142 (origin
20143 (method git-fetch)
20144 (uri (git-reference
20145 (url "https://github.com/theodorewiles/org-mind-map")
20146 (commit commit)))
20147 (file-name (git-file-name name version))
20148 (sha256
20149 (base32 "08sj43py6aid4vpqgsm0v5n94mcmcil0047qjk033492glz6q55c"))))
20150 (propagated-inputs
20151 (list emacs-dash))
20152 (build-system emacs-build-system)
20153 (home-page "https://github.com/theodorewiles/org-mind-map")
20154 (synopsis "Create Graphviz directed graphs from Org files")
20155 (description
20156 "This package creates Graphviz directed graphs from Org files.")
20157 (license license:gpl3+))))
20158
20159 (define-public emacs-npm-mode
20160 (package
20161 (name "emacs-npm-mode")
20162 (version "0.6.0")
20163 (source
20164 (origin
20165 (method git-fetch)
20166 (uri (git-reference
20167 (url "https://github.com/mojochao/npm-mode")
20168 (commit version)))
20169 (file-name (git-file-name name version))
20170 (sha256
20171 (base32 "1mh6nbffciw4yhv049kdhh796ysj1x21ndm3fwymhskb3dy0w1ss"))))
20172 (build-system emacs-build-system)
20173 (home-page "https://github.com/mojochao/npm-mode")
20174 (synopsis "Minor mode for working with @code{npm} projects")
20175 (description
20176 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
20177 (license license:gpl3+)))
20178
20179 (define-public emacs-itail
20180 ;; XXX: Upstream provides no tags. The commit below corresponds to an exact
20181 ;; version bump from main file.
20182 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888"))
20183 (package
20184 (name "emacs-itail")
20185 (version "0.0.8")
20186 (source
20187 (origin
20188 (method git-fetch)
20189 (uri (git-reference
20190 (url "https://github.com/re5et/itail")
20191 (commit commit)))
20192 (file-name (git-file-name name version))
20193 (sha256
20194 (base32 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
20195 (build-system emacs-build-system)
20196 (home-page "https://github.com/re5et/itail")
20197 (synopsis "Interactive @code{tail} Emacs mode")
20198 (description "@code{itail} provides interactive @code{tail} mode that
20199 allows you to filter the tail with Unix pipes and highlight the contents of
20200 the tailed file. It works locally or on remote files using Tramp.")
20201 (license license:gpl3+))))
20202
20203 (define-public emacs-loop
20204 (package
20205 (name "emacs-loop")
20206 (version "1.3")
20207 (source
20208 (origin
20209 (method git-fetch)
20210 (uri (git-reference
20211 (url "https://github.com/Wilfred/loop.el")
20212 (commit version)))
20213 (file-name (git-file-name name version))
20214 (sha256
20215 (base32 "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x"))))
20216 (build-system emacs-build-system)
20217 (native-inputs
20218 (list emacs-ert-runner emacs-undercover))
20219 (arguments
20220 `(#:tests? #t
20221 #:test-command '("ert-runner")))
20222 (home-page "https://github.com/Wilfred/loop.el")
20223 (synopsis "Imperative loop structures for Emacs")
20224 (description "Loop structures familiar to users of other languages. This
20225 library adds a selection of popular loop structures as well as break and
20226 continue.")
20227 (license license:gpl3+)))
20228
20229 (define-public emacs-elisp-refs
20230 (package
20231 (name "emacs-elisp-refs")
20232 (version "1.4")
20233 (source
20234 (origin
20235 (method git-fetch)
20236 (uri (git-reference
20237 (url "https://github.com/Wilfred/elisp-refs")
20238 (commit version)))
20239 (file-name (git-file-name name version))
20240 (sha256
20241 (base32 "03p95kwvwb3apb3lhhdlaxs952x7sdlxa2qc1c77cjwrm5xzdg9z"))))
20242 (build-system emacs-build-system)
20243 (propagated-inputs
20244 (list emacs-dash
20245 emacs-f
20246 emacs-list-utils
20247 emacs-loop
20248 emacs-s
20249 emacs-shut-up))
20250 (native-inputs
20251 (list emacs-ert-runner emacs-undercover))
20252 (arguments
20253 (list
20254 #:tests? #t
20255 #:test-command #~(list "ert-runner")))
20256 (home-page "https://github.com/Wilfred/elisp-refs")
20257 (synopsis "Find callers of elisp functions or macros")
20258 (description "@code{elisp-refs} finds references to functions, macros or
20259 variables. Unlike a dumb text search, it actually parses the code, so it's
20260 never confused by comments or @code{foo-bar} matching @code{foo}.")
20261 (license license:gpl3+)))
20262
20263 (define-public emacs-crdt
20264 ;; XXX: Upstream does not always tag new releases. The commit below
20265 ;; corresponds exactly to latest version bump.
20266 (let ((commit "480f60fdda9e40848920fa460b59dfba23fa06e5")
20267 (version "0.3.3"))
20268 (package
20269 (name "emacs-crdt")
20270 (version version)
20271 (source
20272 (origin
20273 (method git-fetch)
20274 (uri (git-reference
20275 (url "https://code.librehq.com/qhong/crdt.el")
20276 (commit commit)))
20277 (file-name (git-file-name name version))
20278 (sha256
20279 (base32 "10hb2xwv8ylkm4cla2q5l11r1m1s1j4ywiwvy9x5884gxvbpbbph"))))
20280 (build-system emacs-build-system)
20281 (home-page "https://code.librehq.com/qhong/crdt.el")
20282 (synopsis "Real-time collaborative editing environment")
20283 (description
20284 "@code{crdt.el} is a real-time collaborative editing environment for
20285 Emacs using Conflict-free Replicated Data Types. With it, you can share
20286 multiple buffer in one session, and see other users’ cursor and region. It
20287 also synchronizes Org mode folding status. It should work with all of Org
20288 mode.")
20289 (license license:gpl3+))))
20290
20291 (define-public emacs-crux
20292 (package
20293 (name "emacs-crux")
20294 (version "0.4.0")
20295 (source
20296 (origin
20297 (method git-fetch)
20298 (uri (git-reference
20299 (url "https://github.com/bbatsov/crux")
20300 (commit (string-append "v" version))))
20301 (file-name (git-file-name name version))
20302 (sha256
20303 (base32
20304 "1h28chpyq61k72qh749r5kqq1y70wx3xw9c3zyfzmy750wlw6nyj"))))
20305 (build-system emacs-build-system)
20306 (home-page "https://github.com/bbatsov/crux")
20307 (synopsis "Collection of useful functions for Emacs")
20308 (description
20309 "@code{crux} provides a collection of useful functions for Emacs.")
20310 (license license:gpl3+)))
20311
20312 (define-public emacs-edit-server
20313 (package
20314 (name "emacs-edit-server")
20315 (version "1.16")
20316 (source
20317 (origin
20318 (method git-fetch)
20319 (uri (git-reference
20320 (url "https://github.com/stsquad/emacs_chrome")
20321 (commit (string-append "v" version))))
20322 (file-name (git-file-name name version))
20323 (sha256
20324 (base32 "0m7gj224sqxjjw5sxky92fnrxg9jy4nf33kwf0aqxnfhqlgh545k"))))
20325 (build-system emacs-build-system)
20326 (arguments
20327 `(#:phases
20328 (modify-phases %standard-phases
20329 (add-after 'unpack 'chdir-elisp
20330 ;; Elisp directory is not in root of the source.
20331 (lambda _
20332 (chdir "servers"))))))
20333 (propagated-inputs (list emacs-ert-async))
20334 (home-page "https://github.com/stsquad/emacs_chrome")
20335 (synopsis "Server that responds to edit requests from Chromium")
20336 (description
20337 "This package provides an edit server to respond to requests from Emacs.")
20338 (license license:gpl3+)))
20339
20340 (define-public emacs-m-buffer-el
20341 (package
20342 (name "emacs-m-buffer-el")
20343 (version "0.15")
20344 (source
20345 (origin
20346 (method git-fetch)
20347 (uri (git-reference
20348 (url "https://github.com/phillord/m-buffer-el")
20349 (commit (string-append "v" version))))
20350 (file-name (git-file-name name version))
20351 (sha256
20352 (base32
20353 "1sx76i59razwccvn6x7rx5a124bfyjw9fcbxf4gj7nsg33qiq809"))))
20354 (arguments
20355 (list
20356 #:phases
20357 #~(modify-phases %standard-phases
20358 (add-before 'install 'check
20359 (lambda* (#:key tests? #:allow-other-keys)
20360 (when tests?
20361 (invoke "emacs" "--batch" "-L" "."
20362 "-l" "test/m-buffer-test.el"
20363 "-l" "test/m-buffer-at-test.el"
20364 "-f" "ert-run-tests-batch-and-exit")))))))
20365 (build-system emacs-build-system)
20366 (home-page "https://github.com/phillord/m-buffer-el")
20367 (synopsis "List oriented buffer operations for Emacs")
20368 (description "@code{m-buffer} provides a set of list-orientated functions
20369 for operating over the contents of Emacs buffers.")
20370 (license license:gpl3+)))
20371
20372 (define-public emacs-let-alist
20373 (package
20374 (name "emacs-let-alist")
20375 (version "1.0.6")
20376 (source
20377 (origin
20378 (method url-fetch)
20379 (uri (string-append
20380 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
20381 (sha256
20382 (base32 "0szj7vnjzz4zci5fvz7xqgcpi4pzdyyf4qi2s8xar2hi7v3yaawr"))))
20383 (build-system emacs-build-system)
20384 (home-page "https://elpa.gnu.org/packages/let-alist.html")
20385 (synopsis "Easily let-bind values of an assoc-list by their names")
20386 (description "This package offers a single macro, @code{let-alist}. This
20387 macro takes a first argument (whose value must be an alist) and a body.")
20388 (license license:gpl3+)))
20389
20390 (define-public emacs-esup
20391 (let ((commit "0de8af8233d9ce1b67f05a50f25c481c4f1118d8")
20392 (revision "1"))
20393 (package
20394 (name "emacs-esup")
20395 (version (git-version "0.7.1" revision commit))
20396 (source
20397 (origin
20398 (method git-fetch)
20399 (uri (git-reference
20400 (url "https://github.com/jschaf/esup")
20401 (commit commit)))
20402 (file-name (git-file-name name version))
20403 (sha256
20404 (base32
20405 "01khb3xyj0ylwib6ryzzvqmkh5wvzxiq2n3l0s3h9zv7wx849bzv"))))
20406 (build-system emacs-build-system)
20407 (native-inputs
20408 (list emacs-noflet emacs-undercover emacs-buttercup))
20409 (propagated-inputs
20410 (list emacs-dash))
20411 (arguments
20412 `(#:tests? #t
20413 #:test-command '("buttercup" "-L" ".")))
20414 (home-page "https://github.com/jschaf/esup")
20415 (synopsis "Emacs start up profiler")
20416 (description "Benchmark Emacs Startup time without ever leaving
20417 your Emacs.")
20418 (license license:gpl2+))))
20419
20420 (define-public emacs-restart-emacs
20421 (let ((commit "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9")
20422 (revision "1"))
20423 (package
20424 (name "emacs-restart-emacs")
20425 (version (git-version "0.1.1" revision commit))
20426 (source
20427 (origin
20428 (method git-fetch)
20429 (uri (git-reference
20430 (url "https://github.com/iqbalansari/restart-emacs")
20431 (commit commit)))
20432 (file-name (git-file-name name version))
20433 (sha256
20434 (base32 "02x1a85k7r95z8091zgjiaj9nf0zvx1jy4xvl3hr12qbnrx1wfav"))))
20435 (build-system emacs-build-system)
20436 (home-page "https://github.com/iqbalansari/restart-emacs")
20437 (synopsis "Restart Emacs from within Emacs")
20438 (description "This package provides a simple command to restart Emacs from
20439 within Emacs.")
20440 (license license:gpl3+))))
20441
20442 (define-public emacs-svg-lib
20443 ;; XXX: Upstream does not tag releases. The commit hash below corresponds
20444 ;; to the version bump.
20445 (let ((commit "0486c9453449771bc3f5872f70bc5cb23580d0f4"))
20446 (package
20447 (name "emacs-svg-lib")
20448 (version "0.2.5")
20449 (source
20450 (origin
20451 (method git-fetch)
20452 (uri (git-reference
20453 (url "https://github.com/rougier/svg-lib")
20454 (commit commit)))
20455 (file-name (git-file-name name version))
20456 (sha256
20457 (base32 "059vd4k7bvskkriwaiz4n2yafc3inndrr018hqfpic4k02cbwzpv"))))
20458 (build-system emacs-build-system)
20459 (home-page "https://github.com/rougier/svg-lib")
20460 (synopsis "Emacs SVG library for creating tags, icons and bars")
20461 (description
20462 "This is a small Emacs library to create and display various
20463 SVG objects, namely tags, progress bars, progress pies and icons.
20464 Each object is guaranteed to fit nicely in a text buffer ensuring
20465 width is an integer multiple of character width.")
20466 (license license:gpl3+))))
20467
20468 (define-public emacs-svg-tag-mode
20469 ;; XXX: Upstream does not tag releases. The commit hash below corresponds
20470 ;; to the version bump.
20471 (let ((commit "3b07983614bee0195534e7a8a6dcfab757da4f0b"))
20472 (package
20473 (name "emacs-svg-tag-mode")
20474 (version "0.3.2")
20475 (source
20476 (origin
20477 (method git-fetch)
20478 (uri (git-reference
20479 (url "https://github.com/rougier/svg-tag-mode")
20480 (commit commit)))
20481 (file-name (git-file-name name version))
20482 (sha256
20483 (base32 "0nc0y2dn67gy9cly3yamskfd9dd028xbask8gjxql934bq0ads2i"))))
20484 (build-system emacs-build-system)
20485 (propagated-inputs
20486 (list emacs-svg-lib))
20487 (home-page "https://github.com/rougier/svg-tag-mode")
20488 (synopsis "Replace keywords with SVG tags")
20489 (description "This package provides a minor mode that replaces keywords
20490 or expressions with SVG rounded box labels that are fully customizable.")
20491 (license license:gpl3+))))
20492
20493 (define-public emacs-kind-icon
20494 (package
20495 (name "emacs-kind-icon")
20496 (version "0.1.7")
20497 (source
20498 (origin
20499 (method url-fetch)
20500 (uri (string-append "https://elpa.gnu.org/packages/kind-icon-"
20501 version ".tar"))
20502 (sha256
20503 (base32 "02imi2qj329yrqvs23d4z7fv8bbaz0fvya6zdswb38blpdri4cn1"))))
20504 (build-system emacs-build-system)
20505 (propagated-inputs (list emacs-svg-lib))
20506 (home-page "https://github.com/jdtsmith/kind-icon")
20507 (synopsis "Completion kind icons in Emacs")
20508 (description "Kind-icon mode adds a colorful icon or text prefix based
20509 on :company-kind for compatible completion UIs. The \"kind\" prefix is
20510 typically used for differentiating completion candidates such as variables,
20511 functions, etc.")
20512 (license license:gpl3+)))
20513
20514 (define-public emacs-svg-icon
20515 (let ((commit "ebc2b8d0f6c680fd575a90e683cc7b832acd1eb7")
20516 (revision "1"))
20517 (package
20518 (name "emacs-svg-icon")
20519 (version (git-version "0.1" revision commit))
20520 (source
20521 (origin
20522 (method git-fetch)
20523 (uri (git-reference
20524 (url "https://github.com/rougier/emacs-svg-icon")
20525 (commit commit)))
20526 (file-name (git-file-name name version))
20527 (sha256
20528 (base32 "1qzqfa8xyw1nkb89kbvw9qcgdwr8g017n8gf3yzwn816qhkfkjrj"))))
20529 (build-system emacs-build-system)
20530 (home-page "https://github.com/rougier/emacs-svg-icon")
20531 (synopsis "Emacs library to create SVG icons on the fly")
20532 (description "This library allows creating SVG icons by parsing remote
20533 collections whose license are compatibles with Emacs. The default size of an
20534 icon is exactly 2x1 characters such that it can be inserted inside a text
20535 without disturbing alignment.")
20536 (license (list license:gpl3+)))))
20537
20538 (define-public emacs-sourcemap
20539 (package
20540 (name "emacs-sourcemap")
20541 (version "0.03")
20542 (source
20543 (origin
20544 (method git-fetch)
20545 (uri (git-reference
20546 (url "https://github.com/syohex/emacs-sourcemap")
20547 (commit version)))
20548 (file-name (git-file-name name version))
20549 (sha256
20550 (base32 "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582"))))
20551 (build-system emacs-build-system)
20552 (home-page "https://github.com/syohex/emacs-sourcemap")
20553 (synopsis "Sourcemap parser")
20554 (description "Sourcemap parser")
20555 (license license:gpl3+)))
20556
20557 (define-public emacs-macrostep
20558 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
20559 (package
20560 (name "emacs-macrostep")
20561 (version (git-version "0.9" "1" commit))
20562 (source (origin
20563 (method git-fetch)
20564 (uri (git-reference
20565 (url "https://github.com/joddie/macrostep")
20566 (commit commit)))
20567 (file-name (git-file-name name version))
20568 (sha256
20569 (base32
20570 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
20571 (build-system emacs-build-system)
20572 (arguments
20573 (list
20574 #:tests? #t
20575 #:phases
20576 #~(modify-phases %standard-phases
20577 (add-before 'check 'remove-test
20578 ;; Fails because of requirement ‘/bin/sh’.
20579 (lambda _
20580 (let ((file "macrostep-test.el"))
20581 (make-file-writable file)
20582 (emacs-batch-edit-file file
20583 `(progn (progn (goto-char (point-min))
20584 (re-search-forward
20585 "(ert-deftest macrostep-expand-c-macros")
20586 (beginning-of-line)
20587 (kill-sexp))
20588 (basic-save-buffer))))))
20589 (replace 'check
20590 (lambda* (#:key tests? #:allow-other-keys)
20591 (when tests?
20592 (invoke "emacs" "--batch" "-L" "."
20593 "-l" "macrostep-test.el"
20594 "-f" "ert-run-tests-batch-and-exit")))))))
20595 (home-page "https://github.com/joddie/macrostep")
20596 (synopsis "Interactive macro-expander for Emacs")
20597 (description "@code{macrostep} is an Emacs minor mode for interactively
20598 stepping through the expansion of macros in Emacs Lisp source code. It lets
20599 you see exactly what happens at each step of the expansion process by
20600 pretty-printing the expanded forms inline in the source buffer, which is
20601 temporarily read-only while macro expansions are visible. You can expand and
20602 collapse macro forms one step at a time, and evaluate or instrument the
20603 expansions for debugging with Edebug as normal.")
20604 (license license:gpl3+))))
20605
20606 (define-public emacs-parent-mode
20607 (package
20608 (name "emacs-parent-mode")
20609 (version "2.3")
20610 (source
20611 (origin
20612 (method git-fetch)
20613 (uri (git-reference
20614 (url "https://github.com/Fanael/parent-mode")
20615 (commit version)))
20616 (file-name (git-file-name name version))
20617 (sha256
20618 (base32 "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni"))))
20619 (build-system emacs-build-system)
20620 (home-page "https://github.com/Fanael/parent-mode")
20621 (synopsis "Get major mode's parent modes")
20622 (description "Get major mode's parent modes")
20623 (license license:gpl3+)))
20624
20625 (define-public emacs-lacarte
20626 (package
20627 (name "emacs-lacarte")
20628 (version "0.1")
20629 (source (origin
20630 (method url-fetch)
20631 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
20632 (sha256
20633 (base32
20634 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
20635 (build-system emacs-build-system)
20636 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
20637 (synopsis "Execute menu items as commands, with completion")
20638 (description "Execute menu items as commands, with completion.")
20639 (license license:gpl3)))
20640
20641 (define-public emacs-latex-preview-pane
20642 (let ((commit "5297668a89996b50b2b62f99cba01cc544dbed2e")
20643 (revision "0"))
20644 (package
20645 (name "emacs-latex-preview-pane")
20646 (version (git-version "20151021" revision commit))
20647 (source (origin
20648 (method git-fetch)
20649 (uri (git-reference
20650 (url "https://github.com/jsinglet/latex-preview-pane")
20651 (commit commit)))
20652 (file-name (git-file-name name version))
20653 (sha256
20654 (base32
20655 "1m4f5p53275k8i9p0y105kkrp9nx1bwn6726my9s5dwnjhr5dnp2"))))
20656 (build-system emacs-build-system)
20657 (arguments
20658 (list
20659 ;; The welcome and error message templates are in .txt format.
20660 #:include #~(cons "\\.txt$" %default-include)))
20661 (home-page "https://github.com/jsinglet/latex-preview-pane")
20662 (synopsis "Preview pane to ease LaTeX editing in Emacs")
20663 (description "@code{latex-preview-pane} is a minor mode for previewing
20664 LaTeX files directly in Emacs. It supports PDF previews, with either
20665 @command{pdflatex} or @command{xelatex}, and highlights errors in the LaTeX
20666 buffer.")
20667 (license license:gpl3+))))
20668
20669 (define-public emacs-isearch-prop
20670 (let ((commit "4a2765f835dd115d472142da05215c4c748809f4")
20671 (revision "2"))
20672 (package
20673 (name "emacs-isearch-prop")
20674 (version (git-version "0" revision commit))
20675 (source
20676 (origin
20677 (method git-fetch)
20678 (uri (git-reference
20679 (url "https://github.com/emacsmirror/isearch-prop")
20680 (commit commit)))
20681 (file-name (git-file-name name version))
20682 (sha256
20683 (base32
20684 "06gdk5m84q6pxwng8rjxny1zkll8f3m2x6lw4xyib2dvg7iaslh3"))))
20685 (build-system emacs-build-system)
20686 (home-page "https://www.emacswiki.org/emacs/isearch-prop.el")
20687 (synopsis "Extensions to @code{isearch.el}")
20688 (description "The Emacs library @code{isearch-prop.el} lets you search within
20689 contexts. You can limit incremental search to a set of zones of
20690 buffer text, search contexts that in effect constitute a multi-region.
20691 These zones can be defined in various ways, including some ways
20692 provided specially by this library.")
20693 (license license:gpl3+))))
20694
20695 (define-public emacs-company-lua
20696 (let ((commit "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52")
20697 (revision "2"))
20698 (package
20699 (name "emacs-company-lua")
20700 (version (git-version "0.1" "2" commit))
20701 (source
20702 (origin
20703 (method git-fetch)
20704 (uri (git-reference
20705 (url "https://github.com/ptrv/company-lua")
20706 (commit commit)))
20707 (file-name (git-file-name name version))
20708 (sha256
20709 (base32
20710 "0ny2dcc7c585p7v3j6q0rpkbj1qmf2ismy8a5020jpr585xvz0hh"))))
20711 (build-system emacs-build-system)
20712 (propagated-inputs
20713 (list emacs-company emacs-s emacs-f emacs-lua-mode))
20714 (arguments
20715 `(#:include (cons* "^lua\\/" %default-include)))
20716 (home-page "https://github.com/ptrv/company-lua")
20717 (synopsis "Company backend for Lua")
20718 (description
20719 "This package provides Company backend for Lua programming language.")
20720 (license license:gpl3+))))
20721
20722 (define-public emacs-beginend
20723 (package
20724 (name "emacs-beginend")
20725 (version "2.3.0")
20726 (source
20727 (origin
20728 (method git-fetch)
20729 (uri (git-reference
20730 (url "https://github.com/DamienCassou/beginend")
20731 (commit (string-append "v" version))))
20732 (file-name (git-file-name name version))
20733 (sha256
20734 (base32 "17r8v1sjvgcmprywny9fdg54x4pssp8p7a9ivv5mrygkqjz1vykk"))))
20735 ;; TODO: Run tests.
20736 (build-system emacs-build-system)
20737 (inputs
20738 (list emacs-undercover)) ; For tests.
20739 (home-page "https://github.com/DamienCassou/beginend")
20740 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
20741 (description "@code{beginend} redefines @code{M-<} and @code{M->}
20742 keybindings for Emacs modes so that point moves to meaningful
20743 locations. Redefined keys are still accessible by pressing the same
20744 key again.")
20745 (license license:gpl3+)))
20746
20747 (define-public emacs-mbsync
20748 (let ((commit "b62491c0e0d89eb9c66261a16d7ac81231c9c453")
20749 (revision "4"))
20750 (package
20751 (name "emacs-mbsync")
20752 (version (git-version "0.1.2" revision commit))
20753 (source
20754 (origin
20755 (method git-fetch)
20756 (uri (git-reference
20757 (url "https://github.com/dimitri/mbsync-el")
20758 (commit commit)))
20759 (file-name (git-file-name name version))
20760 (sha256
20761 (base32
20762 "1zlih37mkqjn2czl12zn7lgxxljvrwhqqpbksj9c91zn0f0rm3mz"))))
20763 (build-system emacs-build-system)
20764 (home-page "https://github.com/dimitri/mbsync-el")
20765 (synopsis "Interface to mbsync for Emacs")
20766 (description "This package calls @code{mbsync} from
20767 within Emacs.")
20768 (license license:gpl3+))))
20769
20770 (define-public emacs-ibuffer-projectile
20771 (package
20772 (name "emacs-ibuffer-projectile")
20773 (version "0.3")
20774 (source
20775 (origin
20776 (method git-fetch)
20777 (uri (git-reference
20778 (url "https://github.com/purcell/ibuffer-projectile")
20779 (commit version)))
20780 (file-name (git-file-name name version))
20781 (sha256
20782 (base32
20783 "18cqxnwzzbkcj9jcaw89b210432yzhrl1dwsv48p0jbhfnr17k41"))))
20784 (build-system emacs-build-system)
20785 (propagated-inputs
20786 (list emacs-projectile))
20787 (home-page "https://github.com/purcell/ibuffer-projectile")
20788 (synopsis "Group ibuffer's list by projectile root")
20789 (description "Adds functionality to Emacs @code{ibuffer} for
20790 grouping buffers by their projectile root directory.")
20791 (license license:gpl3+)))
20792
20793 (define-public emacs-ibuffer-vc
20794 (package
20795 (name "emacs-ibuffer-vc")
20796 (version "0.11")
20797 (source
20798 (origin
20799 (method git-fetch)
20800 (uri (git-reference
20801 (url "https://github.com/purcell/ibuffer-vc")
20802 (commit version)))
20803 (file-name (git-file-name name version))
20804 (sha256
20805 (base32 "1mgn7b786j4hwq1ks012hxxgvrfn5rz90adi2j190gmjz60rc5g5"))))
20806 (build-system emacs-build-system)
20807 (home-page "https://github.com/purcell/ibuffer-vc")
20808 (synopsis "Group Ibuffer's list by revision control system indications")
20809 (description
20810 "Ibuffer-VC adds functionality to Ibuffer for grouping buffers by their
20811 parent revision control system root directory, and for displaying, or sorting,
20812 by the status of listed files.")
20813 (license license:gpl3+)))
20814
20815 (define-public emacs-elm-mode
20816 (package
20817 (name "emacs-elm-mode")
20818 (version "0.22.0")
20819 (source
20820 (origin
20821 (method git-fetch)
20822 (uri
20823 (git-reference
20824 (url "https://github.com/jcollard/elm-mode")
20825 (commit (string-append "v" version))))
20826 (file-name (git-file-name name version))
20827 (sha256
20828 (base32 "1gnr61ibzcznfqy5f8capmbz75rcfikwy106rjdmp45qz2jwp4di"))))
20829 (propagated-inputs
20830 (list emacs-dash emacs-f emacs-reformatter emacs-s))
20831 (build-system emacs-build-system)
20832 (home-page "https://github.com/jcollard/elm-mode")
20833 (synopsis "Emacs major mode for editing Elm source code")
20834 (description
20835 "This package provides a major mode for editing Elm source code, and
20836 working with common core and third-party Elm tools. Its features are:
20837
20838 @itemize
20839 @item Syntax highlighting
20840 @item Intelligent indentation
20841 @item Integration with elm-make
20842 @item Integration with elm-repl
20843 @item Integration with elm-reactor
20844 @item Integration with elm-package
20845 @item Integration with elm-oracle
20846 @item Integration with elm-format
20847 @item Integration with elm-test
20848 @end itemize")
20849 (license license:gpl3+)))
20850
20851 (define-public emacs-helm-mode-manager
20852 (package
20853 (name "emacs-helm-mode-manager")
20854 (version "1.0.0")
20855 (source
20856 (origin
20857 (method git-fetch)
20858 (uri (git-reference
20859 (url "https://github.com/istib/helm-mode-manager")
20860 (commit version)))
20861 (file-name (git-file-name name version))
20862 (sha256
20863 (base32
20864 "1srx5f0s9x7zan7ayqd6scxfhcvr3nkd4yzs96hphd87rb18apzk"))))
20865 (build-system emacs-build-system)
20866 (propagated-inputs
20867 (list emacs-helm))
20868 (home-page "https://github.com/istib/helm-mode-manager/")
20869 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
20870 (description "This package provides a Helm interface for toggling Emacs
20871 major or minor mode.
20872
20873 @itemize
20874 @item @code{helm-switch-major-mode} list of all major modes
20875 @item @code{helm-enable-minor-mode} list of all inactive minor modes
20876 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
20877 @end itemize\n
20878
20879 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
20880 documentation.")
20881 (license license:gpl3+)))
20882
20883 (define-public emacs-hy-mode
20884 (package
20885 (name "emacs-hy-mode")
20886 (version "1.0.4")
20887 (source
20888 (origin
20889 (method git-fetch)
20890 (uri (git-reference
20891 (url "https://github.com/hylang/hy-mode")
20892 (commit (string-append "v" version))))
20893 (file-name (git-file-name name version))
20894 (sha256
20895 (base32 "0gihxlmfminadaqdr8d2zccd7wwygl3m0gfzxsk5izi7f8hl4w7f"))))
20896 (build-system emacs-build-system)
20897 (propagated-inputs
20898 (list emacs-dash emacs-s))
20899 (home-page "https://github.com/hylang/hy-mode")
20900 (synopsis "Major mode for Hylang")
20901 (description "This package provides a major mode for Hylang.")
20902 (license license:gpl3+)))
20903
20904 (define-public emacs-web-beautify
20905 (package
20906 (name "emacs-web-beautify")
20907 (version "0.3.2")
20908 (source
20909 (origin
20910 (method git-fetch)
20911 (uri (git-reference
20912 (url "https://github.com/yasuyk/web-beautify")
20913 (commit version)))
20914 (file-name (git-file-name name version))
20915 (sha256
20916 (base32 "0vms7zz3ym53wf1zdrkbf2ky2xjr1v134ngsd0jr8azyi8siw84d"))))
20917 (build-system emacs-build-system)
20918 (home-page "https://github.com/yasuyk/web-beautify")
20919 (synopsis "Format HTML, CSS and JavaScript, JSON")
20920 (description "This package provides an Emacs functions to format HTML,
20921 CSS, JavaScript, JSON.")
20922 (license license:gpl3+)))
20923
20924 (define-public emacs-helm-shell-history
20925 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
20926 (package
20927 (name "emacs-helm-shell-history")
20928 (version (git-version "0.1" "1" commit))
20929 (source
20930 (origin
20931 (method git-fetch)
20932 (uri (git-reference
20933 (url "https://github.com/yuutayamada/helm-shell-history")
20934 (commit commit)))
20935 (file-name (git-file-name name version))
20936 (sha256
20937 (base32
20938 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
20939 (build-system emacs-build-system)
20940 (arguments
20941 '(#:phases
20942 (modify-phases %standard-phases
20943 (add-before 'check 'patch-helm-shell-history-file
20944 (lambda _
20945 (let ((file "helm-shell-history.el"))
20946 (chmod file #o644)
20947 (emacs-substitute-sexps file
20948 ("(defvar helm-shell-history-file"
20949 `(expand-file-name "~/.bash_history"))))
20950 #t)))))
20951 (propagated-inputs
20952 (list emacs-helm))
20953 (home-page "https://github.com/yuutayamada/helm-shell-history")
20954 (synopsis "Find shell history with Emacs Helm")
20955 (description "This package provides an Emacs Helm interface to search
20956 throw a shell history.")
20957 (license license:gpl3+))))
20958
20959 (define-public emacs-discover-my-major
20960 (package
20961 (name "emacs-discover-my-major")
20962 (version "1.0")
20963 (source
20964 (origin
20965 (method git-fetch)
20966 (uri (git-reference
20967 (url "https://framagit.org/steckerhalter/discover-my-major.git/")
20968 (commit version)))
20969 (file-name (git-file-name name version))
20970 (sha256
20971 (base32
20972 "1wlqyl03hhnflbyay3qlvdzqzvv5rbybcjpfddggda7ias9h0pr4"))))
20973 (build-system emacs-build-system)
20974 (propagated-inputs
20975 (list emacs-makey))
20976 (home-page "https://framagit.org/steckerhalter/discover-my-major/")
20977 (synopsis "Discover key bindings for the current Emacs major mode")
20978 (description "This package discovers key bindings and
20979 their meaning for the current Emacs major-mode.")
20980 (license license:gpl3+)))
20981
20982 (define-public emacs-org-ref
20983 (package
20984 (name "emacs-org-ref")
20985 (version "2.0.0")
20986 (source
20987 (origin
20988 (method git-fetch)
20989 (uri (git-reference
20990 (url "https://github.com/jkitchin/org-ref")
20991 (commit (string-append "v" version))))
20992 (file-name (git-file-name name version))
20993 (sha256
20994 (base32 "0xd1qp8dfy8n8b2n3rsdzm8vrfl7dii142kw330s8jp3pavww1f6"))))
20995 (build-system emacs-build-system)
20996 (propagated-inputs
20997 (list emacs-dash
20998 emacs-f
20999 emacs-helm
21000 emacs-helm-bibtex
21001 emacs-htmlize
21002 emacs-hydra
21003 emacs-ivy
21004 emacs-key-chord
21005 emacs-pdf-tools
21006 emacs-s))
21007 (home-page "https://github.com/jkitchin/org-ref")
21008 (synopsis "Citations, cross-references and bibliographies in Org mode")
21009 (description
21010 "Org Ref is an Emacs library that provides rich support for citations,
21011 labels and cross-references in Org mode.
21012
21013 The basic idea of Org Ref is that it defines a convenient interface to insert
21014 citations from a reference database (e.g., from BibTeX files), and a set of
21015 functional Org links for citations, cross-references and labels that export
21016 properly to LaTeX, and that provide clickable functionality to the user. Org
21017 Ref interfaces with Helm BibTeX to facilitate citation entry, and it can also
21018 use RefTeX.
21019
21020 It also provides a fairly large number of utilities for finding bad citations,
21021 extracting BibTeX entries from citations in an Org file, and functions to
21022 create and modify BibTeX entries from a variety of sources, most notably from
21023 a DOI.
21024
21025 Org Ref is especially suitable for Org documents destined for LaTeX export and
21026 scientific publication. Org Ref is also useful for research documents and
21027 notes.")
21028 (license license:gpl3+)))
21029
21030 (define-public emacs-org-reveal
21031 (let ((commit "fe9148b670d144124d9697fcf5d0528f19025104"))
21032 (package
21033 (name "emacs-org-reveal")
21034 (version (git-version "20210902" "1" commit))
21035 (source (origin
21036 (method git-fetch)
21037 (uri (git-reference
21038 (url "https://github.com/yjwen/org-reveal")
21039 (commit commit)))
21040 (file-name (git-file-name name version))
21041 (sha256
21042 (base32
21043 "034gkbc03z9jzj7ad34mmqgmvj4f14ap7iixh3zx4wp2ipw5xb7c"))))
21044 (build-system emacs-build-system)
21045 (home-page "https://github.com/yjwen/org-reveal")
21046 (synopsis "Org and Reveal.js powered HTML presentation tool")
21047 (description "Org-Reveal is a @command{org-mode} extension that allows
21048 to create beautiful presentations (slides) with 3D effects from simple but
21049 powerful Org contents.")
21050 (license license:gpl3+))))
21051
21052 (define-public emacs-org-re-reveal
21053 (package
21054 (name "emacs-org-re-reveal")
21055 (version "3.15.0")
21056 (source
21057 (origin
21058 (method git-fetch)
21059 (uri (git-reference
21060 (url "https://gitlab.com/oer/org-re-reveal")
21061 (commit version)))
21062 (file-name (git-file-name name version))
21063 (sha256
21064 (base32 "0mn7qn80289gizvnxyjjs00b7qmlf0692kai7qgzgfj6i87pjc38"))))
21065 (build-system emacs-build-system)
21066 (propagated-inputs
21067 (list emacs-htmlize emacs-org))
21068 (home-page "https://gitlab.com/oer/org-re-reveal")
21069 (synopsis "Build HTML presentations with reveal.js from Org source files")
21070 (description "This project started as fork of org-reveal. It provides an
21071 export back-end for HTML presentations with reveal.js from Org mode source
21072 files.")
21073 (license license:gpl3+)))
21074
21075 (define-public emacs-add-hooks
21076 (package
21077 (name "emacs-add-hooks")
21078 (version "3.1.1")
21079 (source
21080 (origin
21081 (method git-fetch)
21082 (uri (git-reference
21083 (url "https://github.com/nickmccurdy/add-hooks")
21084 (commit version)))
21085 (file-name (git-file-name name version))
21086 (sha256
21087 (base32 "1jv9fpcsm572zg0j1mbpbfkqgdlqapy89xhhj19pswkhjns1y2wl"))))
21088 (build-system emacs-build-system)
21089 (home-page "https://github.com/nickmccurdy/add-hooks/")
21090 (synopsis "Emacs function for setting multiple hooks")
21091 (description "This package provides a @code{add-hooks} function tidies up
21092 duplicate hook and function names further into a single declarative call.")
21093 (license license:gpl3+)))
21094
21095 (define-public emacs-fancy-battery
21096 (package
21097 (name "emacs-fancy-battery")
21098 (version "0.2")
21099 (source
21100 (origin
21101 (method git-fetch)
21102 (uri (git-reference
21103 (url "https://github.com/emacsorphanage/fancy-battery")
21104 (commit version)))
21105 (file-name (git-file-name name version))
21106 (sha256
21107 (base32 "05lwcwf412m717yhwpjrswqkm8c3i7391rmiwv2k8xc1vk6dpp4g"))))
21108 (build-system emacs-build-system)
21109 (home-page "https://github.com/emacsorphanage/fancy-battery")
21110 (synopsis "Display battery status in Emacs mode line")
21111 (description "This package provides @code{fancy-battery-mode} which is
21112 like the built-in @code{display-battery-mode}, but more fancy. It just the
21113 remaining time, uses colours to indicate the status of the battery, and is
21114 more customizable.")
21115 (license license:gpl3)))
21116
21117 (define-public emacs-fancy-narrow
21118 (package
21119 (name "emacs-fancy-narrow")
21120 (version "0.9.5")
21121 (source
21122 (origin
21123 (method git-fetch)
21124 (uri (git-reference
21125 (url "https://github.com/Malabarba/fancy-narrow")
21126 (commit version)))
21127 (file-name (git-file-name name version))
21128 (sha256
21129 (base32 "0vcr1gnqawvc1yclqs23jvxm6bqix8kpflf1c7znb0wzxmz9kx7y"))))
21130 (build-system emacs-build-system)
21131 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
21132 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
21133 (description
21134 "Unlike @code{narrow-to-region}, which completely hides text outside
21135 the narrowed region, this package simply de-emphasizes the text, makes it
21136 read-only, and makes it unreachable. This leads to a much more natural
21137 feeling where the region stays static (instead of being brutally moved to a
21138 blank slate) and is clearly highlighted with respect to the rest of the
21139 buffer.")
21140 (license license:gpl2+)))
21141
21142 (define-public emacs-hideshowvis
21143 (let ((commit "614e856620445166a60c00a1c4653dbd59c871c9")
21144 (revision "1"))
21145 (package
21146 (name "emacs-hideshowvis")
21147 (version (git-version "0.7" revision commit))
21148 (source (origin
21149 (method git-fetch)
21150 (uri (git-reference
21151 (url "https://github.com/sheijk/hideshowvis")
21152 (commit commit)))
21153 (file-name (git-file-name name version))
21154 (sha256
21155 (base32
21156 "0ykj5jwcm03p5h7sd52qndmzihyan09lqg6rzgmyabvw7p56y90m"))))
21157 (build-system emacs-build-system)
21158 (home-page "https://github.com/sheijk/hideshowvis")
21159 (synopsis "Add icons in the Emacs fringe which @code{hideshow} can hide")
21160 (description "Emacs package to add clickable icons in the fringe for
21161 regions which @code{hideshow} can hide.")
21162 (license license:gpl2+))))
21163
21164 (define-public emacs-know-your-http-well
21165 (package
21166 (name "emacs-know-your-http-well")
21167 (version "0.5.0")
21168 (source
21169 (origin
21170 (method git-fetch)
21171 (uri (git-reference
21172 (url "https://github.com/for-GET/know-your-http-well")
21173 (commit (string-append "v" version))))
21174 (file-name (git-file-name name version))
21175 (sha256
21176 (base32 "1lppggnii2r9fvlhh33gbdrwb50za8lnalavlq9s86ngndn4n94k"))))
21177 (arguments
21178 `(#:phases
21179 (modify-phases %standard-phases
21180 (add-after 'unpack 'install-json-files
21181 (lambda* (#:key outputs #:allow-other-keys)
21182 (for-each (lambda (directory)
21183 (copy-recursively directory
21184 (string-append
21185 (assoc-ref outputs "out")
21186 directory)))
21187 '("js" "json"))))
21188 (add-after 'unpack 'chdir-elisp
21189 ;; Elisp directory is not in root of the source.
21190 (lambda _
21191 (chdir "emacs"))))))
21192 (build-system emacs-build-system)
21193 (home-page "https://github.com/for-GET/know-your-http-well")
21194 (synopsis "Meaning of HTTP headers codes")
21195 (description "Meaning of HTTP headers codes.")
21196 (license license:gpl3+)))
21197
21198 (define-public emacs-navi-mode
21199 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
21200 (package
21201 (name "emacs-navi-mode")
21202 (version (git-version "2.0" "1" commit))
21203 (source
21204 (origin
21205 (method git-fetch)
21206 (uri (git-reference
21207 (url "https://github.com/alphapapa/navi")
21208 (commit commit)))
21209 (file-name (git-file-name name version))
21210 (sha256
21211 (base32
21212 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
21213 (build-system emacs-build-system)
21214 (propagated-inputs
21215 (list emacs-outshine emacs-outorg))
21216 (home-page "https://github.com/alphapapa/navi")
21217 (synopsis "Emacs major-mode for easy buffer-navigation")
21218 (description
21219 "This package provides an Emacs major-mode for easy buffer-navigation")
21220 (license license:gpl3+))))
21221
21222 (define-public emacs-download-region
21223 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
21224 (revision "1"))
21225 (package
21226 (name "emacs-download-region")
21227 (version (string-append "0.0.1" "-" revision "."
21228 (string-take commit 7)))
21229 (source
21230 (origin
21231 (method git-fetch)
21232 (uri (git-reference
21233 (url "https://github.com/zk-phi/download-region")
21234 (commit commit)))
21235 (file-name (git-file-name name version))
21236 (sha256
21237 (base32
21238 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
21239 (build-system emacs-build-system)
21240 (home-page "https://github.com/zk-phi/download-region")
21241 (synopsis "In buffer download manager for Emacs")
21242 (description "@code{download-region} provides in buffer
21243 downloading manager for Emacs.")
21244 (license license:gpl3+))))
21245
21246 (define-public emacs-helpful
21247 (package
21248 (name "emacs-helpful")
21249 (version "0.19")
21250 (source
21251 (origin
21252 (method git-fetch)
21253 (uri (git-reference
21254 (url "https://github.com/Wilfred/helpful")
21255 (commit version)))
21256 (file-name (git-file-name name version))
21257 (sha256
21258 (base32 "0qwsifzsjw95l83m7z07fr9h1sqbhggwmcps1qgbddpan2a8ab8a"))
21259 ;; Cherry-picked from upstream, remove when bumping to 0.20.
21260 (patches (search-patches "emacs-helpful-fix-docstring-test.patch"))))
21261 (build-system emacs-build-system)
21262 (propagated-inputs
21263 (list emacs-elisp-refs emacs-dash emacs-s emacs-f emacs-shut-up))
21264 (native-inputs
21265 (list emacs-ert-runner emacs-undercover))
21266 (arguments
21267 `(#:tests? #t
21268 #:test-command '("ert-runner")))
21269 (home-page "https://github.com/Wilfred/helpful")
21270 (synopsis "More contextual information in Emacs help")
21271 (description "@code{helpful} is an alternative to the built-in Emacs help
21272 that provides much more contextual information.
21273
21274 @itemize
21275 @item Show the source code for interactively defined functions (unlike the
21276 built-in Help).
21277 @item Fall back to the raw sexp if no source is available.
21278 @item Show where a function is being called.
21279 @item Docstrings will Highlight the summary (the first sentence), include
21280 cross-references, hide superfluous puncuation.
21281 @item Show you the properties that have been applied to the current
21282 symbol. This provides visibility of features like edebug or byte-code
21283 optimisation.
21284 @item Provide a separate @code{helpful-command} function to view interactive
21285 functions.
21286 @item Display any keybindings that apply to interactive functions.
21287 @item Trace, disassemble functions from inside Helpful. This is discoverable
21288 and doesn't require memorisation of commands.
21289 @end itemize\n")
21290 (license license:gpl3+)))
21291
21292 (define-public emacs-logview
21293 (package
21294 (name "emacs-logview")
21295 (version "0.15.1")
21296 (source
21297 (origin
21298 (method git-fetch)
21299 (uri (git-reference
21300 (url "https://github.com/doublep/logview")
21301 (commit version)))
21302 (file-name (git-file-name name version))
21303 (sha256
21304 (base32 "1khri5632pjirj191x3ps94s4pyrwapf1pbrkmqqp0d26b50d3s2"))))
21305 (propagated-inputs
21306 (list emacs-datetime emacs-extmap))
21307 (build-system emacs-build-system)
21308 (home-page "https://github.com/doublep/logview/")
21309 (synopsis "Emacs mode for viewing log files")
21310 (description "@code{logview} provides an Emacs mode to view log files.")
21311 (license license:gpl3+)))
21312
21313 (define-public emacs-suggest
21314 (package
21315 (name "emacs-suggest")
21316 (version "0.7")
21317 (home-page "https://github.com/Wilfred/suggest.el")
21318 (source
21319 (origin
21320 (method git-fetch)
21321 (uri (git-reference
21322 (url home-page)
21323 (commit version)))
21324 (file-name (git-file-name name version))
21325 (sha256
21326 (base32
21327 "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"))))
21328 (build-system emacs-build-system)
21329 (propagated-inputs
21330 (list emacs-loop
21331 emacs-dash
21332 emacs-s
21333 emacs-f
21334 emacs-spinner
21335 emacs-shut-up))
21336 (native-inputs
21337 (list emacs-ert-runner emacs-undercover))
21338 (arguments
21339 `(#:tests? #t
21340 #:test-command '("ert-runner")))
21341 (synopsis "Suggest Elisp functions that give the output requested")
21342 (description "Suggest.el will find functions that give the output
21343 requested. It's a great way of exploring list, string and arithmetic
21344 functions.")
21345 (license license:gpl3+)))
21346
21347 (define-public emacs-benchmark-init
21348 (let ((commit "02435560415bbadbcf5051fb7042880549170e7e")
21349 (revision "1"))
21350 (package
21351 (name "emacs-benchmark-init")
21352 (version (git-version "1.0" revision commit))
21353 (source
21354 (origin
21355 (method git-fetch)
21356 (uri (git-reference
21357 (url "https://github.com/dholm/benchmark-init-el")
21358 (commit commit)))
21359 (file-name (git-file-name name version))
21360 (sha256
21361 (base32 "19375vamhld4xm2qrdmhlp2nczfvalmz9x6ahl23zwkilr8n1nbw"))))
21362 (build-system emacs-build-system)
21363 (home-page "https://github.com/dholm/benchmark-init-el")
21364 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
21365 (description "@code{benchmark-init} provides a way to keep track of where
21366 time is being spent during Emacs startup in order to optimize startup time.")
21367 (license license:gpl3+))))
21368
21369 (define-public emacs-magit-gerrit
21370 (package
21371 (name "emacs-magit-gerrit")
21372 (version "0.4")
21373 (source
21374 (origin
21375 (method git-fetch)
21376 (uri (git-reference
21377 (url "https://github.com/terranpro/magit-gerrit")
21378 (commit (string-append "v" version))))
21379 (file-name (git-file-name name version))
21380 (sha256
21381 (base32 "1q4kcr2ha2kir7pj0cshmgllgq51543syxkkk5jk3ksfiaba4crj"))))
21382 (build-system emacs-build-system)
21383 (propagated-inputs
21384 (list emacs-magit))
21385 (home-page "https://github.com/terranpro/magit-gerrit")
21386 (synopsis "Magit extension for Gerrit")
21387 (description "This Magit extension provides integration with Gerrit,
21388 which makes it possible to conduct Gerrit code reviews directly from within
21389 Emacs.")
21390 (license license:gpl3+)))
21391
21392 (define-public emacs-magit-org-todos-el
21393 (package
21394 (name "emacs-magit-org-todos-el")
21395 (version "0.1.2")
21396 (source
21397 (origin
21398 (method git-fetch)
21399 (uri (git-reference
21400 (url "https://github.com/danielma/magit-org-todos.el")
21401 (commit version)))
21402 (file-name (git-file-name name version))
21403 (sha256
21404 (base32
21405 "07r5x256k1fjjxs1yfg41kc94nwvnjlk2vvknkra3j8v9p0j88m7"))))
21406 (propagated-inputs
21407 (list emacs-magit))
21408 (build-system emacs-build-system)
21409 (home-page "https://github.com/danielma/magit-org-todos.el")
21410 (synopsis "Get todo.org into Emacs Magit status")
21411 (description "This package allows you to get @file{todo.org} into your
21412 magit status.
21413
21414 If you have a @file{todo.org} file with @code{TODO} items in the root of your
21415 repository, @code{magit-org-todos} will create a section in your Magit status
21416 buffer with each of your todos.")
21417 (license license:gpl3+)))
21418
21419 (define-public emacs-vcsh
21420 (package
21421 (name "emacs-vcsh")
21422 (version "0.4.4")
21423 (source
21424 (origin
21425 (method git-fetch)
21426 (uri (git-reference
21427 (url "https://gitlab.com/stepnem/vcsh-el.git")
21428 (commit version)))
21429 (file-name (git-file-name name version))
21430 (sha256
21431 (base32 "183pffdiqb7qqmjq31wxl3fpv8qswqgg99gb716rddiyk15ysri7"))))
21432 (build-system emacs-build-system)
21433 (home-page "https://gitlab.com/stepnem/vcsh-el")
21434 (synopsis "Emacs VCSH integration")
21435 (description
21436 "This library provides basic ``enter'' functionality and a few
21437 convenience commands to initialize a @acronym{VCSH, Version Control System for
21438 $HOME} repository and add files to it. It can be used in conjunction with
21439 Magit.")
21440 (license license:public-domain)))
21441
21442 (define-public emacs-f3
21443 (package
21444 (name "emacs-f3")
21445 (version "0.1")
21446 (source
21447 (origin
21448 (method git-fetch)
21449 (uri (git-reference
21450 (url "https://github.com/cosmicexplorer/f3")
21451 (commit version)))
21452 (file-name (git-file-name name version))
21453 (sha256
21454 (base32 "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi"))))
21455 (build-system emacs-build-system)
21456 (propagated-inputs
21457 (list emacs-helm))
21458 (home-page "https://github.com/cosmicexplorer/f3")
21459 (synopsis "Fantastic File Finder for Emacs")
21460 (description
21461 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
21462 (license license:gpl3+)))
21463
21464 (define-public emacs-lice-el
21465 (let ((commit "482e58ab83fff86ed754b00be27b62a219597e7c"))
21466 (package
21467 (name "emacs-lice-el")
21468 (version (git-version "0.2" "2" commit))
21469 (source (origin
21470 (method git-fetch)
21471 (uri (git-reference
21472 (url "https://github.com/buzztaiki/lice-el")
21473 (commit commit)))
21474 (file-name (git-file-name name version))
21475 (sha256
21476 (base32
21477 "0yxkjyhfk8kpr8yqz54gdx6xwkj4s8bnbz60162jh12crj0bs5n7"))))
21478 (build-system emacs-build-system)
21479 (arguments
21480 `(#:phases
21481 (modify-phases %standard-phases
21482 (add-after 'unpack 'patch-template-directory
21483 (lambda* (#:key outputs #:allow-other-keys)
21484 (chmod "lice.el" #o666)
21485 (emacs-substitute-variables "lice.el"
21486 ("lice:system-template-directory"
21487 (string-append (assoc-ref outputs "out")
21488 "/share/emacs-lice-el/template")))
21489 #t))
21490 (add-after 'install 'install-templates
21491 (lambda* (#:key outputs #:allow-other-keys)
21492 (copy-recursively
21493 "template"
21494 (string-append (assoc-ref outputs "out")
21495 "/share/emacs-lice-el/template"))
21496 #t)))))
21497 (home-page "https://github.com/buzztaiki/lice-el")
21498 (synopsis "License and header template for Emacs")
21499 (description "@code{lice.el} provides following features:
21500
21501 @itemize
21502 @item License template management.
21503 @item File header insertion.
21504 @end itemize\n")
21505 (license license:gpl3+))))
21506
21507 (define-public emacs-academic-phrases
21508 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
21509 (package
21510 (name "emacs-academic-phrases")
21511 (version (git-version "0.1" "1" commit))
21512 (source
21513 (origin
21514 (method git-fetch)
21515 (uri (git-reference
21516 (url "https://github.com/nashamri/academic-phrases")
21517 (commit commit)))
21518 (file-name (git-file-name name version))
21519 (sha256
21520 (base32
21521 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
21522 (build-system emacs-build-system)
21523 (propagated-inputs
21524 (list emacs-dash emacs-s emacs-ht))
21525 (home-page "https://github.com/nashamri/academic-phrases")
21526 (synopsis "Bypass that mental block when writing your papers")
21527 (description
21528 "When writing your academic paper, you might get stuck trying to find
21529 the right phrase that captures your intention. This package tries to
21530 alleviate that problem by presenting you with a list of phrases organized by
21531 the topic or by the paper section that you are writing. This package has
21532 around 600 phrases so far.
21533
21534 Using this package is easy, just call @code{academic-phrases} to get a list of
21535 phrases organized by topic, or call @code{academic-phrases-by-section} to
21536 browse the phrases by the paper section and fill-in the blanks if required.")
21537 (license license:gpl3+))))
21538
21539 (define-public emacs-auto-yasnippet
21540 (let ((commit "624b0d9711222073a2a3f2186e2605eb99fc83c9")
21541 (revision "2"))
21542 (package
21543 (name "emacs-auto-yasnippet")
21544 (version (git-version "0.3.0" revision commit))
21545 (source (origin
21546 (method git-fetch)
21547 (uri (git-reference
21548 (url "https://github.com/abo-abo/auto-yasnippet")
21549 (commit commit)))
21550 (file-name (git-file-name name version))
21551 (sha256
21552 (base32
21553 "15g8wi067f345xhpi0c12w0h04p4f4lpccwmdjdfj8hzfl4gyxy9"))))
21554 (build-system emacs-build-system)
21555 (arguments
21556 '(#:tests? #t
21557 #:test-command '("make" "test")))
21558 (propagated-inputs
21559 (list emacs-yasnippet))
21560 (home-page "https://github.com/abo-abo/auto-yasnippet/")
21561 (synopsis "Quickly create disposable yasnippets")
21562 (description "This package provides a hybrid of keyboard macros and
21563 yasnippet. You create the snippet on the go, usually to be used just in the
21564 one place. It's fast, because you're not leaving the current buffer, and all
21565 you do is enter the code you'd enter anyway, just placing ~ where you'd like
21566 yasnippet fields and mirrors to be.")
21567 (license license:gpl3+))))
21568
21569 (define-public emacs-highlight-numbers
21570 (package
21571 (name "emacs-highlight-numbers")
21572 (version "0.2.3")
21573 (source
21574 (origin
21575 (method git-fetch)
21576 (uri (git-reference
21577 (url "https://github.com/Fanael/highlight-numbers")
21578 (commit version)))
21579 (file-name (git-file-name name version))
21580 (sha256
21581 (base32 "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"))))
21582 (build-system emacs-build-system)
21583 (propagated-inputs
21584 (list emacs-parent-mode))
21585 (home-page "https://github.com/Fanael/highlight-numbers")
21586 (synopsis "Highlight numbers in source code")
21587 (description "@code{highlight-numbers-mode} provides a minor mode for
21588 syntax highlighting of numeric literals in source code.
21589
21590 It s customizable: it's easy to add or redefine what exactly constitutes a
21591 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
21592 (license license:gpl3+)))
21593
21594 (define-public emacs-darkroom
21595 (package
21596 (name "emacs-darkroom")
21597 (version "0.3")
21598 (source
21599 (origin
21600 (method url-fetch)
21601 (uri (string-append "https://elpa.gnu.org/packages/"
21602 "darkroom-" version ".el"))
21603 (sha256
21604 (base32 "0l1xg5kqmjw22k78qnsln0ifx2dx74xxqj0qp8xxcpqvzzx0xh86"))))
21605 (build-system emacs-build-system)
21606 (home-page "https://elpa.gnu.org/packages/darkroom.html")
21607 (synopsis "Remove visual distractions and focus on writing")
21608 (description "@code{darkroom-mode} makes visual distractions disappear.
21609 The mode-line is temporarily elided, text is enlarged and margins are adjusted
21610 so that it's centered on the window.
21611
21612 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
21613 @code{darkroom-mode}, unless the current buffer lives in the sole window of
21614 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
21615 split to display more windows and more buffers, the buffer exits
21616 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
21617 @code{darkroom-mode}.")
21618 (license license:gpl3+)))
21619
21620 (define-public emacs-rsw-elisp
21621 (package
21622 (name "emacs-rsw-elisp")
21623 (version "1.0.5")
21624 (source (origin
21625 (method git-fetch)
21626 (uri (git-reference
21627 (url "https://github.com/rswgnu/rsw-elisp")
21628 (commit version)))
21629 (file-name (git-file-name name version))
21630 (sha256
21631 (base32
21632 "0dfq8myg0r91900bk1s70amsmm4mjk2qsg12v5pk7lla5d2vnyaf"))))
21633 (build-system emacs-build-system)
21634 (home-page "https://github.com/rswgnu/rsw-elisp")
21635 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
21636 (description "This package improves and replaces the GNU Emacs commands
21637 that interactively evaluate Emacs Lisp expressions. The new commands replace
21638 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
21639 the same way as the old commands when called non-interactively; only the
21640 interactive behavior should be different.")
21641 (license license:gpl3+)))
21642
21643 (define-public emacs-default-text-scale
21644 (package
21645 (name "emacs-default-text-scale")
21646 (version "0.2")
21647 (source (origin
21648 (method git-fetch)
21649 (uri (git-reference
21650 (url "https://github.com/purcell/default-text-scale")
21651 (commit version)))
21652 (file-name (git-file-name name version))
21653 (sha256
21654 (base32
21655 "0h42jiwxrxjmk7ccwh3h25n7dy2rq61ncm5wx27jhkncc5jdm4h6"))))
21656 (build-system emacs-build-system)
21657 (home-page "https://github.com/purcell/default-text-scale")
21658 (synopsis "Adjust the font size in all Emacs frames")
21659 (description "This package provides commands for increasing or
21660 decreasing the default font size in all GUI Emacs frames.")
21661 (license license:gpl3+)))
21662
21663 (define-public emacs-fixed-pitch
21664 (package
21665 (name "emacs-fixed-pitch")
21666 (version "0.1.0")
21667 (source
21668 (origin
21669 (method git-fetch)
21670 (uri (git-reference
21671 (url "https://github.com/cstby/fixed-pitch-mode")
21672 (commit (string-append "v" version))))
21673 (file-name (git-file-name name version))
21674 (sha256
21675 (base32 "0qlavjvib0r71xdy6y6pan9dhr57lw7jhmqk60mwa8fq6km8kpkj"))))
21676 (build-system emacs-build-system)
21677 (home-page "https://github.com/cstby/fixed-pitch-mode")
21678 (synopsis
21679 "Use a monospaced typeface for code and a proportional one elsewhere")
21680 (description
21681 "Fixed-pitch mode is an Emacs minor mode for setting a monospaced typeface.
21682 This allows you to set a proportional typeface for UI elements while keeping
21683 a monospaced typeface for code.")
21684 (license license:gpl3+)))
21685
21686 (define-public emacs-mixed-pitch
21687 (package
21688 (name "emacs-mixed-pitch")
21689 (version "1.1.1")
21690 (source
21691 (origin
21692 (method git-fetch)
21693 (uri (git-reference
21694 (url "https://gitlab.com/jabranham/mixed-pitch.git")
21695 (commit version)))
21696 (file-name (git-file-name name version))
21697 (sha256
21698 (base32 "1dhljrh44dsnixd8hbb11k6dgap8r8n7jknhfy2afdzq889fih74"))))
21699 (build-system emacs-build-system)
21700 (home-page "https://gitlab.com/jabranham/mixed-pitch")
21701 (synopsis "Mix variable- and fixed-pitch fonts in the same Emacs buffer")
21702 (description
21703 "@code{mixed-pitch-mode} is a minor mode that enables mixing
21704 variable-pitch and fixed-pitch fonts in the same buffer. The list
21705 @code{mixed-pitch-fixed-pitch-faces} defines the faces that are kept
21706 fixed-pitch,everything else becomes variable-pitch.")
21707 (license license:gpl3+)))
21708
21709 (define-public emacs-visual-regexp
21710 (package
21711 (name "emacs-visual-regexp")
21712 (version "1.1.2")
21713 (source
21714 (origin
21715 (method git-fetch)
21716 (uri (git-reference
21717 (url "https://github.com/benma/visual-regexp.el")
21718 (commit (string-append "v" version))))
21719 (file-name (git-file-name name version))
21720 (sha256
21721 (base32 "12p3rlhdphwmx1kxsjzcl2wj3i6qgpvw8iwhg1whs6yqgaxivixd"))))
21722 (build-system emacs-build-system)
21723 (home-page "https://github.com/benma/visual-regexp.el/")
21724 (synopsis "Regexp command with interactive visual feedback")
21725 (description "This package provides an Emacs regexp command with
21726 interactive visual feedback.")
21727 (license license:gpl3+)))
21728
21729 (define-public emacs-faceup
21730 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
21731 (revision "1"))
21732 (package
21733 (name "emacs-faceup")
21734 (version (string-append "0.0.1" "-" revision "."
21735 (string-take commit 7)))
21736 (source
21737 (origin
21738 (method git-fetch)
21739 (uri (git-reference
21740 (url "https://github.com/Lindydancer/faceup")
21741 (commit commit)))
21742 (file-name (git-file-name name version))
21743 (sha256
21744 (base32
21745 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
21746 (build-system emacs-build-system)
21747 (home-page "https://github.com/Lindydancer/faceup")
21748 (synopsis "Markup language for faces and font-lock regression testing")
21749 (description "Emacs is capable of highlighting buffers based on
21750 language-specific @code{font-lock} rules. This package makes it possible to
21751 perform regression test for packages that provide font-lock rules.")
21752 (license license:gpl3+))))
21753
21754 (define-public emacs-racket-mode
21755 ;; XXX: Upstream does not tag releases, nor does it bump versions. The
21756 ;; "0.0.2" version below does not exist. It might change, tho. See
21757 ;; <https://github.com/greghendershott/racket-mode/issues/389>.
21758 (let ((commit "cef5a55d2b766973db92f9d9ab2210c03fa8ba02")
21759 (revision "7"))
21760 (package
21761 (name "emacs-racket-mode")
21762 (version (git-version "0.0.2" revision commit))
21763 (source
21764 (origin
21765 (method git-fetch)
21766 (uri (git-reference
21767 (url "https://github.com/greghendershott/racket-mode")
21768 (commit commit)))
21769 (file-name (git-file-name name version))
21770 (sha256
21771 (base32
21772 "0zzk0s4akx6ffsbhylgfflcypkkg36a3accxhmmdd11yn5rckv7f"))))
21773 (build-system emacs-build-system)
21774 (arguments
21775 (list
21776 #:include #~(list "\\.el$" "\\.rkt$")))
21777 (propagated-inputs
21778 (list emacs-faceup emacs-paredit emacs-pos-tip emacs-s))
21779 (home-page "https://www.racket-mode.com/")
21780 (synopsis "Major mode for the Racket language")
21781 (description "Racket mode provides thorough font-lock and indentation.
21782 It follows DrRacket concepts where applicable.")
21783 (license license:gpl2+))))
21784
21785 (define-public emacs-grep-context
21786 (let ((commit "5a4e3efdf775755c1bbefcfe4b461c1166d81d7d")
21787 (revision "1"))
21788 (package
21789 (name "emacs-grep-context")
21790 (version (git-version "0.1.0" revision commit))
21791 (source
21792 (origin
21793 (method git-fetch)
21794 (uri (git-reference
21795 (url "https://github.com/mkcms/grep-context")
21796 (commit commit)))
21797 (file-name (git-file-name name version))
21798 (sha256
21799 (base32
21800 "00q7l4a3c0ay6g5ff9bfa2qgkiswsyh4s6pqnpg0zpzhvv5710f5"))))
21801 (build-system emacs-build-system)
21802 (propagated-inputs
21803 (list emacs-dash))
21804 (home-page "https://github.com/mkcms/grep-context")
21805 (synopsis "Increase context in compilation and grep buffers")
21806 (description
21807 "This package provides an Emacs package for more context in
21808 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
21809 @code{ivy}.")
21810 (license license:gpl3+))))
21811
21812 (define-public emacs-helm-firefox
21813 (package
21814 (name "emacs-helm-firefox")
21815 (version "1.3")
21816 (source
21817 (origin
21818 (method git-fetch)
21819 (uri (git-reference
21820 (url "https://github.com/emacs-helm/helm-firefox")
21821 (commit (string-append "v" version))))
21822 (file-name (git-file-name name version))
21823 (sha256
21824 (base32
21825 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
21826 (propagated-inputs
21827 (list emacs-helm))
21828 (build-system emacs-build-system)
21829 (home-page "https://github.com/emacs-helm/helm-firefox")
21830 (synopsis "Display firefox bookmarks with Emacs Helm interface")
21831 (description "Display firefox bookmarks with Emacs Helm interface")
21832 (license license:gpl3+)))
21833
21834 (define-public emacs-interactive-align
21835 (package
21836 (name "emacs-interactive-align")
21837 (version "0.4.2")
21838 (source
21839 (origin
21840 (method git-fetch)
21841 (uri (git-reference
21842 (url "https://github.com/mkcms/interactive-align")
21843 (commit (string-append "v" version))))
21844 (file-name (git-file-name name version))
21845 (sha256
21846 (base32
21847 "0bh03w91i622hbar5dcq631ndxx1y8kd3h655pgw1g0lqkv1mlnc"))))
21848 (build-system emacs-build-system)
21849 (home-page "https://github.com/mkcms/interactive-align/")
21850 (synopsis "Interactive align-regexp command in Emacs")
21851 (description "Interactive align-regexp command in Emacs")
21852 (license license:gpl3+)))
21853
21854 (define-public emacs-shift-number
21855 (package
21856 (name "emacs-shift-number")
21857 (version "0.1")
21858 (source
21859 (origin
21860 (method git-fetch)
21861 (uri (git-reference
21862 (url "https://github.com/alezost/shift-number.el")
21863 (commit (string-append "v" version))))
21864 (file-name (git-file-name name version))
21865 (sha256
21866 (base32
21867 "0zlwmzsxkv4mkggylxfx2fkrwgz7dz3zbg2gkn2rxcpy2k2gla64"))))
21868 (build-system emacs-build-system)
21869 (home-page "https://github.com/alezost/shift-number.el")
21870 (synopsis "Increase or decrease the number at point")
21871 (description "@code{emacs-shift-number} provides commands
21872 @code{shift-number-up} to increase and @code{shift-number-down} to
21873 decrease the number at point.")
21874 (license license:gpl3+)))
21875
21876 (define-public emacs-highlight-defined
21877 (package
21878 (name "emacs-highlight-defined")
21879 (version "0.1.6")
21880 (source
21881 (origin
21882 (method git-fetch)
21883 (uri (git-reference
21884 (url "https://github.com/Fanael/highlight-defined")
21885 (commit version)))
21886 (file-name (git-file-name name version))
21887 (sha256
21888 (base32 "0a9nn1jnbgv93kz1iz5iay34d0p7lkpd8ic619ysk8qcksc0yn2i"))))
21889 (build-system emacs-build-system)
21890 (home-page "https://github.com/Fanael/highlight-defined")
21891 (synopsis "Syntax highlighting of known Elisp symbols")
21892 (description "Minor mode providing syntax highlighting of known Emacs Lisp
21893 symbols. Currently the code distinguishes Lisp functions, built-in functions,
21894 macros, faces and variables. To enable call @code{highlight-defined-mode}.")
21895 (license license:gpl3+)))
21896
21897 (define-public emacs-parinfer-mode
21898 (package
21899 (name "emacs-parinfer-mode")
21900 (version "0.4.10")
21901 (source
21902 (origin
21903 (method git-fetch)
21904 (uri (git-reference
21905 (url "https://github.com/DogLooksGood/parinfer-mode")
21906 (commit (string-append "v" version))))
21907 (file-name (git-file-name name version))
21908 (sha256
21909 (base32 "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"))))
21910 (propagated-inputs
21911 (list emacs-dash emacs-rainbow-delimiters emacs-company))
21912 (build-system emacs-build-system)
21913 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
21914 (synopsis "Lisp structure editing mode")
21915 (description "@code{parinfer-mode} is a proof-of-concept editor
21916 mode for Lisp programming languages. It will infer some changes to
21917 keep Parens and Indentation inline with one another.")
21918 (license license:gpl3+)))
21919
21920 (define-public emacs-helm-eww
21921 (package
21922 (name "emacs-helm-eww")
21923 (version "1.2")
21924 (source (origin
21925 (method git-fetch)
21926 (uri (git-reference
21927 (url "https://github.com/emacs-helm/helm-eww")
21928 (commit version)))
21929 (file-name (git-file-name name version))
21930 (sha256
21931 (base32
21932 "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"))))
21933 (propagated-inputs
21934 (list emacs-helm))
21935 (build-system emacs-build-system)
21936 (home-page "https://github.com/emacs-helm/helm-eww/")
21937 (synopsis "Helm interface to EWW")
21938 (description "This package provides a Helm interface for EWW buffers,
21939 bookmarks and history.")
21940 (license license:gpl3+)))
21941
21942 (define-public emacs-stumpwm-mode
21943 (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d6")
21944 (revision "3"))
21945 (package
21946 (name "emacs-stumpwm-mode")
21947 (version (git-version "0.0.1" revision commit))
21948 (source (origin
21949 (method git-fetch)
21950 (uri (git-reference
21951 (url "https://github.com/stumpwm/stumpwm-contrib")
21952 (commit commit)))
21953 (file-name (git-file-name name version))
21954 (sha256
21955 (base32
21956 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
21957 (build-system emacs-build-system)
21958 (arguments
21959 `(#:phases
21960 (modify-phases %standard-phases
21961 (add-after 'unpack 'chdir-elisp
21962 ;; Elisp directory is not in root of the source.
21963 (lambda _
21964 (chdir "util/swm-emacs"))))))
21965 (home-page "https://github.com/stumpwm/stumpwm-contrib")
21966 (synopsis "Emacs minor-mode for Stumpwm")
21967 (description "Emacs minor-mode for Stumpwm")
21968 (license license:gpl3+))))
21969
21970 (define-public emacs-irfc
21971 (package
21972 (name "emacs-irfc")
21973 (version "20130824.507-1")
21974 (source
21975 (origin
21976 (method url-fetch)
21977 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
21978 (file-name (string-append "irfc-" version ".el"))
21979 (sha256
21980 (base32
21981 "0rbfrza56kvspvgrwg0b5bj30d0qncqdsmfxn3y5caq4ifcj77hv"))))
21982 (build-system emacs-build-system)
21983 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
21984 (synopsis "Interface for IETF RFC document")
21985 (description
21986 "This package provides an Emacs interface for IETF RFC document.")
21987 (license license:gpl3+)))
21988
21989 (define-public emacs-ido-at-point
21990 (package
21991 (name "emacs-ido-at-point")
21992 (version "1.0.0")
21993 (source
21994 (origin
21995 (method git-fetch)
21996 (uri (git-reference
21997 (url "https://github.com/katspaugh/ido-at-point")
21998 (commit (string-append "v" version))))
21999 (file-name (git-file-name name version))
22000 (sha256
22001 (base32 "1bii7vj8pmmijcpvq3a1scky4ais7k6d7zympb3m9dmz355m9rpp"))))
22002 (build-system emacs-build-system)
22003 (synopsis "Ido-style completion at point")
22004 (description
22005 "This package is an alternative frontend for @code{completion-at-point}.
22006 It replaces the standard completions buffer with Ido prompt.")
22007 (home-page "https://github.com/katspaugh/ido-at-point")
22008 (license license:gpl3+)))
22009
22010 (define-public emacs-ido-vertical-mode
22011 (package
22012 (name "emacs-ido-vertical-mode")
22013 (version "0.1.6")
22014 (source
22015 (origin
22016 (method git-fetch)
22017 (uri (git-reference
22018 (url "https://github.com/creichert/ido-vertical-mode.el")
22019 (commit (string-append "v" version))))
22020 (file-name (git-file-name name version))
22021 (sha256
22022 (base32 "1lv82q639xjnmvby56nwqn23ijh6f163bk675s33dkingm8csj8k"))))
22023 (build-system emacs-build-system)
22024 (home-page "https://github.com/creichert/ido-vertical-mode.el")
22025 (synopsis "Makes ido-mode display vertically")
22026 (description "Makes ido-mode display prospects vertically.")
22027 (license license:gpl3+)))
22028
22029 (define-public emacs-wordgen
22030 (package
22031 (name "emacs-wordgen")
22032 (version "0.1.4")
22033 (source
22034 (origin
22035 (method git-fetch)
22036 (uri (git-reference
22037 (url "https://github.com/Fanael/wordgen.el")
22038 (commit version)))
22039 (file-name (git-file-name name version))
22040 (sha256
22041 (base32 "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"))))
22042 (build-system emacs-build-system)
22043 (home-page "https://github.com/Fanael/wordgen.el")
22044 (synopsis "Random word generator")
22045 (description "This package provides functions to generate random words
22046 using user-provided rules.")
22047 (license license:gpl3+)))
22048
22049 (define-public emacs-on-screen
22050 (package
22051 (name "emacs-on-screen")
22052 (version "1.3.3")
22053 (source
22054 (origin
22055 (method url-fetch)
22056 (uri (string-append
22057 "https://elpa.gnu.org/packages/on-screen-" version ".el"))
22058 (file-name (string-append name "-" version ".el"))
22059 (sha256
22060 (base32 "0ga4hw23ki583li2z2hr7l6hk1nc2kdg4afndg06cm9jn158wza7"))))
22061 (build-system emacs-build-system)
22062 (home-page "https://github.com/michael-heerdegen/on-screen.el")
22063 (synopsis "Guide your eyes while scrolling")
22064 (description
22065 "Scrolling can be distracting because your eyes may lose
22066 orientation. This library implements a minor mode that highlights
22067 the previously visible buffer part after each scroll.")
22068 (license license:gpl3+)))
22069
22070 (define-public emacs-highlight-escape-sequences
22071 ;; No release upstream. Extract version from main file.
22072 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
22073 (revision "0"))
22074 (package
22075 (name "emacs-highlight-escape-sequences")
22076 (version (git-version "0.4" revision commit))
22077 (source
22078 (origin
22079 (method git-fetch)
22080 (uri (git-reference
22081 (url "https://github.com/dgutov/highlight-escape-sequences")
22082 (commit commit)))
22083 (file-name (git-file-name name version))
22084 (sha256
22085 (base32 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
22086 (build-system emacs-build-system)
22087 (home-page "https://github.com/dgutov/highlight-escape-sequences")
22088 (synopsis "Highlight escape sequences in Emacs")
22089 (description "@code{highlight-escape-sequences} provides an
22090 Emacs minor mode to escape sequences in code.")
22091 (license license:gpl3+))))
22092
22093 (define-public emacs-dashboard
22094 (package
22095 (name "emacs-dashboard")
22096 (version "1.7.0")
22097 (source
22098 (origin
22099 (method git-fetch)
22100 (uri (git-reference
22101 (url "https://github.com/rakanalh/emacs-dashboard")
22102 (commit version)))
22103 (file-name (git-file-name name version))
22104 (sha256
22105 (base32 "1qv4cqjy2s2d2bysbq10vq1axpbd8qc3jn1s1r81lxqkcja8zasa"))))
22106 (build-system emacs-build-system)
22107 (propagated-inputs
22108 (list emacs-page-break-lines))
22109 (arguments
22110 '(#:include '("\\.el$" "\\.txt$" "\\.png$")
22111 #:phases
22112 (modify-phases %standard-phases
22113 (add-after 'unpack 'patch-dashboard-widgets
22114 ;; This phase fixes compilation error.
22115 (lambda _
22116 (chmod "dashboard-widgets.el" #o666)
22117 (emacs-substitute-variables "dashboard-widgets.el"
22118 ("dashboard-init-info"
22119 '(format "Loaded in %s" (emacs-init-time))))
22120 #t)))))
22121 (home-page "https://github.com/rakanalh/emacs-dashboard")
22122 (synopsis "Startup screen extracted from Spacemacs")
22123 (description "This package provides an extensible Emacs dashboard, with
22124 sections for bookmarks, projectil projects, org-agenda and more.")
22125 (license license:gpl3+)))
22126
22127 (define-public emacs-slime-company
22128 (package
22129 (name "emacs-slime-company")
22130 (version "1.6")
22131 (source
22132 (origin
22133 (method git-fetch)
22134 (uri (git-reference
22135 (url "https://github.com/anwyn/slime-company")
22136 (commit (string-append "v" version))))
22137 (file-name (git-file-name name version))
22138 (sha256
22139 (base32 "05dnnc4ms5c9yp9h65k2gbkg3pw9k38nx5wzlwdlfr4shqmw54w0"))))
22140 (build-system emacs-build-system)
22141 (propagated-inputs
22142 (list emacs-slime emacs-company))
22143 (home-page "https://company-mode.github.io")
22144 (synopsis "SLIME completion backend for @code{company-mode}")
22145 (description
22146 "This is a backend implementation for the completion package
22147 @code{company-mode} which supports the normal and the fuzzy completion
22148 modes of SLIME.")
22149 (license license:gpl3+)))
22150
22151 (define-public emacs-sml-mode
22152 (package
22153 (name "emacs-sml-mode")
22154 (version "6.10")
22155 (source
22156 (origin
22157 (method url-fetch)
22158 (uri (string-append "https://elpa.gnu.org/packages/sml-mode-"
22159 version ".el"))
22160 (sha256
22161 (base32 "01yf0s474r9xhj6nbs14ljn9ccxb5yy758i17c8nmgmqvm8fx7sb"))))
22162 (build-system emacs-build-system)
22163 (home-page "https://elpa.gnu.org/packages/sml-mode.html")
22164 (synopsis "Major mode for editing (Standard) ML")
22165 (description "SML-MODE is a major Emacs mode for editing Standard ML.
22166 It provides syntax highlighting and automatic indentation and
22167 comes with sml-proc which allows interaction with an inferior SML
22168 interactive loop.")
22169 (license license:gpl3+)))
22170
22171 (define-public emacs-eros
22172 (let ((commit "dd8910279226259e100dab798b073a52f9b4233a")
22173 (revision "2"))
22174 (package
22175 (name "emacs-eros")
22176 (version (git-version "0.0.1" revision commit))
22177 (source
22178 (origin
22179 (method git-fetch)
22180 (uri (git-reference
22181 (url "https://github.com/xiongtx/eros")
22182 (commit commit)))
22183 (file-name (git-file-name name version))
22184 (sha256
22185 (base32
22186 "08chj3a0lw4ygi2sv7wj0i6ihfbi8jhylr8p92inif8b88r6wg3k"))))
22187 (build-system emacs-build-system)
22188 (home-page "https://github.com/xiongtx/eros")
22189 (synopsis "Evaluation result overlays")
22190 (description "@code{eros} provides evaluation result overlays.")
22191 (license license:gpl3+))))
22192
22193 (define-public emacs-stickyfunc-enhance
22194 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
22195 (revision "1"))
22196 (package
22197 (name "emacs-stickyfunc-enhance")
22198 (version "0.1")
22199 (source
22200 (origin
22201 (method git-fetch)
22202 (uri (git-reference
22203 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance")
22204 (commit commit)))
22205 (file-name (git-file-name name version))
22206 (sha256
22207 (base32
22208 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
22209 (build-system emacs-build-system)
22210 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
22211 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
22212 (description
22213 "@code{semantic-stickyfunc-mode} shows the function point is currently
22214 in at the first line of the current buffer. This is useful when you have a
22215 very long function that spreads more than a screen, and you don't have to
22216 scroll up to read the function name and then scroll down to original position.")
22217 (license license:gpl3+))))
22218
22219 (define-public emacs-git-auto-commit-mode
22220 (package
22221 (name "emacs-git-auto-commit-mode")
22222 (version "4.7.0")
22223 (source
22224 (origin
22225 (method git-fetch)
22226 (uri (git-reference
22227 (url "https://github.com/ryuslash/git-auto-commit-mode")
22228 (commit version)))
22229 (file-name (git-file-name name version))
22230 (sha256
22231 (base32 "0gpib57f7xza04g3iyihw5v15hb7pncqsmvyggib902yvcxlkvqf"))))
22232 (build-system emacs-build-system)
22233 (native-inputs
22234 (list emacs-buttercup git))
22235 (arguments
22236 `(#:tests? #t
22237 #:test-command '("buttercup" "-L" ".")))
22238 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
22239 (synopsis "Emacs Minor mode to automatically commit and push")
22240 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
22241 tries to commit changes to a file after every save.
22242
22243 When @code{gac-automatically-push-p} is non-nil, it also tries to push to the
22244 current upstream.")
22245 (license license:gpl3+)))
22246
22247 (define-public emacs-scroll-on-drag
22248 (let ((commit "888abd04c34753b1fc4b2fe541bc004ebec5c996")
22249 (revision "1"))
22250 (package
22251 (name "emacs-scroll-on-drag")
22252 (version (git-version "0.1" revision commit))
22253 (source
22254 (origin
22255 (method git-fetch)
22256 (uri (git-reference
22257 (url "https://gitlab.com/ideasman42/emacs-scroll-on-drag.git")
22258 (commit commit)))
22259 (file-name (git-file-name name version))
22260 (sha256
22261 (base32
22262 "1si4hdqa3jw1inbyh3wb3i5i9grbms1nwky3vyk9zg7iznwm8a9p"))))
22263 (build-system emacs-build-system)
22264 (home-page "https://gitlab.com/ideasman42/emacs-scroll-on-drag")
22265 (synopsis "Interactive scrolling")
22266 (description "This package permits scrolling at increasing speeds based
22267 on drag distance.")
22268 (license license:gpl3+))))
22269
22270 (define-public emacs-company-restclient
22271 (package
22272 (name "emacs-company-restclient")
22273 (version "0.3.0")
22274 (source
22275 (origin
22276 (method git-fetch)
22277 (uri (git-reference
22278 (url "https://github.com/iquiw/company-restclient")
22279 (commit (string-append "v" version))))
22280 (file-name (git-file-name name version))
22281 (sha256
22282 (base32 "0yp0hlrgcr6yy1xkjvfckys2k24x9xg7y6336ma61bdwn5lpv0x0"))))
22283 (build-system emacs-build-system)
22284 (propagated-inputs
22285 (list emacs-company emacs-know-your-http-well emacs-restclient))
22286 (home-page "https://github.com/iquiw/company-restclient")
22287 (synopsis "Company-mode completion back-end for restclient-mode")
22288 (description "@code{company-mode} back-end for
22289 @code{restclient-mode}.
22290
22291 It provides auto-completion for HTTP methods and headers in
22292 @code{restclient-mode}. Completion source is given by
22293 @code{know-your-http-well}.")
22294 (license license:gpl3+)))
22295
22296 (define-public emacs-noflet
22297 (let ((version "20170629")
22298 (revision "1")
22299 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
22300 (package
22301 (name "emacs-noflet")
22302 (version (git-version version revision commit))
22303 (source
22304 (origin
22305 (method git-fetch)
22306 (uri (git-reference
22307 (url "https://github.com/nicferrier/emacs-noflet")
22308 (commit commit)))
22309 (file-name (git-file-name name version))
22310 (sha256
22311 (base32
22312 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
22313 (build-system emacs-build-system)
22314 (arguments
22315 `(#:phases
22316 (modify-phases %standard-phases
22317 (add-after 'unpack 'require-dash
22318 ;; noflet.el uses -map from dash, but (require 'dash) is
22319 ;; missing. So, add it.
22320 (lambda _
22321 (substitute* "noflet.el"
22322 ((";;; Code:") ";;; Code:\n(require 'dash)"))
22323 #t)))))
22324 (propagated-inputs
22325 (list emacs-dash))
22326 (home-page "https://github.com/nicferrier/emacs-noflet")
22327 (synopsis "Locally override functions")
22328 (description "@code{emacs-noflet} lets you locally override functions,
22329 in the manner of @command{flet}, but with access to the original function
22330 through the symbol: @command{this-fn}.")
22331 (license license:gpl3+))))
22332
22333 (define-public emacs-dumb-jump
22334 (package
22335 (name "emacs-dumb-jump")
22336 (version "0.5.4")
22337 (source
22338 (origin
22339 (method git-fetch)
22340 (uri (git-reference
22341 (url "https://github.com/jacktasia/dumb-jump")
22342 (commit (string-append "v" version))))
22343 (file-name (git-file-name name version))
22344 (sha256
22345 (base32 "18d2ll5wlll6pm909hiw8w9ijdbrjvy86q6ljzx8yyrjphgn0y1y"))))
22346 (build-system emacs-build-system)
22347 (arguments
22348 `(#:tests? #f ; FIXME: Tests freeze when run.
22349 #:test-command '("ert-runner")
22350 #:phases
22351 (modify-phases %standard-phases
22352 (add-after 'unpack 'set-shell
22353 (lambda _
22354 ;; Setting the SHELL environment variable is required for the
22355 ;; tests to find sh.
22356 (setenv "SHELL" (which "sh")))))))
22357 (native-inputs
22358 (list emacs-el-mock emacs-ert-runner emacs-noflet emacs-undercover))
22359 (propagated-inputs
22360 (list emacs-f emacs-popup))
22361 (home-page "https://github.com/jacktasia/dumb-jump")
22362 (synopsis "Jump to definition for multiple languages without configuration")
22363 (description "Dumb Jump is an Emacs \"jump to definition\" package with
22364 support for multiple programming languages that favors \"just working\" over
22365 speed or accuracy. This means minimal --- and ideally zero --- configuration
22366 with absolutely no stored indexes (tags) or persistent background processes.
22367 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
22368 @command{rg} installed.")
22369 (license license:gpl3+)))
22370
22371 (define-public emacs-dts-mode
22372 (package
22373 (name "emacs-dts-mode")
22374 (version "1.0")
22375 (source (origin
22376 (method url-fetch)
22377 (uri (string-append "https://elpa.gnu.org/packages/dts-mode-"
22378 version ".tar"))
22379 (sha256
22380 (base32
22381 "0ihwqkv1ddysjgxh01vpayv3ia0vx55ny8ym0mi5b4iz95idj60s"))))
22382 (build-system emacs-build-system)
22383 (home-page "https://elpa.gnu.org/packages/dts-mode.html")
22384 (synopsis "Major mode for Device Tree source files")
22385 (description
22386 "This package provides an Emacs minor mode for highlighting
22387 device tree files.")
22388 (license license:gpl3+)))
22389
22390 (define-public emacs-daemons
22391 (package
22392 (name "emacs-daemons")
22393 (version "2.0.0")
22394 (source
22395 (origin
22396 (method git-fetch)
22397 (uri (git-reference
22398 (url "https://github.com/cbowdon/daemons.el")
22399 (commit version)))
22400 (file-name (git-file-name name version))
22401 (sha256
22402 (base32
22403 "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
22404 (build-system emacs-build-system)
22405 (home-page "https://github.com/cbowdon/daemons.el")
22406 (synopsis "Emacs UI for managing init system services")
22407 (description
22408 "This is an Emacs mode to give you a UI for managing init system
22409 daemons (services) for those getting tired of typing out @code{sudo service
22410 my_thing reload} all the time. It offers a consistent UI over different init
22411 systems.")
22412 (license license:gpl3+)))
22413
22414 (define-public emacs-isearch+
22415 (let ((commit "7c251b91a67bf914066e23e269ba52fda5b45f5f")
22416 (revision "2"))
22417 (package
22418 (name "emacs-isearch+")
22419 (version (git-version "0" revision commit))
22420 (source
22421 (origin
22422 (method git-fetch)
22423 (uri (git-reference
22424 (url "https://github.com/emacsmirror/isearch-plus")
22425 (commit commit)))
22426 (file-name (git-file-name name version))
22427 (sha256
22428 (base32
22429 "1w2799714jcdycjlxgs8lpmmz6dmzvcvqy8xwxhvmgpb60g4f2yr"))))
22430 (build-system emacs-build-system)
22431 (home-page "https://www.emacswiki.org/emacs/isearch+.el")
22432 (synopsis "Extensions to @code{isearch.el}")
22433 (description "This package extends @code{isearch} with advice, dynamic
22434 filters, highlighting of regexp group levels, and more.")
22435 (license license:gpl2+))))
22436
22437 (define-public emacs-eshell-bookmark
22438 (package
22439 (name "emacs-eshell-bookmark")
22440 (version "2.0.0")
22441 (source
22442 (origin
22443 (method git-fetch)
22444 (uri (git-reference
22445 (url "https://github.com/Fuco1/eshell-bookmark")
22446 (commit version)))
22447 (file-name (git-file-name name version))
22448 (sha256
22449 (base32
22450 "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"))))
22451 (build-system emacs-build-system)
22452 (home-page "https://github.com/Fuco1/eshell-bookmark")
22453 (synopsis "Provide @file{bookmark.el} integration for @code{eshell}")
22454 (description
22455 "This package allows for bookmarking @code{eshell} buffers. Upon
22456 visiting the bookmark, a new @code{eshell} session will be opened in the
22457 appropriate directory if no @code{eshell} session is active.")
22458 (license license:gpl3+)))
22459
22460 (define-public emacs-eshell-syntax-highlighting
22461 (package
22462 (name "emacs-eshell-syntax-highlighting")
22463 (version "0.3")
22464 (source
22465 (origin
22466 (method git-fetch)
22467 (uri (git-reference
22468 (url "https://github.com/akreisher/eshell-syntax-highlighting")
22469 (commit (string-append "v" version))))
22470 (file-name (git-file-name name version))
22471 (sha256
22472 (base32 "1fb9aa85a3hx1rcmv71j6sc3y278452p1y4dabpwy07avb6apd0p"))))
22473 (build-system emacs-build-system)
22474 (home-page "https://github.com/akreisher/eshell-syntax-highlighting")
22475 (synopsis "Add syntax highlighting to Eshell")
22476 (description
22477 "This package highlights user commands at the Eshell interactive prompt
22478 to provide feedback on the validity of commands and syntax.")
22479 (license license:gpl3+)))
22480
22481 (define-public emacs-eshell-z
22482 (package
22483 (name "emacs-eshell-z")
22484 (version "0.4")
22485 (source
22486 (origin
22487 (method git-fetch)
22488 (uri (git-reference
22489 (url "https://github.com/xuchunyang/eshell-z")
22490 (commit (string-append "v" version))))
22491 (file-name (git-file-name name version))
22492 (sha256
22493 (base32
22494 "13dwaq8q23rwmrkpy3gvf7aswrkk6b9ak5221xl7n0bld4wdhq3j"))))
22495 (build-system emacs-build-system)
22496 (home-page "https://github.com/xuchunyang/eshell-z")
22497 (synopsis "Quick navigation to frequently visited directories")
22498 (description
22499 "This package is a port of @code{z}, and keeps track of visited directories
22500 and commands invoked within them in order to enable navigation via input of
22501 matching regexps.")
22502 (license license:gpl3+)))
22503
22504 (define-public emacs-esh-autosuggest
22505 (package
22506 (name "emacs-esh-autosuggest")
22507 (version "2.0.1")
22508 (source
22509 (origin
22510 (method git-fetch)
22511 (uri (git-reference
22512 (url "https://github.com/dieggsy/esh-autosuggest")
22513 (commit version)))
22514 (file-name (git-file-name name version))
22515 (sha256
22516 (base32
22517 "0l2nnlr3b6df1xn0qjf5d5ryy1wcs1jczyfy795vsasd5gm3g0xh"))))
22518 (build-system emacs-build-system)
22519 (propagated-inputs (list emacs-company))
22520 (home-page "https://github.com/dieggsy/esh-autosuggest")
22521 (synopsis "Fish-like autosuggestions in Eshell")
22522 (description
22523 "This package assumes you use something other than company for eshell
22524 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
22525 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
22526 for history autosuggestions.
22527
22528 Unless you're using @code{use-package}'s hook keyword, you can enable the
22529 autosuggestions with:
22530 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
22531 (license license:gpl3+)))
22532
22533 (define-public emacs-desktop-environment
22534 (package
22535 (name "emacs-desktop-environment")
22536 (version "0.5.0")
22537 (source
22538 (origin
22539 (method git-fetch)
22540 (uri (git-reference
22541 (url "https://github.com/DamienCassou/desktop-environment")
22542 (commit (string-append "v" version))))
22543 (file-name (git-file-name name version))
22544 (sha256
22545 (base32
22546 "03rl1z860jmirjrrg0xsjx0bqk73k043c8bz6049zhndh7pidri7"))))
22547 (build-system emacs-build-system)
22548 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
22549 (synopsis "Control your GNU/Linux desktop environment from Emacs")
22550 (description
22551 "This package helps you control your GNU/Linux desktop from Emacs.
22552 With @code{desktop-environment}, you can control the brightness and volume as
22553 well as take screenshots and lock your screen. The package depends on the
22554 availability of shell commands to do the hard work for us. These commands can
22555 be changed by customizing the appropriate variables.")
22556 (license license:gpl3+)))
22557
22558 (define-public emacs-org-caldav
22559 (let ((commit "8569941a0a5a9393ba51afc8923fd7b77b73fa7a")
22560 (revision "2"))
22561 (package
22562 (name "emacs-org-caldav")
22563 (version (git-version "0.0.0" revision commit))
22564 (source
22565 (origin
22566 (method git-fetch)
22567 (uri (git-reference
22568 (url "https://github.com/dengste/org-caldav")
22569 (commit commit)))
22570 (file-name (git-file-name name version))
22571 (sha256
22572 (base32 "05lgxqaffnqaqnzl24frafdkskran88hl2ml05qvyjhs4jjbgw9g"))))
22573 (build-system emacs-build-system)
22574 (arguments
22575 ;; Tests require to have two specific calendars on a test server.
22576 `(#:exclude '("^org-caldav-testsuite\\.el")))
22577 (propagated-inputs
22578 (list emacs-org))
22579 (home-page "https://github.com/dengste/org-caldav")
22580 (synopsis "Sync Org files with external calendars via the CalDAV protocol")
22581 (description
22582 "Org CalDAV synchronizes events between Org files and a CalDAV
22583 calendar.")
22584 (license license:gpl3+))))
22585
22586 (define-public emacs-zotxt
22587 (package
22588 (name "emacs-zotxt")
22589 (version "5.0.5")
22590 (source
22591 (origin
22592 (method git-fetch)
22593 (uri (git-reference
22594 (url "https://github.com/egh/zotxt-emacs")
22595 (commit (string-append "v" version))))
22596 (file-name (git-file-name name version))
22597 (sha256
22598 (base32 "1zr67h0w49rsi84mgf6jdili28h8782q6vjl8za0iq1hcx9zqxyf"))))
22599 (build-system emacs-build-system)
22600 (propagated-inputs
22601 (list emacs-deferred emacs-request))
22602 (home-page "https://github.com/egh/zotxt-emacs")
22603 (synopsis "Integrate Emacs with Zotero")
22604 (description "This package provides two integration features between Emacs
22605 and the Zotero research assistant: Insertion of links to Zotero items into an
22606 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
22607 (license license:gpl3+)))
22608
22609 (define-public emacs-evil-multiedit
22610 (package
22611 (name "emacs-evil-multiedit")
22612 (version "1.4.3")
22613 (source
22614 (origin
22615 (method git-fetch)
22616 (uri (git-reference
22617 (url "https://github.com/hlissner/evil-multiedit")
22618 (commit (string-append "v" version))))
22619 (file-name (git-file-name name version))
22620 (sha256
22621 (base32 "08ycwss58zh2zikk79jfj074q78yjcd7vbjgv5ssqvws09x5rgfq"))))
22622 (build-system emacs-build-system)
22623 (propagated-inputs
22624 (list emacs-evil emacs-iedit))
22625 (native-inputs
22626 (list emacs-ert-runner))
22627 (arguments
22628 `(#:phases
22629 (modify-phases %standard-phases
22630 (add-before 'check 'fix-checks
22631 (lambda _
22632 (substitute* "Makefile"
22633 (("@cask exec ") ""))
22634 (substitute* "test/test-helper.el"
22635 (("'\\(evil iedit\\)") "nil")))))
22636 #:tests? #t
22637 #:test-command '("make" "test")))
22638 (home-page "https://github.com/hlissner/evil-multiedit")
22639 (synopsis "Multiple cursors for Evil mode")
22640 (description
22641 "This plugin was an answer to the lack of proper multiple cursor support
22642 in Emacs+Evil. It allows you to select and edit matches interactively,
22643 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
22644 defaults.")
22645 (license license:gpl3+)))
22646
22647 (define-public emacs-evil-mc
22648 (let ((commit "1cabb869fe70cef49f7dc06f015c3ade1a969c8c")
22649 (revision "2"))
22650 (package
22651 (name "emacs-evil-mc")
22652 (version (git-version "0.0.3" revision commit))
22653 (source
22654 (origin
22655 (method git-fetch)
22656 (uri (git-reference
22657 (url "https://github.com/gabesoft/evil-mc")
22658 (commit commit)))
22659 (file-name (git-file-name name version))
22660 (sha256
22661 (base32 "0p83p90faq1p02lmsfs7zrnky3cyzgy8z4m83a81r9kakjzhkrnb"))))
22662 (build-system emacs-build-system)
22663 (propagated-inputs
22664 (list emacs-evil))
22665 (native-inputs
22666 (list emacs-espuds))
22667 (home-page "https://github.com/gabesoft/evil-mc")
22668 (synopsis "Interactive search compatible with @code{multiple-cursors}")
22669 (description "This package can be used with @code{multiple-cursors} to
22670 provide an incremental search that moves all fake cursors in sync.")
22671 (license license:expat))))
22672
22673 (define-public emacs-evil-org
22674 (let ((commit "0d10ff7bb9a3a93d25cd91018b17f0a052b335f3")
22675 (revision "2"))
22676 (package
22677 (name "emacs-evil-org")
22678 (version (git-version "1.0.3" revision commit))
22679 (source
22680 (origin
22681 (method git-fetch)
22682 (uri (git-reference
22683 (url "https://github.com/Somelauw/evil-org-mode")
22684 (commit commit)))
22685 (file-name (git-file-name name version))
22686 (sha256
22687 (base32
22688 "15g47xgpswzc8lz7qdbbzfcq1n9m4474qa2jkg43l8d5ali8qa7z"))))
22689 (build-system emacs-build-system)
22690 (propagated-inputs (list emacs-evil))
22691 (home-page
22692 "https://github.com/Somelauw/evil-org-mode")
22693 (synopsis "Evil keybindings for Org mode")
22694 (description
22695 "This package adds supplemental Evil mode key-bindings to Emacs
22696 Org-mode. It features:
22697 @itemize
22698 @item normal, visual and insert mode bindings;
22699 @item key bindings organised in key themes;
22700 @item operators like > and < to work on headings;
22701 @item text objects;
22702 @item table support;
22703 @item calendar (date selection) support;
22704 @item agenda support.
22705 @end itemize\n")
22706 (license license:gpl3+))))
22707
22708 (define-public emacs-debpaste
22709 (package
22710 (name "emacs-debpaste")
22711 (version "0.1.5")
22712 (home-page "https://github.com/alezost/debpaste.el")
22713 (source
22714 (origin
22715 (method git-fetch)
22716 (uri (git-reference (url home-page)
22717 (commit (string-append "v" version))))
22718 (file-name (git-file-name name version))
22719 (sha256
22720 (base32
22721 "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
22722 (build-system emacs-build-system)
22723 (propagated-inputs
22724 (list emacs-xml-rpc))
22725 (synopsis "Manipulate pastes from the Debian Pastezone")
22726 (description "Debpaste is an Emacs interface for the Debian Pastezone,
22727 allowing you to receive, post, and delete pastes. It communicates with the
22728 server using XML-RPC.")
22729 (license license:gpl3+)))
22730
22731 (define-public emacs-xml-rpc
22732 (package
22733 (name "emacs-xml-rpc")
22734 (version "1.6.15")
22735 (source
22736 (origin
22737 (method git-fetch)
22738 (uri (git-reference
22739 (url "https://github.com/hexmode/xml-rpc-el")
22740 (commit version)))
22741 (file-name (git-file-name name version))
22742 (sha256
22743 (base32 "07vgwnk96i1vpsv2glg6kbkamjcs72xiznsa6xk7nl0nranzr3hd"))))
22744 (build-system emacs-build-system)
22745 (home-page "https://github.com/hexmode/xml-rpc-el")
22746 (synopsis "XML-RPC client for Emacs")
22747 (description "This package provides an XML-RPC client for Emacs capable
22748 of both synchronous and asynchronous method calls using the @code{url}
22749 package's async retrieval functionality. @file{xml-rpc.el} represents XML-RPC
22750 datatypes as Lisp values, automatically converting to and from the XML
22751 datastructures as needed, both for method parameters and return values, making
22752 using XML-RPC methods fairly transparent to the Lisp code.")
22753 (license license:gpl3+)))
22754
22755 (define-public emacs-xpm
22756 (package
22757 (name "emacs-xpm")
22758 (version "1.0.5")
22759 (source
22760 (origin
22761 (method url-fetch)
22762 (uri (string-append "https://elpa.gnu.org/packages/xpm-"
22763 version ".tar"))
22764 (sha256
22765 (base32 "13p6s6b2v7h4bnwdkkrd1qz84jd7g2s18w0czhpxv6hvj9sqf5hx"))))
22766 (build-system emacs-build-system)
22767 (home-page "https://elpa.gnu.org/packages/xpm.html")
22768 (synopsis "XPM image editing mode for Emacs")
22769 (description "This Emacs package makes editing XPM images easy (and maybe
22770 fun). Editing is done directly on the (textual) image format, for maximal
22771 cohesion with the Emacs Way.")
22772 (license license:gpl3+)))
22773
22774 (define-public emacs-fish-completion
22775 (package
22776 (name "emacs-fish-completion")
22777 (version "1.2")
22778 (source
22779 (origin
22780 (method git-fetch)
22781 (uri (git-reference
22782 (url "https://gitlab.com/Ambrevar/emacs-fish-completion.git")
22783 (commit version)))
22784 (file-name (git-file-name name version))
22785 (sha256
22786 (base32
22787 "17lqip1i1rrsvxzz4bx9rqf1fvwd3hriwg3sj6qxmfc8pylnp37q"))))
22788 (build-system emacs-build-system)
22789 (inputs (list fish))
22790 (arguments
22791 `(#:phases
22792 (modify-phases %standard-phases
22793 (add-after 'unpack 'configure
22794 (lambda* (#:key inputs outputs #:allow-other-keys)
22795 (let ((fish (assoc-ref inputs "fish")))
22796 ;; Specify the absolute file names of the various
22797 ;; programs so that everything works out-of-the-box.
22798 (make-file-writable "fish-completion.el")
22799 (emacs-substitute-variables
22800 "fish-completion.el"
22801 ("fish-completion-command"
22802 (string-append fish "/bin/fish")))))))))
22803 (home-page
22804 "https://gitlab.com/Ambrevar/emacs-fish-completion")
22805 (synopsis "Fish completion for Emacs pcomplete")
22806 (description
22807 "This package provides completion for the Fish shell to pcomplete (used
22808 by shell and Eshell). You can set it up globally with:
22809
22810 @example
22811 (when (and (executable-find \"fish\")
22812 (require 'fish-completion nil t))
22813 (global-fish-completion-mode))
22814 @end example
22815
22816 Alternatively, you can call the @code{fish-completion-mode} manually or in
22817 shell/Eshell mode hook.
22818
22819 The package @code{emacs-bash-completion} is an optional dependency: if available,
22820 @code{fish-completion-complete} can be configured to fall back on bash to further
22821 try completing. See @code{fish-completion-fallback-on-bash-p}.")
22822 (license license:gpl3+)))
22823
22824 (define-public emacs-gif-screencast
22825 (package
22826 (name "emacs-gif-screencast")
22827 (version "1.2")
22828 (source
22829 (origin
22830 (method git-fetch)
22831 (uri (git-reference
22832 (url "https://gitlab.com/Ambrevar/emacs-gif-screencast.git")
22833 (commit version)))
22834 (file-name (git-file-name name version))
22835 (sha256
22836 (base32
22837 "1yf6yipvhhna29mzaan5vb3d5qvbrkp2awr5diyf381mvxgk8akh"))))
22838 (build-system emacs-build-system)
22839 (inputs
22840 (list scrot imagemagick gifsicle))
22841 (arguments
22842 `(#:phases
22843 (modify-phases %standard-phases
22844 (add-after 'unpack 'configure
22845 (lambda* (#:key inputs outputs #:allow-other-keys)
22846 (let ((scrot (assoc-ref inputs "scrot"))
22847 (imagemagick (assoc-ref inputs "imagemagick"))
22848 (gifsicle (assoc-ref inputs "gifsicle")))
22849 (make-file-writable "gif-screencast.el")
22850 ;; Specify the absolute file names of the various
22851 ;; programs so that everything works out-of-the-box.
22852 (emacs-substitute-variables
22853 "gif-screencast.el"
22854 ("gif-screencast-program"
22855 (string-append scrot "/bin/scrot"))
22856 ("gif-screencast-convert-program"
22857 (string-append imagemagick "/bin/convert"))
22858 ("gif-screencast-cropping-program"
22859 (string-append imagemagick "/bin/mogrify"))
22860 ("gif-screencast-optimize-program"
22861 (string-append gifsicle "/bin/gifsicle")))))))))
22862 (home-page
22863 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
22864 (synopsis "One-frame-per-action GIF recording")
22865 (description
22866 "Call @code{gif-screencast} to start a recording.
22867 A screenshot is taken for every user action. Call
22868 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
22869 the GIF result.")
22870 (license license:gpl3+)))
22871
22872 (define-public emacs-google-translate
22873 (package
22874 (name "emacs-google-translate")
22875 (version "0.12.0")
22876 (source
22877 (origin
22878 (method git-fetch)
22879 (uri (git-reference
22880 (url "https://github.com/atykhonov/google-translate/")
22881 (commit (string-append "v" version))))
22882 (file-name (git-file-name name version))
22883 (sha256
22884 (base32
22885 "0rwpij2bm8d4jq2w5snkp88mfryplw8166dsrjm407n2p6xr48zx"))))
22886 (build-system emacs-build-system)
22887 (home-page "https://github.com/atykhonov/google-translate")
22888 (synopsis "Emacs interface to Google Translate")
22889 (description
22890 "This package provides an Emacs interface to the Google Translate
22891 on-line service.")
22892 (license license:gpl3+)))
22893
22894 (define-public emacs-helm-company
22895 (package
22896 (name "emacs-helm-company")
22897 (version "0.2.5")
22898 (source
22899 (origin
22900 (method git-fetch)
22901 (uri (git-reference
22902 (url "https://github.com/Sodel-the-Vociferous/helm-company")
22903 (commit (string-append "v" version))))
22904 (file-name (git-file-name name version))
22905 (sha256
22906 (base32
22907 "1ci37w6ahnqrfpb284gjvxmimlf61sdxb9k192yy9q983cksv2hx"))))
22908 (build-system emacs-build-system)
22909 (propagated-inputs
22910 (list emacs-helm emacs-company))
22911 (native-inputs
22912 (list emacs-ert-runner))
22913 (arguments
22914 `(#:tests? #t
22915 #:test-command '("ert-runner")))
22916 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
22917 (synopsis "Helm interface for company-mode")
22918 (description
22919 "This is a Helm interface to company-mode, a text completion
22920 framework.")
22921 (license license:gpl3+)))
22922
22923 (define-public emacs-helm-descbinds
22924 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
22925 (package
22926 (name "emacs-helm-descbinds")
22927 (version (git-version "1.13" "1" commit))
22928 (source
22929 (origin
22930 (method git-fetch)
22931 (uri (git-reference
22932 (url "https://github.com/emacs-helm/helm-descbinds")
22933 (commit commit)))
22934 (file-name (git-file-name name version))
22935 (sha256
22936 (base32
22937 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
22938 (build-system emacs-build-system)
22939 (propagated-inputs (list emacs-helm))
22940 (home-page "https://github.com/emacs-helm/helm-descbinds")
22941 (synopsis "Convenient @code{describe-bindings} with Helm")
22942 (description
22943 "This package is a replacement of @code{describe-bindings} for Helm.
22944 @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
22945 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
22946 @code{helm-descbinds}. The bindings are presented in a similar way as
22947 @code{describe-bindings} does, but you can use completion to find the command
22948 you searched for and execute it, or view its documentation.")
22949 (license license:gpl3+))))
22950
22951 (define-public emacs-helm-emms
22952 (let ((commit "37e5aa029abfa5a5c48636314de8157142944fa2"))
22953 (package
22954 (name "emacs-helm-emms")
22955 (version (git-version "1.3" "3" commit))
22956 (source
22957 (origin
22958 (method git-fetch)
22959 (uri (git-reference
22960 (url "https://github.com/emacs-helm/helm-emms")
22961 (commit commit)))
22962 (file-name (git-file-name name version))
22963 (sha256
22964 (base32
22965 "0r1ai6xhzayyik30w2sx9n62bxxwm12vfmjspv0daqif9az8y3vg"))))
22966 (build-system emacs-build-system)
22967 (propagated-inputs
22968 (list emacs-helm emacs-emms))
22969 (home-page
22970 "https://github.com/emacs-helm/helm-emms")
22971 (synopsis "Emms for Helm")
22972 (description "Helm interface for Emms to browse all tracks and all folders
22973 from @code{emms-source-file-default-directory}.")
22974 (license license:gpl3+))))
22975
22976 (define-public emacs-helm-exwm
22977 (package
22978 (name "emacs-helm-exwm")
22979 (version "0.0.2")
22980 (source
22981 (origin
22982 (method git-fetch)
22983 (uri (git-reference
22984 (url "https://github.com/emacs-helm/helm-exwm")
22985 (commit version)))
22986 (file-name (git-file-name name version))
22987 (sha256
22988 (base32 "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v"))))
22989 (build-system emacs-build-system)
22990 (propagated-inputs
22991 (list emacs-helm emacs-exwm))
22992 (home-page
22993 "https://github.com/emacs-helm/helm-exwm")
22994 (synopsis "Helm for EXWM buffers")
22995 (description
22996 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
22997 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
22998 switch between the various windows of one or several specific applications.
22999 See @code{helm-exwm-switch-browser} for an example.")
23000 (license license:gpl3+)))
23001
23002 (define-public emacs-helm-flycheck
23003 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
23004 (package
23005 (name "emacs-helm-flycheck")
23006 (version (git-version "0.4" "1" commit))
23007 (source
23008 (origin
23009 (method git-fetch)
23010 (uri (git-reference
23011 (url "https://github.com/yasuyk/helm-flycheck")
23012 (commit commit)))
23013 (file-name (git-file-name name version))
23014 (sha256
23015 (base32
23016 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
23017 (build-system emacs-build-system)
23018 (propagated-inputs
23019 (list emacs-dash emacs-flycheck emacs-helm))
23020 (home-page "https://github.com/yasuyk/helm-flycheck")
23021 (synopsis "Show Flycheck errors with Helm")
23022 (description
23023 "This integrates Flycheck with Helm.")
23024 (license license:gpl3+))))
23025
23026 (define-public emacs-helm-ls-git
23027 (package
23028 (name "emacs-helm-ls-git")
23029 (version "1.9.4")
23030 (source
23031 (origin
23032 (method git-fetch)
23033 (uri (git-reference
23034 (url "https://github.com/emacs-helm/helm-ls-git")
23035 (commit (string-append "v" version))))
23036 (file-name (git-file-name name version))
23037 (sha256
23038 (base32 "097zpwpn18dgazp19czrcn6iz965qgr45gq9lvjrkkp0w03pbdb6"))))
23039 (build-system emacs-build-system)
23040 (propagated-inputs (list emacs-helm))
23041 (home-page "https://github.com/emacs-helm/helm-ls-git")
23042 (synopsis "Helm interface for listing the files in a Git repository")
23043 (description
23044 "This package provides a Helm interface for Git files.
23045 @itemize
23046 @item Display the open buffers in project.
23047 @item Display a status source showing state of project (modified files etc.).
23048 @item Display a list of all files in project under git control.
23049 @item Quickly look at diffs of modified files.
23050 @item Allow switching to @code{git status} with your preferred frontend
23051 (vc-dir, Magit,etc.).
23052 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
23053 can use ack-grep instead of grep).
23054 @item Integrate usage of gid from id-utils.
23055 @item Full integration with @code{helm-find-files}, allow you to browse
23056 projects unrelated to current-buffer.
23057 @item In addition, all actions of type files and buffers are provided.
23058 @end itemize\n")
23059 (license license:gpl3+)))
23060
23061 (define-public emacs-helm-mu
23062 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
23063 (package
23064 (name "emacs-helm-mu")
23065 (version (git-version "20180513" "1" commit))
23066 (source
23067 (origin
23068 (method git-fetch)
23069 (uri (git-reference
23070 (url "https://github.com/emacs-helm/helm-mu")
23071 (commit commit)))
23072 (file-name (git-file-name name version))
23073 (sha256
23074 (base32 "1lh0ahxdc5b2z18m9p30gwg8sbg33sjwkjr38p7h5xsm5fm7i0fz"))))
23075 (build-system emacs-build-system)
23076 (propagated-inputs
23077 (list emacs-helm mu))
23078 (home-page
23079 "https://github.com/emacs-helm/helm-mu")
23080 (synopsis
23081 "Helm sources for searching emails and contacts")
23082 (description
23083 "Helm sources for searching emails and contacts using @code{mu} and
23084 @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
23085 Emacs build on top of mu. Mu is highly efficient making it possible to get
23086 instant results even for huge maildirs. It also provides search operators,
23087 e.g: @code{from:Peter to:Anne flag:attach search term}.")
23088 (license license:gpl3+))))
23089
23090 (define-public emacs-helm-pass
23091 (package
23092 (name "emacs-helm-pass")
23093 (version "0.4")
23094 (source
23095 (origin
23096 (method git-fetch)
23097 (uri (git-reference
23098 (url "https://github.com/emacs-helm/helm-pass")
23099 (commit version)))
23100 (file-name (git-file-name name version))
23101 (sha256
23102 (base32
23103 "19w24isddzamkikq17vbv3y7ha22i7wc09d2nqw1j0qwhrrfkng9"))))
23104 (build-system emacs-build-system)
23105 (propagated-inputs
23106 (list emacs-helm emacs-password-store))
23107 (home-page "https://github.com/emacs-helm/helm-pass")
23108 (synopsis "Helm interface to pass, the standard Unix password manager")
23109 (description
23110 "Users of @code{helm-pass} may also be interested in functionality
23111 provided by other Emacs packages dealing with pass:
23112 @itemize
23113 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
23114 @item @code{emacs-pass}, a major mode for @code{pass}.
23115 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
23116 @code{pass}, included in Emacs 26+).
23117 @end itemize\n")
23118 (license license:gpl3+)))
23119
23120 (define-public emacs-image+
23121 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
23122 (package
23123 (name "emacs-image+")
23124 (version (git-version "0.6.2" "1" commit))
23125 (source
23126 (origin
23127 (method git-fetch)
23128 (uri (git-reference
23129 (url "https://github.com/mhayashi1120/Emacs-imagex")
23130 (commit commit)))
23131 (file-name (git-file-name name version))
23132 (sha256
23133 (base32
23134 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
23135 (build-system emacs-build-system)
23136 (inputs (list imagemagick))
23137 (arguments
23138 `(#:phases
23139 (modify-phases %standard-phases
23140 (add-after 'unpack 'configure
23141 (lambda* (#:key inputs outputs #:allow-other-keys)
23142 (let ((imagemagick (assoc-ref inputs "imagemagick")))
23143 ;; Specify the absolute file names of the various
23144 ;; programs so that everything works out-of-the-box.
23145 (chmod "image+.el" #o666)
23146 (emacs-substitute-variables
23147 "image+.el"
23148 ("imagex-convert-command"
23149 (string-append imagemagick "/bin/convert"))
23150 ("imagex-identify-command"
23151 (string-append imagemagick "/bin/identify")))))))))
23152 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
23153 (synopsis "Image manipulation extensions for Emacs")
23154 (description
23155 "Image+ provides keybindings allowing you to zoom in or zoom out of an
23156 image, rotate it, save modified images, and more.")
23157 (license license:gpl3+))))
23158
23159 (define-public emacs-package-lint
23160 (package
23161 (name "emacs-package-lint")
23162 (version "0.16")
23163 (source
23164 (origin
23165 (method git-fetch)
23166 (uri (git-reference
23167 (url "https://github.com/purcell/package-lint")
23168 (commit version)))
23169 (file-name (git-file-name name version))
23170 (sha256
23171 (base32
23172 "0srqcrhbdmd39jdsvh8k3nbrkqrl4nlic59dp5bal5vj495j7126"))))
23173 (arguments
23174 '(#:include (cons "^data/" %default-include)))
23175 (build-system emacs-build-system)
23176 (home-page "https://github.com/purcell/package-lint")
23177 (synopsis "Linting library for elisp package authors")
23178 (description
23179 "This provides a list of issues with the Emacs package metadata of a file,
23180 e.g. the package dependencies it requires. See function
23181 @code{package-lint-buffer}. Checks will currently be enabled only if a
23182 \"Package-Requires:\" or \"Package-Version:\" header is present in the
23183 file.")
23184 (license license:gpl3+)))
23185
23186 (define-public emacs-packed
23187 (package
23188 (name "emacs-packed")
23189 (version "3.0.4")
23190 (source
23191 (origin
23192 (method git-fetch)
23193 (uri (git-reference
23194 (url "https://github.com/emacscollective/packed")
23195 (commit version)))
23196 (file-name (git-file-name name version))
23197 (sha256
23198 (base32 "1gpv2vaci0m48fzn0sy7iwl1mnkkqc30bf05jjrqlpn9kpbjyf1p"))))
23199 (build-system emacs-build-system)
23200 (home-page "https://github.com/emacscollective/packed")
23201 (synopsis "Package manager agnostic Emacs Lisp package utilities")
23202 (description
23203 "Packed provides some package manager agnostic utilities to work
23204 with Emacs Lisp packages. As far as Packed is concerned packages
23205 are collections of Emacs Lisp libraries that are stored in a
23206 dedicated directory such as a Git repository. And libraries are
23207 Emacs Lisp files that provide the correct feature (matching the
23208 filename).
23209
23210 Where a package manager might depend on metadata, Packed instead
23211 uses some heuristics to get the same information---that is slower
23212 and might also fail at times but makes it unnecessary to maintain
23213 package recipes.")
23214 (license license:gpl3+)))
23215
23216 (define-public emacs-dpd
23217 (package
23218 (name "emacs-dpd")
23219 (version "0.2.1")
23220 (source
23221 (origin
23222 (method git-fetch)
23223 (uri (git-reference
23224 (url "https://gitlab.com/lilyp/emacs-dpd")
23225 (commit version)))
23226 (file-name (git-file-name name version))
23227 (sha256
23228 (base32 "0wrqmpfcqp87dr5blpskf9kvm9slvffldqfxx77n15gcw516zzc8"))))
23229 (build-system emacs-build-system)
23230 (propagated-inputs
23231 (list emacs-packed))
23232 (home-page "https://gitlab.com/lilyp/emacs-dpd")
23233 (synopsis "Deliver packages to package.el")
23234 (description
23235 "This package provides tools for generating package-desc structures and
23236 feeding them to package.el library.")
23237 (license license:gpl3+)))
23238
23239 (define-public emacs-picpocket
23240 (let ((version "41")
23241 (commit "fa3a49f011b5ae139728548fec7375743f61c7c7"))
23242 (package
23243 (name "emacs-picpocket")
23244 (version version)
23245 (source
23246 (origin
23247 (method git-fetch)
23248 (uri (git-reference
23249 (url "https://github.com/johanclaesson/picpocket")
23250 (commit commit)))
23251 (file-name (git-file-name name version))
23252 (sha256
23253 (base32 "1vb358jyfs3px70ah60dmlz5azdfkva9xrw3mgrr4060vcy7w4q1"))))
23254 (build-system emacs-build-system)
23255 (arguments ; needed for running tests
23256 `(#:tests? #t
23257 #:emacs ,emacs
23258 #:test-command '("emacs" "--batch"
23259 "-l" "picpocket-test.el"
23260 "-f" "ert-run-tests-batch-and-exit")))
23261 (home-page "https://github.com/johanclaesson/picpocket")
23262 (synopsis "Image viewer for Emacs")
23263 (description
23264 "Picpocket is an image viewer for GNU Emacs. It has commands for:
23265 @itemize
23266 @item File operations on the picture files (delete, move, copy, hardlink).
23267 @item Scale and rotate the picture.
23268 @item Associate pictures with tags which are saved to disk.
23269 @item Filter pictures according to tags.
23270 @item Customizing keystrokes for quick tagging and file operations.
23271 @item Undo and browse history of undoable commands.
23272 @end itemize")
23273 (license license:gpl3+))))
23274
23275 (define-public emacs-mu4e-conversation
23276 (let ((commit "98110bb9c300fc9866dee8e0023355f9f79c9b96")
23277 (revision "5"))
23278 (package
23279 (name "emacs-mu4e-conversation")
23280 (version (git-version "0.0.1" revision commit))
23281 (source
23282 (origin
23283 (method git-fetch)
23284 (uri (git-reference
23285 (url "https://gitlab.com/Ambrevar/mu4e-conversation.git")
23286 (commit commit)))
23287 (file-name (git-file-name name version))
23288 (sha256
23289 (base32
23290 "080s96jkcw2p288sp1vgds91rgl693iz6hi2dv56p2ih0nnivwlg"))))
23291 (build-system emacs-build-system)
23292 (propagated-inputs
23293 (list mu))
23294 (home-page
23295 "https://gitlab.com/Ambrevar/mu4e-conversation")
23296 (synopsis
23297 "Show a complete thread in a single buffer")
23298 (description
23299 "This package offers an alternate view to mu4e's e-mail display. It
23300 shows all e-mails of a thread in a single view, where each correspondent has
23301 their own face. Threads can be displayed linearly (in which case e-mails are
23302 displayed in chronological order) or as an Org document where the node tree
23303 maps the thread tree.")
23304 (license license:gpl3+))))
23305
23306 (define-public emacs-pinentry
23307 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
23308 (revision "1"))
23309 (package
23310 (name "emacs-pinentry")
23311 (version (git-version "0.1" revision commit))
23312 (source
23313 (origin
23314 (method url-fetch)
23315 (uri (string-append
23316 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
23317 "/packages/pinentry/pinentry.el?id=" commit))
23318 (file-name (string-append "pinentry.el"))
23319 (sha256
23320 (base32
23321 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
23322 (build-system emacs-build-system)
23323 (propagated-inputs
23324 (list gnupg))
23325 (home-page "https://elpa.gnu.org/packages/pinentry.html")
23326 (synopsis "GnuPG Pinentry server implementation")
23327 (description
23328 "This package allows GnuPG passphrase to be prompted through the
23329 minibuffer instead of graphical dialog.
23330
23331 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
23332 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
23333 server with @code{M-x pinentry-start}.")
23334 (license license:gpl3+))))
23335
23336 (define-public emacs-so-long
23337 (package
23338 (name "emacs-so-long")
23339 (version "1.1.2")
23340 (source
23341 (origin
23342 (method git-fetch)
23343 (uri (git-reference
23344 (url "https://git.savannah.gnu.org/git/so-long")
23345 (commit version)))
23346 (file-name (git-file-name name version))
23347 (sha256
23348 (base32
23349 "06a76ajfqgz48yqvvyhi5b9zss9c6h4xz6acg98ibg0v99v9k5pz"))))
23350 (build-system emacs-build-system)
23351 (home-page "https://www.emacswiki.org/emacs/SoLong")
23352 (synopsis "Improve performance in files with long lines")
23353 (description "This package improves the performance of Emacs when
23354 viewing files with long lines. It is included as standard with Emacs 27 or
23355 later.")
23356 (license license:gpl3+)))
23357
23358 (define-public emacs-srfi
23359 ;; SRFI data gets updated quite frequently; lastest tag is from
23360 ;; 2020; commit from 2021-08-12.
23361 (let ((commit "e31bf04a3be3aad1286b7fe919c2e4810aae751e")
23362 (revision "0"))
23363 (package
23364 (name "emacs-srfi")
23365 (version (git-version "0.3" revision commit))
23366 (source (origin
23367 (method git-fetch)
23368 (uri (git-reference
23369 (url "https://github.com/srfi-explorations/emacs-srfi")
23370 (commit commit)))
23371 (file-name (git-file-name name version))
23372 (sha256
23373 (base32
23374 "01n3yrjrdl2gdhvgd56lpjqg9d82mmrnb0h6hxdx4h5hy8sbk2p4"))))
23375 (build-system emacs-build-system)
23376 (home-page "https://github.com/srfi-explorations/emacs-srfi")
23377 (synopsis "Scheme Requests for Implementation browser in Emacs")
23378 (description
23379 "This package shows a list of all SRFIs and provides commands to visit
23380 them in your web browser.")
23381 (license license:expat))))
23382
23383 (define-public emacs-github-review
23384 (let ((commit "a13a3b4f1b6114a32af843971a145ab880f51232")
23385 (revision "2"))
23386 (package
23387 (name "emacs-github-review")
23388 (version (git-version "0.1" revision commit))
23389 (source
23390 (origin
23391 (method git-fetch)
23392 (uri (git-reference
23393 (url "https://github.com/charignon/github-review")
23394 (commit commit)))
23395 (file-name (git-file-name name version))
23396 (sha256
23397 (base32
23398 "0injfpxzgfhmqalba845j5l5cdcxxqz43knhxwinf36g52nfabl0"))))
23399 (build-system emacs-build-system)
23400 (inputs
23401 (list emacs-dash emacs-s emacs-ghub))
23402 (native-inputs
23403 (list emacs-buttercup emacs-undercover))
23404 (arguments
23405 `(#:tests? #t
23406 #:test-command '("buttercup" "-L" "test/github-review-test.el")))
23407 (home-page "https://github.com/charignon/github-review")
23408 (synopsis "Review GitHub pull requests within Emacs")
23409 (description "This package provides commands to pull in, comment on, and
23410 accept and reject GitHub pull requests.")
23411 (license license:gpl3+))))
23412
23413 (define-public emacs-deadgrep
23414 ;; Latest release is not tagged.
23415 (let ((commit "aebaf72e35546fd235b4861399791814e4e4c7d8")
23416 (revision "1"))
23417 (package
23418 (name "emacs-deadgrep")
23419 (version (git-version "0.11" revision commit))
23420 (source
23421 (origin
23422 (method git-fetch)
23423 (uri (git-reference
23424 (url "https://github.com/Wilfred/deadgrep")
23425 (commit commit)))
23426 (file-name (git-file-name name version))
23427 (sha256
23428 (base32
23429 "1qd60winrrpxmrjsx77i24921p6dad9halz5l5s6biwa421zcgr3"))))
23430 (build-system emacs-build-system)
23431 (inputs (list ripgrep))
23432 (propagated-inputs
23433 (list emacs-dash emacs-s emacs-spinner))
23434 (arguments
23435 `(#:phases
23436 (modify-phases %standard-phases
23437 (add-after 'unpack 'configure
23438 (lambda* (#:key inputs #:allow-other-keys)
23439 (let ((ripgrep (assoc-ref inputs "ripgrep")))
23440 ;; .el is read-only in git.
23441 (make-file-writable "deadgrep.el")
23442 ;; Specify the absolute file names of rg so that everything
23443 ;; works out-of-the-box.
23444 (emacs-substitute-variables "deadgrep.el"
23445 ("deadgrep-executable"
23446 (string-append ripgrep "/bin/rg")))))))))
23447 (home-page "https://github.com/Wilfred/deadgrep")
23448 (synopsis "Frontend for @code{ripgrep}")
23449 (description "This package provides an Emacs interface for performing
23450 searches with @code{ripgrep}.")
23451 (license license:gpl3+))))
23452
23453 (define-public emacs-focus
23454 (let ((commit "5f3f20e7f22fb9fd7c48abce8bd38061d97e4bc0")
23455 (version "1.0.0")
23456 (revision "1"))
23457 (package
23458 (name "emacs-focus")
23459 (version (git-version version revision commit))
23460 (source
23461 (origin
23462 (method git-fetch)
23463 (uri (git-reference
23464 (url "https://github.com/larstvei/Focus")
23465 (commit commit)))
23466 (file-name (git-file-name name version))
23467 (sha256
23468 (base32
23469 "0a55i4bychfnnzjg67a9h4j130hchcg44446dwwx1l1h48i692dw"))))
23470 (build-system emacs-build-system)
23471 (home-page "https://github.com/larstvei/Focus")
23472 (synopsis "Minor mode for focusing in on relevant text")
23473 (description "This package provides a minor mode that dims the color of
23474 text in neighboring sections.")
23475 (license license:gpl3+))))
23476
23477 (define-public emacs-pandoc-mode
23478 (package
23479 (name "emacs-pandoc-mode")
23480 (version "2.32")
23481 (source
23482 (origin
23483 (method git-fetch)
23484 (uri (git-reference
23485 (url "https://github.com/joostkremers/pandoc-mode")
23486 (commit version)))
23487 (file-name (git-file-name name version))
23488 (sha256
23489 (base32
23490 "1yn9mdlxcv9d33nvgy3wp09qhynb2m50cyhsv1xf77wyzlwdlb2p"))))
23491 (build-system emacs-build-system)
23492 (propagated-inputs
23493 (list emacs-dash emacs-hydra))
23494 (home-page "https://github.com/joostkremers/pandoc-mode")
23495 (synopsis "Minor mode for interacting with Pandoc")
23496 (description "This package provides a Hydra menu for interacting with the
23497 Pandoc, the document-conversion tool.")
23498 (license license:bsd-3)))
23499
23500 (define-public emacs-hlint-refactor-mode
23501 (let ((commit "c4307f86aad6d02e32e9b30cb6edc115584c791c")
23502 (revision "1"))
23503 (package
23504 (name "emacs-hlint-refactor-mode")
23505 (version (git-version "0.0.1" revision commit))
23506 (source
23507 (origin
23508 (method git-fetch)
23509 (uri (git-reference
23510 (url "https://github.com/mpickering/hlint-refactor-mode")
23511 (commit commit)))
23512 (file-name (git-file-name name version))
23513 (sha256
23514 (base32
23515 "1c71w9s34n0i7mm4njchxn6s3ri1y6mh3akgbg4nq41d42h8iap3"))))
23516 (build-system emacs-build-system)
23517 (propagated-inputs
23518 (list apply-refact hlint))
23519 (home-page "https://github.com/mpickering/hlint-refactor-mode")
23520 (synopsis "Emacs bindings for @code{hlint}'s @code{--refactor} option")
23521 (description "This package applies refactoring suggestions from
23522 @code{hlint}.")
23523 (license license:expat))))
23524
23525 (define-public emacs-ccls
23526 (let ((commit "675a5704c14a27931e835a431beea3631d92e8e6")
23527 (revision "5"))
23528 (package
23529 (name "emacs-ccls")
23530 (version (git-version "0.1" revision commit))
23531 (source
23532 (origin
23533 (method git-fetch)
23534 (uri (git-reference
23535 (url "https://github.com/MaskRay/emacs-ccls")
23536 (commit commit)))
23537 (file-name (git-file-name name version))
23538 (sha256
23539 (base32
23540 "0l4bhyr9d8ljz1f0cfg1s2cjcmh6fiwbk5mdlvc7rrwz5hxc21is"))))
23541 (build-system emacs-build-system)
23542 (propagated-inputs
23543 (list ccls emacs-dash emacs-lsp-mode))
23544 (home-page "https://github.com/MaskRay/emacs-ccls")
23545 (synopsis "Emacs support for the @code{ccls} language server")
23546 (description "This package extends @code{lsp-mode} to work with @code{C}
23547 and @code{C++} files through the @code{ccls} language server.")
23548 (license license:expat))))
23549
23550 (define-public emacs-cpreproc
23551 (package
23552 (name "emacs-cpreproc")
23553 (version "1.0.0")
23554 (source
23555 (origin
23556 (method git-fetch)
23557 (uri (git-reference
23558 (url "https://git.sr.ht/~plattfot/cpreproc")
23559 (commit version)))
23560 (sha256
23561 (base32
23562 "0n4lhj9bbnkbzvifrj9q6z3j7z6jqzkaa36y239cfxdcc7i86c1c"))
23563 (file-name (git-file-name name version))))
23564 (build-system emacs-build-system)
23565 (home-page "https://sr.ht/~plattfot/cpreproc")
23566 (synopsis "Wrap C/C++ code in preprocessor macros")
23567 (description
23568 "Aim for this project is to make it easier to generate preprocessor macros
23569 from Emacs for C/C++ code that needs to be build against multiple incompatible
23570 versions of third party libraries or @code{C++} standards.")
23571 (license license:gpl3+)))
23572
23573 (define-public emacs-org-brain
23574 (package
23575 (name "emacs-org-brain")
23576 (version "0.5")
23577 (source
23578 (origin
23579 (method git-fetch)
23580 (uri (git-reference
23581 (url "https://github.com/Kungsgeten/org-brain")
23582 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
23583 (file-name (git-file-name name version))
23584 (sha256
23585 (base32
23586 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
23587 (build-system emacs-build-system)
23588 (home-page "https://github.com/Kungsgeten/org-brain")
23589 (synopsis "Org-mode wiki and concept-mapping for Emacs")
23590 (description "@code{emacs-org-brain} implements a variant of concept
23591 mapping in Emacs, using @code{org-mode}. An org-brain is a network of
23592 org-mode entries, where each entry is a file or a headline, and you can get a
23593 visual overview of the relationships between the entries: parents, children,
23594 siblings and friends. This visual overview can also be used to browse your
23595 entries. You can think of entries as nodes in a mind map, or pages in a
23596 wiki.")
23597 (license license:expat)))
23598
23599 (define-public emacs-recent-addresses
23600 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
23601 (revision "1"))
23602 (package
23603 (name "emacs-recent-addresses")
23604 (home-page "https://nschum.de/src/emacs/recent-addresses/")
23605 (version (git-version "0.1" revision commit))
23606 (source (origin
23607 (method git-fetch)
23608 (uri (git-reference
23609 ;; Note: Use a branch that works with Helm. Submitted
23610 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
23611 (url "https://github.com/civodul/recent-addresses.el")
23612 (commit commit)))
23613 (sha256
23614 (base32
23615 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
23616 (file-name (git-file-name name version))))
23617 (build-system emacs-build-system)
23618 (synopsis "Record recently-used email addressed and auto-complete them")
23619 (description
23620 "@code{recent-addresses} is an Emacs package that allows you to quickly
23621 look up previously used email addresses. It can be used alongside the Gnus
23622 email client.")
23623 (license license:gpl2+))))
23624
23625 (define-public emacs-fold-dwim
23626 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
23627 (revision "0"))
23628 (package
23629 (name "emacs-fold-dwim")
23630 (version (git-version "1.2" revision commit))
23631 (home-page "https://github.com/emacsattic/fold-dwim")
23632 (source (origin
23633 (method git-fetch)
23634 (uri (git-reference (url home-page) (commit commit)))
23635 (sha256
23636 (base32
23637 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
23638 (file-name (git-file-name name version))))
23639 (build-system emacs-build-system)
23640 (synopsis "Unified user interface for Emacs folding modes")
23641 (description
23642 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
23643 can do different things depending on the context. In this package, it means
23644 that, if the cursor is in a currently hidden folded construction, we want to
23645 show it; if it's not, we want to hide whatever fold the cursor is in.")
23646 (license license:gpl2+))))
23647
23648 (define-public emacs-markup-faces
23649 (package
23650 (name "emacs-markup-faces")
23651 (version "1.0.0")
23652 (source
23653 (origin
23654 (method url-fetch)
23655 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
23656 version ".el"))
23657 (sha256
23658 (base32
23659 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
23660 (build-system emacs-build-system)
23661 (home-page "https://github.com/sensorflo/markup-faces")
23662 (synopsis "Collection of Emacs faces for markup language modes")
23663 (description "emacs-markup-faces is like font-lock-faces, but tailored for
23664 markup languages instead programming languages. The sub group markup-faces-text
23665 is also intended for 'text viewing modes' such as info or (wo)man. This gives a
23666 common look and feel, or let's say theme, across different markup language modes
23667 and 'text viewing modes' respectively.")
23668 (license license:gpl3+)))
23669
23670 (define-public emacs-adoc-mode
23671 (package
23672 (name "emacs-adoc-mode")
23673 (version "0.6.6")
23674 (source
23675 (origin
23676 (method git-fetch)
23677 (uri (git-reference
23678 (url "https://github.com/sensorflo/adoc-mode")
23679 (commit (string-append "V" version))))
23680 (file-name (git-file-name name version))
23681 (sha256
23682 (base32
23683 "0kp2aafjhqxz3mjr9hkkss85r4n51chws5a2qj1xzb63dh36liwm"))))
23684 (build-system emacs-build-system)
23685 (arguments
23686 `(#:phases
23687 (modify-phases %standard-phases
23688 ;; See: https://github.com/sensorflo/adoc-mode/issues/39.
23689 (add-after 'unpack 'disable-failing-tests
23690 (lambda _
23691 (let-syntax
23692 ((disable-tests
23693 (syntax-rules ()
23694 ((_ file ())
23695 (syntax-error "test names list must not be empty"))
23696 ((_ file (test-name ...))
23697 (substitute* file
23698 (((string-append "^\\(ert-deftest " test-name ".*") all)
23699 (string-append all "(skip-unless nil)\n")) ...)))))
23700 (disable-tests "adoc-mode-test.el"
23701 ("adoctest-test-tempo-delimited-blocks"
23702 "adoctest-test-tempo-macros"
23703 "adoctest-test-tempo-paragraphs"
23704 "adoctest-test-tempo-passthroug-macros"
23705 "adoctest-test-tempo-quotes")))
23706 #t)))
23707 #:tests? #t
23708 #:test-command '("emacs" "-Q" "-batch"
23709 "-l" "adoc-mode-test.el"
23710 "-f" "ert-run-tests-batch-and-exit")))
23711 (propagated-inputs
23712 (list emacs-markup-faces))
23713 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
23714 (synopsis "AsciiDoc mode for Emacs")
23715 (description "This package provides an Emacs major mode for editing AsciiDoc
23716 files. It focuses on highlighting the document to improve readability.")
23717 (license license:gpl2+)))
23718
23719 (define-public emacs-racer
23720 (let ((commit "1e63e98626737ea9b662d4a9b1ffd6842b1c648c")
23721 (revision "0"))
23722 (package
23723 (name "emacs-racer")
23724 (version (git-version "1.2" revision commit))
23725 (source
23726 (origin
23727 (method git-fetch)
23728 (uri
23729 (git-reference
23730 (url "https://github.com/racer-rust/emacs-racer")
23731 (commit commit)))
23732 (file-name (git-file-name name version))
23733 (sha256
23734 (base32 "12a429lajk09qp1jxgig54p8z6wndfgr4jwdmgkc9s2df9sw02d3"))))
23735 (arguments
23736 `(#:tests? #t
23737 #:test-command '("ert-runner")))
23738 (native-inputs
23739 (list emacs-ert-runner emacs-undercover))
23740 (propagated-inputs
23741 (list emacs-dash emacs-f emacs-pos-tip emacs-rust-mode emacs-s))
23742 (build-system emacs-build-system)
23743 (home-page "https://github.com/racer-rust/emacs-racer")
23744 (synopsis "Racer support for Emacs")
23745 (description
23746 "This is the official Emacs package for Racer. It supports code
23747 completion of variables, functions and modules. It can also jump to
23748 definition of functions and types, and show a help buffer based on the
23749 docstring of the thing at point.")
23750 (license license:expat))))
23751
23752 (define-public emacs-rust-mode
23753 (package
23754 (name "emacs-rust-mode")
23755 (version "1.0.5")
23756 (source
23757 (origin
23758 (method git-fetch)
23759 (uri (git-reference
23760 (url "https://github.com/rust-lang/rust-mode")
23761 (commit version)))
23762 (file-name (git-file-name name version))
23763 (sha256
23764 (base32 "0sjhssxaqdd9mayfcjaf6pb0z4sv0xm5wjaqmk6wdmh543m2v1s8"))))
23765 (build-system emacs-build-system)
23766 (arguments
23767 `(#:tests? #false ;FIXME: phase fail with status 127
23768 #:test-command '("make test")))
23769 (home-page "https://github.com/rust-lang/rust-mode")
23770 (synopsis "Major Emacs mode for editing Rust source code")
23771 (description "This package provides a major Emacs mode for editing Rust
23772 source code.")
23773 (license (list license:expat
23774 license:asl2.0))))
23775
23776 (define-public emacs-rustic
23777 (package
23778 (name "emacs-rustic")
23779 (version "3.4")
23780 (source
23781 (origin
23782 (method git-fetch)
23783 (uri (git-reference
23784 (url "https://github.com/brotzeit/rustic")
23785 (commit version)))
23786 (file-name (git-file-name name version))
23787 (sha256
23788 (base32 "16vsv4fhj8zq9g4zrsmipdb1nydxgw3dhh5s3wawpvx2rcg6gx2l"))))
23789 (build-system emacs-build-system)
23790 (propagated-inputs
23791 (list emacs-dash
23792 emacs-f
23793 emacs-flycheck
23794 emacs-lsp-mode
23795 emacs-markdown-mode
23796 emacs-project
23797 emacs-rust-mode
23798 emacs-s
23799 emacs-spinner
23800 emacs-xterm-color))
23801 (arguments
23802 ;; Tests require rust, cargo, rustfmt, and various crates to be
23803 ;; vendored.
23804 `(#:tests? #f
23805 #:phases
23806 (modify-phases %standard-phases
23807 (add-before 'check 'set-without-cask
23808 (lambda _
23809 (setenv "WITHOUT_CASK" "1"))))))
23810 (home-page "https://github.com/brotzeit/rustic")
23811 (synopsis "Rust development environment for Emacs")
23812 (description "Rustic is a fork of Rust mode.
23813 In addition to its predecessor, it offers the following features:
23814 @itemize
23815 @item Flycheck integration,
23816 @item Cargo popup,
23817 @item multiline error parsing,
23818 @item translation of ANSI control sequences through XTerm color,
23819 @item asynchronous Org Babel,
23820 @item custom compilation process,
23821 @item @command{rustfmt} errors in a Rust compilation mode,
23822 @item automatic LSP configuration with Eglot or LSP mode,
23823 @item optional Rust inline documentation,
23824 @item etc.
23825 @end itemize")
23826 (license (list license:expat
23827 license:asl2.0))))
23828
23829 (define-public emacs-ztree
23830 ;; Upstream provides no tag, but the commit below matches latest release.
23831 (let ((commit "c9ad9136d52ca5a81475693864e255d29448f43f"))
23832 (package
23833 (name "emacs-ztree")
23834 (version "1.0.6")
23835 (source
23836 (origin
23837 (method git-fetch)
23838 (uri (git-reference
23839 (url "https://github.com/fourier/ztree")
23840 (commit commit)))
23841 (file-name (git-file-name name version))
23842 (sha256
23843 (base32
23844 "03i5pa3nfdz6g0yrdk7r2qcn679w0s85cc5kcmgrwlnhdzakgr80"))))
23845 (build-system emacs-build-system)
23846 (home-page "https://github.com/fourier/ztree")
23847 (synopsis "Directory tree comparison mode for Emacs")
23848 (description "Ztree is a project dedicated to implementation of several
23849 text-tree applications inside GNU Emacs. It consists of 2 subprojects:
23850 @command{ztree-diff} and @command{ztree-dir} (the basis of
23851 @command{ztree-diff}).")
23852 (license license:gpl3))))
23853
23854 (define-public emacs-helm-org-contacts
23855 (let ((commit "741eca6239684950219c9a12802386a132491b8c")
23856 (revision "2"))
23857 (package
23858 (name "emacs-helm-org-contacts")
23859 (version (git-version "20201202" revision commit))
23860 (source
23861 (origin
23862 (method git-fetch)
23863 (uri (git-reference
23864 (url "https://github.com/tmalsburg/helm-org-contacts")
23865 (commit commit)))
23866 (file-name (git-file-name name version))
23867 (sha256
23868 (base32
23869 "1xy51hc3az8bc9sj71sjzy03xpkfa4v3cdcv3gpq3cj2zhk9gr8h"))))
23870 (build-system emacs-build-system)
23871 (propagated-inputs
23872 (list emacs-dash emacs-helm emacs-s))
23873 (home-page "https://github.com/tmalsburg/helm-org-contacts")
23874 (synopsis "Helm source for org-contacts")
23875 (description "This Helm source can be used to search contacts stored in
23876 org-contacts format. There are actions for inserting postal addresses, email
23877 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
23878 was called.")
23879 (license license:gpl3))))
23880
23881 (define-public emacs-dired-du
23882 (package
23883 (name "emacs-dired-du")
23884 (version "0.5.2")
23885 (source
23886 (origin
23887 (method url-fetch)
23888 (uri (string-append
23889 "https://elpa.gnu.org/packages/dired-du-" version ".tar"))
23890 (sha256
23891 (base32 "0vhph7vcicsiq28b10h3b4dvnhckcy4gccpdgsad5j7pwa5k26m1"))))
23892 (build-system emacs-build-system)
23893 (home-page "https://elpa.gnu.org/packages/dired-du.html")
23894 (synopsis "Dired with recursive directory sizes")
23895 (description
23896 "Display the recursive size of directories in Dired.
23897 This file defines a minor mode @command{dired-du-mode} to show the recursive
23898 size of directories in Dired buffers. If @command{du} program is available,
23899 then the directory sizes are obtained with it. Otherwise, the directory sizes
23900 are obtained with Lisp. The former is faster and provide a more precise
23901 value. For directories where the user doesn't have read permission, the
23902 recursive size is not obtained. Once this mode is enabled, every new Dired
23903 buffer displays recursive dir sizes.")
23904 (license license:gpl3+)))
23905
23906 (define-public emacs-dired-rsync
23907 (package
23908 (name "emacs-dired-rsync")
23909 (version "0.6")
23910 (source (origin
23911 (method git-fetch)
23912 (uri (git-reference
23913 (url "https://github.com/stsquad/dired-rsync")
23914 (commit version)))
23915 (file-name (git-file-name name version))
23916 (sha256
23917 (base32
23918 "19za6i96xrmczdh928n5ixd7j7pvy175sz1msaiwvdjwysjr8k51"))))
23919 (build-system emacs-build-system)
23920 (propagated-inputs
23921 (list emacs-s emacs-dash))
23922 (home-page "https://github.com/stsquad/dired-rsync/")
23923 (synopsis "Support for rsync from Emacs dired buffers")
23924 (description "This package adds a single command @code{dired-rsync} which
23925 allows the user to copy marked files in a dired buffer via @code{rsync}. This
23926 is useful, especially for large files, because the copy happens in the
23927 background and doesn’t lock up Emacs. It is also more efficient than using
23928 tramps own encoding methods for moving data between systems.")
23929 (license license:gpl3+)))
23930
23931 (define-public emacs-pcre2el
23932 ;; Last release is very old so we get the latest commit.
23933 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
23934 (package
23935 (name "emacs-pcre2el")
23936 (version (git-version "1.8" "1" commit))
23937 (source
23938 (origin
23939 (method git-fetch)
23940 (uri (git-reference
23941 (url "https://github.com/joddie/pcre2el")
23942 (commit commit)))
23943 (file-name (git-file-name name version))
23944 (sha256
23945 (base32
23946 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
23947 (build-system emacs-build-system)
23948 (home-page "https://github.com/joddie/pcre2el")
23949 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
23950 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
23951 Tools) is a utility for working with regular expressions in Emacs, based on a
23952 recursive-descent parser for regexp syntax. In addition to converting (a
23953 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
23954
23955 @itemize
23956 @item convert Emacs syntax to PCRE
23957 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
23958 @item untangle complex regexps by showing the parse tree in @code{rx} form and
23959 highlighting the corresponding chunks of code
23960 @item show the complete list of strings (productions) matching a regexp,
23961 provided the list is finite
23962 @item provide live font-locking of regexp syntax (so far only for Elisp
23963 buffers – other modes on the TODO list).
23964 @end itemize\n")
23965 (license license:gpl3))))
23966
23967 (define-public emacs-magit-todos
23968 (package
23969 (name "emacs-magit-todos")
23970 (version "1.5.3")
23971 (source
23972 (origin
23973 (method git-fetch)
23974 (uri (git-reference
23975 (url "https://github.com/alphapapa/magit-todos")
23976 (commit version)))
23977 (file-name (git-file-name name version))
23978 (sha256
23979 (base32
23980 "12ay02vk6bk77k33mhlqi41m03a77y80b15rj1dbh1n6jfrjwkfy"))))
23981 (build-system emacs-build-system)
23982 (propagated-inputs
23983 (list emacs-async
23984 emacs-dash
23985 emacs-f
23986 emacs-hl-todo
23987 emacs-magit
23988 emacs-pcre2el
23989 emacs-s))
23990 (home-page "https://github.com/alphapapa/magit-todos")
23991 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
23992 (description "This package displays keyword entries from source code
23993 comments and Org files in the Magit status buffer. Activating an item jumps
23994 to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
23995 few (like NOTE).")
23996 (license license:gpl3)))
23997
23998 (define-public emacs-git-annex
23999 ;; Unreleased version has a fontification fix.
24000 (let ((commit "1324d3f23c534fe79391a2c256bb8803054e383b")
24001 (revision "2"))
24002 (package
24003 (name "emacs-git-annex")
24004 (version (git-version "1.1" revision commit))
24005 (source
24006 (origin
24007 (method git-fetch)
24008 (uri (git-reference
24009 (url "https://github.com/jwiegley/git-annex-el")
24010 (commit commit)))
24011 (file-name (git-file-name name version))
24012 (sha256
24013 (base32
24014 "1lfky2nsrlndlbvk6vwbswnvbvkz1sxgg0n3r5q6xykdkjym0lrh"))))
24015 (build-system emacs-build-system)
24016 (home-page "https://github.com/jwiegley/git-annex-el")
24017 (synopsis "Emacs integration for git-annex")
24018 (description "Enhances Dired and buffers visiting annex files with
24019 git-annex functionality. In Dired, the names of annex files are shortened by
24020 hiding the symbolic links and fontified based on whether content is present.
24021 Commands for performing some common operations (e.g., unlocking and adding
24022 files) are provided.")
24023 (license license:gpl2+))))
24024
24025 (define-public emacs-hackernews
24026 (package
24027 (name "emacs-hackernews")
24028 (version "0.6.1")
24029 (source
24030 (origin
24031 (method git-fetch)
24032 (uri (git-reference
24033 (url "https://github.com/clarete/hackernews.el")
24034 (commit (string-append "v" version))))
24035 (file-name (git-file-name name version))
24036 (sha256
24037 (base32
24038 "17lkjcka6ydd6khhz5jbjlybfpx05153z0d8s1rxaxcwl7z2y6cf"))))
24039 (build-system emacs-build-system)
24040 (home-page "https://github.com/clarete/hackernews.el")
24041 (synopsis "Hacker News client for Emacs")
24042 (description "The @command{hackernews} package is able to fetch stories
24043 from six different Hacker News feeds, namely top, new, best, ask, show and job
24044 stories. The default feed is top stories, which corresponds to the Hacker
24045 News homepage.")
24046 (license license:gpl3)))
24047
24048 (define-public emacs-youtube-dl
24049 (let ((commit "af877b5bc4f01c04fccfa7d47a2c328926f20ef4")
24050 (revision "2"))
24051 (package
24052 (name "emacs-youtube-dl")
24053 (version (git-version "1.0" "2" commit))
24054 (source
24055 (origin
24056 (method git-fetch)
24057 (uri (git-reference
24058 (url "https://github.com/skeeto/youtube-dl-emacs/")
24059 (commit commit)))
24060 (file-name (git-file-name name version))
24061 (sha256
24062 (base32
24063 "0zkl9jkjbx0lmp9ylv4rqg1zwqibk053s4rp7s1h0i18nzk7vn8j"))))
24064 (build-system emacs-build-system)
24065 (inputs
24066 (list youtube-dl))
24067 (arguments
24068 `(#:phases
24069 (modify-phases %standard-phases
24070 (add-after 'unpack 'configure
24071 (lambda* (#:key inputs #:allow-other-keys)
24072 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
24073 ;; .el is read-only in git.
24074 (chmod "youtube-dl.el" #o644)
24075 ;; Specify the absolute file names of the various
24076 ;; programs so that everything works out-of-the-box.
24077 (emacs-substitute-variables
24078 "youtube-dl.el"
24079 ("youtube-dl-program"
24080 (string-append youtube-dl "/bin/youtube-dl")))))))))
24081 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
24082 (synopsis "Emacs youtube-dl download manager")
24083 (description "This package manages a video download queue for
24084 @command{youtube-dl}, which serves as the back end. It manages a single
24085 @command{youtube-dl} subprocess, downloading one video at a time. New videos
24086 can be queued at any time.")
24087 (license license:unlicense))))
24088
24089 (define-public emacs-ytdl
24090 (package
24091 (name "emacs-ytdl")
24092 (version "1.3.6")
24093 (source
24094 (origin
24095 (method git-fetch)
24096 (uri (git-reference
24097 (url "https://gitlab.com/tuedachu/ytdl")
24098 (commit version)))
24099 (file-name (git-file-name name version))
24100 (sha256
24101 (base32 "010arhvibyw50lqhsr8bm0vj3pzry1h1vgcvxnmyryirk3dv40jl"))))
24102 (build-system emacs-build-system)
24103 (arguments
24104 `(#:phases
24105 (modify-phases %standard-phases
24106 (add-after 'unpack 'configure
24107 (lambda* (#:key inputs #:allow-other-keys)
24108 ;; .el is read-only in git.
24109 (make-file-writable "ytdl.el")
24110 ;; Specify the absolute file names of the various programs so
24111 ;; that everything works out-of-the-box.
24112 (emacs-substitute-variables "ytdl.el"
24113 ("ytdl-command"
24114 (search-input-file inputs "/bin/youtube-dl"))))))))
24115 (inputs
24116 (list youtube-dl))
24117 (propagated-inputs
24118 (list emacs-async emacs-dash))
24119 (home-page "https://gitlab.com/tuedachu/ytdl")
24120 (synopsis "Emacs interface for youtube-dl")
24121 (description
24122 "This package manages a video download queue for @command{youtube-dl},
24123 which serves as the back end. New videos can be queued at any time. All
24124 youtube-dl backends are supported. It is possible to create download profiles
24125 depending on the downloaded URL.")
24126 (license license:gpl3+)))
24127
24128 (define-public emacs-ytel
24129 ;; No tagged releases. Using version from main file.
24130 (let ((commit "d40bc7ead8d4d7e4d16b03b66a93d63bef51cc5f")
24131 (revision "0"))
24132 (package
24133 (name "emacs-ytel")
24134 (version (git-version "0.1.0" revision commit))
24135 (source
24136 (origin
24137 (method git-fetch)
24138 (uri (git-reference
24139 (url "https://github.com/grastello/ytel")
24140 (commit commit)))
24141 (file-name (git-file-name name version))
24142 (sha256
24143 (base32 "0pxzfsxzrpv59dssrgx2mmwkm6rzk49ffjkgsa3wks7rdyfil3kf"))))
24144 (build-system emacs-build-system)
24145 (arguments
24146 `(#:phases
24147 (modify-phases %standard-phases
24148 (add-after 'unpack 'patch-exec-paths
24149 (lambda* (#:key inputs #:allow-other-keys)
24150 (let ((curl (assoc-ref inputs "curl")))
24151 (substitute* "ytel.el"
24152 (("\"curl\"") (string-append "\"" curl "/bin/curl\"")))))))))
24153 (inputs
24154 (list curl))
24155 (home-page "https://github.com/grastello/ytel")
24156 (synopsis "Youtube front-end for Emacs")
24157 (description
24158 "This package provides a major mode to search YouTube videos via an
24159 Elfeed-like buffer. Information about videos displayed in this buffer can be
24160 extracted and manipulated by user-defined functions to do various things such
24161 as playing them in some video player, or downloading them.")
24162 (license license:gpl3+))))
24163
24164 (define-public emacs-ytel-show
24165 ;; No tagged releases. Version extracted from main file.
24166 (let ((commit "8b999484eb447ecdb741b24cbef2b5a7260a53e6")
24167 (revision "0"))
24168 (package
24169 (name "emacs-ytel-show")
24170 (version (git-version "0.1.0" revision commit))
24171 (source
24172 (origin
24173 (method git-fetch)
24174 (uri (git-reference
24175 (url "https://github.com/xFA25E/ytel-show")
24176 (commit commit)))
24177 (file-name (git-file-name name version))
24178 (sha256
24179 (base32 "0nhgzfzq1bgpbdbljx5z2hzr8ia7ybsyvvr66yj4klz0zj97rghj"))))
24180 (build-system emacs-build-system)
24181 (propagated-inputs
24182 (list emacs-ytel))
24183 (home-page "https://github.com/xFA25E/ytel-show")
24184 (synopsis "Browse YouTube in Emacs")
24185 (description
24186 "This package provides an Emacs interface for browsing YouTube videos
24187 and comments.")
24188 (license license:gpl3+))))
24189
24190 (define-public emacs-org-web-tools
24191 (package
24192 (name "emacs-org-web-tools")
24193 (version "1.1.1")
24194 (source
24195 (origin
24196 (method git-fetch)
24197 (uri (git-reference
24198 (url "https://github.com/alphapapa/org-web-tools")
24199 (commit version)))
24200 (file-name (git-file-name name version))
24201 (sha256
24202 (base32
24203 "0v4qad54r0z7dr7kg5lpfdsazi44qvrbybx9aciyl4w9grfajphb"))))
24204 (build-system emacs-build-system)
24205 (propagated-inputs
24206 (list emacs-dash emacs-esxml emacs-request emacs-s))
24207 (inputs
24208 (list pandoc))
24209 (arguments
24210 `(#:phases
24211 (modify-phases %standard-phases
24212 (add-after 'unpack 'patch-exec-paths
24213 (lambda* (#:key inputs #:allow-other-keys)
24214 (let ((pandoc (assoc-ref inputs "pandoc")))
24215 (substitute* "org-web-tools.el"
24216 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
24217 #t))))))
24218 (home-page "https://github.com/alphapapa/org-web-tools")
24219 (synopsis "Display/Process web page as Org-mode content")
24220 (description "This package contains library functions and commands useful
24221 for retrieving web page content and processing it into Org-mode content.
24222
24223 For example, you can copy a URL to the clipboard or kill-ring, then run a
24224 command that downloads the page, isolates the “readable” content with
24225 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
24226 displays it in an Org-mode buffer. Another command does all of that but
24227 inserts it as an Org entry instead of displaying it in a new buffer.")
24228 (license license:gpl3+)))
24229
24230 (define-public emacs-blimp
24231 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
24232 (package
24233 (name "emacs-blimp")
24234 (version (git-version "0.0.0" "1" commit))
24235 (source
24236 (origin
24237 (method git-fetch)
24238 (uri (git-reference
24239 (url "https://github.com/walseb/blimp")
24240 (commit commit)))
24241 (file-name (git-file-name name version))
24242 (sha256
24243 (base32
24244 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
24245 (build-system emacs-build-system)
24246 (propagated-inputs
24247 (list emacs-eimp))
24248 (home-page "https://github.com/walseb/blimp")
24249 (synopsis "Emacs wrapper around all Imagemagick commands")
24250 (description "Blimp (Bustling Image Manipulation Package) is a complete
24251 wrapper around all Imagemagick commands with descriptions, autocompletion (for
24252 some commands) and hints displayed in prompt using @command{eimp.el} to
24253 execute its commands and resize images.")
24254 (license license:gpl3+))))
24255
24256 (define-public emacs-synosaurus
24257 (package
24258 (name "emacs-synosaurus")
24259 (version "0.2.0")
24260 (source
24261 (origin
24262 (method git-fetch)
24263 (uri (git-reference
24264 (url "https://github.com/hpdeifel/synosaurus")
24265 (commit (string-append "v" version))))
24266 (file-name (git-file-name name version))
24267 (sha256
24268 (base32
24269 "14dd6p89pmpf1w3nx4f9mzm4sn2b64nicws436ck7pmp223pwciv"))))
24270 (build-system emacs-build-system)
24271 (propagated-inputs
24272 (list wordnet))
24273 (arguments
24274 `(#:phases
24275 (modify-phases %standard-phases
24276 (add-after 'unpack 'configure
24277 (lambda* (#:key inputs outputs #:allow-other-keys)
24278 (let ((wn (assoc-ref inputs "wordnet")))
24279 ;; .el is read-only in git.
24280 (make-file-writable "synosaurus-wordnet.el")
24281 ;; Specify the absolute file names of the various
24282 ;; programs so that everything works out-of-the-box.
24283 (emacs-substitute-variables "synosaurus-wordnet.el"
24284 ("synosaurus-wordnet--command"
24285 (string-append wn "/bin/wn")))))))))
24286 (home-page "https://github.com/hpdeifel/synosaurus")
24287 (synopsis "Extensible thesaurus mode for Emacs")
24288 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
24289 backends, including the @command{wordnet} offline backend.")
24290 (license license:gpl3+)))
24291
24292 (define-public emacs-editorconfig
24293 (package
24294 (name "emacs-editorconfig")
24295 (version "0.8.2")
24296 (source
24297 (origin
24298 (method git-fetch)
24299 (uri (git-reference
24300 (url "https://github.com/editorconfig/editorconfig-emacs")
24301 (commit (string-append "v" version))))
24302 (file-name (git-file-name name version))
24303 (sha256
24304 (base32
24305 "1lqxgc24gr67yhi64i9v4w2dcjhpx99jg1kr25gr2byqkkdldkz0"))))
24306 (build-system emacs-build-system)
24307 (home-page "https://github.com/editorconfig/editorconfig-emacs")
24308 (synopsis "Define and maintain consistent coding styles between different
24309 editors and IDEs")
24310 (description "The EditorConfig project consists of a file format for
24311 defining coding styles and a collection of text editor plugins that enable
24312 editors to read the file format and adhere to defined styles. EditorConfig
24313 files are easily readable and they work nicely with version control systems.")
24314 (license license:gpl3+)))
24315
24316 (define-public emacs-all-the-icons
24317 (package
24318 (name "emacs-all-the-icons")
24319 (version "5.0.0")
24320 (source
24321 (origin
24322 (method git-fetch)
24323 (uri (git-reference
24324 (url "https://github.com/domtronn/all-the-icons.el")
24325 (commit version)))
24326 (file-name (git-file-name name version))
24327 (sha256
24328 (base32 "0lwgvgnqf7vihglm0c5bwsxbl4x7f641289cji5s7jwy2dbsqk7g"))))
24329 (build-system emacs-build-system)
24330 (arguments
24331 `(#:include '("\\.el$" "^data/")
24332 #:exclude '("^test/")
24333 #:phases
24334 (modify-phases %standard-phases
24335 (add-after 'install 'install-fonts
24336 (lambda* (#:key outputs #:allow-other-keys)
24337 (let ((fonts (string-append (assoc-ref outputs "out")
24338 "/share/fonts")))
24339 (mkdir-p fonts)
24340 (with-directory-excursion "fonts"
24341 (install-file "all-the-icons.ttf" fonts)
24342 ;; TODO: Unbundle.
24343 (install-file "file-icons.ttf" fonts)
24344 (install-file "octicons.ttf" fonts)
24345 (install-file "weathericons.ttf" fonts)))))
24346 (replace 'check
24347 (lambda* (#:key outputs #:allow-other-keys)
24348 (apply invoke "ert-runner" "-l"
24349 (append (find-files "data" "\\.el")
24350 '("all-the-icons-faces.el"))))))))
24351 (native-inputs
24352 (list emacs-f emacs-ert-runner))
24353 (propagated-inputs
24354 (list emacs-f emacs-memoize font-awesome font-google-material-design-icons))
24355 (home-page "https://github.com/domtronn/all-the-icons.el")
24356 (synopsis "Collect icon fonts and propertize them within Emacs")
24357 (description
24358 "All-the-icons is a utility package to collect various icon fonts and
24359 propertize them within Emacs. Icon fonts allow you to propertize and format
24360 icons the same way you would normal text. This enables things such as better
24361 scaling of and anti aliasing of the icons.")
24362 ;; Package is released under Expat license. Elisp files are licensed
24363 ;; under GPL3+. Fonts come with various licenses: Expat for
24364 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
24365 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
24366 ;; "ocitcons.ttf" and "weathericons.ttf".
24367 (license
24368 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
24369
24370 (define-public emacs-all-the-icons-completion
24371 ;; XXX: No tags. Extract version from keyword in main file.
24372 (let ((commit "9e7d456b0934ecb568b6f05a8445e3f4ce32261f")
24373 (revision "0"))
24374 (package
24375 (name "emacs-all-the-icons-completion")
24376 (version (git-version "0.0.1" revision commit))
24377 (source
24378 (origin
24379 (method git-fetch)
24380 (uri (git-reference
24381 (url "https://github.com/iyefrat/all-the-icons-completion")
24382 (commit commit)))
24383 (file-name (git-file-name name version))
24384 (sha256
24385 (base32 "04bnmmd6lyx0p39sgymqvmcy7bk8mr7sikbpy49adxi7d2891ldg"))))
24386 (build-system emacs-build-system)
24387 (propagated-inputs (list emacs-all-the-icons))
24388 (home-page "https://github.com/iyefrat/all-the-icons-completion")
24389 (synopsis "Add icons to completion candidates")
24390 (description "This package adds icons to completion candidates using the
24391 built-in completion metadata functions. For example, with this package,
24392 @code{find-file} can display a file icon for each candidate based on the file
24393 type.")
24394 (license license:gpl3+))))
24395
24396 (define-public emacs-wttrin
24397 (let ((commit "df5427ce2a5ad4dab652dbb1c4a1834d7ddc2abc")
24398 (revision "1"))
24399 (package
24400 (name "emacs-wttrin")
24401 (version (git-version "0.2.0" revision commit))
24402 (source (origin
24403 (method git-fetch)
24404 (uri (git-reference
24405 (url "https://github.com/bcbcarl/emacs-wttrin")
24406 (commit commit)))
24407 (file-name (git-file-name name version))
24408 (sha256
24409 (base32
24410 "1ai655f10iayb4vw0ass2j3x83f4vsv90326mnywkzfl3sxd432z"))))
24411 (build-system emacs-build-system)
24412 (propagated-inputs
24413 (list emacs-xterm-color))
24414 (home-page "https://github.com/bcbcarl/emacs-wttrin")
24415 (synopsis "Frontend for weather web service @url{wttr.in}")
24416 (description "This package provides local weather information from
24417 @url{wttr.in}.")
24418 (license license:expat))))
24419
24420 (define-public emacs-browse-kill-ring
24421 (let ((commit "1ef72cc6accd94cd7032c02b1b2c78ae7f1d1965")
24422 (revision "0"))
24423 (package
24424 (name "emacs-browse-kill-ring")
24425 (version (git-version "2.0.0" revision commit))
24426 (source
24427 (origin
24428 (method git-fetch)
24429 (uri (git-reference
24430 (url "https://github.com/browse-kill-ring/browse-kill-ring")
24431 (commit commit)))
24432 (file-name (git-file-name name version))
24433 (sha256
24434 (base32
24435 "0mil32g7hcw376jibs5hdyv00xbaql3m4a27rwqaafg0x59avxdj"))))
24436 (build-system emacs-build-system)
24437 (home-page "https://github.com/browse-kill-ring/browse-kill-ring")
24438 (synopsis "Interactively insert items from kill-ring")
24439 (description
24440 "Did you ever feel that @code{C-y M-y M-y M-y ...} is not a great way
24441 of trying to find that piece of text you know you killed a while back? Then
24442 @code{browse-kill-ring.el} is for you.")
24443 (license license:gpl2+))))
24444
24445 (define-public emacs-powerline
24446 (package
24447 (name "emacs-powerline")
24448 (version "2.4")
24449 (source
24450 (origin
24451 (method git-fetch)
24452 (uri (git-reference
24453 (url "https://github.com/milkypostman/powerline")
24454 (commit version)))
24455 (file-name (git-file-name name version))
24456 (sha256
24457 (base32
24458 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
24459 (build-system emacs-build-system)
24460 (home-page "https://github.com/milkypostman/powerline/")
24461 (synopsis "Mode-line plugin for Emacs")
24462 (description "Powerline is a utility plugin which allows you to create
24463 a better-looking, more functional Emacs mode-line. A collection of predefined
24464 themes comes with the package.")
24465 (license license:gpl3+)))
24466
24467 (define-public emacs-spaceline
24468 (package
24469 (name "emacs-spaceline")
24470 (version "2.0.1")
24471 (source
24472 (origin
24473 (method git-fetch)
24474 (uri (git-reference
24475 (url "https://github.com/TheBB/spaceline")
24476 (commit (string-append "v" version))))
24477 (file-name (git-file-name name version))
24478 (sha256
24479 (base32
24480 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
24481 (build-system emacs-build-system)
24482 (propagated-inputs
24483 (list emacs-dash emacs-powerline emacs-s))
24484 (home-page "https://github.com/TheBB/spaceline")
24485 (synopsis "Powerline theme from Spacemacs")
24486 (description "Spaceline provides Spacemacs' mode-line theme.
24487 This package provides features for three kinds of users.
24488
24489 @itemize
24490 @item You just want to use the Spacemacs mode-line theme and forget about it.
24491 @item You want to use something similar to the Spacemacs mode-line theme, but
24492 with a handful of easy tweaks.
24493 @item You want an easy-to-use library for building your own mode-line from
24494 scratch, and you think the Spacemacs theme looks good.
24495 @end itemize")
24496 (license license:gpl3+)))
24497
24498 (define-public emacs-spaceline-next
24499 (let ((commit "1b26af2c1a701481ac5d90928fe0200e389756c3")
24500 (last-release-version "2.0.1")
24501 (revision "0"))
24502 (package
24503 (inherit emacs-spaceline)
24504 (name "emacs-spaceline-next")
24505 (version (git-version last-release-version revision commit))
24506 (source
24507 (origin
24508 (method git-fetch)
24509 (uri (git-reference
24510 (url "https://github.com/TheBB/spaceline")
24511 (commit commit)))
24512 (sha256
24513 (base32 "11lwckqcgzsahrkkm5wk1ph4kc7d4yz05r7251g8c9f0q6vdj9dp"))
24514 (file-name (git-file-name name version)))))))
24515
24516 (define-public emacs-column-marker
24517 (package
24518 (name "emacs-column-marker")
24519 (version "9")
24520 (source
24521 (origin
24522 (method url-fetch)
24523 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
24524 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
24525 (build-system emacs-build-system)
24526 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
24527 (synopsis "Emacs mode for highlighting columns")
24528 (description
24529 "With @code{column-marker.el} you can highlight any number of text columns.
24530 Three such highlight column markers are provided by default. This is
24531 especially useful for languages like COBOL or Fortran where certain columns
24532 have special meaning. It is also handy for aligning text across long vertical
24533 distances. Multi-column characters, such as @kbd{TAB} are treated
24534 correctly.")
24535 (license license:gpl2+)))
24536
24537 (define-public emacs-slime-repl-ansi-color
24538 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
24539 (package
24540 (name "emacs-slime-repl-ansi-color")
24541 (version (git-version "0.0.0" "1" commit))
24542 (source (origin
24543 (method git-fetch)
24544 (uri (git-reference
24545 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
24546 (commit commit)))
24547 (file-name (git-file-name name version))
24548 (sha256
24549 (base32
24550 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
24551 (build-system emacs-build-system)
24552 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
24553 (synopsis "Color ANSI codes in the REPL of SLIME")
24554 (description "Color ANSI codes in the REPL of SLIME")
24555 (license license:gpl2+))))
24556
24557 (define-public emacs-helm-slime
24558 (package
24559 (name "emacs-helm-slime")
24560 (version "0.4.0")
24561 (source (origin
24562 (method git-fetch)
24563 (uri (git-reference
24564 (url "https://github.com/emacs-helm/helm-slime")
24565 (commit version)))
24566 (file-name (git-file-name name version))
24567 (sha256
24568 (base32
24569 "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"))))
24570 (build-system emacs-build-system)
24571 (propagated-inputs
24572 (list emacs-helm emacs-slime))
24573 (home-page "https://github.com/emacs-helm/helm-slime")
24574 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
24575 (description "Helm-SLIME defines a few new commands:
24576
24577 @itemize
24578 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
24579 @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
24580 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
24581 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
24582 @end itemize\n")
24583 (license license:gpl3+)))
24584
24585 (define-public emacs-helm-sly
24586 (package
24587 (name "emacs-helm-sly")
24588 (version "0.7.2")
24589 (source (origin
24590 (method git-fetch)
24591 (uri (git-reference
24592 (url "https://github.com/emacs-helm/helm-sly")
24593 (commit version)))
24594 (file-name (git-file-name name version))
24595 (sha256
24596 (base32
24597 "06x8wyx1r0s7askkvlbklgz1cszv34qsvv3gryndw350smk1v8kx"))))
24598 (build-system emacs-build-system)
24599 (propagated-inputs
24600 (list emacs-helm emacs-sly))
24601 (home-page "https://github.com/emacs-helm/helm-sly")
24602 (synopsis "Helm for SLY, a Common Lisp interaction mode for Emacs")
24603 (description "Helm-SLY defines a few new commands:
24604
24605 @itemize
24606 @item @code{helm-sly-list-connections}: Yet another Lisp connection list with
24607 Helm.
24608 @item @code{helm-sly-apropos}: Yet another @command{apropos} with Helm.
24609 @item @code{helm-sly-mini}: Like @command{helm-sly-list-connections}, but
24610 include an extra source of Lisp-related buffers, like the events buffer or the
24611 scratch buffer.
24612 @end itemize\n")
24613 (license license:gpl3+)))
24614
24615 (define-public emacs-gtk-look
24616 (package
24617 (name "emacs-gtk-look")
24618 (version "29")
24619 (source (origin
24620 (method url-fetch)
24621 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
24622 (sha256
24623 (base32
24624 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
24625 (build-system emacs-build-system)
24626 (arguments
24627 `(#:phases
24628 (modify-phases %standard-phases
24629 (add-after 'unpack 'configure
24630 (lambda _
24631 ;; File is read-only.
24632 (chmod "gtk-look.el" #o644)
24633 (emacs-substitute-variables "gtk-look.el"
24634 ("gtk-lookup-devhelp-indices"
24635 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
24636 #t)))))
24637 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
24638 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
24639 (description "@command{gtk-look} finds and displays HTML documentation for
24640 GTK, GNOME and Glib functions and variables in Emacs, similar to what
24641 info-lookup-symbol does for info files (C-h S). The documentation is expected
24642 to be devhelp indexes with HTML files. The location of the indexes can be
24643 customized. In addition to C code development @command{gtk-look} is good for
24644
24645 @itemize
24646 @item @command{perl-gtk2}, recognising class funcs like
24647 @command{Gtk2::Label->new} and bare method names like @command{set_text}.
24648 @item @command{guile-gnome}, recognising methods like @command{set-text} and
24649 classes like @command{<gtk-window>}.
24650 @end itemize\n")
24651 (license license:gpl3+)))
24652
24653 (define-public emacs-ov
24654 (package
24655 (name "emacs-ov")
24656 (version "1.0.6")
24657 (source (origin
24658 (method git-fetch)
24659 (uri (git-reference
24660 (url "https://github.com/ShingoFukuyama/ov.el")
24661 (commit version)))
24662 (file-name (git-file-name name version))
24663 (sha256
24664 (base32
24665 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
24666 (build-system emacs-build-system)
24667 (home-page "https://github.com/ShingoFukuyama/ov.el")
24668 (synopsis "Overlay library for Emacs Lisp")
24669 (description "@code{ov.el} provides a simple way to manipulate overlays in
24670 Emacs.")
24671 (license license:gpl3+)))
24672
24673 (define-public emacs-matrix-client
24674 (let ((commit "d2ac55293c96d4c95971ed8e2a3f6f354565c5ed"))
24675 (package
24676 (name "emacs-matrix-client")
24677 (version (git-version "0.0.0" "6" commit))
24678 (source (origin
24679 (method git-fetch)
24680 (uri (git-reference
24681 (url "https://github.com/jgkamat/matrix-client-el")
24682 (commit commit)))
24683 (file-name (git-file-name name version))
24684 (sha256
24685 (base32
24686 "1scfv1502yg7x4bsl253cpr6plml1j4d437vci2ggs764sh3rcqq"))))
24687 (build-system emacs-build-system)
24688 (propagated-inputs
24689 (list emacs-a
24690 emacs-anaphora
24691 emacs-dash
24692 emacs-esxml
24693 emacs-f
24694 emacs-frame-purpose
24695 emacs-ht
24696 emacs-ov
24697 emacs-rainbow-identifiers
24698 emacs-request
24699 emacs-s
24700 emacs-tracking))
24701 (home-page "https://github.com/jgkamat/matrix-client-el")
24702 (synopsis "Matrix client for Emacs")
24703 (description "@code{matrix-client} is a simple chat UI to Matrix.org
24704 rooms. It also provides an API which allows Emacs to seamlessly create
24705 RPC channels with users and other software.")
24706 (license license:gpl3+))))
24707
24708 (define-public emacs-sesman
24709 (package
24710 (name "emacs-sesman")
24711 (version "0.3.4")
24712 (source
24713 (origin
24714 (method git-fetch)
24715 (uri (git-reference
24716 (url "https://github.com/vspinu/sesman")
24717 (commit (string-append "v" version))))
24718 (file-name (git-file-name name version))
24719 (sha256
24720 (base32
24721 "0z5jb4vpbjsi63w3wjy6d2lgz33qdfvrgfb3bszv4hcf6a96y7fc"))))
24722 (build-system emacs-build-system)
24723 (arguments
24724 `(#:phases
24725 (modify-phases %standard-phases
24726 (add-after 'unpack 'set-shell
24727 ;; Setting the SHELL environment variable is required for the tests
24728 ;; to find sh.
24729 (lambda _
24730 (setenv "SHELL" (which "sh"))
24731 #t)))
24732 #:tests? #t
24733 #:test-command '("make" "test")))
24734 (home-page "https://github.com/vspinu/sesman")
24735 (synopsis "Session manager for Emacs based IDEs")
24736 (description "Sesman provides facilities for session management and
24737 interactive session association with the current contexts (project, directory,
24738 buffers). While sesman can be used to manage arbitrary sessions, it primary
24739 targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
24740 (license license:gpl3+)))
24741
24742 (define-public emacs-buttercup
24743 (package
24744 (name "emacs-buttercup")
24745 (version "1.26")
24746 (source
24747 (origin
24748 (method git-fetch)
24749 (uri (git-reference
24750 (url "https://github.com/jorgenschaefer/emacs-buttercup")
24751 (commit (string-append "v" version))))
24752 (file-name (git-file-name name version))
24753 (sha256
24754 (base32
24755 "1zr9lczdr9dfh99n079d5advxm9p32a8f984dx14f3jn5mx750b1"))))
24756 (build-system emacs-build-system)
24757 (arguments
24758 (list
24759 #:tests? #t
24760 #:test-command #~(list "make" "test")
24761 #:phases
24762 #~(modify-phases %standard-phases
24763 (add-after 'install 'install-bin
24764 (lambda _
24765 (install-file "bin/buttercup"
24766 (string-append #$output "/bin")))))))
24767 (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
24768 (synopsis "Behavior driven emacs lisp testing framework")
24769 (description "Buttercup is a behavior-driven development framework for
24770 testing Emacs Lisp code. It groups related tests so they can share
24771 common set-up and tear-down code, and allows the programmer to \"spy\" on
24772 functions to ensure they are called with the right arguments during testing.")
24773 (license license:gpl3+)))
24774
24775 ;;; Required by emacs-lua-mode
24776 (define emacs-buttercup-1.25
24777 (package
24778 (inherit emacs-buttercup)
24779 (name "emacs-buttercup")
24780 (version "1.25")
24781 (source
24782 (origin
24783 (method git-fetch)
24784 (uri (git-reference
24785 (url "https://github.com/jorgenschaefer/emacs-buttercup")
24786 (commit (string-append "v" version))))
24787 (file-name (git-file-name name version))
24788 (sha256
24789 (base32
24790 "0fsysvsypda6b7azc15bpaprq3bwx4gb6rlq2mj6f8rgwdqc8153"))))))
24791
24792 (define-public emacs-cort
24793 (package
24794 (name "emacs-cort")
24795 (version "7.1.0")
24796 (source (origin
24797 (method git-fetch)
24798 (uri (git-reference
24799 (url "https://github.com/conao3/cort.el")
24800 (commit (string-append "v" version))))
24801 (file-name (git-file-name name version))
24802 (sha256
24803 (base32
24804 "03c223nczpbdkjmq69panhbsq2a0zj20w329jgj4c0zsj8m1a32a"))))
24805 (build-system emacs-build-system)
24806 (propagated-inputs
24807 (list emacs-ansi))
24808 (arguments
24809 `(#:tests? #t
24810 #:test-command '("emacs" "--batch" "--quick"
24811 "--directory=." "--load=cort-tests.el"
24812 "--funcall=cort-test-run")))
24813 (home-page "https://github.com/conao3/cort.el")
24814 (synopsis "Unit test framework for the Emacs Lisp")
24815 (description "@code{cort} is a lightweight Emacs Lisp unit test library.")
24816 (license license:gpl3+)))
24817
24818 (define-public emacs-wordnut
24819 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
24820 (revision "0"))
24821 (package
24822 (name "emacs-wordnut")
24823 (version (git-version "0.1" revision commit))
24824 (home-page "https://github.com/gromnitsky/wordnut")
24825 (source (origin
24826 (method git-fetch)
24827 (uri (git-reference (url home-page) (commit commit)))
24828 (sha256
24829 (base32
24830 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
24831 (patches
24832 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
24833 (file-name (git-file-name name version))))
24834 (build-system emacs-build-system)
24835 (propagated-inputs
24836 (list wordnet emacs-adaptive-wrap))
24837 (synopsis "Major mode for WordNet")
24838 (description "This Emacs package provides an interface for
24839 @code{wordnet}. Features include completion, if the query is not found
24840 too ambiguous and navigation in the result buffer.")
24841 (license license:gpl3+))))
24842
24843 (define-public emacs-frame-local
24844 ;; There is no release yet. Version is extracted from the main
24845 ;; file.
24846 (let ((version "0.0.1")
24847 (revision "0")
24848 (commit "7ee1106c3bcd4022f48421f8cb1ef4f995da816e"))
24849 (package
24850 (name "emacs-frame-local")
24851 (version (git-version version revision commit))
24852 (source
24853 (origin
24854 (method git-fetch)
24855 (uri (git-reference
24856 (url "https://github.com/sebastiencs/frame-local")
24857 (commit commit)))
24858 (file-name (git-file-name name version))
24859 (sha256
24860 (base32 "0zfxsxdh3bd3fd566zl0byp13p5b8f4cgkwl637imvarvahczigp"))))
24861 (build-system emacs-build-system)
24862 (home-page "https://github.com/sebastiencs/frame-local")
24863 (synopsis "Access variables local to an Emacs frame")
24864 (description
24865 "This package allows setting and accessing variables local to
24866 an Emacs frame. Note that the variables created with this package do
24867 not have any relation with variables defined by @code{defvar},
24868 @code{defconst}, etc.")
24869 (license license:gpl3+))))
24870
24871 (define-public emacs-frame-purpose
24872 (package
24873 (name "emacs-frame-purpose")
24874 (version "1.0")
24875 (source (origin
24876 (method git-fetch)
24877 (uri (git-reference
24878 (url "https://github.com/alphapapa/frame-purpose.el")
24879 (commit version)))
24880 (sha256
24881 (base32
24882 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
24883 (file-name (git-file-name name version))))
24884 (build-system emacs-build-system)
24885 (inputs
24886 (list emacs-dash))
24887 (synopsis "Purpose-specific frames for Emacs")
24888 (description "@code{frame-purpose} makes it easy to open purpose-specific
24889 frames that only show certain buffers, e.g. by buffers’ major mode, their
24890 filename or directory, etc, with custom frame/X-window titles, icons, and
24891 other frame parameters.")
24892 (home-page "https://github.com/alphapapa/frame-purpose.el")
24893 (license license:gpl3+)))
24894
24895 (define-public emacs-arduino-mode
24896 (let ((commit "652c6a328fa8f2db06534d5f231c6b6933be3edc")
24897 (revision "0"))
24898 (package
24899 (name "emacs-arduino-mode")
24900 (version (git-version "1.3.0" revision commit))
24901 (source
24902 (origin
24903 (method git-fetch)
24904 (uri (git-reference
24905 (url "https://repo.or.cz/arduino-mode")
24906 (commit commit)))
24907 (sha256
24908 (base32 "16izwrk1dfsa14kylfhsxdwkx76g0jdk0znl1z7cypxh5q9ijy1x"))
24909 (file-name (git-file-name name version))))
24910 (build-system emacs-build-system)
24911 (inputs
24912 (list emacs-flycheck emacs-spinner))
24913 (synopsis "Emacs major mode for editing Arduino sketches")
24914 (description "This package provides an Emacs major mode for editing
24915 Arduino sketches and Org Babel support.")
24916 (home-page "https://repo.or.cz/arduino-mode")
24917 (license license:gpl3+))))
24918
24919 (define-public emacs-annalist
24920 (package
24921 (name "emacs-annalist")
24922 (version "1.0.1")
24923 (source (origin
24924 (method git-fetch)
24925 (uri (git-reference
24926 (url "https://github.com/noctuid/annalist.el")
24927 (commit version)))
24928 (sha256
24929 (base32
24930 "1jlb5w4972l8m2aa18q2l6arfpm65g4nk21dn1yi8c9dbpk2g67c"))
24931 (file-name (git-file-name name version))))
24932 (build-system emacs-build-system)
24933 (native-inputs
24934 (list emacs-buttercup emacs-lispy emacs-evil))
24935 (arguments
24936 `(#:phases
24937 (modify-phases %standard-phases
24938 (add-before 'check 'fix-makefile
24939 (lambda _
24940 (substitute* "Makefile"
24941 (("cask exec ") ""))
24942 #t)))
24943 #:tests? #t
24944 #:test-command '("make" "test")))
24945 (home-page "https://github.com/noctuid/annalist.el")
24946 (synopsis "Record and display information with Org headings and tables")
24947 (description "This package allows for keybindings, settings, hooks, and
24948 advice to be recorded and displayed.")
24949 (license license:gpl3+)))
24950
24951 (define-public emacs-general
24952 (let ((commit "a0b17d207badf462311b2eef7c065b884462cb7c")
24953 (revision "4"))
24954 (package
24955 (name "emacs-general")
24956 (version (git-version "0" revision commit))
24957 (source
24958 (origin
24959 (method git-fetch)
24960 (uri (git-reference
24961 (url "https://github.com/noctuid/general.el")
24962 (commit commit)))
24963 (sha256
24964 (base32 "0wn5rk3gkimdklip392mnjrmkymgrb7q9skifi03cbpjam1anzvv"))
24965 (file-name (git-file-name name version))))
24966 (build-system emacs-build-system)
24967 (native-inputs
24968 (list emacs-buttercup emacs-evil emacs-which-key emacs-use-package))
24969 (arguments
24970 `(#:tests? #t
24971 #:test-command '("buttercup" "-L" "test/test-general.el")))
24972 (home-page "https://github.com/noctuid/general.el")
24973 (synopsis "More convenient key definitions in emacs")
24974 (description "@code{general.el} provides a more convenient method for
24975 binding keys in emacs (for both evil and non-evil users). Like
24976 @code{use-package}, which provides a convenient, unified interface for
24977 managing packages, @code{general.el} is intended to provide a convenient,
24978 unified interface for key definitions. While this package does implement some
24979 completely new functionality (such as the ability to make vim-style
24980 keybindings under non-prefix keys with an optional timeout), its primary
24981 purpose is to build on existing functionality to make key definition more
24982 clear and concise. @code{general-define-key} is user-extensible and supports
24983 defining multiple keys in multiple keymaps at once, implicitly wrapping key
24984 strings with (@code{kbd ...}), using named prefix key sequences (like the
24985 leader key in vim), and much more.")
24986 (license license:gpl3+))))
24987
24988 (define-public emacs-tldr
24989 (let ((commit "7203d1be3dcbf12131846ffe06601933fa874d74"))
24990 (package
24991 (name "emacs-tldr")
24992 (version (git-version "0" "1" commit))
24993 (home-page "https://github.com/kuanyui/tldr.el")
24994 (source (origin
24995 (method git-fetch)
24996 (uri (git-reference
24997 (url (string-append home-page ".git"))
24998 (commit commit)))
24999 (sha256
25000 (base32
25001 "1bw6la463l2yfm7rp76ga4makfy4kpxgwi7ni5gxk31w11g26ryk"))
25002 (file-name (git-file-name name version))))
25003 (build-system emacs-build-system)
25004 (propagated-inputs
25005 (list emacs-request))
25006 (synopsis "Simplified and community-driven man pages for Emacs")
25007 (description "@code{emacs-tldr} allows the user to access tldr pages
25008 from within emacs. The @code{tldr} pages are a community effort to simplify
25009 the man pages with practical examples.")
25010 (license license:wtfpl2))))
25011
25012 (define-public emacs-window-layout
25013 (package
25014 (name "emacs-window-layout")
25015 (version "1.4")
25016 (home-page "https://github.com/kiwanami/emacs-window-layout")
25017 (source (origin
25018 (method git-fetch)
25019 (uri (git-reference
25020 (url home-page)
25021 (commit (string-append "v" version))))
25022 (sha256
25023 (base32
25024 "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"))
25025 (file-name (git-file-name name version))))
25026 (build-system emacs-build-system)
25027 (synopsis "Simple window layout management framework for emacs")
25028 (description "A window-layout management library that can split a frame
25029 or a window into some windows according to a layout recipe.")
25030 (license license:gpl3+)))
25031
25032 (define-public emacs-e2wm
25033 (package
25034 (name "emacs-e2wm")
25035 (version "1.4")
25036 (home-page "https://github.com/kiwanami/emacs-window-manager")
25037 (source (origin
25038 (method git-fetch)
25039 (uri (git-reference
25040 (url home-page)
25041 (commit (string-append "v" version))))
25042 (sha256
25043 (base32
25044 "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
25045 (file-name (git-file-name name version))))
25046 (build-system emacs-build-system)
25047 (propagated-inputs
25048 (list emacs-window-layout))
25049 (synopsis "Equilibrium Emacs Window Manager")
25050 (description "E2WM is a window manager for Emacs. It enables to
25051 customize the place of pop-up window, how the windows are split, how the
25052 buffers are located in the windows, keybinds to manipulate windows and
25053 buffers, etc. It also has plug-ins to help your Emacs life.")
25054 (license license:gpl3+)))
25055
25056 (define-public emacs-ctable
25057 ;; Latest release is not tagged. Use commit matching version bump.
25058 (let ((commit "04dbcddeba1da1f39e885bc0d36240ff37d829e9")
25059 (version "0.1.3"))
25060 (package
25061 (name "emacs-ctable")
25062 (version version)
25063 (home-page "https://github.com/kiwanami/emacs-ctable")
25064 (source (origin
25065 (method git-fetch)
25066 (uri (git-reference
25067 (url home-page)
25068 (commit commit)))
25069 (sha256
25070 (base32
25071 "16yrx1z44xs24z2a0gwzf1xhhks1wrzafc5ihf6lbw843rq2jar0"))
25072 (file-name (git-file-name name version))))
25073 (build-system emacs-build-system)
25074 (arguments
25075 ;; XXX: The following file does not compile. It is not useful, so
25076 ;; remove it.
25077 (list #:exclude #~(cons "^test-ctable\\.el" %default-exclude)))
25078 (synopsis "Table component for Emacs Lisp")
25079 (description "This program is a table component for Emacs Lisp. Other
25080 programs can use this table component for the application UI.")
25081 (license license:gpl3+))))
25082
25083 (define-public emacs-leetcode
25084 (let ((commit "8624496af9e105c3e07d88844b37ede87540d604")
25085 (revision "1"))
25086 (package
25087 (name "emacs-leetcode")
25088 (version (git-version "0" "1" commit))
25089 (home-page "https://github.com/ginqi7/leetcode-emacs")
25090 (source (origin
25091 (method git-fetch)
25092 (uri (git-reference
25093 (url "https://github.com/ginqi7/leetcode-emacs")
25094 (commit commit)))
25095 (sha256
25096 (base32
25097 "11pp7ydlmwrv7djf9mwk4xzn295xbmdnj5x13bfj5yjpjr89p531"))
25098 (file-name (git-file-name name version))))
25099 (build-system emacs-build-system)
25100 (propagated-inputs
25101 (list emacs-names emacs-ctable))
25102 (synopsis "Solve and submit LeetCode problems from within Emacs")
25103 (description "This package provides an Emacs interface to LeetCode
25104 allowing users to log in and solve problems of their choice using Emacs.")
25105 (license license:unlicense))))
25106
25107 (define-public emacs-epc
25108 (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
25109 (package
25110 (name "emacs-epc")
25111 (version (git-version "0.1.1" "1" commit))
25112 (home-page "https://github.com/kiwanami/emacs-epc")
25113 (source (origin
25114 (method git-fetch)
25115 (uri (git-reference
25116 (url home-page)
25117 (commit commit)))
25118 (sha256
25119 (base32
25120 "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
25121 (file-name (git-file-name name version))))
25122 (build-system emacs-build-system)
25123 (propagated-inputs
25124 (list emacs-deferred emacs-ctable))
25125 (synopsis "RPC stack for Emacs Lisp")
25126 (description "This program is an asynchronous RPC stack for Emacs.
25127 Using this RPC stack, Emacs can communicate with the peer process
25128 smoothly. Because the protocol employs S-expression encoding and consists of
25129 asynchronous communications, the RPC response is fairly good.")
25130 (license license:gpl3+))))
25131
25132 (define-public emacs-edbi
25133 (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
25134 (package
25135 (name "emacs-edbi")
25136 (version (git-version "0.1.3" "1" commit))
25137 (home-page "https://github.com/kiwanami/emacs-edbi")
25138 (source (origin
25139 (method git-fetch)
25140 (uri (git-reference
25141 (url home-page)
25142 (commit commit)))
25143 (sha256
25144 (base32
25145 "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
25146 (file-name (git-file-name name version))))
25147 (build-system emacs-build-system)
25148 (inputs
25149 (list perl
25150 perl-rpc-epc-service
25151 perl-dbi
25152 ;; TODO: Adding support for perl-dbd-mysql and others would
25153 ;; dramatically increase the closure size. Make several packages?
25154 perl-dbd-sqlite))
25155 (propagated-inputs
25156 (list emacs-e2wm emacs-epc))
25157 (arguments
25158 `(#:include '("\\.el$" "\\.pl$")
25159 #:phases
25160 (modify-phases %standard-phases
25161 (add-after 'unpack 'patch-path
25162 (lambda* (#:key inputs #:allow-other-keys)
25163 (let ((perl (assoc-ref inputs "perl")))
25164 (substitute* "edbi.el"
25165 (("\"perl\"") (string-append "\"" perl "/bin/perl\"")))
25166 #t)))
25167 (add-after 'wrap 'wrap-edbi-bridge
25168 (lambda* (#:key inputs outputs #:allow-other-keys)
25169 (let* ((out (assoc-ref outputs "out"))
25170 (bridge (string-append (elpa-directory out)
25171 "/edbi-bridge.pl")))
25172 (chmod bridge #o555)
25173 (wrap-program bridge
25174 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB")))))
25175 #t)))))
25176 (synopsis "Database Interface for Emacs Lisp")
25177 (description "This program connects the database server through Perl's
25178 DBI, and provides DB-accessing API and the simple management UI.")
25179 (license license:gpl3+))))
25180
25181 (define-public emacs-edbi-sqlite
25182 (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
25183 (package
25184 (name "emacs-edbi-sqlite")
25185 (version (git-version "0.1.1" "1" commit))
25186 (home-page "https://github.com/proofit404/edbi-sqlite")
25187 (source (origin
25188 (method git-fetch)
25189 (uri (git-reference
25190 (url home-page)
25191 (commit commit)))
25192 (sha256
25193 (base32
25194 "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
25195 (file-name (git-file-name name version))))
25196 (build-system emacs-build-system)
25197 (propagated-inputs
25198 (list emacs-edbi))
25199 (synopsis "Open SQLite files in Emacs")
25200 (description "This package is a convenience wrapper for @command{edbi}
25201 to open SQLite databases.")
25202 (license license:gpl3+))))
25203
25204 (define-public emacs-nice-citation
25205 (let ((commit "1013b56d9d1495a335f40a5f76203034dc5fa0ea")
25206 (revision "0"))
25207 (package
25208 (name "emacs-nice-citation")
25209 (version (git-version "0.0.2" revision commit))
25210 (source
25211 (origin
25212 (method git-fetch)
25213 (uri (git-reference
25214 (url "https://github.com/damiencollard/nice-citation")
25215 (commit commit)))
25216 (sha256
25217 (base32 "00xqr7haca5vd0bzd043lc6x4fjb903z96frz9b8cbd7spp63z7q"))
25218 (file-name (git-file-name name version))))
25219 (build-system emacs-build-system)
25220 (home-page "https://github.com/damiencollard/nice-citation")
25221 (synopsis "Depth-colored citations for Gnus")
25222 (description
25223 "This package replaces the traditional chevron citation marks @samp{>}
25224 with a Unicode vertical bar with the same color as the text it is quoting.
25225
25226 It is purely presentation: the underlying text is unchanged. In particular,
25227 if you send a message containing a citation, it will contain the traditional
25228 chevron marks.")
25229 (license license:gpl3+))))
25230
25231 (define-public emacs-nix-mode
25232 ;; Use the latest commit to get unreleased fixes to build with Emacs 28.1.
25233 (let ((commit "8fe2ccf0b01f694a77d2528e06c10f06057784f6")
25234 (revision "0"))
25235 (package
25236 (name "emacs-nix-mode")
25237 (version (git-version "1.4.5" revision commit))
25238 (source
25239 (origin
25240 (method git-fetch)
25241 (uri (git-reference
25242 (url "https://github.com/NixOS/nix-mode")
25243 (commit commit)))
25244 (file-name (git-file-name name version))
25245 (sha256
25246 (base32 "08kz9qp4gp55z1i87ig0ysq6pgqgwlgr765g1vp8gsh6lp3myh36"))))
25247 (build-system emacs-build-system)
25248 (propagated-inputs
25249 (list emacs-company emacs-json-mode emacs-magit emacs-mmm-mode))
25250 (home-page "https://github.com/NixOS/nix-mode")
25251 (synopsis "Emacs major mode for editing Nix expressions")
25252 (description "@code{nixos-mode} provides an Emacs major mode for editing
25253 Nix expressions. It supports syntax highlighting, indenting and refilling of
25254 comments.")
25255 (license license:lgpl2.1+))))
25256
25257 (define-public emacs-libmpdel
25258 (package
25259 (name "emacs-libmpdel")
25260 (version "1.3.0")
25261 (source (origin
25262 (method git-fetch)
25263 (uri (git-reference
25264 (url "https://gitea.petton.fr/mpdel/libmpdel.git")
25265 (commit (string-append "v" version))))
25266 (file-name (git-file-name name version))
25267 (sha256
25268 (base32
25269 "0krxhcay5s9s7i41q7ga5skj31vaz2qx3djcrlwajf203bl8j4m9"))))
25270 (build-system emacs-build-system)
25271 (home-page "https://gitea.petton.fr/mpdel/libmpdel")
25272 (synopsis "Emacs library to communicate with Music Player Daemon (MPD)")
25273 (description
25274 "LibMPDel is an Emacs library client to communicate with Music Player
25275 Daemon (MPD), a flexible, powerful, server-side application for playing
25276 music.")
25277 (license license:gpl3+)))
25278
25279 (define-public emacs-mpdel
25280 (package
25281 (name "emacs-mpdel")
25282 (version "1.0.0")
25283 (source
25284 (origin
25285 (method git-fetch)
25286 (uri (git-reference
25287 (url "https://gitea.petton.fr/mpdel/mpdel.git")
25288 (commit (string-append "v" version))))
25289 (file-name (git-file-name name version))
25290 (sha256
25291 (base32
25292 "0pyyvbzskr44dxbmlp3y0r6s459fd51cvwjmnjaqxfxflr5v891g"))))
25293 (build-system emacs-build-system)
25294 (inputs
25295 (list emacs-libmpdel))
25296 (home-page "https://gitea.petton.fr/mpdel/mpdel")
25297 (synopsis "Emacs user interface for Music Player Daemon (MPD)")
25298 (description
25299 "MPDel provides an Emacs user interface to control playback (play, pause,
25300 next, volume) and display and control the current playlist as well as your
25301 stored playlists.")
25302 (license license:gpl3+)))
25303
25304 (define-public emacs-vterm
25305 (let ((version "0.0.1")
25306 (revision "1")
25307 (commit "b44723552f86407d528c4a6c8057382c061b008e"))
25308 (package
25309 (name "emacs-vterm")
25310 (version (git-version version revision commit))
25311 (source (origin
25312 (method git-fetch)
25313 (uri (git-reference
25314 (url "https://github.com/akermu/emacs-libvterm")
25315 (commit commit)))
25316 (file-name (git-file-name name version))
25317 (sha256
25318 (base32
25319 "0rq2skwylvc7s4vfpbbsdykws4akyp9sc6xgrh2ql5yydhhnv2h3"))))
25320 (build-system emacs-build-system)
25321 (arguments
25322 `(#:modules ((guix build emacs-build-system)
25323 ((guix build cmake-build-system) #:prefix cmake:)
25324 (guix build emacs-utils)
25325 (guix build utils))
25326 #:imported-modules (,@%emacs-build-system-modules
25327 (guix build cmake-build-system))
25328 #:phases
25329 (modify-phases %standard-phases
25330 (add-after 'unpack 'substitute-vterm-module-path
25331 (lambda* (#:key outputs #:allow-other-keys)
25332 (chmod "vterm.el" #o644)
25333 (emacs-substitute-sexps "vterm.el"
25334 ("(require 'vterm-module nil t)"
25335 `(module-load
25336 ,(string-append (assoc-ref outputs "out")
25337 "/lib/vterm-module.so"))))))
25338 (add-after 'build 'configure
25339 ;; Run cmake.
25340 (lambda* (#:key outputs #:allow-other-keys)
25341 ((assoc-ref cmake:%standard-phases 'configure)
25342 #:outputs outputs
25343 #:out-of-source? #f
25344 #:configure-flags '("-DUSE_SYSTEM_LIBVTERM=ON"))))
25345 (add-after 'configure 'make
25346 ;; Run make.
25347 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
25348 ;; Compile the shared object file.
25349 (apply invoke "make" "all" make-flags)
25350 ;; Move the file into /lib.
25351 (install-file
25352 "vterm-module.so"
25353 (string-append (assoc-ref outputs "out") "/lib")))))
25354 #:tests? #f))
25355 (native-inputs
25356 (list cmake-minimal libtool libvterm))
25357 (home-page "https://github.com/akermu/emacs-libvterm")
25358 (synopsis "Emacs libvterm integration")
25359 (description "This package implements a bridge to @code{libvterm} to
25360 display a terminal in an Emacs buffer.")
25361 (license license:gpl3+))))
25362
25363 (define-public emacs-vterm-toggle
25364 ;; There have been no releases.
25365 (let ((commit "d10239b7bb89b78dddb82f66ac2286bc0b02747b")
25366 (revision "1"))
25367 (package
25368 (name "emacs-vterm-toggle")
25369 (version (git-version "0.0.4" revision commit))
25370 (source
25371 (origin
25372 (method git-fetch)
25373 (uri (git-reference
25374 (url "https://github.com/jixiuf/vterm-toggle")
25375 (commit commit)))
25376 (file-name (git-file-name name version))
25377 (sha256
25378 (base32 "0r9n23wg9cfy10h5f9zqr8jpkvw34f9rylri3nxq870awjab7rqi"))))
25379 (build-system emacs-build-system)
25380 (propagated-inputs (list emacs-vterm))
25381 (home-page "https://github.com/jixiuf/vterm-toggle")
25382 (synopsis "Toggle between a vterm buffer and other buffers")
25383 (description
25384 "This package provides a DWIM way to switch from an Emacs buffer to
25385 a vterm buffer and back again.")
25386 (license license:gpl3+))))
25387
25388 (define-public emacs-multi-vterm
25389 (let ((commit "a3df7218c1ecadef779e2c47815201052283f9ea")
25390 (revision "1"))
25391 (package
25392 (name "emacs-multi-vterm")
25393 (version (git-version "1.0" revision commit))
25394 (source (origin
25395 (method git-fetch)
25396 (uri (git-reference
25397 (url "https://github.com/suonlight/multi-vterm")
25398 (commit commit)))
25399 (file-name (git-file-name name version))
25400 (sha256
25401 (base32
25402 "0z6321994c4c8f5iya240pzvhirci9idlc110wjjwsm4pzdrrppj"))))
25403 (build-system emacs-build-system)
25404 (propagated-inputs (list emacs-vterm))
25405 (home-page "https://github.com/suonlight/multi-vterm/")
25406 (synopsis "Manage multiple vterm buffers in Emacs")
25407 (description
25408 "This package provides an Emacs library to manage vterm buffers.")
25409 (license license:gpl3+))))
25410
25411 (define-public emacs-simple-mpc
25412 ;; There have been no releases.
25413 (let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
25414 (revision "1"))
25415 (package
25416 (name "emacs-simple-mpc")
25417 (version (git-version "0" revision commit))
25418 (source
25419 (origin
25420 (method git-fetch)
25421 (uri (git-reference
25422 (url "https://github.com/jorenvo/simple-mpc")
25423 (commit commit)))
25424 (file-name (git-file-name name version))
25425 (sha256
25426 (base32
25427 "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"))))
25428 (build-system emacs-build-system)
25429 (propagated-inputs (list emacs-s))
25430 (home-page "https://github.com/jorenvo/simple-mpc")
25431 (synopsis "Simple Emacs frontend to mpc")
25432 (description "This package provides an Emacs major mode which acts as a
25433 front end to mpc, a client for the @dfn{Music Player Daemon} (MPD).")
25434 (license license:gpl3+))))
25435
25436 (define-public emacs-mkmcc-gnuplot-mode
25437 (package
25438 (name "emacs-mkmcc-gnuplot-mode")
25439 (version "1.2.0")
25440 (source
25441 (origin
25442 (method git-fetch)
25443 (uri (git-reference
25444 (url "https://github.com/mkmcc/gnuplot-mode")
25445 (commit "601f6392986f0cba332c87678d31ae0d0a496ce7")))
25446 (file-name (git-file-name name version))
25447 (sha256
25448 (base32
25449 "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"))))
25450 (build-system emacs-build-system)
25451 (home-page "https://mkmcc.github.io/software/gnuplot-mode.html")
25452 (synopsis "Minimal emacs major mode for editing gnuplot scripts")
25453 (description "@code{emacs-mkmcc-gnuplot-mode} is a minimal emacs major
25454 mode for editing gnuplot scripts. It provides syntax highlighting,
25455 indentation and a command to plot the file.")
25456 (license license:gpl3+)))
25457
25458 (define-public emacs-cmake-font-lock
25459 ;; Upstream does not tag commits. The commit hash below matches version
25460 ;; bump.
25461 (let ((commit "0d6111b36a66013aa9b452e664c93308df3b07e1"))
25462 (package
25463 (name "emacs-cmake-font-lock")
25464 (version "0.1.12")
25465 (source (origin
25466 (method git-fetch)
25467 (uri (git-reference
25468 (url "https://github.com/Lindydancer/cmake-font-lock")
25469 (commit commit)))
25470 (file-name (git-file-name name version))
25471 (sha256
25472 (base32
25473 "12ga8ri7v9r5y46pghk80ww27i7nhbrg0r3s2ina42drlkkliqj4"))))
25474 (build-system emacs-build-system)
25475 (native-inputs
25476 (list emacs-faceup))
25477 (arguments
25478 (list #:include #~(cons "^admin\\/" %default-include)))
25479 (home-page "https://github.com/Lindydancer/cmake-font-lock")
25480 (synopsis "Advanced type-aware syntax-highlighting for CMake")
25481 (description "This package highlights function arguments in CMake
25482 according to their use.")
25483 (license license:gpl3+))))
25484
25485 (define-public emacs-detached
25486 (package
25487 (name "emacs-detached")
25488 (version "0.8.1")
25489 (source (origin
25490 (method git-fetch)
25491 (uri (git-reference
25492 (url "https://git.sr.ht/~niklaseklund/detached.el")
25493 (commit version)))
25494 (file-name (git-file-name name version))
25495 (sha256
25496 (base32
25497 "190sil04wbnnml7i1nv19xn8fpqwng9xngpsxvmfxj3bzn7slid6"))))
25498 (arguments
25499 (list
25500 #:tests? #t
25501 #:test-command #~(list "ert-runner")
25502 #:phases
25503 #~(modify-phases %standard-phases
25504 (add-after 'unpack 'configure
25505 (lambda* (#:key inputs #:allow-other-keys)
25506 (make-file-writable "detached.el")
25507 (emacs-substitute-variables "detached.el"
25508 ("detached-dtach-program"
25509 (search-input-file inputs "/bin/dtach"))
25510 ("detached-shell-program"
25511 (search-input-file inputs "/bin/bash"))))))))
25512 (build-system emacs-build-system)
25513 (native-inputs (list emacs-ert-runner))
25514 (inputs (list dtach))
25515 (home-page "https://git.sr.ht/~niklaseklund/detached.el")
25516 (synopsis "A package to launch, and manage, detached processes")
25517 (description
25518 "The detached package allows users to run processes
25519 detached from Emacs. It provides integration with multiple built-in modes, as
25520 well as providing an interface to attach and interact with the processes.")
25521 (license license:gpl3+)))
25522
25523 (define-public emacs-dtache
25524 (deprecated-package "emacs-dtache" emacs-detached))
25525
25526 (define-public emacs-dtrt-indent
25527 (package
25528 (name "emacs-dtrt-indent")
25529 (version "1.8")
25530 (source (origin
25531 (method git-fetch)
25532 (uri (git-reference
25533 (url "https://github.com/jscheid/dtrt-indent")
25534 (commit version)))
25535 (file-name (git-file-name name version))
25536 (sha256
25537 (base32
25538 "16g4bv2py423l19n0kaz18a41wk5fsrpnqzifdss6amqh0dqyvmf"))))
25539 (build-system emacs-build-system)
25540 (home-page "https://github.com/jscheid/dtrt-indent")
25541 (synopsis "Minor mode that guesses the indentation offset")
25542 (description "This package provides a minor mode that guesses the
25543 indentation offset originally used for creating source code files and
25544 transparently adjusts the corresponding settings in Emacs, making it more
25545 convenient to edit foreign files.")
25546 (license license:gpl2+)))
25547
25548 (define-public emacs-repo
25549 (package
25550 (name "emacs-repo")
25551 (version "0.2.0")
25552 (source (origin
25553 (method git-fetch)
25554 (uri (git-reference
25555 (url "https://github.com/canatella/repo-el")
25556 (commit version)))
25557 (file-name (git-file-name name version))
25558 (sha256
25559 (base32
25560 "0jgiawdnzjlrpx2j1y6djwbqncdpmyfd31q1qf1890049y8ppxnb"))))
25561 (build-system emacs-build-system)
25562 (native-inputs
25563 (list emacs-el-mock emacs-ert-runner))
25564 (propagated-inputs
25565 (list emacs-f emacs-magit))
25566 (home-page "https://github.com/canatella/repo-el")
25567 (synopsis "Emacs interface for the Google Repo tool")
25568 (description "This package provides integration of the Google Repo tool
25569 with emacs. It displays the output of the @code{repo status} command in a
25570 buffer and launches Magit from the status buffer for the project at point.")
25571 (license license:gpl3+)))
25572
25573 (define-public emacs-repology
25574 (package
25575 (name "emacs-repology")
25576 (version "1.2.3")
25577 (source
25578 (origin
25579 (method url-fetch)
25580 (uri (string-append "https://elpa.gnu.org/packages/"
25581 "repology-" version ".tar"))
25582 (sha256
25583 (base32 "1ngx23b7dilyps20nznrrn867kbxyn6nryf4p1sy5m576hkw18kn"))))
25584 (build-system emacs-build-system)
25585 (arguments
25586 (list
25587 #:tests? #t
25588 #:test-command
25589 #~(list "emacs" "-Q" "-batch"
25590 "-l" "repology-tests.el"
25591 "-f" "ert-run-tests-batch-and-exit")))
25592 (home-page "https://elpa.gnu.org/packages/repology.html")
25593 (synopsis "Repology API access via Elisp")
25594 (description
25595 "This package provides tools to query Repology API (see
25596 @url{https://repology.org/api}), process results, and display them.")
25597 (license license:gpl3+)))
25598
25599 (define-public emacs-alect-themes
25600 (package
25601 (name "emacs-alect-themes")
25602 (version "0.10")
25603 (source
25604 (origin
25605 (method git-fetch)
25606 (uri (git-reference
25607 (url "https://github.com/alezost/alect-themes")
25608 (commit (string-append "v" version))))
25609 (file-name (git-file-name name version))
25610 (sha256
25611 (base32 "190clnm5x4hpzrq2wp18vxg6614ly3ciyv0y1sm9rfr9w9z5i0ya"))))
25612 (build-system emacs-build-system)
25613 (home-page "https://github.com/alezost/alect-themes")
25614 (synopsis "Low contrast, light, dark and black color theme for Emacs")
25615 (description "@code{emacs-alect-themes} provides configurable light, dark
25616 and black color themes for Emacs. The themes are intended to be used with
25617 GUI.")
25618 (license license:gpl3+)))
25619
25620 (define-public emacs-google-c-style
25621 (let ((commit "6271f3f473ceb3a7fef99388a3040903b1a145f1")
25622 (revision "0"))
25623 (package
25624 (name "emacs-google-c-style")
25625 (version (git-version "0.1" revision commit))
25626 (source (origin
25627 (method git-fetch)
25628 (uri (git-reference
25629 (url "https://github.com/google/styleguide")
25630 (commit commit)))
25631 (file-name (git-file-name name version))
25632 (sha256
25633 (base32
25634 "1jghyyasdl15c4gaqaxmdn43am63k6bykn5ab83f1ahv9zi1krxk"))))
25635 (build-system emacs-build-system)
25636 (home-page "https://github.com/google/styleguide")
25637 (synopsis "Emacs settings file for Google C/C++ style")
25638 (description "@code{emacs-google-c-style} provides an Emacs settings
25639 file for Google C and C++ style.")
25640 (license license:gpl1+))))
25641
25642 (define-public emacs-redshank
25643 (let ((commit "f98e68f532e622bcd464292ca4a9cf5fbea14ebb")
25644 (revision "1"))
25645 (package
25646 (name "emacs-redshank")
25647 (version (git-version "0.1" revision commit))
25648 (source (origin
25649 (method git-fetch)
25650 (uri (git-reference
25651 (url "http://www.foldr.org/~michaelw/projects/redshank.git")
25652 (commit commit)))
25653 (file-name (git-file-name name version))
25654 (sha256
25655 (base32
25656 "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"))))
25657 (build-system emacs-build-system)
25658 (propagated-inputs
25659 (list emacs-paredit))
25660 (home-page "http://www.foldr.org/~michaelw/emacs/redshank/")
25661 (synopsis "Common Lisp Editing Extensions (for Emacs)")
25662 (description "Redshank is a collection of code-wrangling Emacs macros
25663 mostly geared towards Common Lisp, but some are useful for other Lisp
25664 dialects, too. Redshank's code transformations aim to be expression-based (as
25665 opposed to character-based).")
25666 (license license:gpl1+))))
25667
25668 (define-public emacs-disk-usage
25669 (package
25670 (name "emacs-disk-usage")
25671 (version "1.3.3")
25672 (source
25673 (origin
25674 (method git-fetch)
25675 (uri (git-reference
25676 (url "https://gitlab.com/Ambrevar/emacs-disk-usage")
25677 (commit version)))
25678 (file-name (git-file-name name version))
25679 (sha256
25680 (base32
25681 "0hv2gsd8k5fbjgckgiyisq4rn1i7y4rchbjy8kmixjv6mx563bll"))))
25682 (build-system emacs-build-system)
25683 (home-page "https://gitlab.com/Ambrevar/emacs-disk-usage")
25684 (synopsis "Sort and browse disk usage listings with Emacs")
25685 (description "Disk Usage is a file system analyzer: it offers a tabulated
25686 view of file listings sorted by size. Directory sizes are computed
25687 recursively. The results are cached for speed.")
25688 (license license:gpl3+)))
25689
25690 (define-public emacs-orgit
25691 (package
25692 (name "emacs-orgit")
25693 (version "1.8.0")
25694 (home-page "https://github.com/magit/orgit")
25695 (source (origin
25696 (method git-fetch)
25697 (uri (git-reference
25698 (url home-page)
25699 (commit (string-append "v" version))))
25700 (file-name (git-file-name name version))
25701 (sha256
25702 (base32
25703 "1hjfsj12qx06m8ji4l2sg502a55sabar4h6c2b2i9nmp1xf5889l"))))
25704 (build-system emacs-build-system)
25705 (propagated-inputs
25706 (list emacs-dash emacs-magit))
25707 (synopsis "Support for Org links to Magit buffers")
25708 (description "This package defines several Org link types, which can be
25709 used to link to certain Magit buffers. Use the command
25710 @command{org-store-link} while such a buffer is current to store a link.
25711 Later you can insert it into an Org buffer using the command
25712 @code{org-insert-link}.")
25713 (license license:gpl3+)))
25714
25715 (define-public emacs-amx
25716 (package
25717 (name "emacs-amx")
25718 (version "3.4")
25719 (source
25720 (origin
25721 (method git-fetch)
25722 (uri (git-reference
25723 (url "https://github.com/DarwinAwardWinner/amx")
25724 (commit (string-append "v" version))))
25725 (file-name (git-file-name name version))
25726 (sha256
25727 (base32 "0h1cxqqf0hixh25j679r57bq9dv0b20icf268wbnsim5xp88ngf8"))))
25728 (build-system emacs-build-system)
25729 (propagated-inputs
25730 (list emacs-s))
25731 (home-page "https://github.com/DarwinAwardWinner/amx")
25732 (synopsis "Alternative M-x interface for Emacs")
25733 (description "Amx is an alternative interface for M-x in Emacs. It
25734 provides several enhancements over the ordinary
25735 @code{execute-extended-command}, such as prioritizing your most-used commands
25736 in the completion list and showing keyboard shortcuts, and it supports several
25737 completion systems for selecting commands, such as Ido and Ivy.")
25738 (license license:gpl3+)))
25739
25740 (define-public emacs-lorem-ipsum
25741 (let ((commit "4b39f6fed455d67f635b3837cf5668bf74d0f6cd"))
25742 (package
25743 (name "emacs-lorem-ipsum")
25744 (version (git-version "0.2" "1" commit))
25745 (home-page "https://github.com/jschaf/emacs-lorem-ipsum/")
25746 (source (origin
25747 (method git-fetch)
25748 (uri (git-reference
25749 (url home-page)
25750 (commit commit)))
25751 (file-name (git-file-name name version))
25752 (sha256
25753 (base32
25754 "0a3b18p3vdjci89prsgdzjnfxsl8p67vjhf8ai4qdng7zvh50lir"))))
25755 (build-system emacs-build-system)
25756 (synopsis "Insert dummy pseudo Latin text in Emacs")
25757 (description "This package provides convenience functions to insert
25758 dummy Latin text into a buffer. This can be useful if you need to produce
25759 paragraphs or pages of text for testing purposes.")
25760 (license license:gpl3+))))
25761
25762 (define-public emacs-lisp-extra-font-lock
25763 (let ((commit "4605eccbe1a7fcbd3cacf5b71249435413b4db4f"))
25764 (package
25765 (name "emacs-lisp-extra-font-lock")
25766 (version (git-version "0.0.6" "1" commit))
25767 (home-page "https://github.com/Lindydancer/lisp-extra-font-lock")
25768 (source (origin
25769 (method git-fetch)
25770 (uri (git-reference
25771 (url home-page)
25772 (commit commit)))
25773 (file-name (git-file-name name version))
25774 (sha256
25775 (base32
25776 "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w"))))
25777 (build-system emacs-build-system)
25778 (synopsis "Highlight bound variables and quoted expressions in Emacs")
25779 (description "This package highlight the location where local variables
25780 is created (bound, for example, by let) as well as quoted and backquoted
25781 constant expressions.")
25782 (license license:gpl3+))))
25783
25784 (define-public emacs-docker-tramp
25785 (package
25786 (name "emacs-docker-tramp")
25787 (version "0.1.1")
25788 (source
25789 (origin
25790 (method git-fetch)
25791 (uri (git-reference
25792 (url "https://github.com/emacs-pe/docker-tramp.el")
25793 (commit (string-append "v" version))))
25794 (file-name (git-file-name name version))
25795 (sha256
25796 (base32
25797 "05966l3af9lg4nlsz6wrq282ipwxh19ggirfyabjrr1syw3v2crn"))))
25798 (build-system emacs-build-system)
25799 (home-page "https://github.com/emacs-pe/docker-tramp.el")
25800 (synopsis "TRAMP integration for docker containers")
25801 (description
25802 "This package provides a TRAMP method for Docker containers.")
25803 (license license:gpl3+)))
25804
25805 (define-public emacs-docker
25806 (package
25807 (name "emacs-docker")
25808 (version "2.2.0")
25809 (source
25810 (origin
25811 (method git-fetch)
25812 (uri (git-reference
25813 (url "https://github.com/Silex/docker.el")
25814 (commit version)))
25815 (file-name (git-file-name name version))
25816 (sha256
25817 (base32 "1743x2s7ss7h329yayima3pqi62f0qjv56g5y6b7iwk40wpnhv9v"))))
25818 (inputs
25819 (list emacs-undercover))
25820 (propagated-inputs
25821 (list emacs-aio
25822 emacs-dash
25823 emacs-docker-tramp
25824 emacs-json-mode
25825 emacs-s
25826 emacs-tablist))
25827 (arguments `(#:tests? #false)) ;no tests
25828 (build-system emacs-build-system)
25829 (home-page "https://github.com/Silex/docker.el")
25830 (synopsis "Manage docker from Emacs")
25831 (description "This package provides an Emacs interface for Docker.")
25832 (license license:gpl3+)))
25833
25834 (define-public emacs-dockerfile-mode
25835 (package
25836 (name "emacs-dockerfile-mode")
25837 (version "1.7")
25838 (source
25839 (origin
25840 (method git-fetch)
25841 (uri (git-reference
25842 (url "https://github.com/spotify/dockerfile-mode")
25843 (commit (string-append "v" version))))
25844 (file-name (git-file-name name version))
25845 (sha256
25846 (base32
25847 "0hmzwh8m72rj6cwaxfypnv3fmjrs11iqr15vsdw1rw7m55xi675f"))))
25848 (build-system emacs-build-system)
25849 (propagated-inputs
25850 (list emacs-s))
25851 (home-page "https://github.com/spotify/dockerfile-mode")
25852 (synopsis "Major mode for editing Dockerfile")
25853 (description
25854 "This package provides a major mode @code{dockerfile-mode} for use with
25855 the standard @code{Dockerfile} file format.")
25856 (license license:asl2.0)))
25857
25858 (define-public emacs-lsp-mode
25859 (let ((commit "4aafe25e03ab7470b8d3c1cb326affa3c5e9930e")
25860 (revision "0"))
25861 (package
25862 (name "emacs-lsp-mode")
25863 (version (git-version "8.0.1" revision commit))
25864 (source
25865 (origin
25866 (method git-fetch)
25867 (uri (git-reference
25868 (url "https://github.com/emacs-lsp/lsp-mode")
25869 (commit commit)))
25870 (file-name (git-file-name name version))
25871 (sha256
25872 (base32 "01csz4vr3fg1q2py45mxj5j8bkvckn3daam1jafb2gg9gjc9bp7z"))))
25873 (build-system emacs-build-system)
25874 (arguments
25875 `(#:emacs ,emacs ;need libxml support
25876 #:phases
25877 (modify-phases %standard-phases
25878 (add-after 'unpack 'move-clients-libraries
25879 ;; Move all clients libraries at top-level, as is done, e.g., in
25880 ;; MELPA.
25881 (lambda _
25882 (for-each (lambda (f)
25883 (install-file f "."))
25884 (find-files "clients/" "\\.el$"))))
25885 (add-before 'move-clients-libraries 'fix-patch-el-files
25886 ;; /bin/ksh is only used on macOS, which we don't support, so we
25887 ;; don't want to add it as input.
25888 (lambda _
25889 (substitute* '("clients/lsp-csharp.el" "clients/lsp-fsharp.el")
25890 (("/bin/ksh") "ksh")))))))
25891 (propagated-inputs
25892 (list emacs-dash
25893 emacs-f
25894 emacs-ht
25895 emacs-hydra
25896 emacs-markdown-mode
25897 emacs-spinner))
25898 (home-page "https://emacs-lsp.github.io/lsp-mode/")
25899 (synopsis "Emacs client and library for the Language Server Protocol")
25900 (description
25901 "LSP mode is a client and library implementation for the Language
25902 Server Protocol. This mode creates an IDE-like experience by providing
25903 optional integration with other popular Emacs packages like Company, Flycheck,
25904 and Projectile.")
25905 (license license:gpl3+))))
25906
25907 (define-public emacs-lsp-treemacs
25908 (package
25909 (name "emacs-lsp-treemacs")
25910 (version "0.4")
25911 (source
25912 (origin
25913 (method git-fetch)
25914 (uri (git-reference
25915 (url "https://github.com/emacs-lsp/lsp-treemacs")
25916 (commit version)))
25917 (file-name (git-file-name name version))
25918 (sha256
25919 (base32 "05ivqa5900139jzjhwc3nggwznhm8564dz4ydcxym2ddd63571k0"))))
25920 (build-system emacs-build-system)
25921 (propagated-inputs
25922 (list emacs-lsp-mode emacs-treemacs))
25923 (home-page "https://github.com/emacs-lsp/lsp-treemacs")
25924 (synopsis "Integration between LSP mode and treemacs")
25925 (description
25926 "This package provides integration between LSP mode and treemacs,
25927 and implementation of treeview controls using treemacs as a tree renderer.")
25928 (license license:gpl3+)))
25929
25930 (define-public emacs-dap-mode
25931 (package
25932 (name "emacs-dap-mode")
25933 (version "0.7")
25934 (source
25935 (origin
25936 (method git-fetch)
25937 (uri (git-reference
25938 (url "https://github.com/emacs-lsp/dap-mode")
25939 (commit version)))
25940 (file-name (git-file-name name version))
25941 (sha256
25942 (base32 "1zczmcv8562lachkvcwy6njn7zkgny08iznpmrx821wr8mh52wnn"))))
25943 (build-system emacs-build-system)
25944 (propagated-inputs
25945 (list emacs-bui emacs-lsp-mode emacs-posframe emacs-lsp-treemacs))
25946 (home-page "https://emacs-lsp.github.io/dap-mode")
25947 (synopsis "Emacs client/library for Debug Adapter Protocol")
25948 (description
25949 "Dap mode is an Emacs client/library for Debug Adapter
25950 Protocol (DAP), a wire protocol for communication between client and
25951 debug server. It is similar to the LSP but provides integration with
25952 Debug server.")
25953 (license license:gpl3+)))
25954
25955 (define-public emacs-bfuture
25956 (package
25957 (name "emacs-bfuture")
25958 (version "1.0.1")
25959 (source
25960 (origin
25961 (method git-fetch)
25962 (uri (git-reference
25963 (url "https://git.sr.ht/~plattfot/bfuture")
25964 (commit (string-append "v" version))))
25965 (sha256
25966 (base32
25967 "1m4v4xbsvg26z7nvg2c8q7x1nvv7v4ajm56l0nbkwcbdbrgahpva"))
25968 (file-name (git-file-name name version))))
25969 (build-system emacs-build-system)
25970 (arguments
25971 (list #:tests? (not (%current-target-system))
25972 #:test-command #~'("ert-runner")))
25973 (native-inputs (list emacs-ert-runner))
25974 (home-page "https://github.com/plattfot/bfuture.el")
25975 (synopsis "Basic future concept for Emacs with Tramp support")
25976 (description
25977 "This package provides basic functions for spawning processes asynchronous in
25978 Emacs and retrieving the output. It is similar to @code{emacs-pfuture} except
25979 that this works over Tramp but the feature set is more limited. For example,
25980 it cannot tell stdout and stderr apart.")
25981 (license license:gpl3+)))
25982
25983 (define-public emacs-pfuture
25984 (package
25985 (name "emacs-pfuture")
25986 (version "1.10.3")
25987 (source
25988 (origin
25989 (method git-fetch)
25990 (uri (git-reference
25991 (url "https://github.com/Alexander-Miller/pfuture")
25992 (commit version)))
25993 (file-name (git-file-name name version))
25994 (sha256
25995 (base32 "0ifasmkfj06fb9whk7gg47fiim0bbwyh3279sd72psqbbxfixddf"))))
25996 (build-system emacs-build-system)
25997 (home-page "https://github.com/Alexander-Miller/pfuture")
25998 (synopsis "Simple wrapper around asynchronous processes for Emacs")
25999 (description "This package provides a simple wrapper around asynchronous
26000 processes for Emacs.")
26001 (license license:gpl3+)))
26002
26003 (define-public emacs-treemacs
26004 (package
26005 (name "emacs-treemacs")
26006 (version "3.0")
26007 (source
26008 (origin
26009 (method git-fetch)
26010 (uri (git-reference
26011 (url "https://github.com/Alexander-Miller/treemacs")
26012 (commit version)))
26013 (file-name (git-file-name name version))
26014 (sha256
26015 (base32 "0l6pbfrkl0v1iyc43vyhchbcfy7cjhinn8pw07aq4ssh6lxil7kp"))))
26016 (build-system emacs-build-system)
26017 (propagated-inputs
26018 (list emacs-ace-window
26019 emacs-dash
26020 emacs-f
26021 emacs-ht
26022 emacs-hydra
26023 emacs-pfuture
26024 emacs-s))
26025 (native-inputs
26026 (list emacs-buttercup emacs-el-mock))
26027 (inputs
26028 (list python))
26029 (arguments
26030 (list
26031 #:tests? #t
26032 #:test-command #~(list "make" "-C" "../.." "test")
26033 #:phases
26034 #~(modify-phases %standard-phases
26035 (add-after 'unpack 'fix-makefile
26036 (lambda _
26037 (substitute* "Makefile"
26038 (("@\\$\\(CASK\\) exec ") "")
26039 ;; Guix does not need to prepare dependencies before testing.
26040 (("test: prepare") "test:"))))
26041 (add-after 'fix-makefile 'chdir-elisp
26042 ;; Elisp directory is not in root of the source.
26043 (lambda _
26044 (chdir "src/elisp")))
26045 (add-before 'check 'delete-failing-tests
26046 ;; FIXME: 4 tests out of 254 are failing.
26047 (lambda _
26048 (emacs-batch-edit-file "../../test/treemacs-test.el"
26049 '(progn
26050 (goto-char (point-min))
26051 (re-search-forward "describe \"treemacs--parent\"")
26052 (beginning-of-line)
26053 (kill-sexp)
26054 (basic-save-buffer)))))
26055 (add-before 'install 'patch-paths
26056 (lambda* (#:key inputs #:allow-other-keys)
26057 (make-file-writable "treemacs-core-utils.el")
26058 (emacs-substitute-variables "treemacs-core-utils.el"
26059 ("treemacs-dir" (string-append #$output "/")))
26060 (make-file-writable "treemacs-icons.el")
26061 (substitute* "treemacs-icons.el"
26062 (("icons/default")
26063 (string-append (elpa-directory #$output) "/icons/default")))
26064 (make-file-writable "treemacs-customization.el")
26065 (emacs-substitute-variables "treemacs-customization.el"
26066 ("treemacs-python-executable"
26067 (search-input-file inputs "/bin/python3")))
26068 (make-file-writable "treemacs-async.el")
26069 (substitute* "treemacs-async.el"
26070 (("src/scripts")
26071 (string-append (elpa-directory #$output) "/scripts")))))
26072 (add-after 'install 'install-data
26073 (lambda _
26074 (with-directory-excursion "../.." ;treemacs root
26075 (copy-recursively
26076 "icons/default"
26077 (string-append (elpa-directory #$output) "/icons/default"))
26078 (copy-recursively
26079 "src/scripts"
26080 (string-append (elpa-directory #$output) "/scripts"))))))))
26081 (home-page "https://github.com/Alexander-Miller/treemacs")
26082 (synopsis "Emacs tree style file explorer")
26083 (description
26084 "Treemacs is a file and project explorer similar to NeoTree or Vim's
26085 NerdTree, but largely inspired by the Project Explorer in Eclipse. It shows
26086 the file system outlines of your projects in a simple tree layout allowing
26087 quick navigation and exploration, while also possessing basic file management
26088 utilities.")
26089 (license license:gpl3+)))
26090
26091 (define-public emacs-treemacs-extra
26092 (package
26093 (inherit emacs-treemacs)
26094 (name "emacs-treemacs-extra")
26095 (propagated-inputs
26096 `(,@(package-propagated-inputs emacs-treemacs)
26097 ("emacs-all-the-icons" ,emacs-all-the-icons)
26098 ("emacs-evil" ,emacs-evil)
26099 ("emacs-magit" ,emacs-magit)
26100 ("emacs-projectile" ,emacs-projectile)
26101 ("emacs-perspective" ,emacs-perspective)
26102 ("emacs-persp-mode" ,emacs-persp-mode)
26103 ("mu" ,mu)))
26104 (arguments
26105 (substitute-keyword-arguments
26106 (package-arguments emacs-treemacs)
26107 ((#:phases phases)
26108 `(modify-phases ,phases
26109 (add-after 'chdir-elisp 'copy-extra
26110 (lambda _
26111 (copy-recursively "../extra" ".")))))))))
26112
26113 (define-public emacs-libyaml
26114 ;; Upstream made no release so far.
26115 (let ((version "0.1")
26116 (revision "1")
26117 (commit "961e0d8b9ef47464c049e07be7fcefd3903f8cbc"))
26118 (package
26119 (name "emacs-libyaml")
26120 (version (git-version version revision commit))
26121 (source
26122 (origin
26123 (method git-fetch)
26124 (uri (git-reference
26125 (url "https://github.com/syohex/emacs-libyaml")
26126 (commit commit)))
26127 (file-name (git-file-name name version))
26128 (sha256
26129 (base32 "1c85583r47yjbpzbjgjzrwzqdlmy229xx9az2r18smcyd9da92c3"))))
26130 (build-system emacs-build-system)
26131 (arguments
26132 (list
26133 #:tests? #f ;no test
26134 #:modules '((guix build emacs-build-system)
26135 (guix build emacs-utils)
26136 (guix build utils))
26137 #:imported-modules `(,@%emacs-build-system-modules
26138 (guix build gnu-build-system))
26139 #:phases
26140 #~(modify-phases %standard-phases
26141 (add-after 'unpack 'substitute-libyaml-core-path
26142 (lambda _
26143 (make-file-writable "libyaml.el")
26144 (substitute* "libyaml.el"
26145 (("^\\(require 'libyaml-core\\)")
26146 (string-append "(module-load \"" #$output
26147 "/lib/libyaml-core.so\")")))))
26148 (add-after 'check 'make
26149 ;; Run make.
26150 (lambda* (#:key (make-flags '()) #:allow-other-keys)
26151 ;; Compile the shared object file.
26152 (apply invoke "make" "all" "CPPFLAGS=" make-flags)
26153 ;; Move the file into /lib.
26154 (install-file "libyaml-core.so"
26155 (string-append #$output "/lib")))))))
26156 (native-inputs (list libyaml))
26157 (home-page "https://github.com/syohex/emacs-libyaml")
26158 (synopsis "Libyaml bindings for Emacs")
26159 (description
26160 "This package implements bindings for LibYAML to be able to parse YAML
26161 files in Elisp.")
26162 (license license:gpl3+))))
26163
26164 (define-public emacs-lsp-java
26165 (package
26166 (name "emacs-lsp-java")
26167 (version "3.1")
26168 (source (origin
26169 (method git-fetch)
26170 (uri (git-reference
26171 (url "https://github.com/emacs-lsp/lsp-java")
26172 (commit version)))
26173 (file-name (git-file-name name version))
26174 (sha256
26175 (base32
26176 "1h0hqgjpk5mbylma1fkva0vx45achf0k7ab2c5y8a2449niww90h"))))
26177 (build-system emacs-build-system)
26178 (propagated-inputs
26179 (list emacs-dap-mode
26180 emacs-lsp-mode
26181 emacs-markdown-mode
26182 emacs-dash
26183 emacs-f
26184 emacs-ht
26185 emacs-request
26186 emacs-treemacs))
26187 (home-page "https://github.com/emacs-lsp/lsp-java/")
26188 (synopsis "Java support for lsp-mode")
26189 (description "Emacs Java IDE using Eclipse JDT Language Server.")
26190 (license license:gpl3+)))
26191
26192 (define-public emacs-lsp-metals
26193 (package
26194 (name "emacs-lsp-metals")
26195 (version "1.2.0")
26196 (source (origin
26197 (method git-fetch)
26198 (uri (git-reference
26199 (url "https://github.com/emacs-lsp/lsp-metals")
26200 (commit version)))
26201 (file-name (git-file-name name version))
26202 (sha256
26203 (base32
26204 "0ca5xq1l3lscx36pcdnpy2axgyikjrl18naqr140kr1y500sy37s"))))
26205 (build-system emacs-build-system)
26206 (propagated-inputs
26207 (list emacs-dap-mode emacs-lsp-treemacs emacs-scala-mode))
26208 (home-page "https://github.com/emacs-lsp/lsp-metals")
26209 (synopsis "Scala support for LSP mode")
26210 (description "This package is an Emacs Scala IDE using LSP mode to connect
26211 to Metals.")
26212 (license license:gpl3+)))
26213
26214 (define-public emacs-lsp-ui
26215 (package
26216 (name "emacs-lsp-ui")
26217 (version "8.0.1")
26218 (source (origin
26219 (method git-fetch)
26220 (uri (git-reference
26221 (url "https://github.com/emacs-lsp/lsp-ui")
26222 (commit version)))
26223 (file-name (git-file-name name version))
26224 (sha256
26225 (base32
26226 "1pd5lvjlmd6zq64py21yi5zxhcza9g5q48ngfivv7fi7pf3vsv00"))))
26227 (build-system emacs-build-system)
26228 (propagated-inputs
26229 (list emacs-dash emacs-lsp-mode emacs-markdown-mode emacs-flycheck))
26230 (home-page "https://github.com/emacs-lsp/lsp-ui")
26231 (synopsis "User interface extensions for @code{lsp-mode}")
26232 (description
26233 "@code{LSP-ui} contains several enhancements and integrations for
26234 @code{lsp-mode}, such as visual flychecking, displaying references in-line,
26235 and code peeking.")
26236 (license license:gpl3+)))
26237
26238 (define-public emacs-lsp-lua-emmy
26239 (let ((commit "ab53fb2a8b8942804eb75bab5624fd19f1d360bf"))
26240 (package
26241 (name "emacs-lsp-lua-emmy")
26242 (version (git-version "0.1.0" "1" commit))
26243 (source (origin
26244 (method git-fetch)
26245 (uri (git-reference
26246 (url "https://github.com/phenix3443/lsp-lua-emmy")
26247 (commit commit)))
26248 (file-name (git-file-name name version))
26249 (sha256
26250 (base32
26251 "0rbizis73n1w5ig07fj1han74chbc1zpbp5bn37rj0gz608aqka8"))))
26252 (build-system emacs-build-system)
26253 (propagated-inputs
26254 (list emacs-lsp-mode))
26255 (home-page "https://github.com/phenix3443/lsp-lua-emmy/")
26256 (synopsis "Lua support in @code{lsp-mode} client for Emacs")
26257 (description "This package provides a Lua language support in
26258 @code{lsp-mode} client for Emacs.")
26259 (license license:gpl3+))))
26260
26261 (define-public emacs-lsp-ivy
26262 (package
26263 (name "emacs-lsp-ivy")
26264 (version "0.5")
26265 (source
26266 (origin
26267 (method git-fetch)
26268 (uri (git-reference
26269 (url "https://github.com/emacs-lsp/lsp-ivy")
26270 (commit version)))
26271 (file-name (git-file-name name version))
26272 (sha256
26273 (base32 "0nb9ypa8hyx7i38rbywh8hn2i5f9l2l567hvdr9767fk279yr97n"))))
26274 (build-system emacs-build-system)
26275 (propagated-inputs
26276 (list emacs-dash emacs-ivy emacs-lsp-mode))
26277 (home-page "https://github.com/emacs-lsp/lsp-ivy")
26278 (synopsis "Provide LSP-enhanced completion for symbols")
26279 (description
26280 "This package enhances @code{ivy} with completion for symbols from
26281 workspaces with a LSP-compliant server running.")
26282 (license license:gpl3+)))
26283
26284 (define-public emacs-helm-lsp
26285 (package
26286 (name "emacs-helm-lsp")
26287 (version "0.2")
26288 (source (origin
26289 (method git-fetch)
26290 (uri (git-reference
26291 (url "https://github.com/emacs-lsp/helm-lsp")
26292 (commit version)))
26293 (file-name (git-file-name name version))
26294 (sha256
26295 (base32
26296 "1vq3qpqm3ndqyvf5bk8qhqcr60x9ykc0ipk2a43rr3yjm4z1b6s9"))))
26297 (build-system emacs-build-system)
26298 (propagated-inputs
26299 (list emacs-helm emacs-lsp-mode emacs-dash))
26300 (home-page "https://github.com/emacs-lsp/helm-lsp")
26301 (synopsis "Provide LSP-enhanced completion for symbols")
26302 (description
26303 "This package enhances @code{helm} with completion for symbols from
26304 workspaces with a LSP-compliant server running.")
26305 (license license:gpl3+)))
26306
26307 (define-public emacs-helm-notmuch
26308 (package
26309 (name "emacs-helm-notmuch")
26310 (version "1.2")
26311 (home-page "https://github.com/emacs-helm/helm-notmuch/")
26312 (source (origin
26313 (method git-fetch)
26314 (uri (git-reference
26315 (url home-page)
26316 (commit version)))
26317 (file-name (git-file-name name version))
26318 (sha256
26319 (base32
26320 "1k038dbdpaa411gl4071x19fklhnizhr346plxw23lsnxir9dhqc"))))
26321 (build-system emacs-build-system)
26322 (propagated-inputs
26323 (list emacs-helm emacs-notmuch))
26324 (synopsis "Search emails with Emacs Notmuch and Helm")
26325 (description
26326 "This package can be used to search emails in Emacs, searching result
26327 displays as you type thanks to Helm, though @command{notmuch-search} does the
26328 real search.")
26329 (license license:gpl3+)))
26330
26331 (define-public emacs-notmuch-maildir
26332 (package
26333 (name "emacs-notmuch-maildir")
26334 (version "0.2.1")
26335 (source
26336 (origin
26337 (method git-fetch)
26338 (uri (git-reference
26339 (url "https://git.sr.ht/~tarsius/notmuch-maildir")
26340 (commit (string-append "v" version))))
26341 (file-name (git-file-name name version))
26342 (sha256
26343 (base32 "1fqnx6hhg0cqj82yjpl7llg6vvppc3y8q9k6g67mqr7z3712bw0x"))))
26344 (build-system emacs-build-system)
26345 (propagated-inputs
26346 (list emacs-notmuch))
26347 (home-page "https://git.sr.ht/~tarsius/notmuch-maildir")
26348 (synopsis "Visualize maildirs as a tree")
26349 (description
26350 "This package can visualize maildirs hierarchically in Notmuch's ``hello
26351 buffer''.")
26352 (license license:gpl3+)))
26353
26354 (define-public emacs-elmacro
26355 (package
26356 (name "emacs-elmacro")
26357 (version "1.1.1")
26358 (home-page "https://github.com/Silex/elmacro")
26359 (source (origin
26360 (method git-fetch)
26361 (uri (git-reference
26362 (url home-page)
26363 (commit version)))
26364 (file-name (git-file-name name version))
26365 (sha256
26366 (base32
26367 "1x4wnsshf9h10mp51x92vs5rxw5had4gmw6zz4f53czx1ymcv16a"))))
26368 (build-system emacs-build-system)
26369 (propagated-inputs
26370 (list emacs-s emacs-dash))
26371 (synopsis "Convert keyboard macros to Emacs Lisp")
26372 (description
26373 "This package displays keyboard macros or latest interactive commands
26374 as Emacs Lisp.")
26375 (license license:gpl3+)))
26376
26377 (define-public emacs-transient
26378 (package
26379 (name "emacs-transient")
26380 (version "0.3.7")
26381 (source
26382 (origin
26383 (method git-fetch)
26384 (uri (git-reference
26385 (url "https://github.com/magit/transient")
26386 (commit (string-append "v" version))))
26387 (file-name (git-file-name name version))
26388 (sha256
26389 (base32 "0c7wbd0j0b802bzdpdkrx2q7wm7b9s56rk554dnadkpywhmdiqwn"))))
26390 (build-system emacs-build-system)
26391 (arguments
26392 `(#:tests? #f ;no test suite
26393 #:phases
26394 (modify-phases %standard-phases
26395 (add-after 'unpack 'build-info-manual
26396 (lambda _
26397 (invoke "make" "info")
26398 ;; Move the info file to lisp so that it gets installed by the
26399 ;; emacs-build-system.
26400 (rename-file "docs/transient.info" "lisp/transient.info")))
26401 (add-after 'build-info-manual 'enter-lisp-directory
26402 (lambda _
26403 (chdir "lisp"))))))
26404 (native-inputs
26405 (list texinfo))
26406 (propagated-inputs
26407 (list emacs-dash))
26408 (home-page "https://magit.vc/manual/transient")
26409 (synopsis "Transient commands in Emacs")
26410 (description "Taking inspiration from prefix keys and prefix arguments
26411 in Emacs, Transient implements a similar abstraction involving a prefix
26412 command, infix arguments and suffix commands. We could call this abstraction
26413 a \"transient command\", but because it always involves at least two
26414 commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
26415 (license license:gpl3+)))
26416
26417 (define-public emacs-forge
26418 (package
26419 (name "emacs-forge")
26420 (version "0.3.1")
26421 (source
26422 (origin
26423 (method git-fetch)
26424 (uri (git-reference
26425 (url "https://github.com/magit/forge")
26426 (commit (string-append "v" version))))
26427 (file-name (git-file-name name version))
26428 (sha256
26429 (base32 "112mghydfzrbiwnzrb2f9d74y6ja702157p66ss94kqps0lj7rkp"))))
26430 (build-system emacs-build-system)
26431 (arguments
26432 `(#:tests? #f ;no tests
26433 #:phases
26434 (modify-phases %standard-phases
26435 (add-after 'unpack 'build-info-manual
26436 (lambda _
26437 (invoke "make" "info")
26438 ;; Move the info file to lisp so that it gets installed by the
26439 ;; emacs-build-system.
26440 (rename-file "docs/forge.info" "lisp/forge.info")))
26441 (add-after 'build-info-manual 'chdir-lisp
26442 (lambda _
26443 (chdir "lisp"))))))
26444 (native-inputs
26445 (list texinfo))
26446 (propagated-inputs
26447 (list emacs-closql
26448 emacs-dash
26449 emacs-emacsql
26450 emacs-ghub
26451 emacs-let-alist
26452 emacs-magit
26453 emacs-markdown-mode
26454 emacs-yaml))
26455 (home-page "https://github.com/magit/forge/")
26456 (synopsis "Access Git forges from Magit")
26457 (description "Work with Git forges, such as Github and Gitlab, from the
26458 comfort of Magit and the rest of Emacs.")
26459 (license license:gpl3+)))
26460
26461 (define-public emacs-matcha
26462 (let ((commit "c7df5cf5cdac9ae369e241342389ccda0205eab9"))
26463 (package
26464 (name "emacs-matcha")
26465 (version (git-version "0.0.1" "1" commit)) ;no upstream release
26466 (source (origin
26467 (method git-fetch)
26468 (uri (git-reference
26469 (url "https://github.com/jojojames/matcha")
26470 (commit commit)))
26471 (file-name (git-file-name name version))
26472 (sha256
26473 (base32
26474 "1lfnh1glg6al677m7ci0x8g5wjdhjxlfl3nv1f1ppsw4dpnwsj9b"))))
26475 (propagated-inputs (list emacs-hydra))
26476 (build-system emacs-build-system)
26477 (home-page "https://github.com/jojojames/matcha/")
26478 (synopsis "Collection of hydras with a generic interface to launch them")
26479 (description "Matcha provides a collection of transients for various
26480 packages with a consistent way to use them.")
26481 (license license:gpl3+))))
26482
26483 (define-public emacs-undo-propose-el
26484 (let ((commit "f80baee566807d733fbacbab08a897bcd62579c3")
26485 (revision "3"))
26486 (package
26487 (name "emacs-undo-propose-el")
26488 (version (git-version "3.0.0" revision commit))
26489 (source
26490 (origin
26491 (method git-fetch)
26492 (uri (git-reference
26493 (url "https://github.com/jackkamm/undo-propose-el")
26494 (commit commit)))
26495 (file-name (git-file-name name version))
26496 (sha256
26497 (base32
26498 "00rqz63bhh66q78l646q3w16gydygj8h4d8np0dpbifgzciak90b"))))
26499 (build-system emacs-build-system)
26500 (arguments
26501 `(#:tests? #t
26502 #:test-command '("make" "test")))
26503 (home-page "https://github.com/jackkamm/undo-propose-el")
26504 (synopsis "Simple and safe navigation of @code{undo} history")
26505 (description "This package permits navigation of @code{undo} history in a
26506 temporary buffer, which is read-only save for @code{undo} commands, and
26507 subsequent committal of a chain of @code{undo} commands as a single edit in
26508 the @code{undo} history.")
26509 (license license:gpl3+))))
26510
26511 (define-public emacs-elisp-docstring-mode
26512 (let ((commit "f512e509dd690f65133e55563ebbfd2dede5034f")
26513 (version "0.0.1")
26514 (revision "1"))
26515 (package
26516 (name "emacs-elisp-docstring-mode")
26517 (version (git-version version revision commit))
26518 (source
26519 (origin
26520 (method git-fetch)
26521 (uri (git-reference
26522 (url "https://github.com/Fuco1/elisp-docstring-mode")
26523 (commit commit)))
26524 (file-name (git-file-name name version))
26525 (sha256
26526 (base32
26527 "0al8m75p359h4n82rf0dsl22qfdg9cwwywn5pn7x6gb96c7qrqaa"))))
26528 (build-system emacs-build-system)
26529 (home-page "https://github.com/Fuco1/elisp-docstring-mode")
26530 (synopsis "Major mode for editing Emacs Lisp docstrings")
26531 (description "This package provides font lock and automatic escaping and
26532 unescaping of quotes.")
26533 (license license:gpl3+))))
26534
26535 (define-public emacs-vimrc-mode
26536 (let ((commit "13bc150a870d5d4a95f1111e4740e2b22813c30e")
26537 (version "0.3.1")
26538 (revision "1"))
26539 (package
26540 (name "emacs-vimrc-mode")
26541 (version (git-version version revision commit))
26542 (source
26543 (origin
26544 (method git-fetch)
26545 (uri (git-reference
26546 (url "https://github.com/mcandre/vimrc-mode")
26547 (commit commit)))
26548 (file-name (git-file-name name version))
26549 (sha256
26550 (base32
26551 "0026dqs3hwygk2k2xfra90w5sfnxrfj7l69jz7sq5glavbf340pk"))))
26552 (build-system emacs-build-system)
26553 (home-page "https://github.com/mcandre/vimrc-mode")
26554 (synopsis "Major mode for Vimscript")
26555 (description "This package provides font lock and @code{beginning-} and
26556 @code{end-of-defun} functions for Vimscript files.")
26557 (license license:gpl3+))))
26558
26559 (define-public emacs-flycheck-elm
26560 (let ((revision "0")
26561 (commit "1b60050efd4729bfba548f3e5adbcb58436667cb"))
26562 (package
26563 (name "emacs-flycheck-elm")
26564 (version (git-version "0" revision commit))
26565 (source
26566 (origin
26567 (method git-fetch)
26568 (uri
26569 (git-reference
26570 (url "https://github.com/bsermons/flycheck-elm")
26571 (commit commit)))
26572 (file-name (git-file-name name version))
26573 (sha256
26574 (base32 "1kjms9d2c98ffd1qxs879qhg0n4jzic0r5kni9y4gz3v09ww8zms"))))
26575 (build-system emacs-build-system)
26576 (propagated-inputs
26577 (list emacs-flycheck emacs-let-alist))
26578 (home-page "https://github.com/bsermons/flycheck-elm")
26579 (synopsis "Flycheck support for the Elm language")
26580 (description "Flycheck Elm adds Flycheck support for Elm language.")
26581 (license license:gpl3+))))
26582
26583 (define-public emacs-flycheck-haskell
26584 (let ((commit "32ddff87165a7d3a35e7318bee997b5b4bd41278")
26585 (revision "2"))
26586 (package
26587 (name "emacs-flycheck-haskell")
26588 (version (git-version "0.8" revision commit))
26589 (source
26590 (origin
26591 (method git-fetch)
26592 (uri (git-reference
26593 (url "https://github.com/flycheck/flycheck-haskell")
26594 (commit commit)))
26595 (file-name (git-file-name name version))
26596 (sha256
26597 (base32
26598 "10pgsbagq6qj4mshq5sypv0q0khck92b30sc793b4g1pfpsxvgjn"))))
26599 (build-system emacs-build-system)
26600 (propagated-inputs
26601 (list emacs-dash emacs-flycheck emacs-haskell-mode emacs-let-alist))
26602 (arguments
26603 `(#:include '("\\.el$" "\\.hs$")))
26604 (home-page "https://github.com/flycheck/flycheck-haskell")
26605 (synopsis "Flycheck for Haskell")
26606 (description "This package configures syntax-checking for Haskell
26607 buffers.")
26608 (license license:gpl3+))))
26609
26610 (define-public emacs-js2-refactor-el
26611 (let ((commit "d4c40b5fc86d3edd7c6a7d83ac86483ee1cb7a28")
26612 (revision "2"))
26613 (package
26614 (name "emacs-js2-refactor-el")
26615 (version (git-version "0.9.0" revision commit))
26616 (source
26617 (origin
26618 (method git-fetch)
26619 (uri (git-reference
26620 (url "https://github.com/magnars/js2-refactor.el")
26621 (commit commit)))
26622 (file-name (git-file-name name version))
26623 (sha256
26624 (base32
26625 "08b25y3raz0p98zxk9xdd8nj9shqd6mzrqhbq1gg4cwsmi7h7ly1"))))
26626 (build-system emacs-build-system)
26627 (propagated-inputs
26628 (list emacs-dash emacs-s emacs-js2-mode emacs-yasnippet
26629 emacs-multiple-cursors))
26630 (native-inputs
26631 (list emacs-buttercup emacs-espuds))
26632 (home-page "https://github.com/magnars/js2-refactor.el")
26633 (synopsis "JavaScript refactoring in Emacs")
26634 (description "This package provides various refactoring functions for
26635 JavaScript.")
26636 (license license:gpl3+))))
26637
26638 (define-public emacs-prettier
26639 (let ((commit "e9b73e81d3e1642aec682195f127a42dfb0b5774")
26640 (version "0.1.0")
26641 (revision "1"))
26642 (package
26643 (name "emacs-prettier")
26644 (version (git-version version revision commit))
26645 (source
26646 (origin
26647 (method git-fetch)
26648 (uri (git-reference
26649 (url "https://github.com/prettier/prettier-emacs")
26650 (commit commit)))
26651 (file-name (git-file-name name version))
26652 (sha256
26653 (base32
26654 "0hj4fv3fgc60i6jrsx4a81s5c9fsxxafhhs3q2q1dypsscjci9ph"))))
26655 (build-system emacs-build-system)
26656 (home-page "https://github.com/prettier/prettier-emacs")
26657 (synopsis "Automatic formatting of JavaScript code")
26658 (description "This package integrates Prettier with Emacs, and
26659 provides a minor mode that autoformats the buffer upon saving.")
26660 (license license:expat))))
26661
26662 (define-public emacs-fish-mode
26663 (package
26664 (name "emacs-fish-mode")
26665 (version "0.1.6")
26666 (source
26667 (origin
26668 (method git-fetch)
26669 (uri (git-reference
26670 (url "https://github.com/wwwjfy/emacs-fish")
26671 (commit version)))
26672 (file-name (git-file-name name version))
26673 (sha256
26674 (base32
26675 "1spxxkji9xa930sbwvzyjm8jrqk9ra0xqhivw7zd12a4c56nhna9"))))
26676 (build-system emacs-build-system)
26677 (home-page "https://github.com/wwwjfy/emacs-fish")
26678 (synopsis "Major mode for Fish shell scripts")
26679 (description "This package provides syntax highlighting and indentation
26680 functions for Fish shell scripts.")
26681 (license license:gpl3+)))
26682
26683 (define-public emacs-eshell-up
26684 (let ((commit "9c100bae5c3020e8d9307e4332d3b64e7dc28519")
26685 (version "0.0.3")
26686 (revision "12"))
26687 (package
26688 (name "emacs-eshell-up")
26689 (version (git-version version revision commit))
26690 (source
26691 (origin
26692 (method git-fetch)
26693 (uri (git-reference
26694 (url "https://github.com/peterwvj/eshell-up")
26695 (commit commit)))
26696 (file-name (git-file-name name version))
26697 (sha256
26698 (base32
26699 "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"))))
26700 (build-system emacs-build-system)
26701 (home-page "https://github.com/peterwvj/eshell-up")
26702 (synopsis "Quickly go to a parent directory in @code{Eshell}")
26703 (description "This package provides quick navigation to a specific
26704 parent directory using @code{Eshell}.")
26705 (license license:gpl3+))))
26706
26707 (define-public emacs-springboard
26708 ;; Upstream provides no tag. Using the latest commit. Version is extracted
26709 ;; from "Version:" keyword.
26710 (let ((commit "687d1e5898a880878995dc9bffe93b4598366203")
26711 (version "1.0")
26712 (revision "1"))
26713 (package
26714 (name "emacs-springboard")
26715 (version (git-version version revision commit))
26716 (source
26717 (origin
26718 (method git-fetch)
26719 (uri (git-reference
26720 (url "https://github.com/jwiegley/springboard")
26721 (commit commit)))
26722 (file-name (git-file-name name version))
26723 (sha256
26724 (base32 "0fn8c4hqblfjvcpg68kj2dmdjqsdnxddqbzgvakl43zckjg8pi01"))))
26725 (build-system emacs-build-system)
26726 (propagated-inputs
26727 (list emacs-helm emacs-ivy))
26728 (home-page "https://github.com/jwiegley/springboard")
26729 (synopsis "Change the Emacs default directory quickly")
26730 (description
26731 "This Emacs package provides a quick way to change the default
26732 directory for only the next invoked command. The directory selection can be
26733 done using Helm, Ido or Ivy.")
26734 (license license:gpl2+))))
26735
26736 (define-public emacs-tco-el
26737 (let ((commit "482db5313f090b17ed22ccd856f0e141dc75afe6")
26738 (revision "1"))
26739 (package
26740 (name "emacs-tco-el")
26741 (version (git-version "0.3" revision commit))
26742 (source
26743 (origin
26744 (method git-fetch)
26745 (uri (git-reference
26746 (url "https://github.com/Wilfred/tco.el")
26747 (commit commit)))
26748 (file-name (git-file-name name version))
26749 (sha256
26750 (base32
26751 "1z7xkbrqznk6ni687qqknp8labcyhl8y6576hjfri89fn21385y9"))))
26752 (build-system emacs-build-system)
26753 (propagated-inputs
26754 (list emacs-dash))
26755 (native-inputs
26756 (list emacs-ert-runner emacs-undercover))
26757 (arguments
26758 `(#:tests? #t
26759 #:test-command '("ert-runner")))
26760 (home-page "https://github.com/Wilfred/tco.el")
26761 (synopsis "Tail-call optimization for Emacs Lisp")
26762 (description "This package provides tail-call optimization for Emacs
26763 Lisp functions that call themselves in tail position.")
26764 (license license:gpl3+))))
26765
26766 (define-public emacs-equake
26767 ;; Upstream provides no tagged releases, but the commit below matches an
26768 ;; exact release.
26769 (let ((commit "4d6ef75a4d91ded22caad220909518ccb67b7b87"))
26770 (package
26771 (name "emacs-equake")
26772 (version "0.985")
26773 (source
26774 (origin
26775 (method git-fetch)
26776 (uri (git-reference
26777 (url "https://gitlab.com/emacsomancer/equake")
26778 (commit commit)))
26779 (file-name (git-file-name name version))
26780 (sha256
26781 (base32 "11xfr71y78idcn461p4pz7b0k01nhz15cyl97bjqq6ii5xhbhvdx"))))
26782 (build-system emacs-build-system)
26783 (propagated-inputs
26784 (list emacs-dash))
26785 (home-page "https://gitlab.com/emacsomancer/equake/")
26786 (synopsis "Drop-down console for @code{Eshell} and terminal emulators")
26787 (description "This package provides a Quake-style drop-down console
26788 compatible with Emacs' shell modes.")
26789 (license license:gpl3+))))
26790
26791 (define-public emacs-vdiff
26792 ;; There is no proper tag, but the commit below matches the version bump.
26793 (let ((commit "007e44be19d068fd6b49874b6e9b8df8b1f552bd"))
26794 (package
26795 (name "emacs-vdiff")
26796 (version "0.2.4")
26797 (source
26798 (origin
26799 (method git-fetch)
26800 (uri (git-reference
26801 (url "https://github.com/justbur/emacs-vdiff")
26802 (commit commit)))
26803 (file-name (git-file-name name version))
26804 (sha256
26805 (base32 "197xrwph1llrzjgkhlvagiwdgfp68pb45w5afg89ndahpqc2725s"))))
26806 (build-system emacs-build-system)
26807 (propagated-inputs
26808 (list emacs-hydra))
26809 (arguments
26810 `(#:tests? #t
26811 #:test-command '("emacs" "-Q" "-batch" "-L" "."
26812 "-l" "vdiff-test.el"
26813 "-f" "ert-run-tests-batch-and-exit")))
26814 (home-page "https://github.com/justbur/emacs-vdiff/")
26815 (synopsis "Frontend for diffing based on vimdiff")
26816 (description
26817 "This package permits comparisons of two or three buffers based on diff
26818 output.")
26819 (license license:gpl3+))))
26820
26821 (define-public emacs-vdiff-magit
26822 ;; Need to use a more recent commit than the latest release version because
26823 ;; of Magit and Transient
26824 (let ((commit "b100d126c69e5c26a61ae05aa1778bcc4302b597")
26825 (version "0.3.2")
26826 (revision "8"))
26827 (package
26828 (name "emacs-vdiff-magit")
26829 (version (git-version version revision commit))
26830 (source
26831 (origin
26832 (method git-fetch)
26833 (uri (git-reference
26834 (url "https://github.com/justbur/emacs-vdiff-magit/")
26835 (commit commit)))
26836 (file-name (git-file-name name version))
26837 (sha256
26838 (base32
26839 "16cjmrzflf2i1w01973sl944xrfanakba8sb4dpwi79d92xp03xy"))))
26840 (build-system emacs-build-system)
26841 (propagated-inputs (list emacs-vdiff emacs-magit))
26842 (home-page "https://github.com/justbur/emacs-vdiff-magit/")
26843 (synopsis "Frontend for diffing based on vimdiff")
26844 (description "This package permits comparisons of two or three buffers
26845 based on diff output.")
26846 (license license:gpl3+))))
26847
26848 (define-public emacs-all-the-icons-dired
26849 (package
26850 (name "emacs-all-the-icons-dired")
26851 (version "2.0")
26852 (source
26853 (origin
26854 (method git-fetch)
26855 (uri (git-reference
26856 (url "https://github.com/wyuenho/all-the-icons-dired")
26857 (commit version)))
26858 (file-name (git-file-name name version))
26859 (sha256
26860 (base32
26861 "1shla7nyhml9m3g81p6yy8k4pdq289gb42900xzfp7zl4qvnm2vy"))))
26862 (build-system emacs-build-system)
26863 (propagated-inputs
26864 (list emacs-all-the-icons))
26865 (home-page "https://github.com/wyuenho/all-the-icons-dired")
26866 (synopsis "Show icons for each file in @code{dired-mode}")
26867 (description "This package allows icons from @file{all-the-icons.el} to
26868 be used in @code{dired-mode}.")
26869 (license license:gpl3+)))
26870
26871 (define-public emacs-all-the-icons-ibuffer
26872 (package
26873 (name "emacs-all-the-icons-ibuffer")
26874 (version "1.3.0")
26875 (source
26876 (origin
26877 (method git-fetch)
26878 (uri (git-reference
26879 (url "https://github.com/seagle0128/all-the-icons-ibuffer")
26880 (commit (string-append"v" version))))
26881 (file-name (git-file-name name version))
26882 (sha256
26883 (base32
26884 "1c1fkkwzxxa90fd5q5x6xlj48p8rhj4bs7h8wxx41w6wsggk2fm2"))))
26885 (build-system emacs-build-system)
26886 (propagated-inputs
26887 (list emacs-all-the-icons))
26888 (home-page "https://github.com/seagle0128/all-the-icons-ibuffer")
26889 (synopsis "Display icons for all buffers in ibuffer")
26890 (description
26891 "This package uses @code{emacs-all-the-icons} to display icons in Ibuffer
26892 buffers.")
26893 (license license:gpl3+)))
26894
26895 (define-public emacs-exwm-edit
26896 (let ((commit "e1291e311840f1049106fe98cec032a1c75efd2b")
26897 (version "0.0.1")
26898 (revision "3"))
26899 (package
26900 (name "emacs-exwm-edit")
26901 (version (git-version version revision commit))
26902 (source
26903 (origin
26904 (method git-fetch)
26905 (uri (git-reference
26906 (url "https://github.com/agzam/exwm-edit/")
26907 (commit commit)))
26908 (file-name (git-file-name name version))
26909 (sha256
26910 (base32
26911 "031cb8fvv5n30djr9lpl6vz3rl15zykfvjlgkjc8l33a3l5mw8j0"))))
26912 (build-system emacs-build-system)
26913 (propagated-inputs
26914 (list emacs-exwm))
26915 (home-page "https://github.com/agzam/exwm-edit/")
26916 (synopsis "Open temp buffers for editing text from EXWM buffers")
26917 (description "This package facilitates editing text from EXWM buffers by
26918 generating a temp buffer in which any useful Emacs utilities and modes can be
26919 invoked.")
26920 (license license:gpl3+))))
26921
26922 (define-public emacs-ert-async
26923 (package
26924 (name "emacs-ert-async")
26925 (version "0.1.2")
26926 (source
26927 (origin
26928 (method git-fetch)
26929 (uri (git-reference
26930 (url "https://github.com/rejeep/ert-async.el")
26931 (commit (string-append "v" version))))
26932 (file-name (git-file-name name version))
26933 (sha256
26934 (base32
26935 "0hn9i405nfhjd1h9vnwj43nxbbz00khrwkjq0acfyxjaz1shfac9"))))
26936 (build-system emacs-build-system)
26937 (home-page "https://github.com/rejeep/ert-async.el")
26938 (synopsis "Async support for ERT")
26939 (description "This package allows ERT to work with asynchronous tests.")
26940 (license license:gpl3+)))
26941
26942 (define-public emacs-prodigy-el
26943 (let ((commit "0a12eec1f001a4eef16b2c0c524f02f2647a4ff1")
26944 (revision "2"))
26945 (package
26946 (name "emacs-prodigy-el")
26947 (version (git-version "0.7.0" revision commit))
26948 (source
26949 (origin
26950 (method git-fetch)
26951 (uri (git-reference
26952 (url "https://github.com/rejeep/prodigy.el")
26953 (commit commit)))
26954 (file-name (git-file-name name version))
26955 (sha256
26956 (base32
26957 "02kysq57kqzg0zkhaf302ada9cp9spgp71z8vbdq4c7dl6x75h4g"))))
26958 (build-system emacs-build-system)
26959 (propagated-inputs
26960 (list emacs-dash emacs-s emacs-f))
26961 (native-inputs
26962 (list emacs-el-mock emacs-ert-async))
26963 (home-page "https://github.com/rejeep/prodigy.el")
26964 (synopsis "Manage external services from within Emacs")
26965 (description "This package provides a GUI for defining and monitoring services.")
26966 (license license:gpl3+))))
26967
26968 (define-public emacs-web-server
26969 (package
26970 (name "emacs-web-server")
26971 (version "0.1.2")
26972 (source
26973 (origin
26974 (method url-fetch)
26975 (uri (string-append "https://elpa.gnu.org/packages/"
26976 "web-server-" version ".tar"))
26977 (sha256
26978 (base32 "10lcsl4dg2yr9zjd99gq9jz150wvvh6r5y9pd88l8y9vz16f2lim"))))
26979 (build-system emacs-build-system)
26980 (home-page "https://github.com/eschulte/emacs-web-server/")
26981 (synopsis "Web server with handlers in Emacs Lisp")
26982 (description "This package supports HTTP GET and POST requests with
26983 url-encoded parameters, as well as web sockets.")
26984 (license license:gpl3+)))
26985
26986 (define-public emacs-markdown-preview-mode
26987 (package
26988 (name "emacs-markdown-preview-mode")
26989 (version "0.9.4")
26990 (source
26991 (origin
26992 (method git-fetch)
26993 (uri (git-reference
26994 (url "https://github.com/ancane/markdown-preview-mode")
26995 (commit (string-append "v" version))))
26996 (file-name (git-file-name name version))
26997 (sha256
26998 (base32
26999 "0a0qskhy6jil583hq3mgbzdsi3m1schzyzrd46yfxdsvqiczg170"))))
27000 (build-system emacs-build-system)
27001 (propagated-inputs
27002 (list emacs-markdown-mode emacs-websocket emacs-web-server))
27003 (arguments '(#:include '("\\.el$" "\\.html$")))
27004 (home-page "https://github.com/ancane/markdown-preview-mode")
27005 (synopsis "Preview Markdown files")
27006 (description "This package provides a minor mode for preview of Markdown
27007 files, and sends rendered Markdown to a web browser.")
27008 (license license:gpl3+)))
27009
27010 (define-public emacs-dotenv-mode
27011 (package
27012 (name "emacs-dotenv-mode")
27013 (version "0.2.5")
27014 (source
27015 (origin
27016 (method git-fetch)
27017 (uri (git-reference
27018 (url "https://github.com/preetpalS/emacs-dotenv-mode")
27019 (commit (string-append "v" version))))
27020 (file-name (git-file-name name version))
27021 (sha256
27022 (base32
27023 "0ys1czramj3c8zbnxxc599bqc0nqp3nnn3n45ac9cjglx5iaydq3"))))
27024 (build-system emacs-build-system)
27025 (home-page "https://github.com/preetpalS/emacs-dotenv-mode")
27026 (synopsis "Major mode for @file{.env} files")
27027 (description "This package provides syntax highlighting for @file{.env}
27028 files.")
27029 (license license:gpl3+)))
27030
27031 (define-public emacs-add-node-modules-path
27032 (package
27033 (name "emacs-add-node-modules-path")
27034 (version "1.3.1")
27035 (source
27036 (origin
27037 (method git-fetch)
27038 (uri (git-reference
27039 (url "https://github.com/codesuki/add-node-modules-path")
27040 (commit version)))
27041 (file-name (git-file-name name version))
27042 (sha256
27043 (base32
27044 "09vf921dh6lawh14rk02gjsvz88x9vd1c68ilf2fzkap5dh61dy5"))))
27045 (build-system emacs-build-system)
27046 (propagated-inputs (list emacs-s))
27047 (home-page "https://github.com/codesuki/add-node-modules-path")
27048 (synopsis "Add @file{node_modules} to the buffer-local @file{exec-path}")
27049 (description "This package searches the parent directories of the
27050 current file for the project's @file{node_modules/.bin/} directory, allowing
27051 Emacs to find project-specific installations of packages.")
27052 (license license:expat)))
27053
27054 (define-public emacs-flow-minor-mode
27055 (let ((commit "d1b32a7dd0d33c6a00a106da5f4b2323602cbd3e")
27056 (version "0.3")
27057 (revision "4"))
27058 (package
27059 (name "emacs-flow-minor-mode")
27060 (version (git-version version revision commit))
27061 (source
27062 (origin
27063 (method git-fetch)
27064 (uri (git-reference
27065 (url "https://github.com/an-sh/flow-minor-mode")
27066 (commit commit)))
27067 (file-name (git-file-name name version))
27068 (sha256
27069 (base32
27070 "169r4ib9qg9q6fm3p0p23qs1qx4pa9pg1qvyq4ysr85i7kwygppl"))))
27071 (build-system emacs-build-system)
27072 (home-page "https://github.com/an-sh/flow-minor-mode")
27073 (synopsis "Minor mode for JavaScript Flow files")
27074 (description "This package integrates Flow with Emacs, allowing for
27075 definition-jumping and type-checking on demand.")
27076 (license license:bsd-3))))
27077
27078 (define-public emacs-rjsx-mode
27079 (package
27080 (name "emacs-rjsx-mode")
27081 (version "0.5.0")
27082 (source
27083 (origin
27084 (method git-fetch)
27085 (uri (git-reference
27086 (url "https://github.com/felipeochoa/rjsx-mode")
27087 (commit (string-append "v" version))))
27088 (file-name (git-file-name name version))
27089 (sha256
27090 (base32
27091 "08b4hdgq4hc1yfd9pvyir2j3cqqdqa3j5svgaba97x5fzhsz7y8i"))))
27092 (build-system emacs-build-system)
27093 (propagated-inputs
27094 (list emacs-js2-mode))
27095 (arguments
27096 `(#:tests? #t
27097 #:test-command '("make" "test")))
27098 (home-page "https://github.com/felipeochoa/rjsx-mode")
27099 (synopsis "Major mode for JSX files")
27100 (description "This package extends the parser of @code{js2-mode} to
27101 support JSX syntax.")
27102 (license license:expat)))
27103
27104 (define-public emacs-origami-el
27105 (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366")
27106 (version "1.0")
27107 (revision "1"))
27108 (package
27109 (name "emacs-origami-el")
27110 (version (git-version version revision commit))
27111 (source
27112 (origin
27113 (method git-fetch)
27114 (uri (git-reference
27115 (url "https://github.com/gregsexton/origami.el")
27116 (commit commit)))
27117 (file-name (git-file-name name version))
27118 (sha256
27119 (base32
27120 "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x"))))
27121 (build-system emacs-build-system)
27122 (propagated-inputs
27123 (list emacs-dash emacs-s))
27124 (home-page "https://github.com/gregsexton/origami.el")
27125 (synopsis "Flexible text-folding")
27126 (description "This package provides a minor mode for collapsing and
27127 expanding regions of text without modifying the actual contents.")
27128 (license license:expat))))
27129
27130 (define-public emacs-peep-dired
27131 (let ((commit "c88a9a3050197840edfe145f11e0bb9488de32f4")
27132 (version "0")
27133 (revision "1"))
27134 (package
27135 (name "emacs-peep-dired")
27136 (version (git-version version revision commit))
27137 (source
27138 (origin
27139 (method git-fetch)
27140 (uri (git-reference
27141 (url "https://github.com/asok/peep-dired")
27142 (commit commit)))
27143 (file-name (git-file-name name version))
27144 (sha256
27145 (base32
27146 "1wy5qpnfri1gha2cnl6q20qar8dbl2mimpb43bnhmm2g3wgjyad6"))))
27147 (build-system emacs-build-system)
27148 (home-page "https://github.com/asok/peep-dired")
27149 (synopsis "Preview files in another window")
27150 (description "This package provides a minor mode that allows files to be
27151 previewed by scrolling up and down within a @code{dired} buffer.")
27152 (license license:gpl3+))))
27153
27154 (define-public emacs-counsel-etags
27155 (package
27156 (name "emacs-counsel-etags")
27157 (version "1.10.1")
27158 (source
27159 (origin
27160 (method git-fetch)
27161 (uri (git-reference
27162 (url "https://github.com/redguardtoo/counsel-etags")
27163 (commit version)))
27164 (file-name (git-file-name name version))
27165 (sha256
27166 (base32 "1v77lpp0nij1rjg2k9wj42kqk7xqg1dzs9vmadha6f2j8j6375m8"))))
27167 (build-system emacs-build-system)
27168 (propagated-inputs
27169 (list emacs-counsel))
27170 (arguments
27171 `(#:tests? #f ;require internet access
27172 #:test-command '("make test")))
27173 (home-page "https://github.com/redguardtoo/counsel-etags")
27174 (synopsis "Fast @code{Ctags}/@code{Etags} solution with @code{ivy-mode}")
27175 (description "This package uses @code{ivy-mode} to facilitate navigating
27176 and searching through @code{Ctags} files.")
27177 (license license:gpl3+)))
27178
27179 (define-public emacs-ivy-clipmenu
27180 (let ((commit "d2071f2c5043a05d610cd1952e84176ca78c31dc"))
27181 (package
27182 (name "emacs-ivy-clipmenu")
27183 (version (git-version "0.0.1" "1" commit))
27184 (source (origin
27185 (method git-fetch)
27186 (uri (git-reference
27187 (url "https://github.com/wpcarro/ivy-clipmenu.el")
27188 (commit commit)))
27189 (file-name (git-file-name name version))
27190 (sha256
27191 (base32
27192 "0npd8glzk5z4n7y9mzbsbzi0cf3by19fqcki052jr3dga363lds7"))))
27193 (propagated-inputs
27194 (list emacs-f emacs-ivy))
27195 (build-system emacs-build-system)
27196 (home-page "https://github.com/wpcarro/ivy-clipmenu.el")
27197 (synopsis "Ivy integration with clipmenu")
27198 (description "Ivy integration with the clipboard manager, clipmenu.")
27199 (license license:expat))))
27200
27201 (define-public emacs-org-download
27202 (let ((commit "42ac361ef5502017e6fc1bceb00333eba90402f4")
27203 (revision "3"))
27204 (package
27205 (name "emacs-org-download")
27206 (version (git-version "0.1.0" revision commit))
27207 (source (origin
27208 (method git-fetch)
27209 (uri (git-reference
27210 (url "https://github.com/abo-abo/org-download")
27211 (commit commit)))
27212 (file-name (git-file-name name version))
27213 (sha256
27214 (base32 "0cg4y7hy7xbq4vrbdicfzgvyaf3cjbx2zkqd4yl0y2garz71j99l"))))
27215 (build-system emacs-build-system)
27216 (propagated-inputs
27217 (list emacs-org emacs-async))
27218 (home-page "https://github.com/abo-abo/org-download")
27219 (synopsis "Facilitate moving images")
27220 (description "This package provides utilities for managing image files
27221 copied into @code{org-mode} buffers.")
27222 (license license:gpl3+))))
27223
27224 (define-public emacs-org-drill-table
27225 ;; No releases or tags.
27226 (let ((commit "096387d929bcf3eb479e0a9d5da9cf32c756a759")
27227 (revision "0"))
27228 (package
27229 (name "emacs-org-drill-table")
27230 (version (git-version "0.1" revision commit))
27231 (source
27232 (origin
27233 (method git-fetch)
27234 (uri (git-reference
27235 (url "https://github.com/chrisbarrett/org-drill-table.git")
27236 (commit commit)))
27237 (file-name (git-file-name name version))
27238 (sha256
27239 (base32 "1a8ygrcag8i9hdpy2vsn0sh8lwhl9b56rv91j3rddy1jv5qx1ipb"))))
27240 (build-system emacs-build-system)
27241 (propagated-inputs
27242 (list emacs-dash emacs-org emacs-s))
27243 (home-page "https://github.com/chrisbarrett/org-drill-table")
27244 (synopsis "Generate Org drill cards using Org mode tables")
27245 (description
27246 "This package generates drill cards based on an Org mode table in the
27247 current subtree. The cards are inserted under a new ``Cards'' heading in the
27248 current tree.")
27249 (license license:gpl3+))))
27250
27251 (define-public emacs-dash-docs
27252 (let ((commit "dafc8fc9f1ddb2e4e39e0b8d066c42d5d7ce8d06")
27253 (revision "2"))
27254 (package
27255 (name "emacs-dash-docs")
27256 (version (git-version "1.4.0" revision commit))
27257 (source
27258 (origin
27259 (method git-fetch)
27260 (uri (git-reference
27261 (url "https://github.com/dash-docs-el/dash-docs")
27262 (commit commit)))
27263 (file-name (git-file-name name version))
27264 (sha256
27265 (base32
27266 "0n6d3mm43gj16v8kjjradcfik93wb89dsqnfcbskb28bvcamafid"))))
27267 (build-system emacs-build-system)
27268 (propagated-inputs
27269 (list emacs-async))
27270 (native-inputs
27271 (list emacs-undercover emacs-ert-runner))
27272 (arguments
27273 `(#:tests? #t
27274 #:test-command '("ert-runner")
27275 #:phases
27276 ;; this test requires network access, so remove it
27277 (modify-phases %standard-phases
27278 (add-before 'check 'make-tests-writable
27279 (lambda _
27280 (make-file-writable "test/dash-docs-test.el")
27281 #t))
27282 (add-before 'check 'delete-test
27283 (lambda _
27284 (emacs-batch-edit-file "test/dash-docs-test.el"
27285 `(progn (progn
27286 (goto-char (point-min))
27287 (re-search-forward "ert-deftest dash-docs-official-docsets-test")
27288 (beginning-of-line)
27289 (kill-sexp))
27290 (basic-save-buffer)))
27291 #t)))))
27292 (home-page "https://github.com/dash-docs-el/dash-docs")
27293 (synopsis "Offline documentation browser for APIs using Dash docsets")
27294 (description "This package exposes functionality to work with Dash docsets.")
27295 (license license:gpl3+))))
27296
27297 (define-public emacs-helm-dash
27298 (let ((commit "7f853bd34da666f0e9a883011c80f451b06f6c59")
27299 (revision "2"))
27300 (package
27301 (name "emacs-helm-dash")
27302 (version (git-version "1.3.0" revision commit))
27303 (source
27304 (origin
27305 (method git-fetch)
27306 (uri (git-reference
27307 (url "https://github.com/areina/helm-dash")
27308 (commit commit)))
27309 (file-name (git-file-name name version))
27310 (sha256
27311 (base32
27312 "0r192vzry1212ihabg9pgw9xar8zdgnbgy0vsgvfm8s5wj6ny7jp"))))
27313 (build-system emacs-build-system)
27314 (propagated-inputs
27315 (list emacs-helm emacs-dash-docs))
27316 (home-page "https://github.com/areina/helm-dash")
27317 (synopsis "Offline documentation browser for APIs using Dash docsets")
27318 (description "This package uses Helm to install and navigate through
27319 Dash docsets.")
27320 (license license:gpl3+))))
27321
27322 (define-public emacs-counsel-dash
27323 (let ((commit "370d5f6f14b5294d0eb717f7b2a6a8e93df1ed24")
27324 (revision "4"))
27325 (package
27326 (name "emacs-counsel-dash")
27327 (version (git-version "0.1.3" revision commit))
27328 (source
27329 (origin
27330 (method git-fetch)
27331 (uri (git-reference
27332 (url "https://github.com/dash-docs-el/counsel-dash")
27333 (commit commit)))
27334 (file-name (git-file-name name version))
27335 (sha256
27336 (base32 "1fn38vbz46ijarjvhgw7iy7dj9s2a2miy95fyy9f8b5sj8nrdfvz"))))
27337 (build-system emacs-build-system)
27338 (propagated-inputs
27339 (list emacs-counsel emacs-dash-docs))
27340 (home-page "https://github.com/dash-docs-el/counsel-dash")
27341 (synopsis "Offline documentation browser for APIs using Dash docsets")
27342 (description "This package uses @code{ivy-mode} to install and navigate
27343 through Dash docsets.")
27344 (license license:expat))))
27345
27346 (define-public emacs-devdocs
27347 (package
27348 (name "emacs-devdocs")
27349 (version "0.5")
27350 (source
27351 (origin
27352 (method url-fetch)
27353 (uri (string-append
27354 "https://elpa.gnu.org/packages/"
27355 "devdocs-" version ".tar"))
27356 (sha256
27357 (base32 "0qyp8lhf76yv2ym7cryvygvf2m9jah5nsl1g79gqjrsin6vlhqka"))))
27358 (build-system emacs-build-system)
27359 (home-page "https://github.com/astoff/devdocs.el")
27360 (synopsis "Emacs viewer for DevDocs")
27361 (description
27362 "This package provides a documentation viewer similar to Emacs's
27363 built-in Info browser, but geared towards documentation obtained from
27364 @url{https://devdocs.io}.")
27365 (license license:gpl3+)))
27366
27367 (define-public emacs-cascading-dir-locals
27368 (let ((release "0.1")
27369 (revision "0")
27370 (commit "efdf5e6d62b955ee0ca3c170eae1d388799f9fa0"))
27371 (package
27372 (name "emacs-cascading-dir-locals")
27373 (version (git-version release revision commit))
27374 (home-page "https://github.com/fritzgrabo/cascading-dir-locals")
27375 (source
27376 (origin
27377 (method git-fetch)
27378 (uri (git-reference
27379 (url home-page)
27380 (commit commit)))
27381 (file-name (git-file-name name version))
27382 (sha256
27383 (base32 "1jwd99kk5l588n7wwi1x3b4bgimm66x1icna3n20pwaj49kf0zy8"))))
27384 (build-system emacs-build-system)
27385 (synopsis "Apply all @file{.dir-locals.el} from root to current directory")
27386 (description
27387 "This package provides a global minor mode that changes how Emacs
27388 handles the lookup of applicable dir-locals files (@file{.dir-locals.el}):
27389 instead of starting at the directory of the visited file and moving up the
27390 directory tree only until a first dir-locals file is found, collect and apply
27391 all (!) dir-locals files found from the current directory up to the root one.
27392
27393 Values specified in files nearer to the current directory take precedence over
27394 values in files farther away from it.
27395
27396 You might want to use this to globally set dir-local variables that apply to
27397 all of your projects, then override or add variables on a per-project basis.")
27398 (license license:gpl3+))))
27399
27400 (define-public emacs-calibredb
27401 (package
27402 (name "emacs-calibredb")
27403 (version "2.12.0")
27404 (source
27405 (origin
27406 (method git-fetch)
27407 (uri (git-reference
27408 (url "https://github.com/chenyanming/calibredb.el")
27409 (commit version)))
27410 (file-name (git-file-name name version))
27411 (sha256
27412 (base32 "1l30s3wv21mpybbxni5fziq2awai9k60i87s6fid56hg262r7jp0"))))
27413 (build-system emacs-build-system)
27414 (arguments
27415 (list
27416 #:phases
27417 #~(modify-phases %standard-phases
27418 (add-after 'unpack 'patch-paths
27419 (lambda* (#:key inputs #:allow-other-keys)
27420 (make-file-writable "calibredb-core.el")
27421 (let ((calibredb (search-input-file inputs "/bin/calibredb"))
27422 (fetch-ebook-metadata
27423 (search-input-file inputs "/bin/fetch-ebook-metadata")))
27424 (emacs-substitute-variables "calibredb-core.el"
27425 ("calibredb-fetch-metadata-program" fetch-ebook-metadata)
27426 ("calibredb-program" calibredb))))))))
27427 (inputs
27428 (list calibre))
27429 (propagated-inputs
27430 (list emacs-dash emacs-esxml emacs-s))
27431 (home-page "https://github.com/chenyanming/calibredb.el")
27432 (synopsis "Yet another calibre client for Emacs")
27433 (description "This package integrates calibre into Emacs.
27434 @enumerate
27435 @item Powerful ebook dashboard.
27436 @item Manage ebooks, actually not only ebooks!
27437 @item Manage Ebook libraries.
27438 @item Another bookmarks solution, by setting the tags and comments.
27439 @item Quick search, filter, make actions on items with ivy and helm.
27440 @item Org-ref support.
27441 @end enumerate")
27442 (license license:gpl3)))
27443
27444 (define-public emacs-el-patch
27445 (package
27446 (name "emacs-el-patch")
27447 (version "3.0")
27448 (source
27449 (origin
27450 (method git-fetch)
27451 (uri (git-reference
27452 (url "https://github.com/raxod502/el-patch")
27453 (commit version)))
27454 (file-name (git-file-name name version))
27455 (sha256
27456 (base32 "0qkx7f19kl85n56bp3q40200a6ynpkhimcnb3k6x4n6idn6ff2pa"))))
27457 (build-system emacs-build-system)
27458 (home-page "https://github.com/raxod502/el-patch")
27459 (synopsis "Future-proof your Emacs customizations")
27460 (description "This package allows for an alternate definition of an Elisp
27461 function to be specified and for any differences from the original definition
27462 to be examined using Ediff.")
27463 (license license:expat)))
27464
27465 (define-public emacs-info-plus
27466 (let ((commit "29811edf7a71764ac343631facc00268d9483146")
27467 (revision "3"))
27468 (package
27469 (name "emacs-info-plus")
27470 (version (git-version "0" revision commit))
27471 (source
27472 (origin
27473 (method git-fetch)
27474 (uri (git-reference
27475 (url "https://github.com/emacsmirror/info-plus")
27476 (commit commit)))
27477 (file-name (git-file-name name version))
27478 (sha256
27479 (base32
27480 "0ayq7z6dbf43vczbkjm1l976hxcfrmw45nfywbf1kjpzl3viy4gy"))))
27481 (build-system emacs-build-system)
27482 (home-page "https://github.com/emacsmirror/info-plus")
27483 (synopsis "Extensions to @file{info.el}")
27484 (description "This package extends Emacs' @file{info.el} by allowing
27485 outline-enabled table of contents, additional metadata association for Info
27486 nodes, and more.")
27487 (license license:gpl2+))))
27488
27489 (define-public emacs-eval-in-repl
27490 (package
27491 (name "emacs-eval-in-repl")
27492 (version "0.9.7")
27493 (source
27494 (origin
27495 (method git-fetch)
27496 (uri (git-reference
27497 (url "https://github.com/kaz-yos/eval-in-repl")
27498 (commit (string-append "v" version))))
27499 (file-name (git-file-name name version))
27500 (sha256
27501 (base32 "1mrssbl0wyc6iij8zk1y3h9bd3rv53nnrxsij7fn67l1m4z0clyn"))))
27502 (build-system emacs-build-system)
27503 (arguments
27504 (list #:include
27505 #~(list "eval-in-repl\\.el" "eval-in-repl-test\\.el" "README\\.md")))
27506 (propagated-inputs (list emacs-dash emacs-paredit emacs-ace-window))
27507 (home-page "https://github.com/kaz-yos/eval-in-repl")
27508 (synopsis "One keybinding to communicate with REPLs")
27509 (description
27510 "@code{eval-in-repl} provides a consistent ESS-like evaluation interface
27511 for various REPLs. In particular, it mimics ESS' C-RET binding, which sends a
27512 line or region to an appropriately configured shell. This package provides
27513 just the core of @code{eval-in-repl}---for the languages themselves, see their
27514 respective packages.")
27515 (license license:expat)))
27516
27517 (define* (make-emacs-eval-in-repl repl #:key
27518 (eval-in-repl-package emacs-eval-in-repl)
27519 (language (string-capitalize repl))
27520 (inputs '()))
27521 "Construct an emacs-eval-in-repl package for REPL, which interprets LANGUAGE.
27522 Optionally propagate INPUTS or use a different EVAL-IN-REPL-PACKAGE."
27523 (package
27524 (inherit eval-in-repl-package)
27525 (name (string-append "emacs-eval-in-repl-" repl))
27526 (arguments
27527 (list #:include
27528 #~(list #$(string-append "eval-in-repl-" repl "\\.el"))))
27529 (propagated-inputs (cons* eval-in-repl-package
27530 (cond
27531 ((procedure? inputs) (inputs))
27532 ((promise? inputs) (force inputs))
27533 (else inputs))))
27534 (description
27535 (format #f (G_ "This package provides an ESS-like binding to send lines
27536 or regions to a REPL from ~a buffers.") language))))
27537
27538 (define-public emacs-eval-in-repl-cider
27539 (make-emacs-eval-in-repl "cider" #:language "Clojure"
27540 #:inputs (list emacs-cider)))
27541
27542 (define-public emacs-eval-in-repl-elm
27543 (make-emacs-eval-in-repl "elm" #:inputs (list emacs-elm-mode)))
27544
27545 (define-public emacs-eval-in-repl-erlang
27546 (make-emacs-eval-in-repl "erlang" #:inputs (list emacs-erlang)))
27547
27548 (define-public emacs-eval-in-repl-geiser
27549 (make-emacs-eval-in-repl "geiser" #:language "Scheme"
27550 #:inputs (list emacs-geiser)))
27551
27552 (define-public emacs-eval-in-repl-hy
27553 (make-emacs-eval-in-repl "hy" #:inputs (list emacs-hy-mode)))
27554
27555 (define-public emacs-eval-in-repl-ielm
27556 (make-emacs-eval-in-repl "ielm" #:language "Emacs Lisp"))
27557
27558 (define-public emacs-eval-in-repl-iex
27559 (make-emacs-eval-in-repl
27560 "iex" #:language "Elixir"
27561 #:inputs (delay
27562 (list emacs-elixir-mode emacs-alchemist))))
27563
27564 (define-public emacs-eval-in-repl-javascript
27565 (make-emacs-eval-in-repl "javascript"
27566 #:inputs (list emacs-js2-mode emacs-js-comint)))
27567
27568 (define-public emacs-eval-in-repl-lua
27569 (make-emacs-eval-in-repl "lua" #:inputs (list emacs-lua-mode)))
27570
27571 (define-public emacs-eval-in-repl-ocaml
27572 (make-emacs-eval-in-repl "ocaml" #:language "OCaml"
27573 #:inputs (delay (list emacs-tuareg))))
27574
27575 (define-public emacs-eval-in-repl-prolog
27576 (make-emacs-eval-in-repl "prolog"))
27577
27578 (define-public emacs-eval-in-repl-python
27579 (make-emacs-eval-in-repl "python"))
27580
27581 (define-public emacs-eval-in-repl-racket
27582 (make-emacs-eval-in-repl "racket" #:inputs (list emacs-racket-mode)))
27583
27584 (define-public emacs-eval-in-repl-ruby
27585 (make-emacs-eval-in-repl "ruby" #:inputs (list emacs-inf-ruby)))
27586
27587 (define-public emacs-eval-in-repl-scheme
27588 (make-emacs-eval-in-repl "scheme"))
27589
27590 (define-public emacs-eval-in-repl-shell
27591 (make-emacs-eval-in-repl "shell"))
27592
27593 (define-public emacs-eval-in-repl-slime
27594 (make-emacs-eval-in-repl "slime" #:language "Common Lisp"
27595 #:inputs (list emacs-slime)))
27596
27597 (define-public emacs-eval-in-repl-sly
27598 (make-emacs-eval-in-repl "sly" #:language "Common Lisp"
27599 #:inputs (list emacs-sly)))
27600
27601 (define-public emacs-eval-in-repl-sml
27602 (make-emacs-eval-in-repl "sml" #:language "Standard ML"
27603 #:inputs (list emacs-sml-mode)))
27604
27605 (define-public emacs-ob-elm
27606 (let ((commit "d3a9fbc2f56416894c9aed65ea9a20cc1d98f15d")
27607 (revision "0"))
27608 (package
27609 (name "emacs-ob-elm")
27610 (version (git-version "0.0" revision commit))
27611 (source
27612 (origin
27613 (method git-fetch)
27614 (uri (git-reference
27615 (url "https://github.com/BonfaceKilz/ob-elm")
27616 (commit commit)))
27617 (file-name (git-file-name name version))
27618 (sha256
27619 (base32
27620 "1wdlr0cbsb2drdmcn2bnivjkj1f2v52l6yizwsnjgi4xq3w6k56h"))))
27621 (build-system emacs-build-system)
27622 (home-page "https://github.com/BonfaceKilz/ob-elm")
27623 (synopsis "Org-Babel support for Elm code")
27624 (description
27625 "This package adds support to Org-Babel for evaluating Elm code.")
27626 (license license:gpl3+))))
27627
27628 (define-public emacs-org-babel-eval-in-repl
27629 (package
27630 (name "emacs-org-babel-eval-in-repl")
27631 (version "1.6")
27632 (source
27633 (origin
27634 (method url-fetch)
27635 (uri (string-append "https://stable.melpa.org/packages/"
27636 "org-babel-eval-in-repl-" version ".tar"))
27637 (sha256
27638 (base32 "0bdnps6m3kcvsagz8cfm3kf2rvxzl2p252pfggwbdbl43kzvl35h"))
27639 (modules '((guix build utils)))
27640 (snippet
27641 #~(begin (delete-file "eval-in-repl-matlab.el")))))
27642 (build-system emacs-build-system)
27643 (propagated-inputs (list emacs-eval-in-repl emacs-ess))
27644 (home-page "https://github.com/diadochos/org-babel-eval-in-repl")
27645 (synopsis "Eval org-mode babel code blocks in various REPLs")
27646 (description
27647 "This package allows you to execute org-mode source code blocks with
27648 @code{eval-in-repl}. It can execute code blocks asynchronously, without
27649 needing to write the result into the buffer.")
27650 (license license:expat)))
27651
27652 (define-public emacs-eval-sexp-fu-el
27653 (package
27654 (name "emacs-eval-sexp-fu-el")
27655 (version "0.6.0")
27656 (source
27657 (origin
27658 (method git-fetch)
27659 (uri (git-reference
27660 (url "https://github.com/hchbaw/eval-sexp-fu.el")
27661 (commit (string-append "v" version))))
27662 (file-name (git-file-name name version))
27663 (sha256
27664 (base32
27665 "19rv0kwajq0j8inglp84sml23ci74wdcvp5bl6zxbw5skqpf6phr"))))
27666 (build-system emacs-build-system)
27667 (home-page "https://github.com/hchbaw/eval-sexp-fu.el")
27668 (synopsis "Enhancements for evaluating s-expressions")
27669 (description "This package provides provides variants of
27670 @code{eval-last-sexp} that work on the containing list or s-expression, as
27671 well as an option for visually flashing evaluated s-expressions.")
27672 (license license:gpl3+)))
27673
27674 (define-public emacs-counsel-tramp
27675 (package
27676 (name "emacs-counsel-tramp")
27677 (version "0.7.5")
27678 (source
27679 (origin
27680 (method git-fetch)
27681 (uri (git-reference
27682 (url "https://github.com/masasam/emacs-counsel-tramp")
27683 (commit version)))
27684 (file-name (git-file-name name version))
27685 (sha256
27686 (base32 "18qlwyjqxap2qfbz14ma6yqp4p3v4q2y8idc355s4szjdd2as2lr"))))
27687 (build-system emacs-build-system)
27688 (propagated-inputs
27689 (list emacs-counsel))
27690 (home-page "https://github.com/masasam/emacs-counsel-tramp")
27691 (synopsis "Ivy interface for TRAMP")
27692 (description
27693 "This package allows @code{ivy-mode} to display and filter SSH servers.")
27694 (license license:gpl3+)))
27695
27696 (define-public emacs-tramp
27697 (package
27698 (name "emacs-tramp")
27699 (version "2.5.3.2")
27700 (source
27701 (origin
27702 (method url-fetch)
27703 (uri (string-append "https://elpa.gnu.org/packages/"
27704 "tramp-" version ".tar"))
27705 (sha256
27706 (base32 "1jcicb9f7c1nmaqg20yy2j4wd0qfch4llc26ga7q3ckhx41pvbiw"))))
27707 (build-system emacs-build-system)
27708 (arguments
27709 (list
27710 #:emacs emacs ;need D-Bus
27711 #:phases
27712 #~(modify-phases %standard-phases
27713 ;; All but one "/bin/" directory refer to remote
27714 ;; environments, which may not be Guix. Do not patch them
27715 ;; blindly. However, local encoding shell has to be patched.
27716 (replace 'patch-el-files
27717 (lambda* (#:key inputs #:allow-other-keys)
27718 (emacs-substitute-variables "tramp.el"
27719 ("tramp-encoding-shell"
27720 (search-input-file inputs "/bin/sh"))))))))
27721 (inputs
27722 (list bash))
27723 (home-page "https://savannah.gnu.org/projects/tramp")
27724 (synopsis "Remote file editing package for Emacs")
27725 (description
27726 "Tramp stands for ``Transparent Remote (file) Access, Multiple
27727 Protocol''. This package provides remote file editing, using
27728 a combination of @command{rsh} and @command{rcp} or other work-alike
27729 programs, such as @command{ssh} and @command{scp}.")
27730 (license license:gpl3+)))
27731
27732 (define-public emacs-tramp-auto-auth
27733 (let ((commit "f15a12dfab651aff60f4a9d70f868030a12344ac"))
27734 (package
27735 (name "emacs-tramp-auto-auth")
27736 (version (git-version "20191027" "1" commit))
27737 (source
27738 (origin
27739 (method git-fetch)
27740 (uri (git-reference
27741 (url "https://github.com/oitofelix/tramp-auto-auth")
27742 (commit commit)))
27743 (file-name (git-file-name name version))
27744 (sha256
27745 (base32
27746 "09nkjgwppjfgv04q0gv468qihgx4y3p39lpwbd6vbh3wgbccas9k"))))
27747 (build-system emacs-build-system)
27748 (home-page "https://github.com/oitofelix/tramp-auto-auth")
27749 (synopsis "TRAMP automatic authentication library")
27750 (description "This package provides @code{tramp-auto-auth-mode} Emacs
27751 global minor mode whose purpose is to automatically feed TRAMP sub-processes
27752 with passwords for paths matching regexps.")
27753 (license license:gpl3+))))
27754
27755 (define-public emacs-eacl
27756 (package
27757 (name "emacs-eacl")
27758 (version "2.2.0")
27759 (source
27760 (origin
27761 (method git-fetch)
27762 (uri (git-reference
27763 (url "https://github.com/redguardtoo/eacl")
27764 (commit version)))
27765 (file-name (git-file-name name version))
27766 (sha256
27767 (base32 "1d2krw9x1mw6jn1q07nbq2qi92fms85q3i9wa2q5drs3368l55vr"))))
27768 (build-system emacs-build-system)
27769 (propagated-inputs
27770 (list emacs-ivy))
27771 (home-page "https://github.com/redguardtoo/eacl")
27772 (synopsis "Auto-complete lines by using @code{grep} on a project")
27773 (description "This package provides auto-completion commands for single
27774 and multiple lines of code in a project.")
27775 (license license:gpl3+)))
27776
27777 (define-public emacs-semantic-refactor
27778 ;; The last release, 0.5, was made on 2015-07-26 and there have been 47
27779 ;; commits since then.
27780 (let ((commit "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5"))
27781 (package
27782 (name "emacs-semantic-refactor")
27783 (version (git-version "0.5" "1" commit))
27784 (source
27785 (origin
27786 (method git-fetch)
27787 (uri (git-reference
27788 (url "https://github.com/tuhdo/semantic-refactor")
27789 (commit commit)))
27790 (file-name (git-file-name name version))
27791 (sha256
27792 (base32
27793 "1lyz3zjkx2csh0xdy1zpx8s32qp1p3sig57mwi9xhgpqjyf0axmb"))))
27794 (build-system emacs-build-system)
27795 (home-page "https://github.com/tuhdo/semantic-refactor")
27796 (synopsis "Refactoring tool for C/C++ and Lisp dialects")
27797 (description "This package provides a refactoring tool based on the
27798 Emacs Semantic parser framework. For C and C++ it supports operations such as:
27799
27800 @enumerate
27801 @item Generating class implementations
27802 @item Generating function prototypes
27803 @item Converting functions to function pointers
27804 @item Moving semantic units
27805 @item etc...
27806 @end enumerate
27807
27808 For Lisp dialects like Clojure, ELisp, and Scheme, it supports operations such
27809 as:
27810
27811 @enumerate
27812 @item Formatting the whole buffer
27813 @item Converting sexpressions to one or multiple lines
27814 @item etc...
27815 @end enumerate\n")
27816 (license license:gpl3+))))
27817
27818 (define-public emacs-nhexl-mode
27819 (package
27820 (name "emacs-nhexl-mode")
27821 (version "1.5")
27822 (source
27823 (origin
27824 (method url-fetch)
27825 (uri (string-append "https://elpa.gnu.org/packages/"
27826 "nhexl-mode-" version ".el"))
27827 (sha256
27828 (base32 "0qvxfg7sv4iqyjxzaim6b4v9k5hav36qd4vkf9jwzw6p5fri8w8d"))))
27829 (build-system emacs-build-system)
27830 (home-page "https://elpa.gnu.org/packages/nhexl-mode.html")
27831 (synopsis "Minor mode to edit files via hex-dump format")
27832 (description
27833 "This package implements NHexl mode, a minor mode for editing files
27834 in hex dump format. The mode command is called @command{nhexl-mode}.
27835
27836 This minor mode implements similar functionality to @command{hexl-mode},
27837 but using a different implementation technique, which makes it
27838 usable as a \"plain\" minor mode. It works on any buffer, and does
27839 not mess with the undo log or with the major mode.
27840
27841 It also comes with:
27842
27843 @itemize
27844 @item @command{nhexl-nibble-edit-mode}: a \"nibble editor\" minor mode, where
27845 the cursor pretends to advance by nibbles (4-bit) and the self-insertion keys
27846 (which only work for hex-digits) will only modify the nibble under point.
27847 @item @command{nhexl-overwrite-only-mode}: a minor mode to try and avoid
27848 moving text. In this minor mode, not only self-inserting keys overwrite
27849 existing text, but commands like `yank' and @command{kill-region} as well.
27850 @item It overrides @code{C-u} to use hexadecimal, so you can do @code{C-u a 4
27851 C-f} to advance by #xa4 characters.
27852 @end itemize")
27853 (license license:gpl3+)))
27854
27855 (define-public emacs-helm-wikipedia
27856 (let ((commit "126f044e0a0e1432e0791c33ce2a41875d704a9b"))
27857 (package
27858 (name "emacs-helm-wikipedia")
27859 (version (git-version "0.0.0" "1" commit))
27860 (home-page "https://github.com/emacs-helm/helm-wikipedia/")
27861 (source
27862 (origin
27863 (method git-fetch)
27864 (uri (git-reference
27865 (url home-page)
27866 (commit commit)))
27867 (file-name (git-file-name name version))
27868 (sha256
27869 (base32
27870 "148a5xsnbsiddhf9cl7yxdk41lrv38h0pip91kcflw9d7l0dp7pr"))))
27871 (build-system emacs-build-system)
27872 (inputs
27873 (list emacs-helm))
27874 (synopsis "Search suggestions and article extracts from Wikipedia for Emacs")
27875 (description
27876 "This package provides an Emacs Helm interface for search suggestions
27877 and article extracts for Wikipedia.")
27878 (license license:gpl3+))))
27879
27880 (define-public emacs-webfeeder
27881 (package
27882 (name "emacs-webfeeder")
27883 (version "1.1.2")
27884 (source
27885 (origin
27886 (method url-fetch)
27887 (uri (string-append
27888 "https://elpa.gnu.org/packages/webfeeder-"
27889 version
27890 ".tar"))
27891 (sha256
27892 (base32
27893 "1l128q424qsq9jv2wk8cv4zli71rk34q5kgwa9axdz0d27p9l6v4"))))
27894 (build-system emacs-build-system)
27895 (home-page "https://gitlab.com/Ambrevar/emacs-webfeeder")
27896 (synopsis "Build RSS and Atom webfeeds from HTML files")
27897 (description
27898 "Webfeeder is an Emacs library to generate RSS and Atom feeds from HTML
27899 files. The various elements of the HTML input are parsed with customizable
27900 functions (e.g. @code{webfeeder-title-function}).")
27901 (license license:gpl3+)))
27902
27903 (define-public emacs-evil-numbers
27904 (let ((commit "6ea1c8c3a9b37bed63d48f1128e9a4910e68187e"))
27905 (package
27906 (name "emacs-evil-numbers")
27907 (version (git-version "0.4" "1" commit))
27908 (source (origin
27909 (method git-fetch)
27910 (uri (git-reference
27911 (url "https://github.com/dieggsy/evil-numbers")
27912 (commit commit)))
27913 (file-name (git-file-name name version))
27914 (sha256
27915 (base32
27916 "1aq95hj8x13py0pwsnc6wvd8cc5yv5qin8ym9js42y5966vwj4np"))))
27917 (build-system emacs-build-system)
27918 (home-page "https://github.com/dieggsy/evil-numbers")
27919 (synopsis "Increment and decrement numbers in Emacs")
27920 (description "This package increments and decrements binary, octal,
27921 decimal and hex literals. It works like C-a/C-x in Vim, i.e. searches for
27922 number up to EOL and then increments or decrements and keeps zero padding up
27923 (unlike in Vim). When a region is active, as in Evil's visual mode, all the
27924 numbers within that region will be incremented/decremented (unlike in Vim).
27925
27926 It is a fork of https://github.com/cofi/evil-numbers, which is unmaintained.")
27927 (license license:gpl3+))))
27928
27929 (define-public emacs-rotate-text
27930 (package
27931 (name "emacs-rotate-text")
27932 (version "0.1")
27933 (source (origin
27934 (method git-fetch)
27935 (uri (git-reference
27936 (url "https://github.com/nschum/rotate-text.el")
27937 (commit version)))
27938 (file-name (git-file-name name version))
27939 (sha256
27940 (base32
27941 "1cgxv4aibkvv6lnssynn0438a615fz3zq8hg9sb0lhfgsr99pxln"))))
27942 (build-system emacs-build-system)
27943 (home-page "https://nschum.de/src/emacs/rotate-text/")
27944 (synopsis "Cycle through words, symbols and patterns in Emacs")
27945 (description "@code{rotate-text} allows you rotate to commonly
27946 interchanged text with a single keystroke. For example, you can toggle
27947 between \"frame-width\" and \"frame-height\", between \"public\",
27948 \"protected\" and \"private\" and between \"variable1\", \"variable2\" through
27949 \"variableN\".")
27950 (license license:gpl2+)))
27951
27952 (define-public emacs-ediprolog
27953 (package
27954 (name "emacs-ediprolog")
27955 (version "2.1")
27956 (source
27957 (origin
27958 (method url-fetch)
27959 (uri (string-append
27960 "https://elpa.gnu.org/packages/ediprolog-"
27961 version
27962 ".el"))
27963 (sha256
27964 (base32 "1piimsmzpirw8plrpy79xbpnvynzzhcxi31g6lg6is8gridiv3md"))))
27965 (build-system emacs-build-system)
27966 (home-page "https://elpa.gnu.org/packages/ediprolog.html")
27967 (synopsis "Emacs Does Interactive Prolog")
27968 (description "This package provides a major mode that let the user
27969 interact with SWI-Prolog in all buffers. For instance, one can consult Prolog
27970 programs and evaluate embedded queries. This mode is focused on the command
27971 @code{ediprolog-dwim} (Do What I Mean) which is supposed to, depending on the
27972 context, carry out the appropriate action.")
27973 (license license:gpl3+)))
27974
27975 (define-public emacs-evil-cleverparens
27976 (let ((commit "8c45879d49bfa6d4e414b6c1df700a4a51cbb869")
27977 (revision "1"))
27978 (package
27979 (name "emacs-evil-cleverparens")
27980 (version (git-version "2017-07-17" revision commit))
27981 (source (origin
27982 (method git-fetch)
27983 (uri (git-reference
27984 (url "https://github.com/luxbock/evil-cleverparens")
27985 (commit commit)))
27986 (sha256 (base32 "0lhnybpnk4n2yhlcnj9zxn0vi5hpjfaqfhvyfy7ckzz74g8v7iyw"))
27987 (file-name (git-file-name name version))))
27988 (build-system emacs-build-system)
27989 (propagated-inputs
27990 (list emacs-evil emacs-paredit emacs-smartparens))
27991 (home-page "https://github.com/luxbock/evil-cleverparens")
27992 (synopsis "Emacs modal editing optimized for editing Lisp")
27993 (description "@code{evil-cleverparens} remaps Evil keybindings to allow
27994 modal editing with screwing up the structure of Lisp code. Alternatives for
27995 verb commands which would are normally destructive (such as deletion) are
27996 provided. Those alternative commands are and bound by default to their
27997 corresponding Evil keys.")
27998 (license license:expat))))
27999
28000 (define-public emacs-ntlm
28001 (package
28002 (name "emacs-ntlm")
28003 (version "2.1.0")
28004 (source
28005 (origin
28006 (method url-fetch)
28007 (uri (string-append "https://elpa.gnu.org/packages/ntlm-" version ".el"))
28008 (sha256
28009 (base32 "01d0bcmh8a36qf871w6bc05kjk9bmnh843m9869xw06zyvqwg9mv"))))
28010 (build-system emacs-build-system)
28011 (home-page "https://elpa.gnu.org/packages/ntlm.html")
28012 (synopsis "NTLM (NT LanManager) authentication support")
28013 (description
28014 "This library is a direct translation of the Samba release 2.2.0
28015 implementation of Windows NT and LanManager compatible password encryption.")
28016 (license license:gpl3+)))
28017
28018 (define-public emacs-nadvice
28019 (package
28020 (name "emacs-nadvice")
28021 (version "0.3")
28022 (source
28023 (origin
28024 (method url-fetch)
28025 (uri (string-append "https://elpa.gnu.org/packages/"
28026 "nadvice-" version ".el"))
28027 (sha256
28028 (base32 "0gi3csnxbs8h7iy0scsl35sic3gv90swa89hhdjwb7qvpirfdcgw"))))
28029 (build-system emacs-build-system)
28030 (home-page "https://elpa.gnu.org/packages/nadvice.html")
28031 (synopsis "Forward compatibility for Emacs-24.4's nadvice")
28032 (description
28033 "This package tries to re-implement some of nadvice.el's functionality on
28034 top of the old defadvice system, to help users of defadvice move to the new
28035 advice system without dropping support for Emacs<24.4.")
28036 (license license:gpl3+)))
28037
28038 (define-public emacs-url-http-ntlm
28039 (package
28040 (name "emacs-url-http-ntlm")
28041 (version "2.0.4")
28042 (source
28043 (origin
28044 (method url-fetch)
28045 (uri (string-append "https://elpa.gnu.org/packages/"
28046 "url-http-ntlm-" version ".el"))
28047 (sha256
28048 (base32 "1cakq2ykraci7d1gl8rnpv4f2f5ffyaidhqb1282g7i72adwmb98"))))
28049 (build-system emacs-build-system)
28050 (propagated-inputs (list emacs-ntlm))
28051 (home-page "https://elpa.gnu.org/packages/url-http-ntlm.html")
28052 (synopsis "NTLM authentication for the url library")
28053 (description "This package provides a NTLM handler for the URL package.")
28054 (license license:gpl3+)))
28055
28056 (define-public emacs-soap-client
28057 (package
28058 (name "emacs-soap-client")
28059 (version "3.2.1")
28060 (source
28061 (origin
28062 (method url-fetch)
28063 (uri (string-append "https://elpa.gnu.org/packages/"
28064 "soap-client-" version ".tar"))
28065 (sha256
28066 (base32 "0ajv6l1p8dinnlybwzvv4c2i6291is6isjxb2h4apg27g66qbcki"))))
28067 (build-system emacs-build-system)
28068 (home-page "httpa://elpa.gnu.org/packages/soap-client.html")
28069 (synopsis "Access SOAP web services")
28070 (description
28071 "This package provides a SOAP client to access web services.")
28072 (license license:gpl3+)))
28073
28074 (define-public emacs-fsm
28075 (package
28076 (name "emacs-fsm")
28077 (version "0.2.1")
28078 (source
28079 (origin
28080 (method url-fetch)
28081 (uri (string-append "https://elpa.gnu.org/packages/fsm-" version ".el"))
28082 (sha256
28083 (base32 "1jyxyqdbfl8nv7c50q0sg3w5p7whp1sqgi7w921k5hfar4d11qqp"))))
28084 (build-system emacs-build-system)
28085 (home-page "https://elpa.gnu.org/packages/fsm.html")
28086 (synopsis "Finite State Machine library")
28087 (description
28088 "This package provides Finite State Machine library to make asynchronous
28089 programming in Emacs Lisp easy and fun.")
28090 (license license:gpl3+)))
28091
28092 (define-public emacs-excorporate
28093 (package
28094 (name "emacs-excorporate")
28095 (version "1.0.0")
28096 (source
28097 (origin
28098 (method url-fetch)
28099 (uri (string-append "https://elpa.gnu.org/packages/"
28100 "excorporate-" version ".tar"))
28101 (sha256
28102 (base32 "1g0wc2kp15ra323b4rxvdh58q9c4h7m20grw6a0cs53m7l9xi62f"))))
28103 (build-system emacs-build-system)
28104 (propagated-inputs
28105 (list emacs-fsm emacs-nadvice emacs-soap-client emacs-url-http-ntlm))
28106 (home-page "https://elpa.gnu.org/packages/excorporate.html")
28107 (synopsis "Exchange integration")
28108 (description "This package provides Exchange integration for Emacs.")
28109 (license license:gpl3+)))
28110
28111 (define-public emacs-evil-traces
28112 (let ((commit "1931e3ea2c64b4aec393a9c25063c330deff55e3")
28113 (revision "2"))
28114 (package
28115 (name "emacs-evil-traces")
28116 (version (git-version "0.0.1" revision commit))
28117 (source (origin
28118 (method git-fetch)
28119 (uri (git-reference
28120 (url "https://github.com/mamapanda/evil-traces")
28121 (commit commit)))
28122 (file-name (git-file-name name version))
28123 (sha256
28124 (base32
28125 "12p9lfxscs182vbd4dy0m5gacs3d4kyprbz5yndpwvl8g2qsqplz"))))
28126 (build-system emacs-build-system)
28127 (propagated-inputs
28128 (list emacs-evil))
28129 (arguments
28130 `(#:phases
28131 (modify-phases %standard-phases
28132 (add-after 'unpack 'set-shell
28133 ;; Setting the SHELL environment variable is required for the tests
28134 ;; to find sh.
28135 (lambda _
28136 (setenv "SHELL" (which "sh"))
28137 #t)))
28138 #:tests? #t
28139 #:test-command '("make" "test")))
28140 (home-page "https://github.com/mamapanda/evil-traces")
28141 (synopsis "Visual hints for @code{evil-ex}")
28142 (description "This package adds visual hints to certain @code{ex}
28143 commands in @code{evil-mode}.")
28144 (license license:gpl3+))))
28145
28146 (define-public emacs-evil-tmux-navigator
28147 (package
28148 (name "emacs-evil-tmux-navigator")
28149 (version "0.1.5")
28150 (source
28151 (origin
28152 (method git-fetch)
28153 (uri
28154 (git-reference
28155 (url "https://github.com/keith/evil-tmux-navigator")
28156 (commit version)))
28157 (file-name (git-file-name name version))
28158 (sha256
28159 (base32
28160 "1na44rbc03sr5b4z9pvnps6n4nmrqcz58nywix9825l74a419ijx"))))
28161 (propagated-inputs
28162 (list emacs-evil))
28163 (build-system emacs-build-system)
28164 (home-page "https://github.com/keith/evil-tmux-navigator")
28165 (synopsis
28166 "Navigate seamlessly between emacs windows and tmux panes")
28167 (description
28168 "This package lets you use C-h, C-j, C-k and C-l to navigate between
28169 Emacs windows and tmux panes.")
28170 (license license:expat)))
28171
28172 (define-public emacs-everywhere
28173 ;; No upstream release. Extract version from main file.
28174 (let ((commit "ace53396a66ed4b753f42c04a5a0db2bcd770423")
28175 (revision "0"))
28176 (package
28177 (name "emacs-everywhere")
28178 (version (git-version "0.0.1" revision commit))
28179 (source (origin
28180 (method git-fetch)
28181 (uri (git-reference
28182 (url "https://github.com/tecosaur/emacs-everywhere")
28183 (commit commit)))
28184 (file-name (git-file-name name version))
28185 (sha256
28186 (base32
28187 "0p55shxvqm1713af33mfglny7rpi31d42wvgwylcsfy4jvnsq8bb"))))
28188 (arguments
28189 (list
28190 #:phases
28191 #~(modify-phases %standard-phases
28192 (add-after 'unpack 'patch-exec-paths
28193 (lambda* (#:key inputs #:allow-other-keys)
28194 (substitute* "emacs-everywhere.el"
28195 (("\"xclip\"")
28196 (string-append "\""
28197 (search-input-file inputs "/bin/xclip")
28198 "\""))
28199 (("\"xdotool\"")
28200 (string-append "\""
28201 (search-input-file inputs "/bin/xdotool")
28202 "\""))
28203 (("\"xprop\"")
28204 (string-append "\""
28205 (search-input-file inputs "/bin/xprop")
28206 "\""))
28207 (("\"xwininfo\"")
28208 (string-append "\""
28209 (search-input-file inputs "/bin/xwininfo")
28210 "\""))))))))
28211 (inputs (list xclip xdotool xprop xwininfo))
28212 (build-system emacs-build-system)
28213 (home-page "https://github.com/tecosaur/emacs-everywhere")
28214 (synopsis "System-wide popup Emacs windows for quick edits")
28215 (description "@code{emacs-everywhere} launches a new Emacs frame, and the
28216 contents of the buffer are pasted into the previously focused application on
28217 deletion of the frame.")
28218 (license license:gpl3+))))
28219
28220 (define-public emacs-xclip
28221 (package
28222 (name "emacs-xclip")
28223 (version "1.11")
28224 (source
28225 (origin
28226 (method url-fetch)
28227 (uri (string-append "https://elpa.gnu.org/packages/"
28228 "xclip-" version ".tar"))
28229 (sha256
28230 (base32 "0hgblj8ng7vfsdb7g1mm9m2qhzfprycdd77836l59prpak5kp55q"))))
28231 (build-system emacs-build-system)
28232 (home-page "http://elpa.gnu.org/packages/xclip.html")
28233 (synopsis "Copy and paste GUI clipboard from Emacs in text terminal")
28234 (description
28235 "This package allows Emacs to copy to and paste from the GUI clipboard
28236 when running in text terminal.
28237
28238 It can use external command-line tools for that, e.g., @command{xclip} or
28239 @command{xsel}, which you may need to install in order for the package to
28240 work.")
28241 (license license:gpl3+)))
28242
28243 (define-public emacs-xterm-color
28244 (package
28245 (name "emacs-xterm-color")
28246 (version "2.0")
28247 (source
28248 (origin
28249 (method git-fetch)
28250 (uri (git-reference
28251 (url "https://github.com/atomontage/xterm-color")
28252 (commit version)))
28253 (file-name (git-file-name name version))
28254 (sha256
28255 (base32 "127lq50q62x06kd1xrf8lyc4rkqbfhfy86gsx1x4x169am2xk397"))))
28256 (build-system emacs-build-system)
28257 (home-page "https://github.com/atomontage/xterm-color")
28258 (synopsis "ANSI & xterm-256 color text property translator for Emacs")
28259 (description "@code{xterm-color.el} is an ANSI control sequence to
28260 text-property translator.")
28261 (license license:bsd-2)))
28262
28263 (define-public emacs-org-noter
28264 (package
28265 (name "emacs-org-noter")
28266 (version "1.4.1")
28267 (source
28268 (origin
28269 (method git-fetch)
28270 (uri (git-reference
28271 (url "https://github.com/weirdNox/org-noter")
28272 (commit version)))
28273 (file-name (git-file-name name version))
28274 (sha256
28275 (base32
28276 "1vwfpdi7hfkxx4vi0cwg7rvqby3i0mymzdkyzrqzv30dazmcjpag"))))
28277 (build-system emacs-build-system)
28278 (propagated-inputs (list emacs-org))
28279 (home-page "https://github.com/weirdNox/org-noter")
28280 (synopsis "Synchronized, Org-mode, document annotator")
28281 (description
28282 "This package lets you create notes that are kept in sync when you
28283 scroll through the document, but that are external to it---the notes
28284 themselves live in an Org-mode file. As such, this leverages the power of
28285 Org-mode (the notes may have outlines, latex fragments, babel, etc...) while
28286 acting like notes that are made @emph{in} the document.")
28287 (license license:gpl3+)))
28288
28289 (define-public emacs-org-redmine
28290 (let ((commit "e77d013bc3784947c46a5c53f03cd7d3c68552fc"))
28291 (package
28292 (name "emacs-org-redmine")
28293 (version (git-version "0.1" "1" commit))
28294 (source (origin
28295 (method git-fetch)
28296 (uri (git-reference
28297 (url "https://github.com/gongo/org-redmine")
28298 (commit commit)))
28299 (file-name (git-file-name name version))
28300 (sha256
28301 (base32
28302 "06miv3mf2a39vkf6mmm5ssc47inqh7dq82khsyc03anz4d4lj822"))))
28303 (build-system emacs-build-system)
28304 (home-page "https://github.com/gongo/org-redmine/")
28305 (synopsis "Redmine tools using Emacs")
28306 (description "This program provides an Emacs client for Redmine.")
28307 (license license:gpl3+))))
28308
28309 (define-public emacs-multi-term
28310 ;; No upstream release. Extract version from main file.
28311 (let ((commit "017c77c550115936860e2ea71b88e585371475d5")
28312 (revision "0"))
28313 (package
28314 (name "emacs-multi-term")
28315 (version (git-version "1.5" revision commit))
28316 (source
28317 (origin
28318 (method git-fetch)
28319 (uri (git-reference
28320 (url "https://github.com/manateelazycat/multi-term")
28321 (commit commit)))
28322 (file-name (git-file-name name version))
28323 (sha256
28324 (base32 "043dqd8i8h6hbcg11rzprxin2yq5lb902zlrb7mxah44vyp8wrdi"))))
28325 (build-system emacs-build-system)
28326 (inputs
28327 (list zsh))
28328 (home-page "https://github.com/manateelazycat/multi-term")
28329 (synopsis "Manage multiple terminal buffers in Emacs")
28330 (description
28331 "This package enhances @code{term.el} with the following features:
28332
28333 @enumerate
28334 @item Functions to switch between multiple terminal buffers
28335 @item List of keys to be intercepted by @code{emacs-multi-term} instead of by
28336 the underlying terminal
28337 @item Kills the unused buffer left after exiting the terminal
28338 @item Kills the running sub-processes along with the terminal when killing the
28339 it forcibly
28340 @item Dedicated window for debugging program.
28341 @end enumerate")
28342 (license license:gpl3+))))
28343
28344 (define-public emacs-elpher
28345 (package
28346 (name "emacs-elpher")
28347 (version "3.4.2")
28348 (source
28349 (origin
28350 (method git-fetch)
28351 (uri (git-reference
28352 (url "git://thelambdalab.xyz/elpher")
28353 (commit (string-append "v" version))))
28354 (file-name (git-file-name name version))
28355 (sha256
28356 (base32 "1c6pid2ip2c2lpww42wxgq4qflx1m8vxilyva03h8xzgr39kwq64"))))
28357 (build-system emacs-build-system)
28358 (arguments
28359 (list
28360 #:emacs emacs-no-x ;need libxml support
28361 #:phases
28362 #~(modify-phases %standard-phases
28363 (add-before 'install 'build-doc
28364 (lambda _
28365 (invoke "makeinfo" "elpher.texi"))))))
28366 (native-inputs
28367 (list texinfo))
28368 (home-page "gopher://thelambdalab.xyz/1/projects/elpher/")
28369 (synopsis "Gopher and gemini client for Emacs")
28370 (description "Elpher is a full-featured gopher and gemini client for
28371 Emacs. Its features include intuitive keyboard and mouse-driven browsing,
28372 out-of-the-box compatibility with evil-mode, clickable links in plain text,
28373 caching of visited sites, pleasant and configurable visualization of Gopher
28374 directories, direct visualisation of image files, jumping directly to links by
28375 name (with autocompletion), a simple bookmark management system and
28376 connections using TLS encryption.")
28377 (license license:gpl3+)))
28378
28379 (define-public emacs-zerodark-theme
28380 (package
28381 (name "emacs-zerodark-theme")
28382 (version "4.7")
28383 (source
28384 (origin
28385 (method git-fetch)
28386 (uri (git-reference
28387 (url "https://github.com/NicolasPetton/zerodark-theme")
28388 (commit version)))
28389 (file-name (git-file-name name version))
28390 (sha256
28391 (base32
28392 "1r5s4mvwlxsb9ylr6dkfxpm1l0pbqkmn5gwjdcfk762cnxlam8cm"))))
28393 (build-system emacs-build-system)
28394 (propagated-inputs
28395 (list emacs-flycheck emacs-all-the-icons))
28396 (home-page
28397 "https://gitlab.petton.fr/nico/zerodark-theme")
28398 (synopsis
28399 "Dark, medium contrast theme for Emacs")
28400 (description
28401 "Zerodark is a dark theme inspired from One Dark and Niflheim.
28402 An optional mode-line format can be enabled with @code{zerodark-setup-modeline-format}.")
28403 (license license:gpl3+)))
28404
28405 (define-public emacs-gnus-alias
28406 (package
28407 (name "emacs-gnus-alias")
28408 (version "20150316")
28409 (source (origin
28410 (method git-fetch)
28411 (uri (git-reference
28412 (url "https://github.com/hexmode/gnus-alias")
28413 (commit "9447d3ccb4c0e75d0468899cccff7aa249657bac")))
28414 (file-name (git-file-name name version))
28415 (sha256
28416 (base32
28417 "1i278npayv3kfxxd1ypi9n83q5l402sbc1zkm11pf8g006ifqsp4"))))
28418 (build-system emacs-build-system)
28419 (home-page "https://melpa.org/#/gnus-alias")
28420 (synopsis "Alternative to @code{gnus-posting-styles}")
28421 (description "This Emacs add-on provides a simple mechanism to switch
28422 Identities when using a @code{message-mode} or a @code{message-mode} derived
28423 mode. Identities can include @code{From} and @code{Organisation} headers,
28424 extra headers, body and signature. Other features include:
28425
28426 @itemize
28427 @item Switch Identities in a message buffer.
28428 @item Access original message to help determine Identity of the followup/reply
28429 message.
28430 @item Act on a forwarded message as if it were a message being replied to.
28431 @item Start a new message with a given Identity pre-selected.
28432 @end itemize")
28433 (license license:gpl2+)))
28434
28435 (define-public emacs-ox-epub
28436 (package
28437 (name "emacs-ox-epub")
28438 (version "0.3")
28439 (source (origin
28440 (method git-fetch)
28441 (uri (git-reference
28442 (url "https://github.com/ofosos/ox-epub")
28443 (commit (string-append "v" version))))
28444 (file-name (git-file-name name version))
28445 (sha256
28446 (base32
28447 "057sqmvm8hwkhcg3yd4i8zz2xlqsqrpyiklyiw750s3i5mxdn0k7"))))
28448 (build-system emacs-build-system)
28449 (home-page "https://github.com/ofosos/ox-epub")
28450 (synopsis "Export org mode projects to EPUB")
28451 (description "@code{ox-epub} extends the (X)HTML exporter to generate
28452 @code{.epub} files directly from OrgMode. This will export EPUB version 2,
28453 which should give broad compatibility. It should also be relatiely easy to
28454 convert the resulting @code{.epub} to a @code{.mobi} file. Needs a working
28455 zip utility (default is @code{zip}).")
28456 (license license:gpl3+)))
28457
28458 (define-public emacs-ox-gemini
28459 ;; No releases yet
28460 (let ((commit "168f820ea401fb813435a3a55af295873a4c110b")
28461 (revision "1"))
28462 (package
28463 (name "emacs-ox-gemini")
28464 (version (git-version "0" revision commit))
28465 (source
28466 (origin
28467 (method git-fetch)
28468 (uri (git-reference
28469 (url "https://git.sr.ht/~abrahms/ox-gemini")
28470 (commit commit)))
28471 (file-name (git-file-name name version))
28472 (sha256
28473 (base32 "0jmiya3f9vv4v64p5kxla6wiiyv4wg4w7f4a6zmdrjcn11hflqmm"))))
28474 (build-system emacs-build-system)
28475 (home-page "https://sr.ht/~abrahms/ox-gemini")
28476 (synopsis "Export Org files in Gemini format")
28477 (description
28478 "@code{ox-gemini} adds support for exporting Org files in Gemini
28479 format. Many things were taken from the ASCII exporter, from which
28480 @code{ox-gemini} derives.")
28481 (license license:gpl3+))))
28482
28483 (define-public emacs-ox-haunt
28484 (package
28485 (name "emacs-ox-haunt")
28486 (version "0.2")
28487 (source
28488 (origin
28489 (method git-fetch)
28490 (uri (git-reference
28491 (url "https://git.sr.ht/~jakob/ox-haunt")
28492 (commit (string-append "v" version))))
28493 (file-name (git-file-name name version))
28494 (sha256
28495 (base32 "1rs1n228c2fmpvirc57bqgf2616ijpphkgf4w9ln5j46snmkam25"))))
28496 (build-system emacs-build-system)
28497 (home-page "https://git.sr.ht/~jakob/ox-haunt")
28498 (synopsis "Export Org files to HTML appropriate for Haunt")
28499 (description
28500 "This library implements an HTML back-end for the Org generic exporter,
28501 producing output appropriate for Haunt's @code{html-reader}.")
28502 (license license:gpl3+)))
28503
28504 (define-public emacs-ox-hugo
28505 (package
28506 (name "emacs-ox-hugo")
28507 (version "0.12.2")
28508 (source
28509 (origin
28510 (method git-fetch)
28511 (uri (git-reference
28512 (url "https://github.com/kaushalmodi/ox-hugo")
28513 (commit (string-append "v" version))))
28514 (file-name (git-file-name name version))
28515 (sha256
28516 (base32
28517 "054ln6x92qyicvc5l1m9yjqqzwpg3j66v0shxsypp97vfw2d3ww6"))))
28518 (build-system emacs-build-system)
28519 (propagated-inputs
28520 (list emacs-tomelr))
28521 (home-page "https://ox-hugo.scripter.co")
28522 (synopsis "Hugo markdown back-end for Org export engine")
28523 (description
28524 "Ox-hugo is an Org exporter backend that exports Org to Hugo-compatible
28525 Markdown, Blackfriday, and also generates the front-matter in TOML or YAML
28526 format.")
28527 (license license:gpl3+)))
28528
28529 (define-public emacs-ox-pandoc
28530 (package
28531 (name "emacs-ox-pandoc")
28532 (version "20180510")
28533 (source (origin
28534 (method git-fetch)
28535 (uri (git-reference
28536 (url "https://github.com/kawabata/ox-pandoc")
28537 (commit "aa37dc7e94213d4ebedb85c384c1ba35007da18e")))
28538 (file-name (git-file-name name version))
28539 (sha256
28540 (base32
28541 "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"))))
28542 (build-system emacs-build-system)
28543 (inputs
28544 (list pandoc))
28545 (propagated-inputs
28546 (list emacs-dash emacs-ht))
28547 (home-page "https://github.com/kawabata/ox-pandoc")
28548 (synopsis "Org exporter for Pandoc")
28549 (description "@code{ox-pandoc} is an exporter for converting Org-mode
28550 files to numerous other formats via Pandoc.")
28551 (license license:gpl3+)))
28552
28553 (define-public emacs-ox-reveal
28554 (let ((commit "07900f29fada581d0e1b0f1e2057cea5e1ba8ce1")
28555 (revision "0"))
28556 (package
28557 (name "emacs-ox-reveal")
28558 (version (git-version "1.0" revision commit))
28559 (source
28560 (origin
28561 (method git-fetch)
28562 (uri (git-reference
28563 (url "https://github.com/hexmode/ox-reveal")
28564 (commit commit)))
28565 (file-name (git-file-name name version))
28566 (sha256
28567 (base32
28568 "132b0llxda8jivabvm2ssbrdny7q2q1c0z4ikb12k4kia3fvg6cg"))))
28569 (build-system emacs-build-system)
28570 (propagated-inputs
28571 (list emacs-org))
28572 (home-page "https://github.com/hexmode/ox-reveal")
28573 (synopsis "reveal.js Presentation Back-End for Org export engine")
28574 (description
28575 "Org Reveal exports your Org documents to @code{reveal.js} presentations.
28576 With org-reveal, you can create beautiful presentations with 3D effects from
28577 simple but powerful Org contents.")
28578 (license license:gpl3+))))
28579
28580 (define-public emacs-ox-rss
28581 ;; XXX: Upstream provides no version nor tags whatsoever.
28582 (let ((commit "83dc898fa5493925b01716e5dd495d5e07c3d41a")
28583 (revision "0"))
28584 (package
28585 (name "emacs-ox-rss")
28586 (version (git-version "0" revision commit))
28587 (source (origin
28588 (method git-fetch)
28589 (uri (git-reference
28590 (url "https://gitlab.com/nsavage/ox-rss")
28591 (commit commit)))
28592 (file-name (git-file-name name version))
28593 (sha256
28594 (base32
28595 "0513kixv9bgkignmji95m3rskn6px6c0fack4zdl61qq09fg8w6h"))))
28596 (build-system emacs-build-system)
28597 (home-page "https://gitlab.com/nsavage/ox-rss")
28598 (synopsis "RSS 2.0 back-end for Org export engine")
28599 (description
28600 "This library implements an RSS 2.0 back-end for Org exporter, based
28601 on the HTML back-end.")
28602 (license license:gpl3+))))
28603
28604 (define-public emacs-wc-mode
28605 (package
28606 (name "emacs-wc-mode")
28607 (version "1.4.1")
28608 (source (origin
28609 (method git-fetch)
28610 (uri (git-reference
28611 (url "https://github.com/bnbeckwith/wc-mode")
28612 (commit (string-append "v" version))))
28613 (file-name (git-file-name name version))
28614 (sha256
28615 (base32
28616 "1wzgb4z2qyyv223x5fc7ff2fn5xpz4s7lr1q1y33q8878a7w9d45"))))
28617 (build-system emacs-build-system)
28618 (home-page "https://github.com/bnbeckwith/wc-mode")
28619 (synopsis "Running word count with goals (minor mode)")
28620 (description "@code{wc-mode} is a minor mode, providing a ‘wc’ function
28621 for Emacs buffers as well as a modeline addition with live word, line and
28622 character counts. Additionally, a user can set specific goals for adding or
28623 deleting words. These goals were partly inspired by 750words.com where the
28624 goal of the site is to encourage writing by setting a goal of 750 words at a
28625 time.")
28626 (license license:gpl3+)))
28627
28628 (define-public emacs-mastodon
28629 (package
28630 (name "emacs-mastodon")
28631 (version "1.0.0")
28632 (source (origin
28633 (method git-fetch)
28634 (uri (git-reference
28635 (url "https://codeberg.org/martianh/mastodon.el")
28636 (commit version)))
28637 (file-name (git-file-name name version))
28638 (sha256
28639 (base32
28640 "13swcbvwhjl8ksrgzvmfafkgd3iz8znk49bs1n48w3g9qvh097w7"))))
28641 (build-system emacs-build-system)
28642 (arguments
28643 (list #:phases
28644 #~(modify-phases %standard-phases
28645 ;; Move the source files to the top level, which is included in
28646 ;; the EMACSLOADPATH.
28647 (add-after 'unpack 'move-source-files
28648 (lambda _
28649 (let ((el-files (find-files "./lisp" ".*\\.el$")))
28650 (for-each (lambda (f)
28651 (rename-file f (basename f)))
28652 el-files)))))))
28653 (propagated-inputs
28654 (list emacs-request))
28655 (home-page "https://codeberg.org/martianh/mastodon.el")
28656 (synopsis "Emacs client for Mastodon")
28657 (description "@code{mastodon.el} is an Emacs client for Mastodon, the
28658 federated microblogging social network.")
28659 (license license:gpl3+)))
28660
28661 (define-public emacs-ebdb
28662 (package
28663 (name "emacs-ebdb")
28664 (version "0.8.14")
28665 (source
28666 (origin
28667 (method url-fetch)
28668 (uri (string-append "https://elpa.gnu.org/packages/"
28669 "ebdb-" version ".tar"))
28670 (sha256
28671 (base32 "0h7yva7p4b4lapi7pwcibf75nqmazjf3r67ibnkc8l9salfhml25"))))
28672 (build-system emacs-build-system)
28673 (home-page "https://github.com/girzel/ebdb")
28674 (synopsis "EIEIO port of BBDB, Emacs's contact-management package")
28675 (description
28676 "EBDB is a contact management/addressbook package for Emacs. It's
28677 a re-write of the Insidious Big Brother Database (BBDB) using Emacs
28678 Lisp's (relatively new) EIEIO object oriented libraries.")
28679 (license license:gpl3+)))
28680
28681 (define-public emacs-refactor
28682 (package
28683 (name "emacs-refactor")
28684 (version "0.4")
28685 (source (origin
28686 (method git-fetch)
28687 (uri (git-reference
28688 (url "https://github.com/Wilfred/emacs-refactor")
28689 (commit version)))
28690 (file-name (git-file-name name version))
28691 (sha256
28692 (base32
28693 "1yky7vlv91501xb43xk19rr8mxlvrsxhawsc98jivf64nad5dqay"))))
28694 (build-system emacs-build-system)
28695 (propagated-inputs
28696 (list emacs-dash emacs-s emacs-popup emacs-list-utils emacs-iedit))
28697 (home-page "https://github.com/Wilfred/emacs-refactor/")
28698 (synopsis "Language-specific refactoring in Emacs")
28699 (description "Emacs Refactor (EMR) is a framework for providing
28700 language-specific refactoring in Emacs. It includes refactoring commands for
28701 a variety of languages, including elisp itself.")
28702 (license license:gpl3+)))
28703
28704 (define-public emacs-flyspell-correct
28705 (package
28706 (name "emacs-flyspell-correct")
28707 (version "0.6.1")
28708 (source
28709 (origin
28710 (method git-fetch)
28711 (uri (git-reference
28712 (url "https://github.com/d12frosted/flyspell-correct")
28713 (commit (string-append "v" version))))
28714 (file-name (git-file-name name version))
28715 (sha256
28716 (base32 "1m5da6r82hk0c2x3lw03qnkk79sx67875afw0ybblj3cmfk6szd1"))))
28717 (build-system emacs-build-system)
28718 ;; XXX: emacs-avy-menu is not packaged, so we ignore the file below.
28719 (arguments
28720 `(#:exclude '("flyspell-correct-avy-menu\\.el")))
28721 (propagated-inputs
28722 (list emacs-helm emacs-ivy emacs-popup))
28723 (home-page "https://github.com/d12frosted/flyspell-correct")
28724 (synopsis "Correcting words with flyspell via custom interfaces")
28725 (description
28726 "This package provides functionality for correcting words via custom
28727 interfaces. Several interfaces are supported beside the classic Ido: Popup,
28728 Helm and Ivy.")
28729 (license license:gpl3+)))
28730
28731 (define-public emacs-spell-fu
28732 ;; There are no tagged releases upstream on gitlab, instead we are using the
28733 ;; most recent commit.
28734 (let ((commit "50be652a6ec8590c3098f46094a92213623349c1") (revision "0"))
28735 (package
28736 (name "emacs-spell-fu")
28737 (version (git-version "0.3" revision commit))
28738 (source (origin
28739 (method git-fetch)
28740 (uri (git-reference
28741 (url "https://gitlab.com/ideasman42/emacs-spell-fu")
28742 (commit commit)))
28743 (file-name (git-file-name name version))
28744 (sha256
28745 (base32
28746 "0n7qwnirvkh2aprb7l1wj9rywdsn33a7s32716m3afcvy7z9pyh4"))))
28747 (build-system emacs-build-system)
28748 (home-page "https://gitlab.com/ideasman42/emacs-spell-fu")
28749 (synopsis "Fast highlighting of misspelled words")
28750 (description
28751 "This is a light weight spell checker for Emacs,
28752 that runs from the syntax highlighter without starting external processes.")
28753 (license license:gpl3+))))
28754
28755 (define-public emacs-org-emms
28756 (let ((commit "07a8917f3d628c32e5de1dbd118ac08203772533")
28757 (revision "1"))
28758 (package
28759 (name "emacs-org-emms")
28760 (version
28761 (git-version "0.1" revision commit))
28762 (source
28763 (origin
28764 (method git-fetch)
28765 (uri (git-reference
28766 (url "https://gitlab.com/jagrg/org-emms.git")
28767 (commit commit)))
28768 (file-name (git-file-name name commit))
28769 (sha256
28770 (base32
28771 "1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d"))))
28772 (build-system emacs-build-system)
28773 (propagated-inputs
28774 (list emacs-emms emacs-org))
28775 (home-page "https://gitlab.com/jagrg/org-emms")
28776 (synopsis "Play multimedia files from org-mode")
28777 (description
28778 "This package provides a new org link type for playing back multimedia
28779 files from org-mode using EMMS, The Emacs Multimedia System. If the link
28780 contains a track position, playback will start at the specified position.")
28781 (license license:gpl3+))))
28782
28783 (define-public emacs-org-jira
28784 (package
28785 (name "emacs-org-jira")
28786 (version "4.4.0")
28787 (source
28788 (origin
28789 (method git-fetch)
28790 (uri (git-reference
28791 (url "https://github.com/ahungry/org-jira")
28792 (commit version)))
28793 (file-name (git-file-name name version))
28794 (sha256
28795 (base32
28796 "1s91l4ibjvvc7rfvd8gldxqrcgjq00q83fdww217ck2ps5yrzyjl"))))
28797 (build-system emacs-build-system)
28798 (propagated-inputs
28799 (list emacs-request emacs-s emacs-dash emacs-org))
28800 (home-page "https://github.com/ahungry/org-jira")
28801 (synopsis "Syncing between Jira and Org-mode")
28802 (description
28803 "This package provides an extension to org-mode for syncing issues with
28804 JIRA issue servers.")
28805 (license license:gpl3+)))
28806
28807 (define-public emacs-slime-volleyball
28808 (package
28809 (name "emacs-slime-volleyball")
28810 (version "1.2.0")
28811 (source
28812 (origin
28813 (method url-fetch)
28814 (uri (string-append "https://elpa.gnu.org/packages/"
28815 "slime-volleyball-" version ".tar"))
28816 (sha256
28817 (base32 "07xavg6xq5ckrfy5sk5k5ldb46m5w8nw1r1k006ck8f23ajaw5z2"))))
28818 (build-system emacs-build-system)
28819 (arguments '(#:include '("\\.el$" "\\.svg$" "\\.b64$" "slime\\.el\\.gz$")))
28820 (home-page "http://elpa.gnu.org/packages/slime-volleyball.html")
28821 (synopsis "SVG slime volleyball game")
28822 (description
28823 "Emacs Slime Volleyball is a volleyball game. Win points by
28824 making the ball land on your opponent's side of the court. The first
28825 player to five points wins! You can play against a friend, or
28826 challenge the three computer opponents in one player mode. You can
28827 even train opponent slimes.")
28828 (license license:gpl3+)))
28829
28830 (define-public emacs-systemd-mode
28831 (package
28832 (name "emacs-systemd-mode")
28833 (version "1.6")
28834 (source (origin
28835 (method git-fetch)
28836 (uri (git-reference
28837 (url "https://github.com/holomorph/systemd-mode")
28838 (commit (string-append "v" version))))
28839 (file-name (git-file-name name version))
28840 (sha256
28841 (base32
28842 "0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq"))))
28843 (build-system emacs-build-system)
28844 (arguments '(#:include '("\\.el$" "\\.txt$")))
28845 (home-page "https://github.com/holomorph/systemd-mode")
28846 (synopsis
28847 "Major mode for editing systemd units")
28848 (description
28849 "Major mode for editing systemd units in GNU Emacs.")
28850 (license license:gpl3+)))
28851
28852 (define-public emacs-ssh-config-mode
28853 (let ((commit "4c1dfa57d452cb5654453bf186c8ff63e1e71b56")
28854 (revision "1"))
28855 (package
28856 (name "emacs-ssh-config-mode")
28857 (version (git-version "8.0" revision commit))
28858 (source
28859 (origin
28860 (method git-fetch)
28861 (uri
28862 (git-reference
28863 (url "https://github.com/jhgorrell/ssh-config-mode-el")
28864 (commit commit)))
28865 (file-name (git-file-name name commit))
28866 (sha256
28867 (base32
28868 "0crglfdazzckizbwzmgl2rn6j85avfzkr1q7ijxd17rp2anvr9bd"))))
28869 (build-system emacs-build-system)
28870 (arguments '(#:include '("\\.el$" "\\.txt$")))
28871 (home-page
28872 "https://github.com/jhgorrell/ssh-config-mode-el")
28873 (synopsis
28874 "Mode for fontification of ~/.ssh/config")
28875 (description
28876 "This package fontifies the ssh config keywords and creates
28877 keybindings for skipping from host section to host section.")
28878 (license license:gpl3+))))
28879
28880 (define-public emacs-ssh-agency
28881 (package
28882 (name "emacs-ssh-agency")
28883 (version "0.4.1")
28884 (source (origin
28885 (method git-fetch)
28886 (uri (git-reference
28887 (url "https://github.com/magit/ssh-agency")
28888 (commit version)))
28889 (file-name (git-file-name name version))
28890 (sha256
28891 (base32
28892 "1i3zmsn0w2k7p2hlzssibckm32kf05l56mkhg96x4sf06g3pwq1d"))))
28893 (build-system emacs-build-system)
28894 (propagated-inputs
28895 (list emacs-dash))
28896 (home-page "https://github.com/magit/ssh-agency")
28897 (synopsis "Manage @code{ssh-agent} from Emacs")
28898 (description
28899 "This package provides functions to startup @code{ssh-agent}, set the
28900 needed environment variables in Emacs, and prompt for passphrases from within
28901 Emacs so that pushes and pulls from @code{magit} will not require entering any
28902 passphrase.
28903
28904 It can also be useful on Unix-like platforms to delay having to enter your
28905 passphrase until the first time you push to a remote.")
28906 (license license:gpl3+)))
28907
28908 (define-public emacs-super-save
28909 (package
28910 (name "emacs-super-save")
28911 (version "0.3.0")
28912 (source
28913 (origin
28914 (method git-fetch)
28915 (uri (git-reference
28916 (url "https://github.com/bbatsov/super-save")
28917 (commit (string-append "v" version))))
28918 (file-name (git-file-name name version))
28919 (sha256
28920 (base32
28921 "066fyg4r4pksyandpd7s53hagpvm2rw90q5ks4jlpgy7x00hw09l"))))
28922 (build-system emacs-build-system)
28923 (home-page "https://github.com/bbatsov/super-save")
28924 (synopsis "Auto-save buffers, based on your activity")
28925 (description "Super-save auto-saves your buffers, when certain events
28926 happen, e.g., when you switch between buffers or when an Emacs frame loses
28927 focus. You can think of it as both something that augments and replaces the
28928 standard Auto-save mode.")
28929 (license license:gpl3+)))
28930
28931 (define-public emacs-tao-theme
28932 (let ((commit "468ee4f6ba7afb9dbfc8855ae2c333cb16ca4408")
28933 (revision "1"))
28934 (package
28935 (name "emacs-tao-theme")
28936 (version (git-version "1.1.1" revision commit))
28937 (source
28938 (origin
28939 (method git-fetch)
28940 (uri (git-reference
28941 (url "https://github.com/11111000000/tao-theme-emacs")
28942 (commit commit)))
28943 (file-name (git-file-name name version))
28944 (sha256
28945 (base32
28946 "0yqibx6wcdsj5k6130c3qp0hmj6zwhfjrrvw98lny23ksw6k0s3s"))))
28947 (build-system emacs-build-system)
28948 (home-page "https://github.com/11111000000/tao-theme-emacs")
28949 (synopsis "Parameterized uncolored color themes for Emacs")
28950 (description
28951 "This package provides two parameterized uncolored color themes for
28952 Emacs: @code{tao-yin} and @code{tao-yang}. The default
28953 @code{tao-theme-scale-fn} is @code{tao-theme-golden-scale}.
28954
28955 You can customize: @code{tao-theme-scale-fn}, that returns 16 2-digit numbers;
28956 @code{tao-theme-scale-filter-fn}, for edge filter; and
28957 @code{tao-theme-use-height}.")
28958 (license license:gpl3+))))
28959
28960 (define-public emacs-almost-mono-themes
28961 (let ((commit "c3a85c1a665530a5d830665969725cdba8eceb75")
28962 (revision "0"))
28963 (package
28964 (name "emacs-almost-mono-themes")
28965 (version (git-version "0" revision commit))
28966 (source
28967 (origin
28968 (method git-fetch)
28969 (uri (git-reference
28970 (url "https://github.com/cryon/almost-mono-themes")
28971 (commit commit)))
28972 (file-name (git-file-name name version))
28973 (sha256
28974 (base32
28975 "034k32xkr5ma415hlkbl35z0jxc4sa1inf87hg3y6lrlfl83fyjh"))))
28976 (build-system emacs-build-system)
28977 (home-page "https://github.com/cryon/almost-mono-themes")
28978 (synopsis "Almost monochromatic themes for emacs in a few variants")
28979 (description
28980 "This package provides a collection of almost monochrome Emacs themes:
28981 @code{almost-mono-black} and @code{almost-mono-white}.")
28982 (license license:gpl3+))))
28983
28984 (define-public emacs-quasi-monochrome
28985 (let ((commit "68060dbbc0bbfe4924387392874186c5a29bb434")
28986 (revision "0"))
28987 (package
28988 (name "emacs-quasi-monochrome")
28989 (version (git-version "1.2" revision commit))
28990 (source
28991 (origin
28992 (method git-fetch)
28993 (uri (git-reference
28994 (url "https://github.com/lbolla/emacs-quasi-monochrome")
28995 (commit commit)))
28996 (file-name (git-file-name name version))
28997 (sha256
28998 (base32
28999 "0zp2xr0bjfqrpb0bqczzick1vvbjmipjavrdi70kw6a9caynvq22"))))
29000 (build-system emacs-build-system)
29001 (home-page "https://github.com/lbolla/emacs-quasi-monochrome")
29002 (synopsis "Dark color theme for Emacs")
29003 (description
29004 "This package provides a dark color theme with a black background, high
29005 contrast and few colors.")
29006 (license license:gpl3+))))
29007
29008 (define-public emacs-doom-themes
29009 (package
29010 (name "emacs-doom-themes")
29011 (version "2.3.0")
29012 (source (origin
29013 (method git-fetch)
29014 (uri (git-reference
29015 (url "https://github.com/hlissner/emacs-doom-themes")
29016 (commit (string-append "v" version))))
29017 (file-name (git-file-name name version))
29018 (sha256
29019 (base32 "120pcas0l1m6w551qxfcl2fx0aysjqp91nn47zdxrr8rs01654wr"))))
29020 (build-system emacs-build-system)
29021 (native-inputs
29022 (list emacs-ert-runner))
29023 (arguments
29024 (list #:tests? #t
29025 #:test-command #~(list "ert-runner")
29026 #:modules '((guix build emacs-build-system)
29027 (guix build utils)
29028 (guix build emacs-utils)
29029 (srfi srfi-1))
29030 #:phases
29031 #~(modify-phases %standard-phases
29032 (add-after 'unpack 'move-themes
29033 (lambda _
29034 ;; Move the source files to the top level, which is in the
29035 ;; EMACSLOADPATH.
29036 (for-each (lambda (f)
29037 (rename-file f (basename f)))
29038 (append
29039 (find-files "./themes" ".*\\.el$")
29040 (find-files "./extensions" ".*\\.el$"))))))))
29041 (synopsis "Wide collection of color themes for Emacs")
29042 (description "Emacs-doom-themes contains numerous popular color themes for
29043 Emacs that integrate with major modes like Org-mode.")
29044 (home-page "https://github.com/hlissner/emacs-doom-themes")
29045 (license license:expat)))
29046
29047 (define-public emacs-modus-themes
29048 (package
29049 (name "emacs-modus-themes")
29050 (version "2.6.0")
29051 (source
29052 (origin
29053 (method git-fetch)
29054 (uri (git-reference
29055 (url "https://git.sr.ht/~protesilaos/modus-themes")
29056 (commit version)))
29057 (file-name (git-file-name name version))
29058 (sha256
29059 (base32 "1zl1gd3jlkanjmlsxmwhqaiwyblp6kzznfjnw9cq8ah2390y9n1c"))))
29060 (native-inputs (list texinfo))
29061 (build-system emacs-build-system)
29062 (arguments
29063 (list
29064 #:phases
29065 #~(modify-phases %standard-phases
29066 (add-after 'install 'makeinfo
29067 (lambda _
29068 (invoke "emacs"
29069 "--batch"
29070 "--eval=(require 'ox-texinfo)"
29071 "--eval=(find-file \"doc/modus-themes.org\")"
29072 "--eval=(org-texinfo-export-to-info)")
29073 (install-file "doc/modus-themes.info" (string-append #$output "/share/info")))))))
29074 (home-page "https://protesilaos.com/modus-themes/")
29075 (synopsis "Accessible themes (WCAG AAA)")
29076 (description
29077 "The Modus themes are designed for accessible readability. They conform
29078 with the highest standard for color contrast between any given combination of
29079 background and foreground values. This corresponds to the WCAG AAA standard,
29080 which specifies a minimum rate of distance in relative luminance of 7:1.
29081
29082 Modus Operandi (modus-operandi) is a light theme, while Modus
29083 Vivendi (modus-vivendi) is dark. Each theme’s color palette is designed to
29084 meet the needs of the numerous interfaces that are possible in the Emacs
29085 computing environment.")
29086 (license (list license:gpl3+
29087 license:fdl1.3+)))) ; GFDLv1.3+ for the manual
29088
29089 (define-public emacs-punpun-theme
29090 (let ((commit "7026684cd568cb691af3ced5de14c375fe6f5a1a")
29091 (revision "0"))
29092 (package
29093 (name "emacs-punpun-theme")
29094 (version (git-version "0" revision commit))
29095 (source
29096 (origin
29097 (method git-fetch)
29098 (uri (git-reference
29099 (url "https://depp.brause.cc/punpun-theme")
29100 (commit commit)))
29101 (file-name (git-file-name name version))
29102 (sha256
29103 (base32
29104 "1nwvlp93l5lj259mchd1a2glq3jxd0h1vazsbjqfi07hsg86xjp0"))))
29105 (build-system emacs-build-system)
29106 (home-page "https://depp.brause.cc/punpun-theme")
29107 (synopsis "Bleak Emacs theme")
29108 (description
29109 "A bleak theme. Uses shades of gray and the occasional splash of
29110 color. Designed for 256-color terminals. Comes in light and dark!")
29111 (license license:gpl3+))))
29112
29113 (define-public emacs-spacemacs-theme
29114 (package
29115 (name "emacs-spacemacs-theme")
29116 (version "0.3")
29117 (source
29118 (origin
29119 (method git-fetch)
29120 (uri (git-reference
29121 (url "https://github.com/nashamri/spacemacs-theme")
29122 (commit version)))
29123 (file-name (git-file-name name version))
29124 (sha256
29125 (base32 "1yz8xg9ni9290nly5b93djkzk9235q6k4lhb5ghs6snr0r39157n"))))
29126 (build-system emacs-build-system)
29127 (home-page "https://github.com/nashamri/spacemacs-theme")
29128 (synopsis
29129 "Light and dark theme for spacemacs that supports GUI and terminal")
29130 (description
29131 "Spacemacs theme is an Emacs color theme that started as
29132 a theme for Spacemacs. The theme comes with dark and light variants
29133 and it should work well with 256 color terminals.")
29134 (license license:gpl3+)))
29135
29136 (define-public emacs-elixir-mode
29137 (package
29138 (name "emacs-elixir-mode")
29139 (version "2.3.2")
29140 (source
29141 (origin
29142 (method git-fetch)
29143 (uri (git-reference
29144 (url "https://github.com/elixir-editors/emacs-elixir")
29145 (commit (string-append "v" version))))
29146 (file-name (git-file-name name version))
29147 (sha256
29148 (base32 "0f2a360h8bizvqk6bmgxm59g8n7id5rzwlbv6d383h15w298mcga"))))
29149 (build-system emacs-build-system)
29150 (propagated-inputs
29151 (list emacs-pkg-info))
29152 (home-page
29153 "https://github.com/elixir-editors/emacs-elixir")
29154 (synopsis "Major mode for editing Elixir files")
29155 (description
29156 "Elixir-Mode provides font-locking, indentation and navigation support
29157 for the Elixir programming language.")
29158 (license license:gpl3+)))
29159
29160 (define-public emacs-dimmer
29161 (let ((commit "2f915b100044e09dd647b22085e1696249c4b115")
29162 (revision "1"))
29163 (package
29164 (name "emacs-dimmer")
29165 (version (git-version "0.4.2" revision commit))
29166 (source
29167 (origin
29168 (method git-fetch)
29169 (uri (git-reference
29170 (url "https://github.com/gonewest818/dimmer.el")
29171 (commit commit)))
29172 (file-name (git-file-name name version))
29173 (sha256
29174 (base32
29175 "00y6645zjary1sz7517qy5pjwfm5ipsc46sypmdygin65hbbc8wg"))))
29176 (build-system emacs-build-system)
29177 (home-page "https://github.com/gonewest818/dimmer.el")
29178 (synopsis "Visually highlights the selected buffer in Emacs")
29179 (description "Dimmer provides a minor mode that indicates which buffer is
29180 currently active by dimming the faces in the other buffers. It does this
29181 nondestructively, and computes the dimmed faces dynamically such that your
29182 overall color scheme is shown in a muted form without requiring you to define
29183 what is a \"dim\" version of every face.")
29184 (license license:gpl3+))))
29185
29186 (define-public emacs-minibuffer-line
29187 (package
29188 (name "emacs-minibuffer-line")
29189 (version "0.1")
29190 (source
29191 (origin
29192 (method url-fetch)
29193 (uri (string-append
29194 "https://elpa.gnu.org/packages/minibuffer-line-"
29195 version
29196 ".el"))
29197 (sha256
29198 (base32 "1ny4iirp26na5118wfgxlv6fxlrdclzdbd9m0lkrv51w0qw7spil"))))
29199 (build-system emacs-build-system)
29200 (home-page "https://elpa.gnu.org/packages/minibuffer-line.html")
29201 (synopsis "Display status info in the minibuffer window")
29202 (description
29203 "This package lets you display various status information in the
29204 minibuffer window instead of the mode-line. Of course, this is only displayed
29205 when the minibuffer window is not already used for other things (e.g. a
29206 minibuffer or an each area message).
29207
29208 The contents and aspect is controlled by the @code{minibuffer-line-format}
29209 variable and the @code{minibuffer-line} face.")
29210 (license license:gpl3+)))
29211
29212 (define-public emacs-minimap
29213 (package
29214 (name "emacs-minimap")
29215 (version "1.4")
29216 (source
29217 (origin
29218 (method url-fetch)
29219 (uri (string-append
29220 "https://elpa.gnu.org/packages/minimap-"
29221 version
29222 ".el"))
29223 (sha256
29224 (base32 "09fm0ziy8cdzzw08l7l6p63dxz2a27p3laia2v51mvbva8177ls1"))))
29225 (build-system emacs-build-system)
29226 (home-page "http://elpa.gnu.org/packages/minimap.html")
29227 (synopsis "Sidebar showing a @emph{mini-map} of a buffer")
29228 (description
29229 "Minimap provides Emacs with a minimap sidebar, which is a smaller
29230 display of the current buffer on the side, like a scrollbar. It highlights
29231 the currently shown region and updates its position automatically. You can
29232 navigate in the minibar by dragging the active region with the mouse, which
29233 will scroll the corresponding edit buffer. Additionally, you can overlay
29234 information from the tags gathered by CEDET's semantic analyzer.)")
29235 (license license:gpl3+)))
29236
29237 (define-public emacs-eshell-prompt-extras
29238 (package
29239 (name "emacs-eshell-prompt-extras")
29240 (version "1.0")
29241 (home-page "https://github.com/zwild/eshell-prompt-extras")
29242 (source
29243 (origin
29244 (method git-fetch)
29245 (uri (git-reference
29246 (url home-page)
29247 (commit version)))
29248 (file-name (git-file-name name version))
29249 (sha256
29250 (base32
29251 "0gb07mns23dgqqr6qfy7d6ndizy15sqgbgfaig6k5xbjnwi02v9g"))))
29252 (build-system emacs-build-system)
29253 (synopsis "Display extra information and color for your Eshell prompt")
29254 (description "This library displays various customizable elements for
29255 @code{eshell} prompts: remote user, remote host, python virtual environment
29256 info, git branch, git dirty info and git unpushed number. Multiple themes are
29257 available.")
29258 (license license:gpl3+)))
29259
29260 (define-public emacs-eshell-did-you-mean
29261 (package
29262 (name "emacs-eshell-did-you-mean")
29263 (version "0.2")
29264 (source
29265 (origin
29266 (method git-fetch)
29267 (uri (git-reference
29268 (url "https://github.com/xuchunyang/eshell-did-you-mean")
29269 (commit (string-append "v" version))))
29270 (file-name (git-file-name name version))
29271 (sha256
29272 (base32 "158g8b4crm0gf5pilfxf89hdsb22gr1wbrjyx9gf45bmcll3i9vf"))))
29273 (build-system emacs-build-system)
29274 (home-page "https://github.com/xuchunyang/eshell-did-you-mean")
29275 (synopsis "Display suggestions on 'command not found' in Eshell")
29276 (description "This library adds a list of 'Did you mean...' suggestions
29277 when the command was not found in Eshell. The suggestions are found after the
29278 commands that bear resemblance to the input command.")
29279 (license license:gpl3+)))
29280
29281 (define-public emacs-unfill
29282 (package
29283 (name "emacs-unfill")
29284 (version "0.3")
29285 (home-page "https://github.com/purcell/unfill")
29286 (source
29287 (origin
29288 (method git-fetch)
29289 (uri (git-reference
29290 (url home-page)
29291 (commit version)))
29292 (file-name (git-file-name name version))
29293 (sha256
29294 (base32 "0pg64nza2mp4xyr69pjq51jsq1aaym0g38g4jzaxr0hh3w0ris1n"))))
29295 (build-system emacs-build-system)
29296 (synopsis "Inverse of Emacs' @code{fill-paragraph} and @code{fill-region}")
29297 (description
29298 "The functions in this package provide the inverse of Emacs'
29299 @code{fill-paragraph} and @code{fill-region}.")
29300 (license license:gpl3+)))
29301
29302 (define-public emacs-windower
29303 (package
29304 (name "emacs-windower")
29305 (version "0.0.1")
29306 (home-page "https://gitlab.com/ambrevar/emacs-windower")
29307 (source
29308 (origin
29309 (method git-fetch)
29310 (uri (git-reference
29311 (url home-page)
29312 (commit version)))
29313 (file-name (git-file-name name version))
29314 (sha256
29315 (base32 "0h24gb1ip0czfasxm8wwcc3v19g7mznzw2sxkmmfb5iis59p7dfy"))))
29316 (build-system emacs-build-system)
29317 (synopsis "Helper functions for window manipulation in Emacs")
29318 (description
29319 "This package provides helper functions for window manipulation in Emacs,
29320 such as:
29321
29322 @itemize
29323 @item switch to last buffer,
29324 @item toggle single window display,
29325 @item toggle between horizontal and vertical splits,
29326 @item move borders more naturally,
29327 @item swap windows à-la @code{windmove}.
29328 @end itemize")
29329 (license license:gpl3+)))
29330
29331 (define-public emacs-flycheck-cpplint
29332 (let ((commit "1d8a090861572258ab704915263feeb3a436c3d2")
29333 (revision "1"))
29334 (package
29335 (name "emacs-flycheck-cpplint")
29336 (version (git-version "0.1" revision commit))
29337 (source
29338 (origin
29339 (method git-fetch)
29340 (uri (git-reference
29341 (url "https://github.com/flycheck/flycheck-google-cpplint")
29342 (commit commit)))
29343 (file-name (git-file-name name version))
29344 (sha256
29345 (base32 "0l6sg83f6z8x2alnblpv03rj442sbnkkkcbf8i0agjmx3713a5yx"))))
29346 (build-system emacs-build-system)
29347 (arguments
29348 `(#:phases
29349 (modify-phases %standard-phases
29350 (add-after 'unpack 'set-cpplint-path
29351 (lambda _
29352 (substitute* "flycheck-google-cpplint.el"
29353 (("\"cpplint.py\"")
29354 (string-append "\"" (which "cpplint") "\""))))))))
29355 (inputs
29356 (list cpplint))
29357 (propagated-inputs
29358 (list emacs-flycheck))
29359 (synopsis "Google C++ checker for Flycheck")
29360 (description "This package provides a interface for @code{cpplint} over
29361 Flycheck plugin. @code{cpplint} is a static code checker for C++, following
29362 Google guidelines.")
29363 (home-page "https://github.com/flycheck/flycheck-google-cpplint")
29364 (license license:gpl3+))))
29365
29366 (define-public emacs-highlight-doxygen
29367 ;; Upstream does not tag releases. Commit below matches version bump.
29368 (let ((commit "eec4874e2e89d4eb39091aad89a67dff8f8ec84c"))
29369 (package
29370 (name "emacs-highlight-doxygen")
29371 (version "0.0.2")
29372 (source
29373 (origin
29374 (method git-fetch)
29375 (uri (git-reference
29376 (url "https://github.com/Lindydancer/highlight-doxygen")
29377 (commit commit)))
29378 (sha256
29379 (base32
29380 "0r3rv1px43r265716l3g20c1ss4381h1mc1kjxin22vdmrj6cmxy"))
29381 (file-name (git-file-name name version))))
29382 (build-system emacs-build-system)
29383 (home-page "https://github.com/Lindydancer/highlight-doxygen")
29384 (synopsis "Highlight Doxygen comments in Emacs, including code blocks")
29385 (description
29386 "This package highlights Doxygen comments.
29387
29388 In addition to highlighting Doxygen commands and their arguments, entire
29389 Doxygen comment are highlighted, making them stand out compared to other
29390 comments. The code blocks are highlighted according to the
29391 language they are written in.")
29392 (license license:gpl3+))))
29393
29394 (define-public emacs-helm-fish-completion
29395 (package
29396 (name "emacs-helm-fish-completion")
29397 (version "0.6")
29398 (home-page "https://github.com/emacs-helm/helm-fish-completion")
29399 (source
29400 (origin
29401 (method git-fetch)
29402 (uri (git-reference
29403 (url home-page)
29404 (commit version)))
29405 (file-name (git-file-name name version))
29406 (sha256
29407 (base32 "1j2vfngq3512naaayv9kx0d1q2zg1xgs69l8afc7swg72h0l0imw"))))
29408 (build-system emacs-build-system)
29409 (propagated-inputs
29410 (list emacs-helm emacs-fish-completion))
29411 (synopsis "Helm interface for Emacs fish-completion")
29412 (description "Helm Fish Completion is a Helm interface for Emacs
29413 fish-completion. It can be used in both Eshell and M-x shell.")
29414 (license license:gpl3+)))
29415
29416 (define-public emacs-helm-switch-to-repl
29417 (package
29418 (name "emacs-helm-switch-to-repl")
29419 (version "0.1.2")
29420 (home-page "https://github.com/emacs-helm/helm-switch-to-repl")
29421 (source
29422 (origin
29423 (method git-fetch)
29424 (uri (git-reference
29425 (url home-page)
29426 (commit version)))
29427 (file-name (git-file-name name version))
29428 (sha256
29429 (base32 "0n8qa549c5syvgqw1h2zrakjjbygddpxzaifaq5irscgdcajrads"))))
29430 (build-system emacs-build-system)
29431 (propagated-inputs
29432 (list emacs-helm))
29433 (synopsis "Helm action to switch directory in Emacs REPLs")
29434 (description "Helm \"Switch-to-REPL\" offers the
29435 @code{helm-switch-to-repl} action, a generalized and extensible version of
29436 @code{helm-ff-switch-to-shell}. It can be added to @code{helm-find-files} and
29437 other @code{helm-type-file} sources such as @code{helm-locate}.")
29438 (license license:gpl3+)))
29439
29440 (define-public emacs-telega-server
29441 (package
29442 (name "emacs-telega-server")
29443 (version "0.8.03")
29444 (source
29445 (origin
29446 (method git-fetch)
29447 (uri (git-reference
29448 (url "https://github.com/zevlg/telega.el")
29449 (commit (string-append "v" version))))
29450 (sha256
29451 (base32 "1ffy17i5fi1bw5r5m6x372c52hc1k83wxdxvi4z0hixyklj48nsv"))
29452 (file-name (git-file-name "emacs-telega" version))
29453 (patches
29454 (search-patches "emacs-telega-path-placeholder.patch"
29455 "emacs-telega-test-env.patch"))))
29456 (build-system gnu-build-system)
29457 (arguments
29458 (list
29459 #:make-flags
29460 #~(list (string-append "CC=" #$(cc-for-target))
29461 (string-append "INSTALL_PREFIX=" #$output "/bin"))
29462 #:phases
29463 #~(modify-phases %standard-phases
29464 (add-before 'configure 'enter-subdirectory
29465 (lambda _ (chdir "server")))
29466 (replace 'configure
29467 (lambda _
29468 (substitute* "run_tests.py"
29469 (("^(TELEGA_SERVER = ).*$" _all prefix)
29470 (string-append prefix
29471 "\"" #$output "/bin/telega-server\"\n")))))
29472 (delete 'check)
29473 (add-after 'install 'check
29474 (assoc-ref %standard-phases 'check))
29475 (add-before 'install-license-files 'leave-subdirectory
29476 (lambda _ (chdir ".."))))
29477 #:test-target "test"))
29478 (inputs
29479 (list tdlib libappindicator))
29480 (native-inputs
29481 (list python pkg-config))
29482 (home-page "https://zevlg.github.io/telega.el/")
29483 (synopsis "Server process of Telega")
29484 (description "Telega-server is helper program to interact with Telegram
29485 service, and connect it with Emacs via inter-process communication.")
29486 (license license:gpl3+)))
29487
29488 (define-public emacs-telega
29489 (package
29490 (inherit emacs-telega-server)
29491 (name "emacs-telega")
29492 (build-system emacs-build-system)
29493 (arguments
29494 `(#:emacs ,(if (target-64bit?)
29495 emacs-minimal
29496 ;; Require wide-int support for 32-bit platform.
29497 emacs-wide-int)
29498 #:include (cons "^etc\\/" %default-include)
29499 #:phases
29500 (modify-phases %standard-phases
29501 (add-after 'unpack 'patch-sources
29502 (lambda* (#:key inputs #:allow-other-keys)
29503 ;; Hard-code paths to `ffplay` and `ffmpeg`.
29504 (let* ((ffplay-bin (search-input-file inputs "/bin/ffplay"))
29505 (ffmpeg-bin (search-input-file inputs "/bin/ffmpeg")))
29506 (substitute* '("telega-ffplay.el" "telega-vvnote.el")
29507 (("(shell-command-to-string\|concat) \"(ffmpeg\|ffprobe)"
29508 all func cmd)
29509 (string-append func " \""
29510 (search-input-file
29511 inputs (string-append "/bin/" cmd))))
29512 (("\\(executable-find \"ffplay\"\\)")
29513 (string-append "(and (file-executable-p \"" ffplay-bin "\")"
29514 "\"" ffplay-bin "\")"))
29515 (("\\(executable-find \"ffmpeg\"\\)")
29516 (string-append "(and (file-executable-p \"" ffmpeg-bin "\")"
29517 "\"" ffmpeg-bin "\")"))))))
29518 (add-after 'unpack 'configure
29519 (lambda* (#:key inputs outputs #:allow-other-keys)
29520 (substitute* "telega-customize.el"
29521 (("@TELEGA_SERVER_BIN@")
29522 (search-input-file inputs "/bin/telega-server")))
29523 (substitute* "telega-util.el"
29524 (("@TELEGA_SHARE@")
29525 (string-append (elpa-directory (assoc-ref outputs "out"))
29526 "/etc"))))))))
29527 (inputs
29528 (list emacs-telega-server ffmpeg))
29529 (native-inputs '())
29530 (propagated-inputs
29531 (list emacs-visual-fill-column emacs-company
29532 emacs-rainbow-identifiers))
29533 (synopsis "GNU Emacs client for the Telegram messenger")
29534 (description "Telega is a full-featured, unofficial GNU Emacs-based client
29535 for the Telegram messaging platform.")))
29536
29537 (define-public emacs-telega-contrib
29538 (package
29539 (inherit emacs-telega)
29540 (name "emacs-telega-contrib")
29541 (arguments
29542 `(#:exclude '("telega-live-location.el")
29543 #:phases
29544 (modify-phases %standard-phases
29545 (add-after 'unpack 'enter-subdirectory
29546 (lambda _ (chdir "contrib") #t))
29547 (add-before 'install-license-files 'leave-subdirectory
29548 (lambda _ (chdir "..") #t)))))
29549 (inputs '())
29550 (native-inputs '())
29551 (propagated-inputs
29552 (list emacs-alert emacs-all-the-icons emacs-dashboard emacs-telega))
29553 (synopsis "Contributed packages to Telega")
29554 (description "Telega-contrib is a collection of third-party
29555 contributed packages to Telega.")))
29556
29557 (define-public emacs-doom-modeline
29558 (package
29559 (name "emacs-doom-modeline")
29560 (version "3.3.1")
29561 (source
29562 (origin
29563 (method git-fetch)
29564 (uri (git-reference
29565 (url "https://github.com/seagle0128/doom-modeline")
29566 (commit (string-append "v" version))))
29567 (sha256
29568 (base32 "0p728hbphfch6kmkjxm1qwxrwz6l94s3sj7wl1wc4mp82zrdsi15"))
29569 (file-name (git-file-name name version))))
29570 (build-system emacs-build-system)
29571 (arguments
29572 `(#:test-command '("ert-runner")))
29573 (native-inputs (list emacs-ert-runner))
29574 (propagated-inputs
29575 (list emacs-all-the-icons emacs-compat emacs-dash emacs-shrink-path))
29576 (synopsis "Fancy and fast mode-line inspired by minimalism design")
29577 (description "Doom modeline is a complete modeline for GNU Emacs inspired
29578 by the Doom theme collection. This modeline features support for mode-specific
29579 icon support, git integration, and several other utilities.")
29580 (home-page "https://github.com/seagle0128/doom-modeline/")
29581 (license license:gpl3+)))
29582
29583 (define-public emacs-mood-line
29584 (package
29585 (name "emacs-mood-line")
29586 (version "1.2.5")
29587 (source
29588 (origin
29589 (method git-fetch)
29590 (uri (git-reference
29591 (url "https://gitlab.com/jessieh/mood-line")
29592 (commit version)))
29593 (file-name (git-file-name name version))
29594 (sha256
29595 (base32 "0z6s80j259xf8nxjxcsmp7wyvpcg5wyx58brlrbwg1aa9hl3fxga"))))
29596 (build-system emacs-build-system)
29597 (home-page "https://gitlab.com/jessieh/mood-line")
29598 (synopsis "Minimal mode-line for Emacs")
29599 (description
29600 "Mood-line is a minimal Emacs mode-line configuration that aims to
29601 replicate some of the features of the Doom modeline package.")
29602 (license license:gpl2+)))
29603
29604 (define-public emacs-simple-modeline
29605 (package
29606 (name "emacs-simple-modeline")
29607 (version "1.4")
29608 (source
29609 (origin
29610 (method git-fetch)
29611 (uri (git-reference
29612 (url "https://github.com/gexplorer/simple-modeline")
29613 (commit version)))
29614 (file-name (git-file-name name version))
29615 (sha256
29616 (base32
29617 "1rnzrx7gcaw056cqvnb1wai4hala0r0gpk3a4kyyghyp9hmrxbb5"))))
29618 (build-system emacs-build-system)
29619 (home-page "https://github.com/gexplorer/simple-modeline")
29620 (synopsis "Simple mode-line configuration for Emacs")
29621 (description
29622 "This package provides a simple mode-line configuration for Emacs.")
29623 (license license:gpl3+)))
29624
29625 (define-public emacs-frames-only-mode
29626 (package
29627 (name "emacs-frames-only-mode")
29628 (version "1.0.0")
29629 (source
29630 (origin
29631 (method git-fetch)
29632 (uri (git-reference
29633 (url "https://github.com/davidshepherd7/frames-only-mode")
29634 (commit version)))
29635 (file-name (git-file-name name version))
29636 (sha256
29637 (base32 "0y0sdjixaxvywrlp2sw51wnczhk51q1svl5aghbk9rkxpwv9ys9v"))))
29638 (build-system emacs-build-system)
29639 (propagated-inputs
29640 (list emacs-dash emacs-s))
29641 (home-page "https://github.com/davidshepherd7/frames-only-mode")
29642 (synopsis "Use frames instead of Emacs windows")
29643 (description
29644 "This is an Emacs global minor mode to use Emacs frames instead of Emacs'
29645 internal windowing system. This combines particularly well with tiling window
29646 managers such as XMonad.")
29647 (license license:gpl3+)))
29648
29649 (define-public emacs-modalka
29650 (package
29651 (name "emacs-modalka")
29652 (version "0.1.5")
29653 (source
29654 (origin
29655 (method git-fetch)
29656 (uri (git-reference
29657 (url "https://github.com/mrkkrp/modalka")
29658 (commit version)))
29659 (file-name (git-file-name name version))
29660 (sha256
29661 (base32 "0ggj8q92sb6wp3hs1vhpmy56id0p3i9zwnw24g2v7xa7w8ac9s7l"))))
29662 (build-system emacs-build-system)
29663 (home-page "https://github.com/mrkkrp/modalka")
29664 (synopsis "Minor mode to easily define native custom modal editing")
29665 (description
29666 "This is a building kit to help switch to modal editing in Emacs. The
29667 main goal of the package is to make modal editing in Emacs as natural and
29668 native as possible. Modalka lets you define your own keys and does not come
29669 with a preconfigured set of keys.")
29670 (license license:gpl3+)))
29671
29672 (define-public emacs-shrink-path
29673 (package
29674 (name "emacs-shrink-path")
29675 (version "0.3.1")
29676 (source
29677 (origin
29678 (method git-fetch)
29679 (uri (git-reference
29680 (url "https://gitlab.com/bennya/shrink-path.el.git")
29681 (commit (string-append "v" version))))
29682 (sha256
29683 (base32
29684 "0kx0c4syd7k6ff9j463bib32pz4wq0rzjlg6b0yqnymlzfr1mbki"))
29685 (file-name (git-file-name name version))))
29686 (build-system emacs-build-system)
29687 (propagated-inputs
29688 (list emacs-s emacs-dash emacs-f))
29689 (home-page "https://gitlab.com/bennya/shrink-path.el")
29690 (synopsis "Fish-style path truncation in emacs-lisp")
29691 (description "This package provides utility functions that allow for
29692 Fish-style truncated directories in eshell and various modelines.")
29693 (license license:gpl3+)))
29694
29695 (define-public emacs-org-present
29696 (let ((commit "d13acd70eff6a1608bc991920232146a0de76b21"))
29697 (package
29698 (name "emacs-org-present")
29699 (version "0.0.1")
29700 (source
29701 (origin
29702 (method git-fetch)
29703 (uri (git-reference
29704 (url "https://github.com/rlister/org-present")
29705 (commit commit)))
29706 (file-name (git-file-name name version))
29707 (sha256
29708 (base32
29709 "0jz8xiny3rv9ql0p623byz32pip1b82j2c2nyfz2wd114kiabb6q"))))
29710 (build-system emacs-build-system)
29711 (synopsis "Ultra-minimalist presentation minor-mode for Emacs org-mode")
29712 (description "Org-present is an extremely minimalist presentation tool
29713 for Emacs org-mode. Simply layout your presentation with each slide under a
29714 top-level header, start the minor mode with @code{org-present}, and page through
29715 each slide with left/right keys.")
29716 (home-page "https://github.com/rlister/org-present")
29717 (license license:gpl2))))
29718
29719 (define-public emacs-fullframe
29720 (package
29721 (name "emacs-fullframe")
29722 (version "0.5.1")
29723 (source
29724 (origin
29725 (method git-fetch)
29726 (uri (git-reference
29727 (url "https://git.sr.ht/~tomterl/fullframe")
29728 (commit version)))
29729 (sha256
29730 (base32 "1q276p3bagx9fhzyzjmz449f95k1z287x4p34980d06klj11lrab"))
29731 (file-name (git-file-name name version))))
29732 (build-system emacs-build-system)
29733 (home-page "https://git.sr.ht/~tomterl/fullframe")
29734 (synopsis "Generalized automatic execution in a single frame")
29735 (description
29736 "This library provides helpers for single-window-per-frame execution of
29737 buffer-exposing commands.")
29738 (license license:gpl3+)))
29739
29740 (define-public emacs-eshell-toggle
29741 (let ((commit "ddfbe0a693497c4d4bc5494a19970ba4f6ab9033")
29742 (revision "1"))
29743 (package
29744 (name "emacs-eshell-toggle")
29745 (version (git-version "0.10.0" revision commit))
29746 (source
29747 (origin
29748 (method git-fetch)
29749 (uri (git-reference
29750 (url "https://github.com/4DA/eshell-toggle")
29751 (commit commit)))
29752 (sha256
29753 (base32
29754 "0xqrp8pwbmfxjdqipgpw5nw633mvhjjjm3k3j9sh9xdpmw05hhws"))
29755 (file-name (git-file-name name version))))
29756 (build-system emacs-build-system)
29757 (propagated-inputs
29758 (list emacs-dash))
29759 (home-page "https://github.com/4DA/eshell-toggle")
29760 (synopsis "Show and hide an @code{eshell} instance")
29761 (description "This package toggles an @code{eshell} instance for the
29762 current buffer.")
29763 (license license:gpl3+))))
29764
29765 (define-public emacs-repl-toggle
29766 (package
29767 (name "emacs-repl-toggle")
29768 (version "0.7.2")
29769 (source
29770 (origin
29771 (method git-fetch)
29772 (uri (git-reference
29773 (url "https://git.sr.ht/~tomterl/repl-toggle")
29774 (commit version)))
29775 (sha256
29776 (base32
29777 "18dpy7a7yrn7m7qifrjk5zcr6zbd3kwp9pb55la9052vwipxxvfk"))
29778 (file-name (git-file-name name version))))
29779 (build-system emacs-build-system)
29780 (propagated-inputs
29781 (list emacs-fullframe))
29782 (home-page "https://git.sr.ht/~tomterl/repl-toggle")
29783 (synopsis "Switch to and from current major mode's REPL")
29784 (description "This package provides a function to switch to and from a
29785 REPL appropriate to the current major mode.")
29786 (license license:gpl3+)))
29787
29788 (define-public emacs-rime
29789 (package
29790 (name "emacs-rime")
29791 (version "1.0.5")
29792 (source
29793 (origin
29794 (method git-fetch)
29795 (uri (git-reference
29796 (url "https://github.com/DogLooksGood/emacs-rime")
29797 (commit (string-append "v" version))))
29798 (file-name (git-file-name name version))
29799 (sha256
29800 (base32 "0z0iwsqr92g8ykxb51gkawwxwzx0faw0027zgdi7c38ngjqld237"))))
29801 (build-system emacs-build-system)
29802 (arguments
29803 '(#:include (cons "\\.so$" %default-include)
29804 #:phases
29805 (modify-phases %standard-phases
29806 (add-after 'unpack 'patch-rime-data-path
29807 (lambda* (#:key inputs #:allow-other-keys)
29808 (make-file-writable "rime.el")
29809 (emacs-substitute-variables "rime.el"
29810 ("rime-share-data-dir"
29811 (search-input-directory inputs
29812 "share/rime-data")))))
29813 (add-before 'install 'build-emacs-module
29814 (lambda _
29815 (invoke "make" "lib"))))))
29816 (inputs
29817 (list librime rime-data))
29818 (propagated-inputs
29819 (list emacs-dash emacs-popup emacs-posframe))
29820 (home-page "https://github.com/DogLooksGood/emacs-rime")
29821 (synopsis "Rime input method in Emacs")
29822 (description
29823 "Rime is an Emacs input method built upon Rime input method engine.")
29824 (license license:gpl3+)))
29825
29826 (define-public emacs-bison-mode
29827 (package
29828 (name "emacs-bison-mode")
29829 (version "0.4")
29830 (source
29831 (origin
29832 (method url-fetch)
29833 (uri (string-append
29834 "https://elpa.nongnu.org/nongnu/bison-mode-"
29835 version ".tar"))
29836 (sha256
29837 (base32 "19n9kz1ycjpxngd3clzr8lzrnnw19l8sfvlx1yqn35hk7017z7ab"))))
29838 (build-system emacs-build-system)
29839 (home-page "https://elpa.nongnu.org/nongnu/bison-mode.html")
29840 (synopsis "Major mode for editing Bison, Yacc, and Lex files")
29841 (description
29842 "This Emacs package provides a major mode for editing Bison, Yacc, and
29843 Lex files.")
29844 (license license:gpl2+)))
29845
29846 (define-public emacs-blackout
29847 (let ((commit "4bac44671fca4c98d96aa94c79946bf4d4baf0ee")
29848 (revision "1"))
29849 (package
29850 (name "emacs-blackout")
29851 (version (git-version "1.0" revision commit))
29852 (source
29853 (origin
29854 (method git-fetch)
29855 (uri (git-reference
29856 (url "https://github.com/raxod502/blackout")
29857 (commit commit)))
29858 (sha256
29859 (base32
29860 "1wnh0nwy6r3a18sy9sqmrwv04vnmaflxy4g7mq8jiyyjijri7l1b"))
29861 (file-name (git-file-name name version))))
29862 (build-system emacs-build-system)
29863 (home-page "https://github.com/raxod502/blackout")
29864 (synopsis "Clean up mode lighters")
29865 (description "This package provides a function for hiding and customizing
29866 display of major and minor modes in the mode line.")
29867 (license license:gpl3+))))
29868
29869 (define-public emacs-ivy-omni-org
29870 (let ((commit "5460a9fc061a4a5ae8372dc8df966ced94abab58")
29871 (revision "1"))
29872 (package
29873 (name "emacs-ivy-omni-org")
29874 (version (git-version "0.2.1" revision commit))
29875 (source
29876 (origin
29877 (method git-fetch)
29878 (uri (git-reference
29879 (url "https://github.com/akirak/ivy-omni-org")
29880 (commit commit)))
29881 (file-name (git-file-name name version))
29882 (sha256
29883 (base32
29884 "1np1f51hc3phkl5w02a9a79gl38ra2d535i784fn4pqaasvm0rq8"))))
29885 (build-system emacs-build-system)
29886 (propagated-inputs
29887 (list emacs-ivy emacs-dash))
29888 (synopsis "Browse anything in Org mode")
29889 (description "This package allows Org items to be accessed via the Ivy
29890 interface.")
29891 (home-page "https://github.com/akirak/ivy-omni-org")
29892 (license license:gpl3+))))
29893
29894 (define-public emacs-ivy-posframe
29895 (package
29896 (name "emacs-ivy-posframe")
29897 (version "0.6.3")
29898 (source
29899 (origin
29900 (method url-fetch)
29901 (uri (string-append "https://elpa.gnu.org/packages/"
29902 "ivy-posframe-" version ".tar"))
29903 (sha256
29904 (base32 "0b498qzaydjrhplx4d7zcrs883dlrhfiz812sv4m3pmhfwifcchh"))))
29905 (build-system emacs-build-system)
29906 (propagated-inputs
29907 (list emacs-ivy emacs-posframe))
29908 (home-page "https://github.com/tumashu/ivy-posframe")
29909 (synopsis "Pop a posframe (a child frame) to show Ivy candidates")
29910 (description
29911 "This package provides an Emacs Ivy extension, which let Ivy use
29912 posframe to show its candidate menu.")
29913 (license license:gpl3+)))
29914
29915 (define-public emacs-shackle
29916 (package
29917 (name "emacs-shackle")
29918 (version "1.0.4")
29919 (source
29920 (origin
29921 (method git-fetch)
29922 (uri (git-reference
29923 (url "https://depp.brause.cc/shackle.git")
29924 (commit version)))
29925 (file-name (git-file-name name version))
29926 (sha256
29927 (base32 "0s4br59zpd5qq7z9074ddq9lmwnddq2ixijwi666wp5gxw45fpgg"))))
29928 (build-system emacs-build-system)
29929 (synopsis "Enforce rules for popups")
29930 (description
29931 "This package provides a global minor mode in which users
29932 can specify how popup-displaying functions occupy the screen.")
29933 (home-page "https://depp.brause.cc/shackle")
29934 (license license:gpl3+)))
29935
29936 (define-public emacs-showtip
29937 (let ((commit "930da302809a4257e8d69425455b29e1cc91949b")
29938 (revision "0"))
29939 (package
29940 (name "emacs-showtip")
29941 (version (git-version "0.01" revision commit))
29942 (source
29943 (origin
29944 (method git-fetch)
29945 (uri (git-reference
29946 (url "https://github.com/emacsorphanage/showtip")
29947 (commit commit)))
29948 (file-name (git-file-name name version))
29949 (sha256
29950 (base32 "01zak0zhha6dp7a2hm28d065gjnc462iwpsfyxhbxgfzcdlicqc7"))))
29951 (build-system emacs-build-system)
29952 (home-page "https://github.com/emacsorphanage/showtip")
29953 (synopsis "Show tip at cursor")
29954 (description
29955 "This library provide one function to show tooltip near the cursor.")
29956 (license license:gpl2+))))
29957
29958 (define-public emacs-sdcv
29959 ;; No tagged version upstream.
29960 (let ((commit "943ae3e90cc9a0a88a37cc710acd7424fd4defc4" )
29961 (revision "0"))
29962 (package
29963 (name "emacs-sdcv")
29964 (version (git-version "1.5.2" revision commit))
29965 (source
29966 (origin
29967 (method git-fetch)
29968 (uri (git-reference
29969 (url "https://github.com/stardiviner/sdcv.el")
29970 (commit commit)))
29971 (file-name (git-file-name name version))
29972 (sha256
29973 (base32 "0i1ylvw7p46pkf3yyyzcdmdhsspzymnnnvx8s0i7vynngr5x0vzh"))))
29974 (build-system emacs-build-system)
29975 (propagated-inputs
29976 (list emacs-popup emacs-pos-tip emacs-showtip))
29977 (home-page "https://www.emacswiki.org/emacs/download/sdcv.el")
29978 (synopsis "Emacs interface for @code{sdcv}")
29979 (description
29980 "This plugin translates words with @code{sdcv}, and displays
29981 translation using a tooltip or in a dedicated buffer.")
29982 (license license:gpl3+))))
29983
29984 (define-public emacs-helm-lacarte
29985 (let ((commit "40a6c449720be521435b6b1da7911af3a0b9dca0")
29986 (revision "1"))
29987 (package
29988 (name "emacs-helm-lacarte")
29989 (version (git-version "0" revision commit))
29990 (source
29991 (origin
29992 (method git-fetch)
29993 (uri (git-reference
29994 (url "https://github.com/emacs-helm/helm-lacarte")
29995 (commit commit)))
29996 (file-name (git-file-name name version))
29997 (sha256
29998 (base32
29999 "0dkfd3lap2v7b4nckzv8v7hczmzwzhbl75haqkra107ln91ldbwc"))))
30000 (build-system emacs-build-system)
30001 (propagated-inputs
30002 (list emacs-helm emacs-lacarte))
30003 (synopsis "Helm interface to @code{lacarte.el}")
30004 (description "This package provides a Helm interface to
30005 @code{lacarte.el}, a package that displays mode-specific commands as menu
30006 items.")
30007 (home-page "https://github.com/emacs-helm/helm-lacarte")
30008 (license license:gpl3+))))
30009
30010 (define-public emacs-esh-help
30011 (let ((commit "417673ed18a983930a66a6692dbfb288a995cb80")
30012 (revision "1"))
30013 (package
30014 (name "emacs-esh-help")
30015 (version (git-version "1.0.1" revision commit))
30016 (source
30017 (origin
30018 (method git-fetch)
30019 (uri (git-reference
30020 (url "https://github.com/tom-tan/esh-help")
30021 (commit commit)))
30022 (file-name (git-file-name name version))
30023 (sha256
30024 (base32
30025 "0x7d51a6ljl014zy7mi27vzcqqbcwg9z4drq29fr2ajk82mqhlgd"))))
30026 (build-system emacs-build-system)
30027 (propagated-inputs
30028 (list emacs-dash))
30029 (synopsis "Help functions for Eshell")
30030 (description "This package provides a @code{run-help} function inspired
30031 by @code{zsh} as well as @code{eldoc} support.")
30032 (home-page "https://github.com/tom-tan/esh-help")
30033 (license license:gpl3+))))
30034
30035 (define-public emacs-isearch-dabbrev
30036 (let ((commit "1efe7abba4923015cbc2462395deaec5446a9cc8")
30037 (revision "1"))
30038 (package
30039 (name "emacs-isearch-dabbrev")
30040 (version (git-version "0.1" revision commit))
30041 (source
30042 (origin
30043 (method git-fetch)
30044 (uri (git-reference
30045 (url "https://github.com/Dewdrops/isearch-dabbrev")
30046 (commit commit)))
30047 (file-name (git-file-name name version))
30048 (sha256
30049 (base32
30050 "17d0816awadvsw1qc7r0p6ira75jmgxaj9hsk9ypayxsaf6ynyrb"))))
30051 (build-system emacs-build-system)
30052 (synopsis "Use @code{dabbrev} within @code{isearch}")
30053 (description "This package allows @code{dabbrev-expand} to be used
30054 within @code{isearch-mode}.")
30055 (home-page "https://github.com/Dewdrops/isearch-dabbrev")
30056 (license license:gpl3+))))
30057
30058 (define-public emacs-helm-linux-disks
30059 (let ((commit "2cdc8116a08534289eb0dc76461d0f93a0bdf231")
30060 (revision "1"))
30061 (package
30062 (name "emacs-helm-linux-disks")
30063 (version (git-version "0.1" revision commit))
30064 (source
30065 (origin
30066 (method git-fetch)
30067 (uri (git-reference
30068 (url "https://github.com/Akirak/helm-linux-disks")
30069 (commit commit)))
30070 (file-name (git-file-name name version))
30071 (sha256
30072 (base32
30073 "1limw82zd8jz3mhh9rqlmhj4cjhfgybs9argfjid1an3vpyhc85i"))))
30074 (build-system emacs-build-system)
30075 (propagated-inputs
30076 (list emacs-helm))
30077 (synopsis "Mount/unmount volumes in Linux via Helm")
30078 (description "This package provides a Helm interface to run operations
30079 on removable volumes in Linux.")
30080 (home-page "https://github.com/Akirak/helm-linux-disks")
30081 (license license:gpl3+))))
30082
30083 (define-public emacs-psession
30084 (let ((commit "3e97267c92b164584e06a6c70ee7491714c7c12c")
30085 (revision "1"))
30086 (package
30087 (name "emacs-psession")
30088 (version (git-version "1.5" revision commit))
30089 (source
30090 (origin
30091 (method git-fetch)
30092 (uri (git-reference
30093 (url "https://github.com/thierryvolpiatto/psession")
30094 (commit commit)))
30095 (file-name (git-file-name name version))
30096 (sha256
30097 (base32
30098 "15frl618393bc891d0yi3mdxzvbq790a86vfvp3dyd5riz4ddg95"))))
30099 (build-system emacs-build-system)
30100 (propagated-inputs
30101 (list emacs-async))
30102 (synopsis "Persistent save of @code{elisp} objects")
30103 (description "This package provides minor modes for saving Emacs session
30104 data, including buffers, window configuration, variables, and more.")
30105 (home-page "https://github.com/thierryvolpiatto/psession")
30106 (license license:gpl3+))))
30107
30108 (define-public emacs-parseedn
30109 (package
30110 (name "emacs-parseedn")
30111 (version "1.1.0")
30112 (source
30113 (origin
30114 (method git-fetch)
30115 (uri (git-reference
30116 (url "https://github.com/clojure-emacs/parseedn")
30117 (commit (string-append "v" version))))
30118 (file-name (git-file-name name version))
30119 (sha256
30120 (base32 "01j8nrkcm2s0ps277b5zb4pys29lk4cq49rlcqpj19gbfpkwcvdv"))))
30121 (build-system emacs-build-system)
30122 (propagated-inputs
30123 (list emacs-a emacs-parseclj))
30124 (home-page "https://cider.mx")
30125 (synopsis "EDN parser for Emacs Lisp")
30126 (description
30127 "Parseedn is an Emacs Lisp library for parsing EDN (Clojure) data.
30128 It uses parseclj's shift-reduce parser internally.")
30129 (license license:gpl3+)))
30130
30131 (define-public emacs-parseclj
30132 (package
30133 (name "emacs-parseclj")
30134 (version "1.1.0")
30135 (source
30136 (origin
30137 (method git-fetch)
30138 (uri (git-reference
30139 (url "https://github.com/clojure-emacs/parseclj")
30140 (commit (string-append "v" version))))
30141 (file-name (git-file-name name version))
30142 (sha256
30143 (base32 "0ifc9gyp7hr97ssnsqxiwrzmldqysz874crlg6jm4iy5l9fyls22"))))
30144 (build-system emacs-build-system)
30145 (propagated-inputs (list emacs-a))
30146 (home-page "https://cider.mx")
30147 (synopsis "Clojure parser for Emacs Lisp")
30148 (description
30149 "Parseclj is an Emacs Lisp library for parsing Clojure code and EDN data.
30150 It supports several input and output formats, all powered by the same
30151 shift-reduce parser function.")
30152 (license license:gpl3+)))
30153
30154 (define-public emacs-hide-mode-line
30155 (package
30156 (name "emacs-hide-mode-line")
30157 (version "1.0.2")
30158 (source (origin
30159 (method git-fetch)
30160 (uri (git-reference
30161 (url "https://github.com/hlissner/emacs-hide-mode-line")
30162 (commit (string-append "v" version))))
30163 (file-name (git-file-name name version))
30164 (sha256
30165 (base32
30166 "0dfzjgxfkcw4wisbyldsm1km18pfp9j8xgadn6qnsz11l55bpgyp"))))
30167 (build-system emacs-build-system)
30168 (synopsis "Emacs plugin that hides the mode-line")
30169 (description "A minor mode that hides the mode-line in your current
30170 buffer. It can be used to toggle an alternative mode-line, toggle its visibility,
30171 or simply disable the mode-line in buffers where it is not very useful.")
30172 (home-page "https://github.com/hlissner/emacs-hide-mode-line")
30173 (license license:expat)))
30174
30175 (define-public emacs-helm-cider
30176 (package
30177 (name "emacs-helm-cider")
30178 (version "0.5.0")
30179 (source (origin
30180 (method git-fetch)
30181 (uri (git-reference
30182 (url "https://github.com/clojure-emacs/helm-cider")
30183 (commit (string-append "v" version))))
30184 (file-name (git-file-name name version))
30185 (sha256
30186 (base32
30187 "0jjjy68pmmsx0biawyi5581cqh2b4zb0q8f5vs49ihpzn6zc04vk"))))
30188 (build-system emacs-build-system)
30189 (propagated-inputs
30190 (list emacs-helm emacs-cider))
30191 (home-page "https://github.com/clojure-emacs/helm-cider")
30192 (synopsis "Helm interface to Clojure's CIDER")
30193 (description "Helm-CIDER adds Helm interfaces to
30194 @command{cider-apropos}, @command{cider-apropos-documentation},
30195 @command{cider-browse-ns} (namespaces).
30196
30197 It also provides original Helm commands: @command{helm-cider-spec},
30198 @command{helm-cider-spec-ns}, @command{helm-cider-repl-history},
30199 @command{helm-cider-cheatsheet}.")
30200 (license license:gpl3+)))
30201
30202 (define-public emacs-edn
30203 ;; No release since February 2016
30204 (let ((commit "be9e32d1b49e35247b263b0243df7cfdc8d413ab"))
30205 (package
30206 (name "emacs-edn")
30207 (version (git-version "1.1.2" "1" commit))
30208 (home-page "https://github.com/expez/edn.el")
30209 (source (origin
30210 (method git-fetch)
30211 (uri (git-reference
30212 (url home-page)
30213 (commit commit)))
30214 (file-name (git-file-name name version))
30215 (sha256
30216 (base32
30217 "1xp2hjhn52k6l1g6ypva6dsklpawni7gvjafbz6404f9dyxflh7l"))))
30218 (build-system emacs-build-system)
30219 (propagated-inputs
30220 (list emacs-peg))
30221 (synopsis "Read and write EDN from Elisp")
30222 (description "This is an Emacs Lisp library for reading and writing the
30223 data format @code{edn}. See @url{https://github.com/edn-format/edn}.")
30224 (license license:gpl3+))))
30225
30226 (define-public emacs-ednc
30227 (let ((commit "940a4adbbeb3b6b1a72270a814d52770dd89a997")
30228 (revision "1"))
30229 (package
30230 (name "emacs-ednc")
30231 (version (git-version "0.1" revision commit))
30232 (source
30233 (origin
30234 (method git-fetch)
30235 (uri (git-reference
30236 (url "https://github.com/sinic/ednc")
30237 (commit commit)))
30238 (sha256
30239 (base32 "1gsx2qgv5xm9r0i0axd4hf31g2rq2m4a1hvnif48g4xb0llss73c"))))
30240 (build-system emacs-build-system)
30241 (home-page "https://github.com/sinic/ednc")
30242 (synopsis "Emacs Desktop Notification Center")
30243 (description
30244 "The Emacs Desktop Notification Center (EDNC) is an Emacs package written
30245 in pure Lisp that implements a Desktop Notifications service according to the
30246 freedesktop.org specification. EDNC aspires to be a small, but flexible
30247 drop-in replacement of standalone daemons like Dunst.")
30248 (license license:gpl3+))))
30249
30250 (define-public emacs-helm-clojuredocs
30251 (let ((commit "5a7f0f2cb401be0b09e73262a1c18265ab9a3cea"))
30252 (package
30253 (name "emacs-helm-clojuredocs")
30254 (version (git-version "0.3" "1" commit))
30255 (home-page "https://github.com/mbuczko/helm-clojuredocs")
30256 (source (origin
30257 (method git-fetch)
30258 (uri (git-reference
30259 (url home-page)
30260 (commit commit)))
30261 (file-name (git-file-name name version))
30262 (sha256
30263 (base32
30264 "015b8zxh91ljhqvn6z43gy08di54xcw9skw0i7frj3d7gk984qhl"))))
30265 (build-system emacs-build-system)
30266 (propagated-inputs
30267 (list emacs-helm emacs-edn))
30268 (synopsis "Search help on clojuredocs.org with Helm")
30269 (description "This package provides a Helm interface to lookup Clojure
30270 documentation on @url{https://clojuredocs.org} with Helm.
30271
30272 Two function are exposed:
30273 @itemize
30274 @item @command{helm-clojuredocs}: opens a Helm session with no initial
30275 pattern. Searching starts with minimal 3 characters entered.
30276 @item @command{helm-clojuredocs-at-point}: opens a Helm session with initial
30277 pattern guessed from thing under current cursor position.
30278 @end itemize\n")
30279 (license license:gpl3+))))
30280
30281 (define-public emacs-helm-selector
30282 (package
30283 (name "emacs-helm-selector")
30284 (version "0.6.1")
30285 (home-page "https://github.com/emacs-helm/helm-selector")
30286 (source
30287 (origin
30288 (method git-fetch)
30289 (uri (git-reference
30290 (url home-page)
30291 (commit version)))
30292 (file-name (git-file-name name version))
30293 (sha256
30294 (base32
30295 "01lh1df0bnas1p7xlqc4i1jd67f8lxgq0q2zsvx10z8828i76j3v"))))
30296 (build-system emacs-build-system)
30297 (propagated-inputs
30298 (list emacs-helm))
30299 (synopsis "Convenient related-buffer selection for Emacs Helm")
30300 (description "Helm Selector is a collection of Helm helper functions for
30301 convenient buffer selection.
30302
30303 It is especially helpful to create Helm sessions to navigate buffers of a
30304 given mode in a “do what I mean” fashion:
30305
30306 If current buffer is not of mode X, switch to last buffer of mode X. If
30307 current buffer is of mode X, show a Helm session of all buffers in mode X. In
30308 the Helm session, it’s also possible to input an arbitrary name which will be
30309 used for the creation of a new buffer of mode X.")
30310 (license license:gpl3+)))
30311
30312 (define-public emacs-helm-wordnut
30313 (let ((commit "9681a9535a839cd5d042c302945ae595852fe7bf"))
30314 (package
30315 (name "emacs-helm-wordnut")
30316 (version (git-version "0.1" "1" commit))
30317 (home-page "https://github.com/emacs-helm/helm-wordnut")
30318 (source
30319 (origin
30320 (method git-fetch)
30321 (uri (git-reference
30322 (url home-page)
30323 (commit commit)))
30324 (file-name (git-file-name name version))
30325 (sha256
30326 (base32
30327 "0msj7nbsb363pxamxi7n2z08cp5jizkpjbwia8f5a161wjglrihs"))))
30328 (build-system emacs-build-system)
30329 (inputs
30330 (list wordnet))
30331 (propagated-inputs
30332 (list emacs-helm))
30333 (arguments
30334 `(#:phases
30335 (modify-phases %standard-phases
30336 (add-after 'unpack 'configure
30337 (lambda* (#:key inputs #:allow-other-keys)
30338 (let ((wn (assoc-ref inputs "wordnet")))
30339 ;; .el is read-only in git.
30340 (chmod "helm-wordnut.el" #o644)
30341 ;; Specify the absolute file names of the various
30342 ;; programs so that everything works out-of-the-box.
30343 (emacs-substitute-variables "helm-wordnut.el"
30344 ("helm-wordnut-prog" (string-append wn "/bin/wn"))
30345 ("helm-wordnut-wordnet-location"
30346 (string-append wn "/dict")))))))))
30347 (synopsis "Emacs Helm interface for Wordnet")
30348 (description "This package is merely a combination of two other Emacs
30349 packages: @code{helm-wordnet} and @code{wordnut}. It features word completion
30350 with Helm and displays a buffer of all the different result types available to
30351 Wordnet.")
30352 (license license:gpl3+))))
30353
30354 (define-public emacs-helm-xref
30355 (package
30356 (name "emacs-helm-xref")
30357 (version "1.0")
30358 (source
30359 (origin
30360 (method git-fetch)
30361 (uri (git-reference
30362 (url "https://github.com/brotzeit/helm-xref")
30363 (commit version)))
30364 (file-name (git-file-name name version))
30365 (sha256
30366 (base32 "0v0wm1x11r1h9p139c5rl0r4s5q6092bmwrsnr2140ddbq34mnvy"))))
30367 (build-system emacs-build-system)
30368 (propagated-inputs
30369 (list emacs-helm))
30370 (home-page "https://github.com/brotzeit/helm-xref")
30371 (synopsis "Helm interface for @code{xref}")
30372 (description "This package provides a Helm interface for selecting
30373 @code{xref} results.")
30374 (license license:gpl3+)))
30375
30376 (define-public emacs-metal-mercury-mode
30377 (let ((commit "99e2d8fb7177cae3bfa2dec2910fc28216d5f5a8")
30378 (revision "1")
30379 (version "0.0.0"))
30380 (package
30381 (name "emacs-metal-mercury-mode")
30382 (version (git-version version revision commit))
30383 (source
30384 (origin
30385 (method git-fetch)
30386 (uri (git-reference
30387 (url "https://github.com/ahungry/metal-mercury-mode")
30388 (commit commit)))
30389 (sha256
30390 (base32
30391 "0iil5k3rgifz2vqwsy12rbv5rzyvidq4sgwazsb2hzys8xynmfn5"))
30392 (file-name (git-file-name name version))))
30393 (build-system emacs-build-system)
30394 (propagated-inputs
30395 (list emacs-dash))
30396 (synopsis "Major mode for editing Mercury files")
30397 (description
30398 "Major mode for editing Mercury files. This is a rewrite of the original
30399 mercury-mode provided by Emacs as a wrapper around prolog-mode.")
30400 (home-page "https://github.com/ahungry/metal-mercury-mode")
30401 (license license:gpl3+))))
30402
30403 (define-public emacs-boxquote
30404 (package
30405 (name "emacs-boxquote")
30406 (version "2.3")
30407 (source
30408 (origin
30409 (method git-fetch)
30410 (uri (git-reference
30411 (url "https://github.com/davep/boxquote.el")
30412 (commit (string-append "v" version))))
30413 (file-name (git-file-name name version))
30414 (sha256
30415 (base32 "0d7m9kcwhbgv4pikaa2dzlg9zkmwdhyx2ksn68di6xzbh838892q"))))
30416 (build-system emacs-build-system)
30417 (home-page "https://github.com/davep/boxquote.el")
30418 (synopsis "Quote text with different kinds of boxes")
30419 (description "@code{boxquote} provides a set of functions for using
30420 a text quoting style that partially boxes in the left hand side of an area of
30421 text, such a marking style might be used to show externally included text or
30422 example code.")
30423 (license license:gpl3+)))
30424
30425 (define-public emacs-buffer-env
30426 (package
30427 (name "emacs-buffer-env")
30428 (version "0.4")
30429 (source (origin
30430 (method url-fetch)
30431 (uri (string-append "https://elpa.gnu.org/packages/buffer-env-"
30432 version ".tar"))
30433 (sha256
30434 (base32
30435 "0y8ik87dqldhn6q631zp2ln9z5byqgm9icrvr4xrdx6g8mr9c56z"))))
30436 (build-system emacs-build-system)
30437 (propagated-inputs (list emacs-compat))
30438 (home-page "https://github.com/astoff/buffer-env")
30439 (synopsis "Create buffer-local process environments")
30440 (description "This package creates buffer-local environments using scripts
30441 similar to Direnv. This allows Emacs to call the correct version of external
30442 programs such as linters, compilers, and language servers on a per-project
30443 basis.")
30444 (license license:gpl3+)))
30445
30446 (define-public emacs-buffer-move
30447 (package
30448 (name "emacs-buffer-move")
30449 (version "0.6.2")
30450 (source
30451 (origin
30452 (method git-fetch)
30453 (uri (git-reference
30454 (url "https://github.com/lukhas/buffer-move")
30455 (commit version)))
30456 (file-name (git-file-name name version))
30457 (sha256
30458 (base32 "0xdks4jfqyhkh34y48iq3gz8swp0f526kwnaai5mhgvazvs4za8c"))))
30459 (build-system emacs-build-system)
30460 (home-page "https://github.com/lukhas/buffer-move")
30461 (synopsis "Functions for moving Emacs' buffers around")
30462 (description
30463 "This package define functions for swapping buffers between windows
30464 contained in the same frame. An alternate behavior is to have the current
30465 window switch to the previous buffer instead of swapping with the other
30466 window.")
30467 (license license:gpl3+)))
30468
30469 (define-public emacs-company-ebdb
30470 (package
30471 (name "emacs-company-ebdb")
30472 (version "1.1")
30473 (source
30474 (origin
30475 (method url-fetch)
30476 (uri (string-append "https://elpa.gnu.org/packages/"
30477 "company-ebdb-" version ".el"))
30478 (sha256
30479 (base32 "146qpiigz12zp1823ggxfrx090g0mxs7gz1ba7sa0iq6ibgzwwm9"))))
30480 (build-system emacs-build-system)
30481 (propagated-inputs
30482 (list emacs-company))
30483 (home-page "https://elpa.gnu.org/packages/company-ebdb.html")
30484 (synopsis "Company completion backend for EBDB in Message mode")
30485 (description "@code{company-ebdb} provides Company mode integration for
30486 EBDB. It is copied more or less intact from @code{company-bbdb}, originally
30487 by Jan Tatarik.")
30488 (license license:gpl3+)))
30489
30490 (define-public emacs-mwim
30491 ;; Use the latest commit not in a release version as of yet, since it
30492 ;; contains a bug fix for the cases where `comment-start-skip' is nil.
30493 (let ((commit "b4f3edb4c0fb8f8b71cecbf8095c2c25a8ffbf85")
30494 (revision "0"))
30495 (package
30496 (name "emacs-mwim")
30497 (version (git-version "0.4" revision commit))
30498 (source
30499 (origin
30500 (method git-fetch)
30501 (uri (git-reference
30502 (url "https://github.com/alezost/mwim.el")
30503 (commit commit)))
30504 (file-name (git-file-name name version))
30505 (sha256
30506 (base32 "0l3k611gp9g2x2vfmh92wnhnda81dslpwwpb8mxmzk308man77ya"))))
30507 (build-system emacs-build-system)
30508 (home-page "https://github.com/alezost/mwim.el")
30509 (synopsis "Move to the beginning/end of line, code or comment")
30510 (description "@code{mwim} provides several commands to switch between
30511 various line positions, like moving to the beginning/end of code, line, or
30512 comment.")
30513 (license license:gpl3+))))
30514
30515 (define-public emacs-delight
30516 (package
30517 (name "emacs-delight")
30518 (version "1.7")
30519 (source
30520 (origin
30521 (method url-fetch)
30522 (uri (string-append "https://elpa.gnu.org/packages/"
30523 "delight-" version ".el"))
30524 (sha256
30525 (base32 "0pihsghrf9xnd1kqlq48qmjcmp5ra95wwwgrb3l8m1wagmmc0bi1"))))
30526 (build-system emacs-build-system)
30527 (home-page "https://elpa.gnu.org/packages/delight.html")
30528 (synopsis "Dimmer switch for your mode-line lighter text")
30529 (description "@code{delight} enables customizing or hiding the
30530 mode-line text (lighter) of major and minor modes.")
30531 (license license:gpl3+)))
30532
30533 (define-public emacs-unkillable-scratch
30534 ;; Use the latest (unreleased) commit as of now, since it contains a handy
30535 ;; `unkillable-scratch-do-not-reset-scratch-buffer' customization to not
30536 ;; repopulate the scratch buffer with `initial-scratch-message'.
30537 (let ((commit "b24c2a760529833f230c14cb02ff6e7ec92288ab")
30538 (revision "0"))
30539 (package
30540 (name "emacs-unkillable-scratch")
30541 (version (git-version "1.0.0" revision commit))
30542 (source
30543 (origin
30544 (method git-fetch)
30545 (uri (git-reference
30546 (url "https://github.com/EricCrosson/unkillable-scratch")
30547 (commit commit)))
30548 (file-name (git-file-name name version))
30549 (sha256
30550 (base32 "13wjbcxr3km4s96yhpavgs5acs5pvqv3ih1p84diqb3x3i6wd4pa"))))
30551 (build-system emacs-build-system)
30552 (home-page "https://github.com/EricCrosson/unkillable-scratch")
30553 (synopsis "Prevents the *scratch* buffer from being killed")
30554 (description "@code{unkillable-scratch} helps prevent killing buffers
30555 matching a given regexp.")
30556 (license license:gpl2+))))
30557
30558 (define-public emacs-switch-buffer-functions
30559 (package
30560 (name "emacs-switch-buffer-functions")
30561 (version "0.0.1")
30562 (source
30563 (origin
30564 (method git-fetch)
30565 (uri (git-reference
30566 (url "https://github.com/10sr/switch-buffer-functions-el")
30567 (commit (string-append "v" version))))
30568 (file-name (git-file-name name version))
30569 (sha256
30570 (base32 "0pq53b8wrjbrxd5hnrcdi0z7mffp4bax55hn90k9ca3j76lhbn1k"))))
30571 (build-system emacs-build-system)
30572 (home-page "https://github.com/10sr/switch-buffer-functions-el")
30573 (synopsis "Hooks run when switching current buffer")
30574 (description "This package provides a hook variable
30575 @code{switch-buffer-functions}. The hooks will be run when the current buffer
30576 is changed after an interactive command, i.e., when @code{post-command-hook}
30577 hooks are run. The hooked functions will be called with both the previous and
30578 the current buffer.")
30579 (license license:unlicense)))
30580
30581 (define-public emacs-erc-scrolltoplace
30582 (package
30583 (name "emacs-erc-scrolltoplace")
30584 (version "0.1.0")
30585 (source
30586 (origin
30587 (method git-fetch)
30588 (uri (git-reference
30589 (url "https://gitlab.com/jgkamat/erc-scrolltoplace.git")
30590 (commit version)))
30591 (file-name (git-file-name name version))
30592 (sha256
30593 (base32 "11zpqwh1mlfifbgnvhc63bvnhg340jgxssm3m43hr1sxsyb52lh6"))))
30594 (build-system emacs-build-system)
30595 (propagated-inputs
30596 (list emacs-switch-buffer-functions))
30597 (home-page "https://gitlab.com/jgkamat/erc-scrolltoplace")
30598 (synopsis "ERC module to replace scrolltobottom while using keep-place")
30599 (description "@code{erc-scrolltoplace} is an ERC module to try
30600 to emulate @code{scrolltobottom} while @code{keep-place} is enabled.")
30601 (license license:gpl3+)))
30602
30603 (define-public emacs-dmenu
30604 ;; Use the latest commit, as there are no tagged releases.
30605 (let ((commit "e8cc9b27c79d3ecc252267c082ab8e9c82eab264")
30606 (revision "0"))
30607 (package
30608 (name "emacs-dmenu")
30609 (version (git-version "0.1" revision commit))
30610 (source
30611 (origin
30612 (method git-fetch)
30613 (uri (git-reference
30614 (url "https://github.com/lujun9972/el-dmenu")
30615 (commit commit)))
30616 (file-name (git-file-name name version))
30617 (sha256
30618 (base32 "098ncygms1r33zhjlq4fj2p4jc91v5whqrm3fazzdk7sd6dilf25"))))
30619 (build-system emacs-build-system)
30620 (home-page "https://github.com/lujun9972/el-dmenu")
30621 (synopsis "Simulate the @command{dmenu} command line program")
30622 (description "This package provides a @command{dmenu} command for
30623 launching other commands/applications from within Emacs, similar to the
30624 @command{dmenu} program. This is especially useful when using EXWM.")
30625 (license license:gpl3+))))
30626
30627 (define-public emacs-no-littering
30628 (package
30629 (name "emacs-no-littering")
30630 (version "1.2.7")
30631 (source
30632 (origin
30633 (method git-fetch)
30634 (uri (git-reference
30635 (url "https://github.com/emacscollective/no-littering")
30636 (commit (string-append "v" version))))
30637 (file-name (git-file-name name version))
30638 (sha256
30639 (base32 "1grc5fk7ng4d6i8fwfpm3cb2b19s9sbdjbdn8ybchk7cj45kkl24"))))
30640 (build-system emacs-build-system)
30641 (home-page "https://github.com/emacscollective/no-littering")
30642 (synopsis "Help keep @file{~/.emacs.d/} clean")
30643 (description "The default paths used to store configuration files and
30644 persistent data are not consistent across Emacs packages, be them built-in or
30645 third-party ones. @code{no-littering} sets out to help clean
30646 @file{~/.emacs.d/} by putting configuration files and persistent data files in
30647 two user-defined directories, as well as using more descriptive names for
30648 files and subdirectories when appropriate.")
30649 (license license:gpl3+)))
30650
30651 (define-public emacs-meson-mode
30652 (package
30653 (name "emacs-meson-mode")
30654 (version "0.3")
30655 (source
30656 (origin
30657 (method git-fetch)
30658 (uri (git-reference
30659 (url "https://github.com/wentasah/meson-mode")
30660 (commit (string-append "v" version))))
30661 (file-name (git-file-name name version))
30662 (sha256
30663 (base32 "0hlqvq3j4f6g16nj3bm2wbkncn8hv8c8iqd0sch3w80wwqnr622y"))))
30664 (build-system emacs-build-system)
30665 (home-page "https://github.com/wentasah/meson-mode")
30666 (synopsis "Major mode for Meson build system files")
30667 (description
30668 "This is an Emacs major mode for Meson build system files. Syntax
30669 highlighting works reliably. Indentation works too, but there are probably
30670 cases where it breaks.")
30671 (license license:gpl3+)))
30672
30673 (define-public emacs-message-x
30674 ;; Use the latest commit, as there are no tagged releases.
30675 (let ((commit "5524de7bbfdd8749c110f48de5afb024d9f83133")
30676 (revision "0"))
30677 (package
30678 (name "emacs-message-x")
30679 (version (git-version "1.23" revision commit))
30680 (source
30681 (origin
30682 (method git-fetch)
30683 (uri (git-reference
30684 (url "https://github.com/emacsmirror/message-x")
30685 (commit commit)))
30686 (file-name (git-file-name name version))
30687 (sha256
30688 (base32 "0qy1xf11j357lsnbb829hnbg7fq1cii4cx54fwf0wgjh1bv2abvj"))))
30689 (build-system emacs-build-system)
30690 (home-page "https://www.emacswiki.org/emacs/message-x.el")
30691 (synopsis "Customizable completion in message headers")
30692 (description "@code{message-x} assigns a context-sensitive function to
30693 the TAB key in Message mode. When on a header line, it performs completion
30694 based on which header we are in (for example, newsgroup name completion makes
30695 sense on the @samp{Newsgroups} header, whereas mail alias expansion makes
30696 sense in the @samp{To} and @samp{Cc} headers). When in the message body, this
30697 executes a different function (default: @code{indent-relative}).")
30698 (license license:gpl2+))))
30699
30700 (define-public emacs-glsl-mode
30701 ;; No tag, version grabbed from source .el file.
30702 (let ((commit "b07112016436d9634cd4ef747f9af6b01366d136")
30703 (revision "0"))
30704 (package
30705 (name "emacs-glsl-mode")
30706 (version (git-version "2.4" revision commit))
30707 (source
30708 (origin
30709 (method git-fetch)
30710 (uri (git-reference
30711 (url "https://github.com/jimhourihan/glsl-mode")
30712 (commit commit)))
30713 (file-name (git-file-name name version))
30714 (sha256
30715 (base32 "0bav9ipfm0vy26n74ngsmjzc7fsyqz6xmriadzx55s44h8p5dn1s"))))
30716 (build-system emacs-build-system)
30717 (home-page "https://github.com/jimhourihan/glsl-mode")
30718 (synopsis "Major mode for Open GLSL shader files")
30719 (description
30720 "This package provides a major mode for editing OpenGLSL grammar files,
30721 usually files ending with @file{.vert}, @file{.frag}, @file{.glsl} or
30722 @file{.geom}. It is based on C mode plus some features and pre-specified
30723 fontifications.")
30724 (license license:gpl3+))))
30725
30726 (define-public emacs-gnus-harvest
30727 (let ((commit "feda071a87b799bd5d23cacde3ee71f0b166e75d")
30728 (revision "0"))
30729 (package
30730 (name "emacs-gnus-harvest")
30731 (version (git-version "1.0" revision commit))
30732 (source
30733 (origin
30734 (method git-fetch)
30735 (uri (git-reference
30736 (url "https://github.com/jwiegley/gnus-harvest")
30737 (commit commit)))
30738 (file-name (git-file-name name version))
30739 (sha256
30740 (base32 "08zb7vc3v3wdxkzgi902vlc5ybfvm8fxrvm5drnwfsjj9873pbcb"))))
30741 (build-system emacs-build-system)
30742 (inputs
30743 (list sqlite))
30744 (arguments
30745 `(#:phases
30746 (modify-phases %standard-phases
30747 (add-before 'build 'patch-exec-paths
30748 (lambda* (#:key inputs #:allow-other-keys)
30749 (let ((sqlite (assoc-ref inputs "sqlite"))
30750 (file "gnus-harvest.el"))
30751 (make-file-writable file)
30752 (emacs-substitute-variables file
30753 ("gnus-harvest-sqlite-program"
30754 (string-append sqlite "/bin/sqlite3"))))
30755 #t)))))
30756 (home-page "https://github.com/jwiegley/gnus-harvest")
30757 (synopsis
30758 "Harvest email addresses from read/written Gnus articles")
30759 (description "@code{gnus-harvest} notices email address in every message
30760 or post you read or write, and collects them in a SQLite database, which can
30761 be easily and quickly queried to determine the completion list. It optionally
30762 uses BBDB and Message-X.")
30763 (license license:gpl3+))))
30764
30765 (define-public emacs-auto-dictionary-mode
30766 (package
30767 (name "emacs-auto-dictionary-mode")
30768 (version "1.1")
30769 (source
30770 (origin
30771 (method git-fetch)
30772 (uri (git-reference
30773 (url "https://github.com/nschum/auto-dictionary-mode")
30774 (commit version)))
30775 (file-name (git-file-name name version))
30776 (sha256
30777 (base32 "191294k92qp8gmfypf0q8j8qrym96aqikzvyb9p03wqvbr3r1dsk"))))
30778 (build-system emacs-build-system)
30779 (home-page "http://nschum.de/src/emacs/auto-dictionary/")
30780 (synopsis "Automatic dictionary switcher for Emacs spell checking")
30781 (description "@code{auto-dictionary} is a minor mode that hooks into
30782 Flyspell's on-the-fly spell checking and extends these checks to also detect
30783 language. Auto-dictionary then sets @code{ispell-dictionary} to use the
30784 detected language.")
30785 (license license:gpl2+)))
30786
30787 (define-public emacs-persist
30788 (package
30789 (name "emacs-persist")
30790 (version "0.5")
30791 (source
30792 (origin
30793 (method url-fetch)
30794 (uri (string-append "https://elpa.gnu.org/packages/"
30795 "persist-" version ".tar"))
30796 (sha256
30797 (base32 "090n4479zs82by7a3vb551gyjvv8lpfcylk43ywr2lfyssc9xiq0"))))
30798 (build-system emacs-build-system)
30799 (home-page "http://elpa.gnu.org/packages/persist.html")
30800 (synopsis "Persist variables between Emacs sessions")
30801 (description
30802 "This package provides variables which persist across sessions.
30803 Values are stored in a directory in @code{user-emacs-directory}, using
30804 one file per value. This makes it easy to delete or remove unused
30805 variables.")
30806 (license license:gpl3+)))
30807
30808 (define-public emacs-company-emoji
30809 (package
30810 (name "emacs-company-emoji")
30811 (version "2.6.1")
30812 (source
30813 (origin
30814 (method git-fetch)
30815 (uri (git-reference
30816 (url "https://github.com/dunn/company-emoji/")
30817 (commit version)))
30818 (file-name (git-file-name name version))
30819 (sha256
30820 (base32 "1rhf2hr345953mkn52i58aiq8j16ps2ckapd5f7jxmhkcpzxxfhk"))))
30821 (build-system emacs-build-system)
30822 (propagated-inputs
30823 (list emacs-company))
30824 (home-page "https://github.com/dunn/company-emoji/")
30825 (synopsis "Company completion back-end for emoji")
30826 (description
30827 "This library is a Company back-end providing auto-completion for
30828 emoji.")
30829 (license license:gpl3+)))
30830
30831 (define-public emacs-exiftool
30832 (package
30833 (name "emacs-exiftool")
30834 (version "0.3.2")
30835 (source
30836 (origin
30837 (method git-fetch)
30838 (uri (git-reference
30839 (url "https://git.systemreboot.net/exiftool.el/")
30840 (commit (string-append "v" version))))
30841 (file-name (git-file-name name version))
30842 (sha256
30843 (base32
30844 "0bv58is66cz21yhc0qqkp1z4nk13zfi2l7i6pjbhyi0g1n88qqyv"))))
30845 (build-system emacs-build-system)
30846 (arguments
30847 `(#:tests? #t
30848 #:test-command '("make" "-C" "tests")
30849 #:phases
30850 (modify-phases %standard-phases
30851 (add-after 'unpack 'configure
30852 (lambda* (#:key inputs #:allow-other-keys)
30853 (make-file-writable "exiftool.el")
30854 (emacs-substitute-variables "exiftool.el"
30855 ("exiftool-executable"
30856 (search-input-file inputs "/bin/exiftool"))))))))
30857 (inputs
30858 (list perl-image-exiftool))
30859 (home-page "https://git.systemreboot.net/exiftool.el/about/")
30860 (synopsis "Elisp wrapper around ExifTool")
30861 (description "@code{emacs-exiftool} is an Elisp wrapper around ExifTool.
30862 ExifTool supports reading and writing metadata in various formats including
30863 EXIF, XMP and IPTC.")
30864 (license license:gpl3+)))
30865
30866 (define-public emacs-password-generator
30867 (package
30868 (name "emacs-password-generator")
30869 (version "1.01")
30870 (home-page "https://github.com/zargener/emacs-password-genarator")
30871 (source
30872 (origin
30873 (method git-fetch)
30874 (uri (git-reference
30875 (url home-page)
30876 (commit "904cdb591a04305ba882ce19e1d117f5fa60f7d3")))
30877 (file-name (git-file-name name version))
30878 (sha256
30879 (base32
30880 "1qgvn79qz1h8ykm5i1qv2fja4v2y0g2i0n5sf7byhnqhqlwn63nv"))))
30881 (build-system emacs-build-system)
30882 (synopsis "Generate passwords inside Emacs")
30883 (description "@code{emacs-password-generator} provides simple functions to
30884 generate random passwords and insert them into the current buffer. It also
30885 supports generation of phonetic and numeric passwords.")
30886 (license license:artistic2.0)))
30887
30888 (define-public emacs-csv
30889 (package
30890 (name "emacs-csv")
30891 (version "2.1")
30892 (home-page "https://gitlab.com/u11/csv.el")
30893 (source
30894 (origin
30895 (method git-fetch)
30896 (uri (git-reference
30897 (url home-page)
30898 (commit (string-append "V" version))))
30899 (file-name (git-file-name name version))
30900 (sha256
30901 (base32
30902 "1vmazjrfcsa9aa9aw8bq5sazdhqvhxyj837dyw5lmh8gk7z0xdaa"))))
30903 (build-system emacs-build-system)
30904 (synopsis "Elisp functions for reading and parsing CSV files")
30905 (description
30906 "@code{csv.el} provides functions for reading and parsing @acronym{CSV,
30907 Comma-Separated Values} files. It follows the format as defined in RFC 4180
30908 @emph{Common Format and MIME Type for CSV
30909 Files} (@url{http://tools.ietf.org/html/rfc4180}).")
30910 (license license:gpl3+)))
30911
30912 (define-public emacs-org-journal
30913 (package
30914 (name "emacs-org-journal")
30915 (version "2.1.2")
30916 (source
30917 (origin
30918 (method git-fetch)
30919 (uri (git-reference
30920 (url "https://github.com/bastibe/org-journal")
30921 (commit version)))
30922 (file-name (git-file-name name version))
30923 (sha256
30924 (base32 "0s82sh2svc0mzr1ak414n5r2j0dmwvvyx4swk2c61zivc2gjd778"))))
30925 (build-system emacs-build-system)
30926 (home-page "https://github.com/bastibe/org-journal")
30927 (synopsis "Simple Org mode journaling mode")
30928 (description
30929 "Org Journal is a set of functions to maintain a simple personal diary /
30930 journal using in Emacs, adapted from
30931 @url{https://www.emacswiki.org/emacs/PersonalDiary}. Convenient bindings
30932 allow the creation of journal records in the current daily, weekly, monthly or
30933 yearly file and search within all records or specified time intervals. All
30934 records can be browsed and searched from the Emacs Calendar for convenience.
30935 All entries in a specified TODO state will be carried over to the next day.")
30936 (license license:bsd-3)))
30937
30938 (define-public emacs-org-static-blog
30939 (package
30940 (name "emacs-org-static-blog")
30941 (version "1.6.0")
30942 (source
30943 (origin
30944 (method git-fetch)
30945 (uri (git-reference
30946 (url "https://github.com/bastibe/org-static-blog")
30947 (commit version)))
30948 (file-name (git-file-name name version))
30949 (sha256
30950 (base32 "0p3bhnp91x65xr5d40kdmyj7vgyq62bvq3b1gfwv7881sh8p6hr9"))))
30951 (build-system emacs-build-system)
30952 (home-page "https://github.com/bastibe/org-static-blog")
30953 (synopsis
30954 "Simple Org mode based static blog generator")
30955 (description
30956 "@code{emacs-org-static-blog} is one more static blog generator, it
30957 focuses on being simple. All files are simple Org files in a directory. The
30958 only requirement is that every Org file must have a @samp{title} and
30959 a @samp{date} keywords, and optionally, a @samp{filetags} keyword.")
30960 (license license:bsd-3)))
30961
30962 (define-public emacs-ddskk
30963 ;; XXX: Upstream adds code names to their release tags, so version and code
30964 ;; name below need to be updated together.
30965 (let ((version "17.1")
30966 (code-name "Neppu"))
30967 (package
30968 (name "emacs-ddskk")
30969 (version version)
30970 (source
30971 (origin
30972 (method git-fetch)
30973 (uri (git-reference
30974 (url "https://github.com/skk-dev/ddskk")
30975 (commit (string-append "ddskk-" version "_" code-name))))
30976 (file-name (git-file-name name version))
30977 (sha256
30978 (base32 "0xm53rybxki2784gyjkafg6956viyhhcq51kbmnrwc6aw3yzh7aw"))))
30979 (build-system gnu-build-system)
30980 (arguments
30981 `(#:modules ((guix build gnu-build-system)
30982 (guix build utils)
30983 (guix build emacs-utils))
30984 #:imported-modules (,@%gnu-build-system-modules
30985 (guix build emacs-utils))
30986 #:test-target "test"
30987 #:phases
30988 (modify-phases %standard-phases
30989 (replace 'configure
30990 (lambda* (#:key outputs #:allow-other-keys)
30991 (make-file-writable "SKK-MK")
30992 (emacs-substitute-variables "SKK-MK"
30993 ("PREFIX" (assoc-ref outputs "out"))
30994 ("LISPDIR" '(expand-file-name "/share/emacs/site-lisp" PREFIX))
30995 ("SKK_PREFIX" "")
30996 ("SKK_INFODIR" '(expand-file-name "info" PREFIX)))
30997 (for-each make-file-writable (find-files "./doc"))
30998 #t))
30999 (add-after 'unpack 'fix-test
31000 (lambda _
31001 (substitute* "Makefile"
31002 (("/bin/rm") (which "rm"))))))))
31003 (native-inputs
31004 (list emacs-minimal ruby))
31005 (home-page "https://github.com/skk-dev/ddskk")
31006 (synopsis "Simple Kana to Kanji conversion program")
31007 (description
31008 "Daredevil SKK is a version of @acronym{SKK, Simple Kana to Kanji
31009 conversion program}, a Japanese input method on Emacs.")
31010 (license license:gpl2+))))
31011
31012 (define-public emacs-ddskk-nicola
31013 (package
31014 (inherit emacs-ddskk)
31015 (name "emacs-ddskk-nicola")
31016 (propagated-inputs
31017 (list emacs-ddskk))
31018 (arguments
31019 `(#:make-flags
31020 (let ((out (assoc-ref %outputs "out")))
31021 (append
31022 (list (string-append "PREFIX=" out)
31023 (string-append "LISPDIR=" out "/share/emacs/site-lisp"))))
31024 #:tests? #f ; no tests in this subtree
31025 ,@(substitute-keyword-arguments (package-arguments emacs-ddskk)
31026 ((#:phases phases)
31027 `(modify-phases ,phases
31028 (add-after 'unpack 'chdir
31029 (lambda _
31030 (chdir "nicola")
31031 #t))
31032 (replace 'configure
31033 (lambda* (#:key outputs #:allow-other-keys)
31034 (make-file-writable "NICOLA-DDSKK-CFG")
31035 (emacs-substitute-sexps "NICOLA-DDSKK-CFG"
31036 ("setq NICOLA-DDSKK_PREFIX" ""))
31037 #t)))))))
31038 (synopsis "Nicola layout for Daredevil SKK")
31039 (description
31040 "Daredevil SKK is a version of @acronym{SKK, Simple Kana to Kanji
31041 conversion program}, a Japanese input method on Emacs. This package adds
31042 support for the Nicola keyboard layout to it.")))
31043
31044 (define-public emacs-tamil99
31045 (package
31046 (name "emacs-tamil99")
31047 (version "0.1.2")
31048 (source (origin
31049 (method git-fetch)
31050 (uri (git-reference
31051 (url "https://git.systemreboot.net/tamil99/")
31052 (commit (string-append "v" version))))
31053 (file-name (git-file-name name version))
31054 (sha256
31055 (base32
31056 "12sr59b2ngay66snb2m4a5zy6n11ahnmc5wy42l3ks7fd4cc5rgs"))))
31057 (build-system emacs-build-system)
31058 (home-page "https://git.systemreboot.net/tamil99/about/")
31059 (synopsis "Tamil99 input method for Emacs")
31060 (description "This package implements the @code{tamil99} input method for
31061 Emacs. Tamil99 is a keyboard layout and input method that is specifically
31062 designed for the Tamil language. Vowels and vowel modifiers are input with
31063 your left hand, and consonants are input with your right hand.")
31064 (license license:gpl3+)))
31065
31066 (define-public emacs-objed
31067 (package
31068 (name "emacs-objed")
31069 (version "0.8.3")
31070 (source
31071 (origin
31072 (method url-fetch)
31073 (uri (string-append
31074 "https://elpa.gnu.org/packages/objed-" version ".tar"))
31075 (sha256
31076 (base32
31077 "1s38d6bvggdk5p45ww1jb4gxifzgjwgw1m6ar920nlg0j4fgbcvr"))))
31078 (build-system emacs-build-system)
31079 (home-page "https://github.com/clemera/objed")
31080 (synopsis "Navigate and edit text objects")
31081 (description
31082 "@code{emacs-objed} allows navigating and editing text objects. It
31083 enables modal editing and composition of commands, too. It combines ideas of
31084 other Editors like Vim or Kakoune and tries to align them with regular Emacs
31085 conventions.")
31086 (license license:gpl3+)))
31087
31088 (define-public emacs-haskell-snippets
31089 ;; The commit below is 7 commits ahead of release, and includes a build fix.
31090 ;; And also a fix in one snippet.
31091 (let ((commit "1c29c4a68ce89848b8d371c6510d1de3b586c8b3"))
31092 (package
31093 (name "emacs-haskell-snippets")
31094 (version (git-version "0.1.0" "1" commit))
31095 (source
31096 (origin
31097 (method git-fetch)
31098 (uri
31099 (git-reference
31100 (url "https://github.com/haskell/haskell-snippets")
31101 (commit commit)))
31102 (file-name (git-file-name name version))
31103 (sha256
31104 (base32 "1lwnggarmavyf164cfzbzzkq9ffahhd3bz7gw644czs49sndcawf"))))
31105 (build-system emacs-build-system)
31106 (arguments
31107 (list
31108 #:phases
31109 #~(modify-phases %standard-phases
31110 (add-after 'install 'install-snippets
31111 (lambda _
31112 (let ((snippets
31113 (string-append
31114 #$output "/share/emacs/site-lisp/snippets/haskell-mode")))
31115 (mkdir-p snippets)
31116 (copy-recursively "snippets/haskell-mode" snippets)))))))
31117 (propagated-inputs
31118 (list emacs-yasnippet))
31119 (home-page "https://github.com/haskell/haskell-snippets")
31120 (synopsis "Official collection of YASnippet Haskell snippets for Emacs")
31121 (description "Haskell-Snippets is a collection of YASnippet Haskell
31122 snippets for Emacs.")
31123 (license license:expat))))
31124
31125 (define-public emacs-orca
31126 ;; XXX: Upstream did not tag any commit so far. Base version is extracted
31127 ;; from Version keyword.
31128 (let ((commit "0687f416a5573f63b691d384454f5a793266ed97")
31129 (revision "0"))
31130 (package
31131 (name "emacs-orca")
31132 (version (git-version "0.1.0" revision commit))
31133 (source
31134 (origin
31135 (method git-fetch)
31136 (uri (git-reference
31137 (url "https://github.com/abo-abo/orca")
31138 (commit commit)))
31139 (sha256
31140 (base32 "00a363vkqvryw5s7pj0kh8pqq5vvbf1pmbzz0b1z1fckwr49sv0f"))))
31141 (build-system emacs-build-system)
31142 (propagated-inputs (list emacs-zoutline))
31143 (home-page "https://github.com/abo-abo/orca")
31144 (synopsis "Handler for Org Capture")
31145 (description
31146 "This package provides several convenient recipes for configuring Org
31147 Capture, mainly for capturing from a browser. It can match URLs and inject
31148 the capture in a targeted Org file, under a targeted heading. The more this
31149 package is configured, the less refiling is needed on your captures: they will
31150 go directly to where they belong.")
31151 (license license:gpl3+))))
31152
31153 (define-public emacs-org-roam
31154 (package
31155 (name "emacs-org-roam")
31156 (version "2.2.2")
31157 (source
31158 (origin
31159 (method git-fetch)
31160 (uri (git-reference
31161 (url "https://github.com/org-roam/org-roam")
31162 (commit (string-append "v" version))))
31163 (file-name (git-file-name name version))
31164 (sha256
31165 (base32 "09wcqdqy2gcsyd1mbcm90b70y3qj921m4ky8l3avhzpdwgyw8wy5"))))
31166 (build-system emacs-build-system)
31167 (arguments
31168 (list
31169 #:phases
31170 #~(modify-phases %standard-phases
31171 ;; Move the extensions source files to the top level, which
31172 ;; is included in the EMACSLOADPATH.
31173 (add-after 'unpack 'move-source-files
31174 (lambda _
31175 (let ((el-files (find-files "./extensions" ".*\\.el$")))
31176 (for-each (lambda (f)
31177 (rename-file f (basename f)))
31178 el-files))))
31179 (add-after 'move-source-files 'patch-exec-paths
31180 (lambda* (#:key inputs #:allow-other-keys)
31181 (make-file-writable "org-roam-graph.el")
31182 (emacs-substitute-variables "org-roam-graph.el"
31183 ("org-roam-graph-executable"
31184 (search-input-file inputs "/bin/dot")))))
31185 (add-after 'install 'install-image
31186 (lambda* (#:key outputs #:allow-other-keys)
31187 (install-file "doc/images/org-ref-citelink.png"
31188 (string-append #$output "/share/info/images"))))
31189 (add-after 'install-image 'make-info
31190 (lambda* (#:key outputs #:allow-other-keys)
31191 (with-directory-excursion "doc"
31192 (invoke "makeinfo" "-o" "org-roam.info" "org-roam.texi")
31193 (install-file "org-roam.info"
31194 (string-append #$output "/share/info"))))))))
31195 (inputs
31196 (list graphviz))
31197 (native-inputs
31198 (list texinfo))
31199 (propagated-inputs
31200 (list emacs-dash
31201 emacs-emacsql-sqlite3
31202 emacs-f
31203 emacs-magit
31204 emacs-org
31205 emacs-s))
31206 (home-page "https://github.com/org-roam/org-roam/")
31207 (synopsis "Non-hierarchical note-taking with Org mode")
31208 (description "Emacs Org Roam is a solution for taking non-hierarchical
31209 notes with Org mode. Notes are captured without hierarchy and are connected
31210 by tags. Notes can be found and created quickly. Org Roam should also work
31211 as a plug-and-play solution for anyone already using Org mode for their
31212 personal wiki.")
31213 (license license:gpl3+)))
31214
31215 (define-public emacs-org-roam-bibtex
31216 (package
31217 (name "emacs-org-roam-bibtex")
31218 (version "0.6.2")
31219 (source
31220 (origin
31221 (method git-fetch)
31222 (uri (git-reference
31223 (url "https://github.com/org-roam/org-roam-bibtex")
31224 (commit (string-append "v" version))))
31225 (file-name (git-file-name name version))
31226 (sha256
31227 (base32 "166n1q30xamms4lfqq9vp0yknq33gwlk54qaravxxwz01fdpgb25"))))
31228 (build-system emacs-build-system)
31229 (propagated-inputs
31230 (list emacs-helm-bibtex emacs-org-ref emacs-org-roam))
31231 (home-page "https://github.com/org-roam/org-roam-bibtex")
31232 (synopsis "Connector between Org Roam, BibTeX-completion, and Org Ref")
31233 (description
31234 "Org Roam BibTeX is a library which offers a tighter integration between
31235 Org Roam, Helm-BibTeX, and Org Ref. It allows users to access their
31236 bibliographical notes in Org Roam directory via Helm BibTeX, Ivy BibTeX, or by
31237 opening Org Ref's @code{cite:} links.")
31238 (license license:gpl3+)))
31239
31240 (define-public emacs-org-generate
31241 (package
31242 (name "emacs-org-generate")
31243 (version "1.0.0")
31244 (source (origin
31245 (method git-fetch)
31246 (uri (git-reference
31247 (url "https://github.com/conao3/org-generate.el")
31248 (commit (string-append "v" version))))
31249 (file-name (git-file-name name version))
31250 (sha256
31251 (base32
31252 "0z2frp5mn3lp2xskwanw2rncrwa50x3aphy87vfxmhx4fqlqrzy8"))))
31253 (inputs
31254 (list emacs-cort emacs-with-simulated-input))
31255 (propagated-inputs
31256 (list emacs-mustache))
31257 (arguments
31258 ;; FIXME: Tests fail with "Wrong type argument: sequencep, :equal". It
31259 ;; seems to be an issue with Cort library.
31260 `(#:tests? #f
31261 #:test-command '("emacs" "--batch" "--quick"
31262 "--directory=." "--load=org-generate-tests.el"
31263 "--funcall=cort-test-run")))
31264 (build-system emacs-build-system)
31265 (home-page "https://github.com/conao3/org-generate.el")
31266 (synopsis "Generate template files and folders from Org document")
31267 (description "This package generates files and folders from Emacs
31268 org-mode templates.")
31269 (license license:gpl3+)))
31270
31271 (define-public emacs-uml-mode
31272 ;; Package has no release. Version is extracted from "Version:" keyword in
31273 ;; main file.
31274 (let ((commit "4c37ac1c4424b2313cd8f16ba48a98a4cc214200")
31275 (revision "1"))
31276 (package
31277 (name "emacs-uml-mode")
31278 (version (git-version "0.0.4" revision commit))
31279 (source
31280 (origin
31281 (method git-fetch)
31282 (uri (git-reference
31283 (url "https://github.com/ianxm/emacs-uml")
31284 (commit commit)))
31285 (file-name (git-file-name name version))
31286 (sha256
31287 (base32 "145i4srnfvd1vyibri2a1l6p9mbjvkkwlrpi41134pbarqffcnka"))))
31288 (build-system emacs-build-system)
31289 (home-page "https://github.com/ianxm/emacs-uml")
31290 (synopsis "Minor mode for editing ASCII UML sequence diagrams")
31291 (description "Emacs UML mode is a minor mode that makes it easy to build
31292 ASCII UML sequence diagrams in Emacs, which can be embedded in source code,
31293 comments or emails.")
31294 (license license:gpl3+))))
31295
31296 (define-public emacs-trashed
31297 (package
31298 (name "emacs-trashed")
31299 (version "2.1.3")
31300 (source
31301 (origin
31302 (method git-fetch)
31303 (uri (git-reference
31304 (url "https://github.com/shingo256/trashed/")
31305 (commit version)))
31306 (file-name (git-file-name name version))
31307 (sha256
31308 (base32 "08v7g2zgrad0r0n4pla8j3i2aql46byq82jr712cvxhydd5gnzf9"))))
31309 (build-system emacs-build-system)
31310 (home-page "https://github.com/shingo256/trashed/")
31311 (synopsis "View and edit system trash can in Emacs")
31312 (description "Open, view, browse, restore or permanently delete trashed
31313 files or directories in trash can with Dired-like look and feel. The trash
31314 can has to be compliant with freedesktop.org. In Emacs, you can trash files by
31315 deleting them with @code{(setq delete-by-moving-to-trash t)}. This package
31316 provides a simple but convenient user interface to manage those trashed
31317 files.")
31318 (license license:gpl3+)))
31319
31320 (define-public emacs-placeholder
31321 ;; No tags.
31322 (let ((commit "b80cb152ddd63db40cc581eafee9d2ac08328df8"))
31323 (package
31324 (name "emacs-placeholder")
31325 (version "0.1")
31326 (source (origin
31327 (method git-fetch)
31328 (uri (git-reference
31329 (url "https://github.com/oantolin/placeholder")
31330 (commit commit)))
31331 (file-name (git-file-name name version))
31332 (sha256
31333 (base32
31334 "1ifiaxrp7inj70a3zf5137dih4b1sw38zmkp3h7dj79k2bv7h34h"))))
31335 (build-system emacs-build-system)
31336 (home-page "https://github.com/oantolin/placeholder")
31337 (synopsis "Treat any buffer as a template with placeholders to fill-in")
31338 (description
31339 "This package provides a simple way to treat text in a buffer as a template
31340 with placeholders where text needs to be filled in. Any occurrence of
31341 @code{<++>} in the buffer is a placeholder. You can navigate among the
31342 placeholder with the placeholder-forward and placeholder-backward commands.
31343 They move the point to the next placeholder in the specified direction and
31344 delete the placeholder so you can immediately start typing the text that
31345 should replace it. However, if you call them again immediately after, they
31346 restore that occurrence of the placeholder and move to the next.")
31347 (license license:gpl3+))))
31348
31349 (define-public emacs-plantuml-mode
31350 (package
31351 (name "emacs-plantuml-mode")
31352 (version "1.4.1")
31353 (source
31354 (origin
31355 (method git-fetch)
31356 (uri (git-reference
31357 (url "https://github.com/skuro/plantuml-mode")
31358 (commit (string-append "v" version))))
31359 (file-name (git-file-name name version))
31360 (sha256
31361 (base32 "0yp41d2dmf3sx7qnl5x0zdjcr9y71b2wwc9m0q31v22xqn938ipc"))))
31362 (arguments
31363 '(#:phases
31364 (modify-phases %standard-phases
31365 (add-after 'unpack 'use-local-plantuml
31366 (lambda* (#:key inputs #:allow-other-keys)
31367 (let ((plantuml (assoc-ref inputs "plantuml"))
31368 (file "plantuml-mode.el"))
31369 (chmod file #o644)
31370 (emacs-substitute-variables file
31371 ("plantuml-jar-path"
31372 (string-append plantuml "/share/java/plantuml.jar"))
31373 ("plantuml-executable-path"
31374 (string-append plantuml "/bin/plantuml"))
31375 ("plantuml-server-url" 'nil)
31376 ("plantuml-default-exec-mode" ''executable))
31377 (emacs-batch-edit-file file
31378 `(progn (progn
31379 (goto-char (point-min))
31380 (re-search-forward "(defun plantuml-download-jar")
31381 (beginning-of-line)
31382 (kill-sexp))
31383 (basic-save-buffer)))
31384 #t))))))
31385 (inputs
31386 (list plantuml))
31387 (propagated-inputs
31388 (list emacs-dash))
31389 (build-system emacs-build-system)
31390 (home-page "https://github.com/skuro/plantuml-mode")
31391 (synopsis "Major mode for editing PlantUML sources")
31392 (description "This package provides a major mode for editing PlantUML
31393 sources. It features syntax highlighting, autocompletion, preview of buffer
31394 or region and use of locally installed binaries.")
31395 (license license:gpl3+)))
31396
31397 (define-public emacs-execline
31398 (package
31399 (name "emacs-execline")
31400 (version "1.1")
31401 (source (origin
31402 (method git-fetch)
31403 (uri (git-reference
31404 (url "https://gitlab.com/KAction/emacs-execline/")
31405 (commit (string-append "v" version))))
31406 (file-name (git-file-name name version))
31407 (sha256
31408 (base32
31409 "02q531c9wvdwflhggflnci4a36h2bb90bq25bbhw6i2lvrd9sk55"))))
31410 (build-system emacs-build-system)
31411 (propagated-inputs
31412 (list emacs-s))
31413 (arguments
31414 `(#:tests? #t
31415 #:test-command '("emacs" "-Q" "-batch" "-L" "."
31416 "-l" "t/indent.el"
31417 "-f" "ert-run-tests-batch-and-exit")))
31418 (home-page "https://gitlab.com/KAction/emacs-execline/")
31419 (synopsis "Major Emacs mode for editing execline scripts")
31420 (description
31421 "This package provides a major mode for editing execline scripts.
31422
31423 Features:
31424 @itemize
31425 @item Syntax highlighting of commends, builtin commands and variable substitution.
31426 @item Completion of builtin commands.
31427 @item Working @code{comment-region} command.
31428 @item Indentation of blocks.
31429 @item Automatic enable of mode in @file{*.exec} files.
31430 @item Automatic enable of mode in files with @code{execlineb} interpreter.
31431 @end itemize\n")
31432 (license license:gpl3+)))
31433
31434 (define-public emacs-pcmpl-args
31435 (package
31436 (name "emacs-pcmpl-args")
31437 (version "0.1.3")
31438 (source
31439 (origin
31440 (method git-fetch)
31441 (uri (git-reference
31442 (url "https://github.com/JonWaltman/pcmpl-args.el")
31443 (commit version)))
31444 (sha256
31445 (base32 "19xwwpfcf0l9jh7xixyjd5adivj27jw00zvxb7n1240k5p332pzi"))
31446 (file-name (git-file-name name version))))
31447 (build-system emacs-build-system)
31448 (home-page "https://github.com/JonWaltman/pcmpl-args.el")
31449 (synopsis "Enhanced shell command completion")
31450 (description
31451 "pcmpl-args extends option and argument completion of shell commands read
31452 by Emacs. It is intended to make shell completion in Emacs comparable to the
31453 rather excellent completion provided by both Bash and Zsh.")
31454 (license license:gpl3+)))
31455
31456 (define-public emacs-shell-command+
31457 (package
31458 (name "emacs-shell-command+")
31459 (version "2.4.1")
31460 (source (origin
31461 (method git-fetch)
31462 (uri (git-reference
31463 (url "https://git.sr.ht/~pkal/shell-command-plus")
31464 (commit version)))
31465 (file-name (git-file-name name version))
31466 (sha256
31467 (base32 "14akj7pavfhch6ljwl26mhv7qczgmqn7mld62cf6mh4ghmhy3z4y"))))
31468 (build-system emacs-build-system)
31469 (home-page "http://elpa.gnu.org/packages/shell-command+.html")
31470 (synopsis "Extended Emacs @code{shell-command}")
31471 (description
31472 "Shell-command+ is a @code{shell-command} substitute that extends the
31473 regular Emacs command with several features. You can for example count all
31474 the lines in a buffer with @code{> wc -l}, or delete all lower case letters in
31475 the selected region with @code{| tr -d a-z}.")
31476 (license license:gpl3+)))
31477
31478 (define-public emacs-shell-pop
31479 (let ((commit "4b4394037940a890a313d715d203d9ead2d156a6")
31480 (revision "0"))
31481 (package
31482 (name "emacs-shell-pop")
31483 (version (git-version "0.64" revision commit))
31484 (source
31485 (origin
31486 (method git-fetch)
31487 (uri (git-reference
31488 (url "https://github.com/kyagi/shell-pop-el")
31489 (commit commit)))
31490 (file-name (git-file-name name version))
31491 (sha256
31492 (base32 "0s77n6b9iw1x3dv91ybkpgy3zvqd12si7zw3lg0m2b6j1akrawsg"))))
31493 (build-system emacs-build-system)
31494 (home-page "https://github.com/kyagi/shell-pop-el")
31495 (synopsis "Utility which helps with pop up shell buffer")
31496 (description
31497 "This Emacs utility helps you pop up and pop out shell buffer window
31498 easily. Four pre-set options are: @samp{shell}, @samp{terminal},
31499 @samp{ansi-term}, and @samp{eshell}. You can also set your custom shell if
31500 you use some other configuration.")
31501 (license license:gpl3+))))
31502
31503 (define-public emacs-tshell
31504 ;; XXX: Upstream has no tagged release. Version is extracted from keyword
31505 ;; in main file.
31506 (let ((commit "47ef3a6c537b06eb422d9a124e1c44062223e323")
31507 (revision "0"))
31508 (package
31509 (name "emacs-tshell")
31510 (version (git-version "0.1.0" revision commit))
31511 (source
31512 (origin
31513 (method git-fetch)
31514 (uri (git-reference
31515 (url "https://github.com/TatriX/tshell")
31516 (commit commit)))
31517 (file-name (git-file-name name version))
31518 (sha256
31519 (base32 "0yv38bqdp6b614lbj4v408vv5mlic3vs1v7266xrfxm1cm903apj"))))
31520 (build-system emacs-build-system)
31521 (home-page "https://github.com/TatriX/tshell")
31522 (synopsis "Experimental buffer-oriented Emacs shell")
31523 (description
31524 "Tshell is an experimental buffer-oriented shell. It supports shell
31525 and Emacs lisp commands.")
31526 (license license:gpl3+))))
31527
31528 (define-public emacs-extmap
31529 (package
31530 (name "emacs-extmap")
31531 (version "1.2.1")
31532 (source
31533 (origin
31534 (method git-fetch)
31535 (uri (git-reference
31536 (url "https://github.com/doublep/extmap")
31537 (commit version)))
31538 (file-name (git-file-name name version))
31539 (sha256
31540 (base32 "00415w4l9wfpw9v0a35dm1av2w1m6s36yr9f9286jg844x6l375f"))))
31541 (build-system emacs-build-system)
31542 (home-page "https://github.com/doublep/extmap")
31543 (synopsis "Externally-stored constant mapping for Emacs Lisp")
31544 (description "Extmap is a very simple package that lets you build a
31545 read-only, constant database that maps Emacs Lisp symbols to
31546 arbitrary Emacs Lisp objects.")
31547 (license license:gpl3+)))
31548
31549 (define-public emacs-csound-mode
31550 (package
31551 (name "emacs-csound-mode")
31552 (version "0.2.1")
31553 (source
31554 (origin
31555 (method git-fetch)
31556 (uri (git-reference
31557 (url "https://github.com/hlolli/csound-mode")
31558 (commit version)))
31559 (file-name (git-file-name name version))
31560 (sha256
31561 (base32
31562 "1c88ak0jaj51fwiqniqxd7xyk23wjl9m57znzm8j267ld8g12znp"))))
31563 (build-system emacs-build-system)
31564 (arguments
31565 `(#:phases
31566 (modify-phases %standard-phases
31567 (add-after 'unpack 'disable-breaking-compilation
31568 (lambda _
31569 (for-each (lambda (file)
31570 (chmod file #o600) ; needed to write changes.
31571 (emacs-batch-disable-compilation file))
31572 '("csound-font-lock.el"))
31573 #t)))))
31574 (inputs
31575 (list emacs-highlight emacs-multi emacs-shut-up))
31576 (home-page "https://github.com/hlolli/csound-mode")
31577 (synopsis "Emacs major mode for coding in CSound")
31578 (description "Provides both a basic major mode for editing
31579 CSound files, as well as a REPL for fast feedback when composing
31580 and sound-designing.")
31581 (license license:gpl3+)))
31582
31583 (define-public emacs-multi
31584 (package
31585 (name "emacs-multi")
31586 (version "2.0.1")
31587 (source
31588 (origin
31589 (method git-fetch)
31590 (uri (git-reference
31591 (url "https://github.com/kurisuwhyte/emacs-multi")
31592 (commit (string-append "v" version))))
31593 (file-name (git-file-name name version))
31594 (sha256
31595 (base32
31596 "11zabs7qpdhri6n90ck7pgwcbz46d813nyl73h5m1i8jvz1wzx7v"))))
31597 (build-system emacs-build-system)
31598 (home-page "https://github.com/kurisuwhyte/emacs-multi")
31599 (synopsis "Clojure-style multi-methods for Emacs Lisp")
31600 (description "Provides Emacs Lisp with a form of polymorphism
31601 by way of predicate dispatching. Methods consist of a dispatch
31602 function, and a series of branches. The dispatch function is
31603 applied to the arguments, and the result value is checked against
31604 the expectations of each branch to define which one to invoke.")
31605 (license license:expat)))
31606
31607 (define-public emacs-highlight
31608 (let ((commit "9258a2b8362d737115cbd87618f947eadb140411")
31609 (revision "1"))
31610 (package
31611 (name "emacs-highlight")
31612 (version "0.0.0")
31613 (source
31614 (origin
31615 (method git-fetch)
31616 (uri (git-reference
31617 (url "https://github.com/emacsmirror/highlight/")
31618 (commit commit)))
31619 (file-name (git-file-name name commit))
31620 (sha256
31621 (base32
31622 "0pbqzgbfkm8smi23j94hirxh2r1yc0ipyjbbv1y906br6bx5c1a8"))))
31623 (build-system emacs-build-system)
31624 (home-page "https://github.com/emacsmirror/highlight")
31625 (synopsis "Highlighting commands for GNU Emacs")
31626 (description "This library adds the possibility for ad-hoc
31627 applying highlighting to any face in GNU Emacs. The functionality
31628 of this library depends on overlays, which by default are not
31629 picked up when copy-pasting text from buffer to buffer.")
31630 (license license:gpl2+))))
31631
31632 (define-public emacs-org-webring
31633 (package
31634 (name "emacs-org-webring")
31635 (version "2.0.0")
31636 (source
31637 (origin
31638 (method git-fetch)
31639 (uri (git-reference
31640 (url "https://git.sr.ht/~brettgilio/org-webring")
31641 (commit version)))
31642 (file-name (git-file-name name version))
31643 (sha256
31644 (base32
31645 "1si0jah7n2gvlvghjy5dpannqpkxni5rczfp1x2a4z6ydalr3bn5"))))
31646 (build-system emacs-build-system)
31647 (arguments
31648 `(#:phases
31649 (modify-phases %standard-phases
31650 (add-after 'install 'install-assets
31651 (lambda* (#:key outputs #:allow-other-keys)
31652 (let* ((out (assoc-ref outputs "out"))
31653 (assets
31654 (string-append out "/share/emacs/org-webring-assets")))
31655 (mkdir-p assets)
31656 (copy-recursively "assets" assets)
31657 #t))))))
31658 (propagated-inputs
31659 (list emacs-xmlgen))
31660 (home-page "https://sr.ht/~brettgilio/org-webring")
31661 (synopsis "Generate webrings for Org-based sites / blogs")
31662 (description "Org-webring is an alternative implementation of a
31663 feed-based webring, taking inspiration from openring by Drew DeVault.
31664 Intended to integrate with Org-based websites and blogs (either
31665 directly, or indirectly, as in ox-hugo), it will fetch a given list of
31666 web feed files and correctly parse and format the elements to be
31667 displayed for sharing.")
31668 (license license:gpl3+)))
31669
31670 (define-public emacs-orglink
31671 (package
31672 (name "emacs-orglink")
31673 (version "1.2.0")
31674 (source
31675 (origin
31676 (method git-fetch)
31677 (uri (git-reference
31678 (url "https://github.com/tarsius/orglink")
31679 (commit version)))
31680 (file-name (git-file-name name version))
31681 (sha256
31682 (base32 "1619ly90vh2lla5rbw87a4n0rfal3wpbf7005jjiyv2ay88nc7l9"))))
31683 (build-system emacs-build-system)
31684 (home-page "https://github.com/tarsius/orglink")
31685 (synopsis "Use Org mode links in other modes")
31686 (description "This library implements support for some Org mode link types
31687 in other major modes. Links can be opened and edited like in Org mode.")
31688 (license license:gpl3+)))
31689
31690 (define-public emacs-scpaste
31691 (let ((commit "cd4fa0aafecd839736e0b6cba68b4fc4d7045472")
31692 (revision "0"))
31693 (package
31694 (name "emacs-scpaste")
31695 (version "0.6.5")
31696 (source
31697 (origin
31698 (method git-fetch)
31699 (uri (git-reference
31700 (url "https://git.sr.ht/~technomancy/scpaste")
31701 (commit commit)))
31702 (file-name (git-file-name name commit))
31703 (sha256
31704 (base32
31705 "1nvwbwl26z03963g9c82b3ggm39r95z1vp7c9qsa9mjm46dyq27w"))))
31706 (build-system emacs-build-system)
31707 (propagated-inputs
31708 (list emacs-htmlize))
31709 (home-page "https://git.sr.ht/~technomancy/scpaste")
31710 (synopsis "Emacs-based static HTML pastebin")
31711 (description "This library will place an HTML copy of a
31712 buffer on an active webserver to which the user has SSH access.
31713 It is similar in purpose to services such as Gist or Pastebin,
31714 but is much simpler since it assumes the user has access to a
31715 publicly-accessible HTTP server.")
31716 (license license:gpl3+))))
31717
31718 (define-public emacs-company-reftex
31719 (package
31720 (name "emacs-company-reftex")
31721 (version "0.1.0")
31722 (source
31723 (origin
31724 (method git-fetch)
31725 (uri (git-reference
31726 (url "https://github.com/TheBB/company-reftex")
31727 (commit "275ef708f08d3bf0eb30632148e5c6184eeaacdb")))
31728 (file-name (git-file-name name version))
31729 (sha256
31730 (base32
31731 "118cgw5lsffqdqz95mnkw36mmnsbg9m52r2np4m7v14mjjwr9fby"))))
31732 (build-system emacs-build-system)
31733 (propagated-inputs
31734 (list emacs-company emacs-s))
31735 (home-page "https://github.com/TheBB/company-reftex")
31736 (synopsis "RefTeX backends for company-mode")
31737 (description "This package provides company-mode backends for completing
31738 label references and citations in LaTeX. It is based on RefTeX, which is
31739 included with Emacs.")
31740 (license license:gpl3+)))
31741
31742 (define-public emacs-company-org-block
31743 (let ((commit "115af0a3625f4669358eca568466d468cacc78bd")
31744 (revision "1"))
31745 (package
31746 (name "emacs-company-org-block")
31747 (version (git-version "0.3" revision commit))
31748 (source (origin
31749 (method git-fetch)
31750 (uri (git-reference
31751 (url "https://github.com/xenodium/company-org-block")
31752 (commit commit)))
31753 (file-name (git-file-name name version))
31754 (sha256
31755 (base32
31756 "13kdwi4d1pvba6wv9yn1s0dl4cnq61zwf3j647d1s5ybqlrw5f4r"))))
31757 (build-system emacs-build-system)
31758 (propagated-inputs
31759 (list emacs-company))
31760 (home-page "https://github.com/xenodium/company-org-block")
31761 (synopsis "Emacs @code{company-complete} for Org blocks")
31762 (description
31763 "Insert Emacs Org blocks with completion via @code{company} mode.")
31764 (license license:gpl3+))))
31765
31766 (define-public emacs-html-to-hiccup
31767 ;; Package has no release. Version is extracted from "Version:" keyword in
31768 ;; main file.
31769 (let ((commit "50a52e2b0d13d865187acdf775b8203d5003f2f1")
31770 (revision "0"))
31771 (package
31772 (name "emacs-html-to-hiccup")
31773 (version (git-version "1" revision commit))
31774 (source
31775 (origin
31776 (method git-fetch)
31777 (uri (git-reference
31778 (url "https://github.com/plexus/html-to-hiccup")
31779 (commit commit)))
31780 (file-name (git-file-name name version))
31781 (sha256
31782 (base32 "1qi092mw2n08v6yr0j6hlpx0pnlcnhxjqbsrlw9pn4yin6zk91yp"))))
31783 (build-system emacs-build-system)
31784 (propagated-inputs
31785 (list emacs-dash emacs-s))
31786 (home-page "https://github.com/plexus/html-to-hiccup")
31787 (synopsis "Turn HTML into Hiccup syntax")
31788 (description
31789 "This is an Emacs package that turns HTML into Hiccup syntax
31790 which is a popular notation to use when doing Clojure/ClojureScript
31791 web development.")
31792 ;; There is a conflict between the repository official LICENSE
31793 ;; file and the header of the main elisp file which indicates
31794 ;; that it is licensed under the GPL version 3 or later.
31795 (license (list license:mpl2.0 license:gpl3+)))))
31796
31797 (define-public emacs-iter2
31798 (package
31799 (name "emacs-iter2")
31800 (version "1.3")
31801 (source
31802 (origin
31803 (method git-fetch)
31804 (uri (git-reference
31805 (url "https://github.com/doublep/iter2")
31806 (commit version)))
31807 (file-name (git-file-name name version))
31808 (sha256
31809 (base32 "1hsg5q1acghb0xz2pv5g20zg5j32wikp47b62if8afq767rkc5f3"))))
31810 (build-system emacs-build-system)
31811 (home-page "https://github.com/doublep/iter2")
31812 (synopsis "Reimplementation of Elisp generators")
31813 (description "@code{iter2} is a fully compatible reimplementation of
31814 built-in generator package. It provides @code{iter2-defun} and
31815 @code{iter2-lambda} forms that can be used in place of @code{iter-defun} and
31816 @code{iter-lambda}. All other functions and macros (e.g. @code{iter-yield},
31817 @code{iter-next}) are intentionally not duplicated: just use the ones from the
31818 original package.")
31819 (license license:gpl3+)))
31820
31821 (define-public emacs-bind-map
31822 (let ((commit "510a24138d8de3b8df0783f1ac493a551fc9bd74")
31823 (revision "0"))
31824 (package
31825 (name "emacs-bind-map")
31826 (version (git-version "1.1.2" revision commit))
31827 (source
31828 (origin
31829 (method git-fetch)
31830 (uri (git-reference
31831 (url "https://github.com/justbur/emacs-bind-map")
31832 (commit commit)))
31833 (file-name (git-file-name name version))
31834 (sha256
31835 (base32 "0crxjy1ykgb429z8ikjv5iy8vg5i0qn8n86p2lgri4glx45sxxx0"))))
31836 (build-system emacs-build-system)
31837 (home-page "https://github.com/justbur/emacs-bind-map")
31838 (synopsis "Bind personal keymaps in multiple locations")
31839 (description
31840 "@code{emacs-bind-map} provides a macro bind-map which can be used to
31841 make a keymap available across different leader keys including ones
31842 tied to evil states. It is essentially a generalization of the idea
31843 of a leader key as used in Vim or the @code{emacs-evil-leader} package,
31844 and allows for an arbitrary number of leader keys.")
31845 (license license:gpl3+))))
31846
31847 (define-public emacs-spaceleader
31848 (let ((commit "5d88d120494623d6777d464ec40ff4bb7d6b1d57")
31849 (revision "1"))
31850 (package
31851 (name "emacs-spaceleader")
31852 (version (git-version "0.0.3" revision commit))
31853 (source
31854 (origin
31855 (method git-fetch)
31856 (uri (git-reference
31857 (url "https://github.com/mohkale/spaceleader")
31858 (commit commit)))
31859 (file-name (git-file-name name version))
31860 (sha256
31861 (base32 "1prnjf7zs49z5a8qwhn8d0qnp60b3l0xhjkqg6v237acvk2axixr"))))
31862 (build-system emacs-build-system)
31863 (propagated-inputs
31864 (list emacs-dash
31865 emacs-general
31866 emacs-which-key
31867 emacs-use-package
31868 emacs-bind-map))
31869 (home-page "https://github.com/mohkale/spaceleader")
31870 (synopsis "Emacs leader key implementation from Spacemacs")
31871 (description
31872 "@code{emacs-spaceleader} replicates Spacemacs' leader key features,
31873 without requiring all of Spacemacs. The @code{<Leader>} key, inspired by Vim,
31874 provides an easy way to bind keys under a configurable prefix key.")
31875 (license license:gpl3+))))
31876
31877 (define-public emacs-promise
31878 (package
31879 (name "emacs-promise")
31880 (version "1.1")
31881 (source
31882 (origin
31883 (method git-fetch)
31884 (uri (git-reference
31885 (url "https://github.com/chuntaro/emacs-promise")
31886 (commit version)))
31887 (file-name (git-file-name name version))
31888 (sha256
31889 (base32 "1xb34zdbwjvahfhycjphdkm925kgd22dr298c57hwxza4ljc2hxj"))))
31890 (build-system emacs-build-system)
31891 (home-page "https://github.com/chuntaro/emacs-promise")
31892 (synopsis "Promises/A+ for Emacs")
31893 (description "This is a simple implementation of Promises/A+.
31894
31895 This implementation ports the following Promises/A+ features
31896 faithfully. See @url{https://github.com/then/promise}.
31897
31898 @itemize
31899 @item The same API as the JavaScript version of Promise can be used.
31900 @item It has all the @code{then}, @code{catch}, @code{resolve}, @code{reject},
31901 @code{all}, @code{race}, etc.
31902 @item It supports \"thenable\".
31903 @item It supports \"Inheritance of Promise\".
31904 @item It supports \"rejection-tracking\".
31905 @end itemize\n")
31906 (license license:gpl3+)))
31907
31908 (define-public emacs-async-await
31909 (package
31910 (name "emacs-async-await")
31911 (version "1.1")
31912 (source
31913 (origin
31914 (method git-fetch)
31915 (uri (git-reference
31916 (url "https://github.com/chuntaro/emacs-async-await")
31917 (commit version)))
31918 (file-name (git-file-name name version))
31919 (sha256
31920 (base32 "0aav9qdswnw7ynqlzn0sm34as5fj2d85syxgg8zjabzp6646ay29"))))
31921 (build-system emacs-build-system)
31922 (propagated-inputs
31923 (list emacs-promise emacs-iter2))
31924 (home-page "https://github.com/chuntaro/emacs-async-await")
31925 (synopsis "Async/Await for Emacs")
31926 (description "This is a simple implementation of Async/Await inspired by
31927 the TypeScript implementation.")
31928 (license license:gpl3+)))
31929
31930 (define-public emacs-rocket-chat
31931 ;; No release.
31932 (let ((commit "96fe27a8678de5ae4061f635108a7192eee13f98"))
31933 (package
31934 (name "emacs-rocket-chat")
31935 (version (git-version "0.0.0" "1" commit))
31936 (source
31937 (origin
31938 (method git-fetch)
31939 (uri (git-reference
31940 (url "https://github.com/4hiziri/rocket-chat")
31941 (commit commit)))
31942 (file-name (git-file-name name version))
31943 (sha256
31944 (base32 "02a4j0yy7330kfr3rd3k2agdj01ii6989nki598anbamq6xvj5ql"))))
31945 (build-system emacs-build-system)
31946 (propagated-inputs
31947 (list emacs-async-await emacs-request))
31948 (home-page "https://github.com/4hiziri/rocket-chat")
31949 (synopsis "Emacs Rocket.chat client")
31950 (description "This package provides an Emacs client for the Rocket.chat
31951 service.")
31952 (license license:expat))))
31953
31954 (define-public emacs-monokai-theme
31955 (package
31956 (name "emacs-monokai-theme")
31957 (version "3.5.3")
31958 (source
31959 (origin
31960 (method git-fetch)
31961 (uri (git-reference
31962 (url "https://github.com/oneKelvinSmith/monokai-emacs")
31963 (commit (string-append "v" version))))
31964 (file-name (git-file-name name version))
31965 (sha256
31966 (base32 "0dy8c3349j7fmp8052hbgvk0b7ldlv5jqpg0paq1i0hlypivd30i"))))
31967 (build-system emacs-build-system)
31968 (home-page "https://github.com/oneKelvinSmith/monokai-emacs")
31969 (synopsis "High contrast color theme for Emacs")
31970 (description
31971 "Monokai theme is a port of the popular TextMate Monokai theme for
31972 Emacs.")
31973 (license license:gpl3+)))
31974
31975 (define-public emacs-nord-theme
31976 (package
31977 (name "emacs-nord-theme")
31978 (version "0.5.0")
31979 (source
31980 (origin
31981 (method git-fetch)
31982 (uri (git-reference
31983 (url "https://github.com/arcticicestudio/nord-emacs")
31984 (commit (string-append "v" version))))
31985 (file-name (git-file-name name version))
31986 (sha256
31987 (base32 "096f8cik4jz89bvkifwp3gm9iraqrd75ljy2q9js724v7yj88711"))))
31988 (build-system emacs-build-system)
31989 (home-page "https://www.nordtheme.com/")
31990 (synopsis "Low contrast arctic color theme for Emacs")
31991 (description
31992 "Nord is an arctic, north-bluish color scheme created for a clean and
31993 uncluttered design pattern to achieve optimal focus and readability for code
31994 syntax highlighting and UI components.")
31995 (license license:expat)))
31996
31997 (define-public emacs-janet-mode
31998 (let ((commit "2f5bcabcb6953e1ed1926ba6a2328c453e8b4ac7"))
31999 (package
32000 (name "emacs-janet-mode")
32001 (version (git-version "0.1.0" "1" commit))
32002 (source
32003 (origin
32004 (method git-fetch)
32005 (uri (git-reference
32006 (url "https://github.com/ALSchwalm/janet-mode")
32007 (commit commit)))
32008 (file-name (git-file-name name version))
32009 (sha256
32010 (base32 "0qj0gpycv2f3z1dgz1a27bjn983hrr3ppvrp7csl34lagnmp89rz"))))
32011 (build-system emacs-build-system)
32012 (home-page "https://github.com/ALSchwalm/janet-mode")
32013 (synopsis "Emacs major mode for the Janet programming language")
32014 (description
32015 "This package provides an Emacs major mode for editing Janet files.")
32016 (license license:gpl3))))
32017
32018 (define-public emacs-inf-janet
32019 (let ((commit "df46651d3aad32593b2195c80ca91fb64d571fb7"))
32020 (package
32021 (name "emacs-inf-janet")
32022 (version (git-version "0.1.0" "1" commit))
32023 (source
32024 (origin
32025 (method git-fetch)
32026 (uri (git-reference
32027 (url "https://github.com/velkyel/inf-janet")
32028 (commit commit)))
32029 (file-name (git-file-name name version))
32030 (sha256
32031 (base32 "0g0y7q62667j0p32md1h6zb2cap9fga9qgdg7138xwjqnk0328v7"))))
32032 (build-system emacs-build-system)
32033 (arguments
32034 `(#:phases
32035 (modify-phases %standard-phases
32036 (add-after 'unpack 'fix-program-name
32037 (lambda _
32038 (make-file-writable "inf-janet.el")
32039 (emacs-substitute-variables "inf-janet.el"
32040 ("inf-janet-program" "janet")))))))
32041 (propagated-inputs
32042 (list emacs-janet-mode))
32043 (home-page "https://github.com/velkyel/inf-janet")
32044 (synopsis "Run an external Janet process in an Emacs buffer")
32045 (description
32046 "This Emacs package provides a Janet REPL to evaluate @code{janet-mode}
32047 s-expression.")
32048 (license license:expat))))
32049
32050 (define-public emacs-map
32051 (package
32052 (name "emacs-map")
32053 (version "3.2.1")
32054 (source
32055 (origin
32056 (method url-fetch)
32057 (uri (string-append "https://elpa.gnu.org/packages/map-"
32058 version ".tar"))
32059 (sha256
32060 (base32
32061 "1vy231m2fm5cgz5nib14ib7ifprajhnbmzf6x4id48h2491m1n24"))))
32062 (build-system emacs-build-system)
32063 (home-page "http://elpa.gnu.org/packages/map.html")
32064 (synopsis "Map manipulation functions")
32065 (description "This package provides Emacs map-manipulation functions that
32066 work on alists, hash-table and arrays. All functions are prefixed with
32067 @code{map-}.")
32068 (license license:gpl3+)))
32069
32070 (define-public emacs-xref
32071 (package
32072 (name "emacs-xref")
32073 (version "1.5.1")
32074 (source
32075 (origin
32076 (method url-fetch)
32077 (uri (string-append "https://elpa.gnu.org/packages/xref-"
32078 version ".tar"))
32079 (sha256
32080 (base32 "131jxsc1sl8q3r9drhylwyfig9qjjkj3hilv3npidp868pr7xdna"))))
32081 (build-system emacs-build-system)
32082 (home-page "http://elpa.gnu.org/packages/xref.html")
32083 (synopsis "Cross-referencing commands")
32084 (description
32085 "This library provides a generic infrastructure for cross referencing
32086 commands, in particular @code{find-definition}.")
32087 (license license:gpl3+)))
32088
32089 (define-public emacs-burly
32090 (package
32091 (name "emacs-burly")
32092 (version "0.2")
32093 (source
32094 (origin
32095 (method git-fetch)
32096 (uri (git-reference
32097 (url "https://github.com/alphapapa/burly.el")
32098 (commit version)))
32099 (file-name (git-file-name name version))
32100 (sha256
32101 (base32 "0zaknazhi8if38rmy9irnqwagsl76pqlxnzawzgn1vlv3aawivdk"))))
32102 (build-system emacs-build-system)
32103 (propagated-inputs
32104 (list emacs-map))
32105 (home-page "https://github.com/alphapapa/burly.el")
32106 (synopsis "Save and restore frame/window configurations with buffers")
32107 (description "This package provides tools to save and restore frame and
32108 window configurations in Emacs, including buffers that may not be live
32109 anymore. In this way, it's like a lightweight \"workspace\" manager, allowing
32110 you to easily restore one or more frames, including their windows, the
32111 windows' layout, and their buffers.")
32112 (license license:gpl3+)))
32113
32114 (define-public emacs-smart-hungry-delete
32115 (let ((commit "7c1d56a92481594e14d40b5fdf6c48657a0108a0"))
32116 (package
32117 (name "emacs-smart-hungry-delete")
32118 (version "0.1")
32119 (source
32120 (origin
32121 (method git-fetch)
32122 (uri (git-reference
32123 (url "https://github.com/hrehfeld/emacs-smart-hungry-delete")
32124 (commit commit)))
32125 (file-name (git-file-name name version))
32126 (sha256
32127 (base32
32128 "0mxaslx5823s68a8ggbbnmfk1jiswjvip5s4sg7ihfagnci72wni"))))
32129 (build-system emacs-build-system)
32130 (home-page "https://github.com/hrehfeld/emacs-smart-hungry-delete")
32131 (synopsis "Smart hungry deletion of whitespace")
32132 (description "@code{emacs-smart-hungry-delete} hungrily deletes whitespace
32133 between cursor and next word, parenthesis or delimiter while honoring some
32134 rules about where space should be left to separate words and parentheses.")
32135 (license license:gpl2+))))
32136
32137 (define-public emacs-seriestracker
32138 (package
32139 (name "emacs-seriestracker")
32140 (version "1.1")
32141 (source
32142 (origin
32143 (method git-fetch)
32144 (uri (git-reference
32145 (url "https://github.com/MaximeWack/seriesTracker")
32146 (commit version)))
32147 (file-name (git-file-name name version))
32148 (sha256
32149 (base32 "0b9hf20iah3ym2d4kz67k0kb48dq0442zxw4zmc03zg3sxfdxh0x"))))
32150 (build-system emacs-build-system)
32151 (propagated-inputs (list emacs-dash))
32152 (home-page "https://github.com/MaximeWack/seriesTracker")
32153 (synopsis "Keep track of the TV shows you watch from Emacs")
32154 (description
32155 "This package provides a major mode for tracking TV shows.
32156 TV shows data (episode list, release dates, etc.) are sourced from
32157 the free database hosted at @url{episodate.com}. The mode presents an
32158 outlined list of tracked shows, their episodes and release dates, and
32159 enables the user to see when new episodes for their favorite shows get
32160 released, and track their progress in watching a series.")
32161 (license license:gpl3+)))
32162
32163 (define-public emacs-webpaste
32164 (package
32165 (name "emacs-webpaste")
32166 (version "3.2.2")
32167 (source
32168 (origin
32169 (method git-fetch)
32170 (uri (git-reference
32171 (url "https://github.com/etu/webpaste.el")
32172 (commit version)))
32173 (file-name (git-file-name name version))
32174 (sha256
32175 (base32 "07hj9nr7x6c9w2dnvc58cfbprgp9cqzdxflp5qlpglzdw0bi9s3c"))))
32176 (build-system emacs-build-system)
32177 (arguments
32178 `(#:tests? #t
32179 #:test-command '("make" "unit" "integration")
32180 #:phases
32181 (modify-phases %standard-phases
32182 (add-after 'unpack 'fix-tests
32183 (lambda _
32184 ;; Do not use cask to run tests.
32185 (substitute* "Makefile"
32186 (("\\$\\{CASK\\} exec ") ""))
32187 ;; Disable tests that need network access.
32188 (substitute* (list "tests/unit/test-webpaste-provider-creation.el"
32189 "tests/integration/test-webpaste-providers.el")
32190 (("describe") "xdescribe")))))))
32191 (native-inputs
32192 (list emacs-buttercup))
32193 (propagated-inputs
32194 (list emacs-request))
32195 (home-page "https://github.com/etu/webpaste.el")
32196 (synopsis "Paste to pastebin-like services")
32197 (description "This mode pastes whole buffers or parts of buffers
32198 to pastebin-like services. It supports more than one service and will
32199 failover if one service fails. More services can easily be added over time
32200 and preferred services can easily be configured.")
32201 (license license:gpl3+)))
32202
32203 (define-public emacs-keystore-mode
32204 (let ((release "0.0.1")
32205 (revision "0")
32206 (commit "43bd5926348298d077c7221f37902c990df3f951"))
32207 (package
32208 (name "emacs-keystore-mode")
32209 (version (git-version release revision commit))
32210 (home-page "https://github.com/peterpaul/keystore-mode")
32211 (source
32212 (origin
32213 (method git-fetch)
32214 (uri (git-reference
32215 (url home-page)
32216 (commit commit)))
32217 (file-name (git-file-name name version))
32218 (sha256
32219 (base32 "06cznkqkm04zz5lqfb514aqvsr2p13arzysixv0ss0bqpvdq7cv7"))))
32220 (build-system emacs-build-system)
32221 (arguments
32222 `(#:tests? #t
32223 #:test-command
32224 '("emacs" "--no-init-file" "--batch"
32225 "--eval=(require 'ecukes)" "--eval=(ecukes)")))
32226 (native-inputs
32227 (list emacs-ecukes emacs-espuds emacs-undercover openjdk9))
32228 (propagated-inputs
32229 (list emacs-origami-el emacs-s))
32230 (synopsis "Major mode for viewing and managing Java keystores")
32231 (description
32232 "This package provides an Elisp wrapper around the Java
32233 @command{keytool} command and major mode for viewing Java keystores.")
32234 (license license:expat))))
32235
32236 (define-public emacs-ivy-avy
32237 (package
32238 (name "emacs-ivy-avy")
32239 (version "0.13.4")
32240 (source
32241 (origin
32242 (method url-fetch)
32243 (uri (string-append
32244 "https://elpa.gnu.org/packages/"
32245 "ivy-avy-" version ".tar"))
32246 (sha256
32247 (base32 "1q5caxm4rnh4jy5n88dhkdbx1afsshmfki5dl8xsqbdb3y0zq7yi"))))
32248 (build-system emacs-build-system)
32249 (propagated-inputs
32250 (list emacs-ivy emacs-avy))
32251 (home-page "https://github.com/abo-abo/swiper")
32252 (synopsis "Avy integration for Ivy")
32253 (description
32254 "This package adds a \"C-'\" binding to Ivy minibuffer that uses Avy.")
32255 (license license:gpl3+)))
32256
32257 (define-public emacs-vertico
32258 (package
32259 (name "emacs-vertico")
32260 (version "0.27")
32261 (source
32262 (origin
32263 (method git-fetch)
32264 (uri (git-reference
32265 (url "https://github.com/minad/vertico")
32266 (commit version)))
32267 (file-name (git-file-name name version))
32268 (sha256
32269 (base32 "17ip4v0hkv9q2fsnpja24jnf5d5zn4g91553n2s0l5c6gwwpilkp"))))
32270 (build-system emacs-build-system)
32271 (arguments
32272 `(#:phases
32273 (modify-phases %standard-phases
32274 ;; Move the extensions source files to the top level, which is included in
32275 ;; the EMACSLOADPATH.
32276 (add-after 'unpack 'move-source-files
32277 (lambda _
32278 (let ((el-files (find-files "./extensions" ".*\\.el$")))
32279 (for-each (lambda (f)
32280 (rename-file f (basename f)))
32281 el-files)))))))
32282 (native-inputs
32283 (list texinfo))
32284 (home-page "https://github.com/minad/vertico")
32285 (synopsis "Vertical interactive completion")
32286 (description
32287 "Vertico provides a minimalistic vertical completion UI, which is based
32288 on Emacs' default completion system. By reusing the default system, it
32289 achieves full compatibility with built-in Emacs commands and completion
32290 tables. Vertico is pretty bare-bone and only provides a minimal set of
32291 commands. Additional optional enhancements can be provided externally by
32292 complementary packages.")
32293 (license license:gpl3+)))
32294
32295 (define-public emacs-wisp-mode
32296 (package
32297 (name "emacs-wisp-mode")
32298 (version "0.3.0")
32299 (source
32300 (origin
32301 (method hg-fetch)
32302 (uri (hg-reference
32303 (url "https://hg.sr.ht/~arnebab/wisp")
32304 (changeset (string-append "wisp-mode-" version))))
32305 (file-name (git-file-name name version))
32306 (sha256
32307 (base32 "189baxk27rq3s6h6mh0m25sv504853rpvyxxdcwx6wdy7l88qany"))))
32308 (build-system emacs-build-system)
32309 (home-page "https://www.draketo.de/software/wisp")
32310 (synopsis "Syntax highlighting and indentation support for Wisp files")
32311 (description
32312 "This package provides @code{wisp-mode}, an Emacs major mode for Wisp
32313 files, providing syntax highlighting and indentation rules.")
32314 (license license:gpl3+)))
32315
32316 (define-public emacs-ivy-hydra
32317 (package
32318 (name "emacs-ivy-hydra")
32319 (version "0.13.5")
32320 (source
32321 (origin
32322 (method url-fetch)
32323 (uri (string-append
32324 "https://elpa.gnu.org/packages/"
32325 "ivy-hydra-" version ".tar"))
32326 (sha256
32327 (base32 "06rln9bnq5hli5rqlm47fb68b8llpqrmzwqqv4rn7mx3854i9a5x"))))
32328 (build-system emacs-build-system)
32329 (propagated-inputs
32330 (list emacs-ivy emacs-hydra))
32331 (home-page "https://github.com/abo-abo/swiper")
32332 (synopsis "Additional key bindings for Ivy")
32333 (description
32334 "This package provides the `hydra-ivy/body' command, which is a
32335 quasi-prefix map, with many useful bindings. These bindings are
32336 shorter than usual, using mostly unprefixed keys.")
32337 (license license:gpl3+)))
32338
32339 (define-public emacs-cwl-mode
32340 (package
32341 (name "emacs-cwl-mode")
32342 (version "0.2.6")
32343 (source
32344 (origin
32345 (method git-fetch)
32346 (uri (git-reference
32347 (url "https://github.com/tom-tan/cwl-mode")
32348 (commit version)))
32349 (file-name (git-file-name name version))
32350 (sha256
32351 (base32
32352 "0507acyr9h4646scx316niq27vir6hl2gsgz7wdbiw0cb2drfkd1"))))
32353 (build-system emacs-build-system)
32354 (propagated-inputs
32355 (list emacs-yaml-mode))
32356 (home-page "https://github.com/tom-tan/cwl-mode")
32357 (synopsis "Emacs mode for @acronym{CWL, Common Workflow Language} files")
32358 (description "This package provides a major mode for editing
32359 @acronym{CWL, Common Workflow Language} files.")
32360 (license license:gpl3+)))
32361
32362 (define-public emacs-dictionary
32363 (package
32364 (name "emacs-dictionary")
32365 (version "1.11")
32366 (source
32367 (origin
32368 (method git-fetch)
32369 (uri (git-reference
32370 (url "https://github.com/myrkr/dictionary-el")
32371 (commit (string-append "v" version))))
32372 (file-name (git-file-name name version))
32373 (sha256
32374 (base32 "0zsjbpq0s0xdxd9r541f04bj1khhgzhdlzr0m4p17zjh1zardbpi"))))
32375 (build-system emacs-build-system)
32376 (home-page "http://www.myrkr.in-berlin.de/dictionary/index.html")
32377 (synopsis "Emacs client for dictionary servers")
32378 (description "This package provides commands for interacting with a
32379 dictionary server (as defined by RFC 2229; by default, the public server at
32380 dict.org) from within Emacs.")
32381 (license license:gpl2+)))
32382
32383 (define-public emacs-multitran
32384 (package
32385 (name "emacs-multitran")
32386 (version "0.4.16")
32387 (source
32388 (origin
32389 (method git-fetch)
32390 (uri (git-reference
32391 (url "https://github.com/zevlg/multitran.el")
32392 (commit version)))
32393 (file-name (git-file-name name version))
32394 (sha256
32395 (base32 "0zjl7zyydx2pan2ashbwbp70nlmw17hq5w03sfk12wi7j1nihwbz"))))
32396 (build-system emacs-build-system)
32397 (home-page "https://github.com/zevlg/multitran.el")
32398 (synopsis "Emacs interface to the multitran.com online dictionary")
32399 (description "@code{emacs-multitran} is a zero-dependency Emacs interface
32400 to the @url{https://multitran.com} online dictionary.")
32401 (license license:gpl3+)))
32402
32403 (define-public emacs-blacken
32404 (package
32405 (name "emacs-blacken")
32406 (version "0.2.0")
32407 (source
32408 (origin
32409 (method git-fetch)
32410 (uri
32411 (git-reference
32412 (url "https://github.com/pythonic-emacs/blacken")
32413 (commit (string-append "v" version))))
32414 (file-name (git-file-name name version))
32415 (sha256
32416 (base32 "0pf9yllx0h78m925sdrg6hbv54ky2pi7cpkdsnx891qjsahvjnpy"))))
32417 (build-system emacs-build-system)
32418 (inputs
32419 (list python-black))
32420 (arguments
32421 `(#:phases
32422 (modify-phases %standard-phases
32423 (add-after 'unpack 'patch-python-black
32424 (lambda* (#:key inputs #:allow-other-keys)
32425 (make-file-writable "blacken.el")
32426 (emacs-substitute-variables "blacken.el"
32427 ("blacken-executable"
32428 (search-input-file inputs "/bin/black"))))))))
32429 (home-page "https://github.com/pythonic-emacs/blacken")
32430 (synopsis "Python Black for Emacs")
32431 (description
32432 "Use the @command{python} @command{black} package to reformat
32433 @command{python} buffers.")
32434 (license license:gpl3)))
32435
32436 (define-public emacs-code-cells
32437 ;; No tagged release upstream
32438 (let ((commit "8660bdeedee360e5eb632f1eb1356eb09d7dfbee")
32439 (revision "0"))
32440 (package
32441 (name "emacs-code-cells")
32442 (version (git-version "0.2" revision commit))
32443 (source
32444 (origin
32445 (method git-fetch)
32446 (uri (git-reference
32447 (url "https://github.com/astoff/code-cells.el")
32448 (commit commit)))
32449 (file-name (git-file-name name version))
32450 (sha256
32451 (base32 "0mvfsdlhc3znc0d2p8vm7apkbpvbs688wmwvd0sms33qly53f546"))))
32452 (build-system emacs-build-system)
32453 (home-page "https://github.com/astoff/code-cells.el")
32454 (synopsis "Emacs utilities for code split into cells, including Jupyter
32455 notebooks")
32456 (description "This package lets you efficiently navigate, edit and
32457 execute code split into cells according to certain magic comments.")
32458 (license license:gpl3+))))
32459
32460 (define-public emacs-kibit-helper
32461 (package
32462 (name "emacs-kibit-helper")
32463 (version "0.1.1")
32464 (source
32465 (origin
32466 (method git-fetch)
32467 (uri (git-reference
32468 (url "https://github.com/brunchboy/kibit-helper")
32469 (commit (string-append "v" version))))
32470 (file-name (git-file-name name version))
32471 (sha256
32472 (base32 "0ky167xh1hrmqsldybzjhyqjizgjzs1grn5mf8sm2j9qwcvjw2zv"))))
32473 (build-system emacs-build-system)
32474 (propagated-inputs
32475 (list emacs-s))
32476 (home-page "http://www.github.com/brunchboy/kibit-helper")
32477 (synopsis "Use the Kibit Leiningen plugin from Emacs")
32478 (description
32479 "Kibit Helper provides functions to work with the Kibit Leiningen plugin
32480 for detecting and improve non-idiomatic Clojure source code.")
32481 (license license:gpl3+)))
32482
32483 (define-public emacs-mint-mode
32484 (package
32485 (name "emacs-mint-mode")
32486 (version "1.0.3")
32487 (source
32488 (origin
32489 (method git-fetch)
32490 (uri (git-reference
32491 (url "https://github.com/creatorrr/emacs-mint-mode")
32492 (commit (string-append "v" version))))
32493 (file-name (git-file-name name version))
32494 (sha256
32495 (base32 "19szk2dhsa0771kbg1ywp0zz8j6akysvwmmrx2bihq8h5j4y23pg"))))
32496 (build-system emacs-build-system)
32497 (arguments '(#:include '("\\.el$" "\\.txt$")))
32498 (home-page "https://github.com/creatorrr/emacs-mint-mode")
32499 (synopsis "Major mode for Mint language")
32500 (description
32501 "Mint mode provides syntax highlighting, basic keyword auto-completion,
32502 and format on save for Mint programming language.")
32503 (license license:gpl3+)))
32504
32505 (define-public emacs-seeing-is-believing
32506 (let ((version "1.2.0") ; from .el file
32507 (commit "fbbe246c0fda87bb26227bb826eebadb418a220f")
32508 (revision "0"))
32509 (package
32510 (name "emacs-seeing-is-believing")
32511 (home-page "https://github.com/jcinnamond/seeing-is-believing")
32512 (version (git-version version revision commit))
32513 (source
32514 (origin
32515 (method git-fetch)
32516 (uri (git-reference
32517 (url home-page)
32518 (commit commit)))
32519 (file-name (git-file-name name version))
32520 (sha256
32521 (base32
32522 "1h1b48s2iirswdlvfz41jbflm4x09ksc2lycrc1awzlwd6r8hdhg"))))
32523 (build-system emacs-build-system)
32524 (synopsis
32525 "Minor mode for running the seeing-is-believing Ruby gem")
32526 (description
32527 "@uref{https://github.com/JoshCheek/seeing_is_believing,Seeing Is
32528 Believing} is a ruby gem to evaluate Ruby code, recording the results of each
32529 line. This minor mode provides an easy way to run it from Emacs on the
32530 current region or entire buffer.")
32531 (license license:gpl3+))))
32532
32533 (define-public emacs-nasm-mode
32534 (package
32535 (name "emacs-nasm-mode")
32536 (version "1.1.1")
32537 (source
32538 (origin
32539 (method git-fetch)
32540 (uri (git-reference
32541 (url "https://github.com/skeeto/nasm-mode")
32542 (commit version)))
32543 (file-name (git-file-name name version))
32544 (sha256
32545 (base32
32546 "1dyc50a1zskx9fqxl2iy2x74f3bkb2ccz908v0aj13rqfqqnns9j"))))
32547 (build-system emacs-build-system)
32548 (home-page "https://github.com/skeeto/nasm-mode")
32549 (synopsis "NASM x86 assembly major mode")
32550 (description
32551 "NASM mode is a major mode for editing NASM x86 assembly programs.
32552 It includes syntax highlighting, automatic indentation, and imenu integration.
32553 Unlike Emacs' generic ASM mode, it understands NASM-specific syntax.")
32554 (license license:unlicense)))
32555
32556 (define-public emacs-validate-html
32557 ;; XXX: Upstream did not tag commits yet. However, commit below matches the
32558 ;; last version bump. Version is extracted from the keyword in main file.
32559 (let ((commit "748e874d50c3a95c61590ae293778e26de05c5f9"))
32560 (package
32561 (name "emacs-validate-html")
32562 (version "1.3")
32563 (source
32564 (origin
32565 (method git-fetch)
32566 (uri
32567 (git-reference
32568 (url "https://github.com/arthurgleckler/validate-html")
32569 (commit commit)))
32570 (file-name (git-file-name name version))
32571 (sha256
32572 (base32 "0b2b5dm85jwgkqvga23r3vfya07vxv2n7a3a6r1pxpk8asqlw41c"))))
32573 (build-system emacs-build-system)
32574 (home-page "https://github.com/arthurgleckler/validate-html")
32575 (synopsis "Run the W3C HTML Validator directly from Emacs")
32576 (description
32577 "@command{emacs-validate-html} installs the command @code{validate-html},
32578 which sends the current buffer to the World Wide Web Consortium’s HTML
32579 Validator service and displays the results in a buffer in Compilation mode.")
32580 (license license:gpl3+))))
32581
32582 (define-public emacs-volatile-highlights
32583 ;; XXX: Upstream does not tag releases. Commit below matches version bump.
32584 (let ((commit "9a20091f0ce7fc0a6b3e641a6a46d5f3ac4d8392"))
32585 (package
32586 (name "emacs-volatile-highlights")
32587 (version "1.15")
32588 (source (origin
32589 (method git-fetch)
32590 (uri (git-reference
32591 (url "http://github.com/k-talo/volatile-highlights.el")
32592 (commit commit)))
32593 (file-name (git-file-name name version))
32594 (sha256
32595 (base32
32596 "1dsa6769lphyyv7yg92vkkpk395w52q4m7hdn8xy7s6lh5c6a955"))))
32597 (build-system emacs-build-system)
32598 (home-page "http://github.com/k-talo/volatile-highlights.el")
32599 (synopsis "Emacs minor mode for visual feedback on some operations")
32600 (description "@code{volatile-highlights-mode} brings visual feedback to
32601 some operations by highlighting portions relating to the operations. All of
32602 highlights made by this library will be removed when any new operation is
32603 executed.")
32604 (license license:gpl3+))))
32605
32606 (define-public emacs-global-tags
32607 (let ((commit "06db25d91cc8bfb5e24e02adc04de1226c7e742d")
32608 (revision "0"))
32609 (package
32610 (name "emacs-global-tags")
32611 (version (git-version "0.7" revision commit))
32612 (home-page "https://git.launchpad.net/global-tags.el/")
32613 (source (origin
32614 (method git-fetch)
32615 (uri (git-reference
32616 (url home-page)
32617 (commit commit)))
32618 (file-name (git-file-name name version))
32619 (sha256
32620 (base32
32621 "1q30cbqq0h1gfwlcbnx9s930li7w7a0y8sx2ivbvvyyc2j5gsk4j"))))
32622 (build-system emacs-build-system)
32623 (propagated-inputs
32624 (list emacs-async emacs-ht))
32625 (synopsis "Testeable Emacs Lisp API that wraps around GNU Global")
32626 (description "This package provides a testeable Emacs Lisp API that
32627 wraps GNU Global calls and integration to editor using this API with
32628 project.el and xref.el.")
32629 (license license:gpl3+))))
32630
32631 (define-public emacs-seq
32632 (package
32633 (name "emacs-seq")
32634 (version "2.23")
32635 (source
32636 (origin
32637 (method url-fetch)
32638 (uri (string-append "https://elpa.gnu.org/packages/seq-" version ".tar"))
32639 (sha256
32640 (base32 "1lbxnrzq88z8k9dyylg2636pg9vc8bzfprs1hxwp9ah0zkvsn52p"))))
32641 (build-system emacs-build-system)
32642 (home-page "https://elpa.gnu.org/packages/seq.html")
32643 (synopsis "Sequence manipulation functions")
32644 (description
32645 "This Emacs package provides sequence manipulation functions that
32646 complement basic functions provided by @file{subr.el}. All its functions
32647 are prefixed with @code{seq-} and work on lists, strings, and vectors.")
32648 (license license:gpl3+)))
32649
32650 (define-public emacs-setup
32651 (package
32652 (name "emacs-setup")
32653 (version "1.3.2")
32654 (source
32655 (origin
32656 (method url-fetch)
32657 (uri (string-append "https://elpa.gnu.org/packages/setup-"
32658 version ".tar"))
32659 (sha256
32660 (base32 "1sr514w4mn0fbdawjb5p0fd6i6q2zi9737rbwcgakb1l9cqvb5qy"))))
32661 (build-system emacs-build-system)
32662 (home-page "https://git.sr.ht/~pkal/setup")
32663 (synopsis "Helpful configuration macro")
32664 (description
32665 "The @code{setup} macro simplifies repetitive configuration patterns, by
32666 providing context-sensitive local macros in @code{setup} bodies. These macros
32667 can be mixed with regular elisp code without any issues, allowing for
32668 flexible and terse configurations. The list of local macros can be
32669 extended by the user via @code{setup-define}. A list of currently known
32670 local macros are documented in the docstring for @code{setup}.")
32671 (license license:gpl3+)))
32672
32673 (define-public emacs-tomelr
32674 (package
32675 (name "emacs-tomelr")
32676 (version "0.4.3")
32677 (source
32678 (origin
32679 (method git-fetch)
32680 (uri (git-reference
32681 (url "https://github.com/kaushalmodi/tomelr/")
32682 (commit (string-append "v" version))))
32683 (sha256
32684 (base32 "03iih7arjlfg8gdp4v2xglas9z519q1s11l28igr8l0m5y0pdrnk"))
32685 (file-name (git-file-name name version))))
32686 (build-system emacs-build-system)
32687 (propagated-inputs (list emacs-map emacs-seq))
32688 (home-page "https://github.com/kaushalmodi/tomelr/")
32689 (synopsis "Emacs-Lisp library for converting S-expressions to TOML")
32690 (description
32691 "This package provides the @code{tomelr-encode} function to convert a Lisp
32692 data expression in Alist or Plist format to a TOML string.")
32693 (license license:gpl3+)))
32694
32695 (define-public emacs-ed-mode
32696 ;; XXX: Upstream did not tag any commits yet.
32697 (let ((commit "69f4fb34eca8df6a3bfe24bd8d8075551f0264ac")
32698 (revision "0"))
32699 (package
32700 (name "emacs-ed-mode")
32701 (version (git-version "0" revision commit))
32702 (source
32703 (origin
32704 (method git-fetch)
32705 (uri
32706 (git-reference
32707 (url "https://github.com/ryanprior/ed-mode")
32708 (commit commit)))
32709 (file-name (git-file-name name version))
32710 (sha256
32711 (base32 "058siccx6znw1bcp820bll0jg300xz8w1wf97zr1fa6jwfxyhhvi"))))
32712 (build-system emacs-build-system)
32713 (home-page "https://github.com/ryanprior/ed-mode")
32714 (synopsis "Emacs ed emulation")
32715 (description
32716 "@code{ed-mode} lets you interact with Emacs buffers like you would do
32717 with the ed editor.")
32718 (license license:gpl3+))))
32719
32720 (define-public emacs-alsamixer-el
32721 (package
32722 (name "emacs-alsamixer-el")
32723 (version "0.2.1")
32724 (source
32725 (origin
32726 (method git-fetch)
32727 (uri
32728 (git-reference
32729 (url "https://github.com/remvee/alsamixer-el")
32730 (commit version)))
32731 (file-name (git-file-name name version))
32732 (sha256
32733 (base32 "0c40vycphv5nf374rp8pnzvi50vlmgab3wrdq92hyprjw76gwxhk"))))
32734 (build-system emacs-build-system)
32735 (home-page "https://github.com/remvee/alsamixer-el")
32736 (synopsis "Emacs interface to amixer")
32737 (description "@code{emacs-alsamixer-el} provides basic commands to control
32738 audio volume via amixer.")
32739 (license license:gpl3+)))
32740
32741 (define-public emacs-fennel-mode
32742 ;; XXX: Commit below refers to the un-tagged latest release.
32743 (let ((commit "b3c52964eda7c0267f6e3f0ad6c690c3a1e89da1"))
32744 (package
32745 (name "emacs-fennel-mode")
32746 (version "0.5.0")
32747 (source
32748 (origin
32749 (method git-fetch)
32750 (uri (git-reference
32751 (url "https://git.sr.ht/~technomancy/fennel-mode")
32752 (commit commit)))
32753 (sha256
32754 (base32 "1yib626wi7xiairzqkk96s99p1q7mmr2y5v78bv01h5d7h12sdgq"))))
32755 (build-system emacs-build-system)
32756 (home-page "https://git.sr.ht/~technomancy/fennel-mode")
32757 (synopsis "Emacs major-mode for editing Fennel code")
32758 (description
32759 "Fennel mode provides font-lock, indentation, navigation, and REPL for
32760 Fennel code within Emacs.")
32761 (license license:gpl3+))))
32762
32763 (define-public emacs-org-modern
32764 (package
32765 (name "emacs-org-modern")
32766 (version "0.4")
32767 (source
32768 (origin
32769 (method git-fetch)
32770 (uri (git-reference
32771 (url "https://github.com/minad/org-modern")
32772 (commit version)))
32773 (sha256
32774 (base32 "0af9dzp9n3882kvsp3q4008hffq1mp9hjl964mlp5j8vay3x7qbz"))
32775 (file-name (git-file-name name version))))
32776 (build-system emacs-build-system)
32777 (home-page "https://github.com/minad/org-modern")
32778 (synopsis "Modern Org Style")
32779 (description
32780 "@code{emacs-org-modern} implements a modern style for your Org
32781 buffers using font locking and text properties. The package styles
32782 headlines, keywords, tables and source blocks.")
32783 (license license:gpl3+)))
32784
32785 (define-public emacs-pyimport
32786 (let ((commit "a6f63cf7ed93f0c0f7c207e6595813966f8852b9")
32787 (revision "0"))
32788 (package
32789 (name "emacs-pyimport")
32790 (version (git-version "1.1" revision commit))
32791 (source
32792 (origin
32793 (method git-fetch)
32794 (uri
32795 (git-reference
32796 (url "https://github.com/Wilfred/pyimport")
32797 (commit commit)))
32798 (file-name (git-file-name name version))
32799 (sha256
32800 (base32 "1q5gqhvh4zq5dy8vns694warcz48j1hdnxg16sjck4gsi9xivbvs"))))
32801 (build-system emacs-build-system)
32802 (inputs
32803 (list python-pyflakes))
32804 (propagated-inputs
32805 (list emacs-dash emacs-s emacs-shut-up))
32806 (arguments
32807 (list #:phases
32808 #~(modify-phases %standard-phases
32809 (add-after 'unpack 'patch-pyflakes-executable
32810 (lambda* (#:key inputs #:allow-other-keys)
32811 (let ((pyflakes (search-input-file inputs "/bin/pyflakes")))
32812 (make-file-writable "pyimport.el")
32813 (substitute* "pyimport.el"
32814 (("\"pyflakes")
32815 (string-append "\"" pyflakes)))))))))
32816 (home-page "https://github.com/Wilfred/pyimport")
32817 (synopsis "Manage Python imports from Emacs")
32818 (description
32819 "@code{emacs-pyimport} manages python imports from Emacs via @code{python-pyflakes}.")
32820 (license license:gpl3+)))) ; License is in pyimport.el
32821
32822 (define-public emacs-straight-el
32823 (let ((commit "fed215348076ba9182f634e0770a175220474b5a")
32824 (revision "0"))
32825 (package
32826 (name "emacs-straight-el")
32827 (version (git-version "0" revision commit))
32828 (source
32829 (origin
32830 (method git-fetch)
32831 (uri
32832 (git-reference
32833 (url "https://github.com/radian-software/straight.el")
32834 (commit commit)))
32835 (file-name (git-file-name name version))
32836 (sha256
32837 (base32 "0z0j670s18mp1bhrsnng0mybcbnlywarhlz7zmrf9399rr513z1x"))))
32838 (build-system emacs-build-system)
32839 (arguments
32840 (list
32841 #:tests? #t
32842 #:test-command
32843 #~(list "emacs" "-Q" "--batch"
32844 "-L" "."
32845 "--load" "ert"
32846 "--load" "tests/straight-test.el"
32847 "--eval" "(progn (require 'straight-ert-print-hack) (ert-run-tests-batch-and-exit))")
32848 #:phases
32849 #~(modify-phases %standard-phases
32850 (add-after 'unpack 'patch-git-executable
32851 (lambda* (#:key inputs #:allow-other-keys)
32852 (make-file-writable "straight.el")
32853 (substitute* "straight.el"
32854 (("\"git\"")
32855 (string-append "\""
32856 (search-input-file inputs "/bin/git")
32857 "\"")))))
32858 (add-after 'check 'delete-tests
32859 ;; "tests" directory includes bogus ".el" files that can make
32860 ;; `patch-el-files' phase fail.
32861 (lambda _
32862 (delete-file-recursively "tests"))))))
32863 (native-inputs
32864 (list texinfo))
32865 (inputs
32866 (list git))
32867 (propagated-inputs
32868 (list emacs-magit))
32869 (home-page "https://github.com/radian-software/straight.el/")
32870 (synopsis "Purely functional package manager for the Emacs hacker")
32871 (description
32872 "@code{emacs-straight-el} is a purely functional package manager for the Emacs
32873 hacker.")
32874 (license license:expat))))
32875
32876 (define-public emacs-osm
32877 (package
32878 (name "emacs-osm")
32879 (version "0.8")
32880 (home-page "https://github.com/minad/osm")
32881 (source (origin
32882 (method git-fetch)
32883 (uri (git-reference
32884 (url home-page)
32885 (commit version)))
32886 (file-name (git-file-name name version))
32887 (sha256
32888 (base32
32889 "039ac364f00slx1dxxgsgfcr4x47v9ymn8arcs0fyhdhw7jnky5j"))))
32890 (build-system emacs-build-system)
32891 (arguments
32892 (list #:phases #~(modify-phases %standard-phases
32893 (add-after 'unpack 'set-curl-file-name
32894 (lambda* (#:key inputs #:allow-other-keys)
32895 (substitute* "osm.el"
32896 (("\"curl( ?)\"" _ space)
32897 (string-append "\""
32898 (search-input-file inputs
32899 "/bin/curl")
32900 space "\"")))))
32901 (add-after 'install 'makeinfo
32902 (lambda _
32903 (invoke "emacs"
32904 "--batch"
32905 "--eval=(require 'ox-texinfo)"
32906 "--eval=(setq org-export-with-broken-links t)"
32907 "--eval=(find-file \"README.org\")"
32908 "--eval=(org-texinfo-export-to-info)")
32909 (install-file "osm.info"
32910 (string-append #$output
32911 "/share/info")))))))
32912 (inputs (list curl))
32913 (native-inputs (list texinfo))
32914 (synopsis "OpenStreetMap viewer for Emacs")
32915 (description
32916 "This package provides an OpenStreetMap viewer for Emacs, featuring
32917 zoomable and moveable map display, display of tracks and POIs from GPX files,
32918 parallel fetching of tiles with cURL, and more.")
32919 (license license:gpl3+)))
32920
32921 (define-public emacs-corfu-terminal
32922 ;; Upstream does not tag releases, version taken from package header.
32923 (let ((commit "7c5a8a1c07b6c1a41b358b083d5bf7773701d26b")
32924 (revision "0"))
32925 (package
32926 (name "emacs-corfu-terminal")
32927 (version (git-version "0.4" revision commit))
32928 (source
32929 (origin
32930 (method git-fetch)
32931 (uri
32932 (git-reference
32933 (url "https://codeberg.org/akib/emacs-corfu-terminal")
32934 (commit commit)))
32935 (file-name (git-file-name name version))
32936 (sha256
32937 (base32 "0pk5vfcz8w4hiqrwzwpxdjzlbhla0bw7a1h6v0mqxad0j9y7v3nw"))))
32938 (build-system emacs-build-system)
32939 (propagated-inputs (list emacs-corfu emacs-popon))
32940 (home-page "https://codeberg.org/akib/emacs-corfu-terminal/")
32941 (synopsis "Replace corfu child frames with popups")
32942 (description
32943 "This package replaces the child frames @code{emacs-corfu} uses
32944 with popups, which also work in the terminal.")
32945 (license license:gpl3+))))
32946
32947 (define-public emacs-corfu-doc-terminal
32948 ;; Upstream does not tag releases, version taken from package header.
32949 (let ((commit "d8945c64b52d76e864b767b3048674f222daf80b")
32950 (revision "0"))
32951 (package
32952 (name "emacs-corfu-doc-terminal")
32953 (version (git-version "0.5" revision commit))
32954 (source
32955 (origin
32956 (method git-fetch)
32957 (uri
32958 (git-reference
32959 (url "https://codeberg.org/akib/emacs-corfu-doc-terminal")
32960 (commit commit)))
32961 (file-name (git-file-name name version))
32962 (sha256
32963 (base32 "0j0dd8np5x93wic22bc5i9h7bq2gj700n4fh11dzzgsj14lv2r5k"))))
32964 (build-system emacs-build-system)
32965 (propagated-inputs
32966 (list emacs-corfu emacs-corfu-doc emacs-corfu-terminal emacs-popon))
32967 (home-page "https://codeberg.org/akib/emacs-corfu-doc-terminal/")
32968 (synopsis "Replace corfu docmentation child frames with popups")
32969 (description
32970 "This package replaces the child frames @code{emacs-corfu-doc} uses
32971 with popups, which also work in the terminal.")
32972 (license license:gpl3+))))
32973
32974 (define-public emacs-popon
32975 ;; Upstream does not tag releases. The commit below matches the version
32976 ;; bump.
32977 (let ((commit "d16cb747d356eab3f1bc4061ecee473732f7b8bb"))
32978 (package
32979 (name "emacs-popon")
32980 (version "0.4")
32981 (source
32982 (origin
32983 (method git-fetch)
32984 (uri
32985 (git-reference
32986 (url "https://codeberg.org/akib/emacs-popon")
32987 (commit commit)))
32988 (file-name (git-file-name name version))
32989 (sha256
32990 (base32 "1i5rp0gvcdqakzaznsh0lqzvlq5kif9q2grq4l80gl75dmqdpym7"))))
32991 (build-system emacs-build-system)
32992 (home-page "https://codeberg.org/akib/emacs-popon/")
32993 (synopsis "Pop floating text on a window")
32994 (description
32995 "@code{emacs-popon} allows you to pop text on a window, what we call
32996 a popon. Popons are window-local and sticky, they don't move while
32997 scrolling, and they even don't go away when switching buffer, but you
32998 can bind a popon to a specific buffer to only show on that buffer.")
32999 (license license:gpl3+))))
33000
33001 (define-public emacs-consult-lsp
33002 (package
33003 (name "emacs-consult-lsp")
33004 (version "1.0")
33005 (source
33006 (origin
33007 (method git-fetch)
33008 (uri (git-reference
33009 (url "https://github.com/gagbo/consult-lsp")
33010 (commit version)))
33011 (file-name (git-file-name name version))
33012 (sha256
33013 (base32 "14dyclspkf1a34nvjj800ckz1phsizq07ps8k4x0ah6ik0hfhy1w"))))
33014 (build-system emacs-build-system)
33015 (propagated-inputs (list emacs-consult emacs-lsp-mode emacs-f))
33016 (home-page "https://github.com/gagbo/consult-lsp/")
33017 (synopsis "LSP-mode and consult helping each other")
33018 (description
33019 "@code{emacs-consult-lsp} provides helpers for interactively selecting LSP
33020 workspace diagnostics, symbols, and file symbols from @{emacs-lsp-mode}
33021 by leveraging @code{emacs-consult} APIs.")
33022 (license license:expat)))
33023
33024 (define-public emacs-pdb-capf
33025 (let ((commit "31602ccab53aa7dcf26a1af222c7da2bcc1390ed")
33026 (revision "0"))
33027 (package
33028 (name "emacs-pdb-capf")
33029 (version (git-version "1.0" revision commit))
33030 (source
33031 (origin
33032 (method git-fetch)
33033 (uri
33034 (git-reference
33035 (url "https://github.com/muffinmad/emacs-pdb-capf")
33036 (commit commit)))
33037 (file-name (git-file-name name version))
33038 (sha256
33039 (base32 "0x2pg03csf25vj8y2zb5sv493dk3n0s4xbkihii2mzhkx82vgpxg"))))
33040 (build-system emacs-build-system)
33041 (home-page "https://github.com/muffinmad/emacs-pdb-capf")
33042 (synopsis "Completion-at-point function for pdb")
33043 (description
33044 "@code{emacs-pdb-capf} provides a @code{completion-at-point} function
33045 for pdb allowing completion in a @code{*gud-pdb*} buffer.")
33046 (license license:gpl3+))))
33047
33048 (define-public emacs-bitbake-modes
33049 (package
33050 (name "emacs-bitbake-modes")
33051 (version "0.5.3")
33052 (source
33053 (origin
33054 (method git-fetch)
33055 (uri (git-reference
33056 (url "https://bitbucket.org/olanilsson/bitbake-modes")
33057 (commit (string-append "v" version))))
33058 (sha256
33059 (base32 "1580cfpfmsjwiq6v2vsqjwhzj9m4lrhhf3nffmbzp36r6q5n8611"))
33060 (file-name (git-file-name name version))))
33061 (build-system emacs-build-system)
33062 (propagated-inputs (list emacs-mmm-mode))
33063 (home-page "https://bitbucket.org/olanilsson/bitbake-modes")
33064 (synopsis "Emacs major modes for bitbake")
33065 (description
33066 "@code{emacs-bitbake-modes} is a collection of major modes and tools that can
33067 be useful when working with the bitbake files in Yocto and OpenEmbedded
33068 projects.")
33069 (license license:gpl3+)))
33070
33071 (define-public emacs-vundo
33072 (package
33073 (name "emacs-vundo")
33074 (version "2.0.0")
33075 (source (origin
33076 (method url-fetch)
33077 (uri (string-append "https://elpa.gnu.org/packages/vundo-"
33078 version ".tar"))
33079 (sha256
33080 (base32
33081 "032aqcqq2xhh12qcpp8p3qldv0r9cnqr2y11jk1m5cvgal1cbb68"))))
33082 (build-system emacs-build-system)
33083 (home-page "https://github.com/casouri/vundo")
33084 (synopsis "Visualize the undo tree")
33085 (description
33086 "Vundo (visual undo) displays the undo history as a tree and lets you move in the
33087 tree to go back to previous buffer states. To use vundo, type @kbd{M-x vundo RET} in
33088 the buffer you want to undo. An undo tree buffer should pop up.")
33089 (license license:gpl3+)))
33090
33091 (define-public emacs-project-x
33092 ;; There is no proper release.
33093 ;; The base version is extracted from the README.org.
33094 (let ((revision "0")
33095 (commit "0b78f4e33b994612fcb305b3cf6d3b1e3b62cea7"))
33096 (package
33097 (name "emacs-project-x")
33098 (version (git-version "0.1.6" revision commit))
33099 (source
33100 (origin
33101 (method git-fetch)
33102 (uri
33103 (git-reference
33104 (url "https://github.com/karthink/project-x")
33105 (commit commit)))
33106 (file-name (git-file-name name version))
33107 (sha256
33108 (base32 "1xxzxxm0jila5s9sfay6ywj2j8pyz4wwcrycvnrrzh0vxcsgzf9s"))))
33109 (build-system emacs-build-system)
33110 (home-page "https://github.com/karthink/project-x")
33111 (synopsis "Enhancement to Emacs built-in Project library")
33112 (description
33113 "Project-X provides convenience features for Emacs' Project library.
33114 In particular, it saves and restores project files and window configurations
33115 across sessions.")
33116 (license license:gpl3+))))
33117
33118 (define-public emacs-vertico-posframe
33119 (package
33120 (name "emacs-vertico-posframe")
33121 (version "0.5.4")
33122 (source (origin
33123 (method url-fetch)
33124 (uri (string-append
33125 "https://elpa.gnu.org/packages/vertico-posframe-" version
33126 ".tar"))
33127 (sha256
33128 (base32
33129 "19lx6p06wkwfivxgswdljdsh9bgcd1b9zkzx426w3pwicdk0cvgg"))))
33130 (build-system emacs-build-system)
33131 (propagated-inputs (list emacs-posframe emacs-vertico))
33132 (home-page "https://github.com/tumashu/vertico-posframe")
33133 (synopsis "Pop up a frame at point to show vertical completion UI")
33134 (description
33135 "Vertico is an Emacs package that provides a vertical completion UI based
33136 on the default completion system. Posframe is an Emacs package that provides
33137 a way to pop up a frame at point. Vertico-posframe is an Emacs package and
33138 a Vertico extension which provides a way to pop up a frame at point to show
33139 a vertical completion UI.")
33140 (license license:gpl3+)))
33141
33142 ;;;
33143 ;;; Avoid adding new packages to the end of this file. To reduce the chances
33144 ;;; of a merge conflict, place them above by existing packages with similar
33145 ;;; functionality or similar names.
33146 ;;;