141dd4ccfcab8456ecc3a7c579177541b38a0b55
[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, 2017, 2018, 2019, 2020, 2021 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 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 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 pinoaffe <pinoaffe@airmail.cc>
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 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 ;;;
119 ;;; This file is part of GNU Guix.
120 ;;;
121 ;;; GNU Guix is free software; you can redistribute it and/or modify it
122 ;;; under the terms of the GNU General Public License as published by
123 ;;; the Free Software Foundation; either version 3 of the License, or (at
124 ;;; your option) any later version.
125 ;;;
126 ;;; GNU Guix is distributed in the hope that it will be useful, but
127 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
128 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
129 ;;; GNU General Public License for more details.
130 ;;;
131 ;;; You should have received a copy of the GNU General Public License
132 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
133
134 (define-module (gnu packages emacs-xyz)
135 #:use-module ((guix licenses) #:prefix license:)
136 #:use-module (guix packages)
137 #:use-module (guix cvs-download)
138 #:use-module (guix download)
139 #:use-module (guix bzr-download)
140 #:use-module (guix gexp)
141 #:use-module (guix git-download)
142 #:use-module (guix hg-download)
143 #:use-module (guix build-system gnu)
144 #:use-module (guix build-system cmake)
145 #:use-module (guix build-system copy)
146 #:use-module (guix build-system emacs)
147 #:use-module (guix build-system glib-or-gtk)
148 #:use-module (guix build-system perl)
149 #:use-module (guix build-system trivial)
150 #:use-module (gnu packages)
151 #:use-module (gnu packages admin)
152 #:use-module (gnu packages aspell)
153 #:use-module (gnu packages audio)
154 #:use-module (gnu packages bash)
155 #:use-module (gnu packages chez)
156 #:use-module (gnu packages cmake)
157 #:use-module (gnu packages code)
158 #:use-module (gnu packages cpp)
159 #:use-module (gnu packages curl)
160 #:use-module (gnu packages databases)
161 #:use-module (gnu packages dictionaries)
162 #:use-module (gnu packages djvu)
163 #:use-module (gnu packages ebook)
164 #:use-module (gnu packages emacs)
165 #:use-module (gnu packages fonts)
166 #:use-module (gnu packages freedesktop)
167 #:use-module (gnu packages games)
168 #:use-module (gnu packages golang)
169 #:use-module (gnu packages guile)
170 #:use-module (gnu packages gtk)
171 #:use-module (gnu packages gnome)
172 #:use-module (gnu packages graphviz)
173 #:use-module (gnu packages haskell-apps)
174 #:use-module (gnu packages ibus)
175 #:use-module (gnu packages java)
176 #:use-module (gnu packages ncurses)
177 #:use-module (gnu packages networking)
178 #:use-module (gnu packages python)
179 #:use-module (gnu packages python-xyz)
180 #:use-module (gnu packages telephony)
181 #:use-module (gnu packages terminals)
182 #:use-module (gnu packages tex)
183 #:use-module (gnu packages texinfo)
184 #:use-module (gnu packages tcl)
185 #:use-module (gnu packages tls)
186 #:use-module (gnu packages pkg-config)
187 #:use-module (gnu packages xorg)
188 #:use-module (gnu packages lesstif)
189 #:use-module (gnu packages llvm)
190 #:use-module (gnu packages image)
191 #:use-module (gnu packages linux)
192 #:use-module (gnu packages libevent)
193 #:use-module (gnu packages lisp-xyz)
194 #:use-module (gnu packages lua)
195 #:use-module (gnu packages music)
196 #:use-module (gnu packages version-control)
197 #:use-module (gnu packages imagemagick)
198 #:use-module (gnu packages w3m)
199 #:use-module (gnu packages web)
200 #:use-module (gnu packages wget)
201 #:use-module (gnu packages autotools)
202 #:use-module (gnu packages base)
203 #:use-module (gnu packages compression)
204 #:use-module (gnu packages node)
205 #:use-module (gnu packages xml)
206 #:use-module (gnu packages glib)
207 #:use-module (gnu packages acl)
208 #:use-module (gnu packages mail)
209 #:use-module (gnu packages messaging)
210 #:use-module (gnu packages package-management)
211 #:use-module (gnu packages perl)
212 #:use-module (gnu packages pdf)
213 #:use-module (gnu packages racket)
214 #:use-module (gnu packages ruby)
215 #:use-module (gnu packages rust-apps)
216 #:use-module (gnu packages scheme)
217 #:use-module (gnu packages serialization)
218 #:use-module (gnu packages speech)
219 #:use-module (gnu packages xiph)
220 #:use-module (gnu packages mp3)
221 #:use-module (gnu packages gettext)
222 #:use-module (gnu packages fribidi)
223 #:use-module (gnu packages gd)
224 #:use-module (gnu packages fontutils)
225 #:use-module (gnu packages password-utils)
226 #:use-module (gnu packages pulseaudio)
227 #:use-module (gnu packages sphinx)
228 #:use-module (gnu packages screen)
229 #:use-module (gnu packages xdisorg)
230 #:use-module (gnu packages shells)
231 #:use-module (gnu packages shellutils)
232 #:use-module (gnu packages sqlite)
233 #:use-module (gnu packages ghostscript)
234 #:use-module (gnu packages gnupg)
235 #:use-module (gnu packages video)
236 #:use-module (gnu packages haskell-xyz)
237 #:use-module (gnu packages wordnet)
238 #:use-module (gnu packages photo)
239 #:use-module (gnu packages uml)
240 #:use-module (gnu packages finance)
241 #:use-module (guix utils)
242 #:use-module (srfi srfi-1)
243 #:use-module (ice-9 match))
244
245 ;;;
246 ;;; Emacs hacking.
247 ;;;
248
249 (define-public emacs-geiser
250 (package
251 (name "emacs-geiser")
252 (version "0.23.2")
253 (source
254 (origin
255 (method git-fetch)
256 (uri (git-reference
257 (url "https://gitlab.com/emacs-geiser/geiser")
258 (commit version)))
259 (file-name (git-file-name name version))
260 (sha256
261 (base32 "0p5cwx0xwva4ajgj8hnrk8bx6n3hv1z7aqs4zivp81crnq4077yw"))))
262 (build-system emacs-build-system)
263 (arguments
264 '(#:phases
265 (modify-phases %standard-phases
266 ;; Move the source files to the top level, which is included in
267 ;; the EMACSLOADPATH.
268 (add-after 'unpack 'move-source-files
269 (lambda _
270 (let ((el-files (find-files "./elisp" ".*\\.el$")))
271 (for-each (lambda (f)
272 (rename-file f (basename f)))
273 el-files))))
274 (add-before 'install 'make-info
275 (lambda _
276 (with-directory-excursion "doc"
277 (invoke "makeinfo" "--no-split"
278 "-o" "geiser.info" "geiser.texi")))))))
279 (native-inputs
280 (list texinfo))
281 (propagated-inputs
282 (list emacs-project emacs-transient))
283 (home-page "https://www.nongnu.org/geiser/")
284 (synopsis "Collection of Emacs modes for Scheme hacking")
285 (description
286 "Geiser is a collection of Emacs major and minor modes that conspire with
287 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
288 continuously running Scheme interpreter takes the center of the stage in
289 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
290 implementation, Emacs and, ultimately, the schemer, giving them access to live
291 metadata.
292
293 This package provides just the core of Geiser. To effectively use it with your
294 favourite Scheme implementation, you also need the corresponding geiser package,
295 e.g. emacs-geiser-guile for Guile.")
296 (license license:bsd-3)))
297
298 (define-public emacs-geiser-guile
299 (package
300 (name "emacs-geiser-guile")
301 (version "0.23.2")
302 (source
303 (origin
304 (method git-fetch)
305 (uri (git-reference
306 (url "https://gitlab.com/emacs-geiser/guile.git")
307 (commit version)))
308 (file-name (git-file-name name version))
309 (sha256
310 (base32 "18m5ldj4r4c2hxgvv5b4azl90r8az1kn5f3s913h971asyv4wx06"))))
311 (build-system emacs-build-system)
312 (arguments
313 (list
314 #:include #~(cons "^src/" %default-include)
315 #:phases
316 #~(modify-phases %standard-phases
317 (add-after 'unpack 'patch-geiser-guile-binary
318 (lambda* (#:key inputs #:allow-other-keys)
319 (substitute* "geiser-guile.el"
320 (("\\(t \"guile\")")
321 (format #f "(t ~s)"
322 (search-input-file inputs "bin/guile"))))))
323 (add-after 'make-autoloads 'patch-autoloads
324 (lambda _
325 (substitute* (string-append (elpa-directory #$output)
326 "/geiser-guile-autoloads.el")
327 ;; Activating implementations fails when Geiser is not yet
328 ;; loaded, so let's defer that until it is.
329 (("\\(geiser-activate-implementation .*\\)" all)
330 (string-append
331 "(eval-after-load 'geiser-impl '" all ")"))))))))
332 (inputs (list guile-3.0))
333 (propagated-inputs (list emacs-geiser))
334 (home-page "https://www.nongnu.org/geiser/")
335 (synopsis "Guile Scheme support for Geiser")
336 (description
337 "This package adds support for the Guile Scheme implementation to Geiser,
338 a generic Scheme interaction mode for the GNU Emacs editor.")
339 (license license:bsd-3)))
340
341 (define-public emacs-ac-geiser
342 (let ((commit "93818c936ee7e2f1ba1b315578bde363a7d43d05")
343 (revision "0"))
344 (package
345 (name "emacs-ac-geiser")
346 (version (git-version "0.1" revision commit))
347 (source
348 (origin
349 (uri (git-reference
350 (url "https://github.com/xiaohanyu/ac-geiser")
351 (commit commit)))
352 (method git-fetch)
353 (sha256
354 (base32 "00n2qa26yilaj837n1yp6lbqa4gf30nkkbvanl7m9ih7k48ssqmw"))
355 (file-name (git-file-name name version))))
356 (build-system emacs-build-system)
357 (propagated-inputs
358 (list emacs-geiser emacs-auto-complete))
359 (synopsis "Auto-complete backend for geiser")
360 (description
361 "This package provides an auto-complete source for Scheme projects
362 using geiser.")
363 (license license:bsd-3)
364 (home-page "https://github.com/xiaohanyu/ac-geiser"))))
365
366 (define-public emacs-geiser-gauche
367 ;; The latest 0.14 release has an unbound variable (geiser-scheme-dir).
368 (let ((commit "96fa06aaeef18cc1b3b519e83dbb7be09eeb0d07")
369 (revision "0"))
370 (package
371 (name "emacs-geiser-gauche")
372 (version (git-version "0.14" revision commit))
373 (source
374 (origin
375 (method git-fetch)
376 (uri (git-reference
377 (url "https://gitlab.com/emacs-geiser/gauche.git")
378 (commit commit)))
379 (file-name (git-file-name name version))
380 (sha256
381 (base32 "1ppracwfl1snq0ifdlyxpdlv7fbn3pbxm1hd1ihgqivii5nbya9r"))))
382 (build-system emacs-build-system)
383 (arguments
384 (list
385 #:include '(cons "^geiser-gauche\\.scm$" %default-include)
386 #:phases
387 #~(modify-phases %standard-phases
388 (add-after 'unpack 'patch-geiser-gauche-binary
389 (lambda* (#:key inputs #:allow-other-keys)
390 (emacs-substitute-sexps "geiser-gauche.el"
391 ("geiser-custom--defcustom geiser-gauche-binary"
392 (search-input-file inputs "bin/gosh")))))
393 (add-after 'make-autoloads 'patch-autoloads
394 (lambda _
395 (substitute* (string-append (elpa-directory #$output)
396 "/geiser-gauche-autoloads.el")
397 ;; Activating implementations fails when Geiser is not yet
398 ;; loaded, so let's defer that until it is.
399 (("\\(geiser-activate-implementation .*\\)" all)
400 (string-append
401 "(eval-after-load 'geiser-impl '" all ")"))
402 (("\\(geiser-implementation-extension .*\\)" all)
403 (string-append
404 "(eval-after-load 'geiser-impl '" all ")"))))))))
405 (inputs (list gauche))
406 (propagated-inputs (list emacs-geiser))
407 (home-page "https://gitlab.com/emacs-geiser/gauche")
408 (synopsis "Gauche Scheme support for Geiser")
409 (description
410 "This package adds support for the Gauche Scheme implementation to Geiser,
411 a generic Scheme interaction mode for the GNU Emacs editor.")
412 (license license:expat))))
413
414 (define-public emacs-geiser-racket
415 (package
416 (name "emacs-geiser-racket")
417 (version "1.0")
418 (source
419 (origin
420 (method git-fetch)
421 (uri (git-reference
422 (url "https://gitlab.com/emacs-geiser/racket")
423 (commit version)))
424 (file-name (git-file-name name version))
425 (sha256
426 (base32 "04gwd9qa0785zfr6m9a5443ilgvyz05l06cb1waicf83sgp8xl32"))))
427 (build-system emacs-build-system)
428 (arguments
429 (list
430 #:include #~(cons "^src/" %default-include)
431 #:phases
432 #~(modify-phases %standard-phases
433 (add-after 'unpack 'patch-geiser-racket-binary
434 (lambda* (#:key inputs #:allow-other-keys)
435 (substitute* "geiser-racket.el"
436 (("\\(t \"racket\")")
437 (format #f "(t ~s)"
438 (search-input-file inputs "bin/racket"))))))
439 (add-after 'make-autoloads 'patch-autoloads
440 (lambda _
441 (substitute* (string-append (elpa-directory #$output)
442 "/geiser-racket-autoloads.el")
443 ;; Activating implementations fails when Geiser is not yet
444 ;; loaded, so let's defer that until it is.
445 (("\\(geiser-activate-implementation .*\\)" all)
446 (string-append
447 "(eval-after-load 'geiser-impl '" all ")"))
448 (("\\(geiser-implementation-extension .*\\)" all)
449 (string-append
450 "(eval-after-load 'geiser-impl '" all ")"))))))))
451 (inputs (list racket))
452 (propagated-inputs (list emacs-geiser))
453 (home-page "https://www.nongnu.org/geiser/")
454 (synopsis "Racket support for Geiser")
455 (description
456 "This package adds support for the Racket implementation to Geiser,
457 a generic Scheme interaction mode for the GNU Emacs editor.")
458 (license license:bsd-3)))
459
460 (define-public emacs-geiser-chez
461 (package
462 (name "emacs-geiser-chez")
463 (version "0.17")
464 (source
465 (origin
466 (method git-fetch)
467 (uri (git-reference
468 (url "https://gitlab.com/emacs-geiser/chez")
469 (commit version)))
470 (file-name (git-file-name name version))
471 (sha256
472 (base32 "03fc9ahb0pmznkcnxzgpni4clj1zgky6vaqkc94nf8b8swniwkm9"))))
473 (build-system emacs-build-system)
474 (arguments
475 '(#:include (cons "^src/" %default-include)
476 #:phases
477 (modify-phases %standard-phases
478 (add-after 'make-autoloads 'patch-autoloads
479 (lambda* (#:key outputs #:allow-other-keys)
480 (substitute* (string-append
481 (elpa-directory (assoc-ref outputs "out"))
482 "/geiser-chez-autoloads.el")
483 ;; Activating implementations fails when Geiser is not yet
484 ;; loaded, so let's defer that until it is.
485 ;; See <https://gitlab.com/emacs-geiser/chez/-/issues/7>.
486 (("\\(geiser-activate-implementation .*\\)" all)
487 (string-append
488 "(eval-after-load 'geiser-impl '" all ")"))
489 (("\\(geiser-implementation-extension .*\\)" all)
490 (string-append
491 "(eval-after-load 'geiser-impl '" all ")"))))))))
492 (inputs
493 (list (chez-scheme-for-system)))
494 (propagated-inputs
495 (list emacs-geiser))
496 (home-page "https://nongnu.org/geiser/")
497 (synopsis "Support for Chez Scheme in Geiser")
498 (description
499 "This package adds support for using Chez Scheme in Emacs with Geiser.")
500 (license license:bsd-3)))
501
502 (define-public emacs-vc-hgcmd
503 (package
504 (name "emacs-vc-hgcmd")
505 (version "1.14.1")
506 (source
507 (origin
508 (method git-fetch)
509 (uri (git-reference
510 (url "https://github.com/muffinmad/emacs-vc-hgcmd")
511 (commit (string-append "v" version))))
512 (file-name (git-file-name name version))
513 (sha256
514 (base32 "1nlaicza4ds325827ks5gb7zn0nc536k2chq8jwbq34ybvxi93wj"))))
515 (build-system emacs-build-system)
516 (home-page "https://github.com/muffinmad/emacs-vc-hgcmd")
517 (synopsis "Version control (VC) backend for the Mercurial command server")
518 (description
519 "This package provides an Emacs VC backend to work with Mercurial
520 repositories through the
521 @uref{https://www.mercurial-scm.org/wiki/CommandServer,Mercurial command
522 server}. The main advantage compared to @code{vc-hg} is speed.")
523 (license license:gpl3+)))
524
525 (define-public emacs-terminal-here
526 (package
527 (name "emacs-terminal-here")
528 (version "2.0")
529 (source
530 (origin
531 (method git-fetch)
532 (uri (git-reference
533 (url "https://github.com/davidshepherd7/terminal-here")
534 (commit version)))
535 (file-name (git-file-name name version))
536 (sha256
537 (base32 "1iv1c2mbvhn00ha46c6f98j9syc71xhjpk8m5wa5p32sk4wcc9f4"))))
538 (build-system emacs-build-system)
539 (home-page "https://github.com/davidshepherd7/terminal-here")
540 (synopsis "Open external terminals from Emacs")
541 (description
542 "This package provides commands to open external terminal emulators from
543 Emacs, whose initial working directories are determined in relation to the
544 current buffer.")
545 (license license:gpl3+)))
546
547 (define-public emacs-hgignore-mode
548 ;; From 2021-03-14.
549 ;; No releases available.
550 (let ((commit "2c5aa4c238848f5b4f2955afcfb5f21ea513653b")
551 (revision "0"))
552 (package
553 (name "emacs-hgignore-mode")
554 ;; `Version:' header says 0.1.20150329
555 (version (git-version "0.1" revision commit))
556 (source (origin
557 (method git-fetch)
558 (uri (git-reference
559 (url "https://github.com/omajid/hgignore-mode")
560 (commit commit)))
561 (file-name (git-file-name name version))
562 (sha256
563 (base32
564 "0jn9rzhrmmv4lf7rdapdjclk6623d1mir2lq3c46428skhzjlph7"))))
565 (build-system emacs-build-system)
566 (home-page "https://github.com/omajid/hgignore-mode")
567 (synopsis "Major mode for editing @file{hgignore} files")
568 (description "This package provides a basic major mode for
569 editing @file{.hgignore} files used by the Mercurial version control
570 system.")
571 (license license:gpl3+))))
572
573 (define-public emacs-platformio-mode
574 (package
575 (name "emacs-platformio-mode")
576 (version "0.3.0")
577 (source (origin
578 (method git-fetch)
579 (uri (git-reference
580 (url "https://github.com/ZachMassia/PlatformIO-Mode")
581 (commit (string-append "v" version))))
582 (file-name (git-file-name name version))
583 (sha256
584 (base32
585 "0ian50v9vaz7kqzn20bhqadq50h0l3zhjkmniinpz4q9klh7drh9"))))
586 (build-system emacs-build-system)
587 (propagated-inputs (list emacs-async emacs-projectile))
588 (home-page "https://github.com/zachmassia/platformio-mode")
589 (synopsis "Minor mode for building and uploading PlatformIO projects")
590 (description "This package provices an Emacs minor mode for building and
591 uploading PlatformIO projects.")
592 (license license:gpl3+)))
593
594 (define-public emacs-hyperbole
595 (package
596 (name "emacs-hyperbole")
597 (version "7.1.3")
598 (source
599 (origin
600 (method url-fetch)
601 (uri (string-append "https://elpa.gnu.org/packages/"
602 "hyperbole-" version ".tar"))
603 (sha256
604 (base32 "0bizibn4qgxqp89fyik6p47s9hss1g932mg8k7pznn3kkhj5c8rh"))
605 (patches
606 (search-patches "emacs-hyperbole-toggle-messaging.patch"))))
607 (build-system emacs-build-system)
608 (arguments
609 `(#:include '("DEMO"
610 "DEMO-ROLO.otl"
611 "HY-ABOUT"
612 "man/hkey-help.txt"
613 "\\.el$"
614 "\\.info$"
615 "\\.kotl$")
616 #:phases
617 (modify-phases %standard-phases
618 ;; Fix build issues about missing "domainname" and "hpmap:dir-user"
619 ;; parent dir.
620 (add-after 'unpack 'fix-build
621 (lambda* (#:key inputs #:allow-other-keys)
622 (substitute* "hypb.el"
623 (("/bin/domainname")
624 (search-input-file inputs "bin/dnsdomainname")))
625 (substitute* "hyperbole.el"
626 (("\\(hyperb:check-dir-user\\)") ""))))
627 (add-after 'install 'install-images
628 (lambda* (#:key outputs #:allow-other-keys)
629 (let ((out (assoc-ref outputs "out")))
630 (for-each (lambda (file)
631 (install-file
632 file
633 (string-append out "/share/info/im")))
634 (find-files "man/im" "\\.png$"))))))))
635 (inputs
636 (list inetutils))
637 (home-page "https://www.gnu.org/software/hyperbole/")
638 (synopsis "The Everyday Hypertextual Information Manager")
639 (description
640 "GNU Hyperbole, or just Hyperbole, is a programmable hypertextual
641 information management system. It offers rapid views and interlinking of all
642 kinds of textual information, utilizing Emacs for editing. In particular,
643 Hyperbole lets you quickly create and activate hyperlink buttons, build
644 outlines, manage all your contacts, your windows and frames, and search across
645 buffers, directory trees, or the web.")
646 (license license:gpl3+)))
647
648 (define-public emacs-hg-histedit
649 ;; From 2021-03-02.
650 ;; No releases available.
651 (let ((commit "a05149483b9c5f7848ece0ba6028c900595a6a25")
652 (revision "0"))
653 (package
654 (name "emacs-hg-histedit")
655 (version (git-version "0.0.0" revision commit))
656 (source (origin
657 (method git-fetch)
658 (uri (git-reference
659 (url "https://github.com/jojojames/hg-histedit")
660 (commit commit)))
661 (file-name (git-file-name name version))
662 (sha256
663 (base32
664 "04zps0d4s99f5a8ahrpyf8b6qw0c1y7rd1bsaq9nc6m4qblsvwc8"))))
665 (build-system emacs-build-system)
666 (propagated-inputs
667 (list emacs-with-editor))
668 (home-page "https://github.com/jojojames/hg-histedit")
669 (synopsis "Emacs interface to @command{hg histedit}")
670 (description "This package provides an Emacs interface to
671 @command{hg histedit} for editing the commit history.")
672 (license license:gpl3+))))
673
674 (define-public emacs-package-build
675 (package
676 (name "emacs-package-build")
677 (version "3.1")
678 (source (origin
679 (method git-fetch)
680 (uri (git-reference
681 (url "https://github.com/melpa/package-build")
682 (commit version)))
683 (file-name (git-file-name name version))
684 (sha256
685 (base32
686 "1gkqav0ipfk5gsklxrbggqrbphr12qg1qr6dpdi4f0hs0i11fr23"))))
687 (build-system emacs-build-system)
688 (home-page "https://github.com/melpa/package-build")
689 (synopsis "Tools for assembling an Emacs package archive")
690 (description "This package provides tools for assembling an @acronym{ELPA,
691 Emacs package archive}.")
692 (license license:gpl3+)))
693
694 (define-public emacs-paredit
695 ;; The last tagged release is from 2014; use the latest commit, which
696 ;; includes many fixes such as honoring the 'fill-paragraph-function'
697 ;; variable.
698 (let ((commit "d0b1a2f42fb47efc8392763d6487fd027e3a2955")
699 (revision "1"))
700 (package
701 (name "emacs-paredit")
702 (version (git-version "24" revision commit))
703 (source (origin
704 (method git-fetch)
705 (uri (git-reference
706 (url "https://mumble.net/~campbell/git/paredit.git")
707 (commit commit)))
708 (file-name (git-file-name name version))
709 (sha256
710 (base32
711 "1x91xxvwb3r3h61ff1kknlaakxm1a40r7zg2lck9j52yiza4f191"))))
712 (build-system emacs-build-system)
713 (home-page "http://mumble.net/~campbell/emacs/paredit/")
714 (synopsis "Emacs minor mode for editing parentheses")
715 (description
716 "ParEdit (paredit.el) is a minor mode for performing structured editing
717 of S-expression data. The typical example of this would be Lisp or Scheme
718 source code.
719
720 ParEdit helps **keep parentheses balanced** and adds many keys for moving
721 S-expressions and moving around in S-expressions. Its behavior can be jarring
722 for those who may want transient periods of unbalanced parentheses, such as
723 when typing parentheses directly or commenting out code line by line.")
724 (license license:gpl3+))))
725
726 (define-public emacs-puni
727 ;; No tagged release upstream
728 (let ((commit "ed4a863460329a3019c286ff382e2ddc0ffdc9d7")
729 (revision "0"))
730 (package
731 (name "emacs-puni")
732 (version (git-version "0" revision commit))
733 (source (origin
734 (method git-fetch)
735 (uri (git-reference
736 (url "https://github.com/AmaiKinono/puni")
737 (commit commit)))
738 (file-name (git-file-name name version))
739 (sha256
740 (base32
741 "14lcqf0qdkq2rklx12v12qpgfahz2bpqmnl3bzcz5myawgjjcphd"))))
742 (build-system emacs-build-system)
743 (propagated-inputs (list emacs-with-editor))
744 (home-page "https://github.com/AmaiKinono/puni")
745 (synopsis "Emacs minor mode for structured editing")
746 (description
747 "Puni is an Emacs minor mode for structured editing: soft deletion,
748 expression navigating and manipulating. It supports many major modes
749 out of the box.")
750 (license license:gpl3+))))
751
752 (define-public emacs-spaceline-all-the-icons
753 (package
754 (name "emacs-spaceline-all-the-icons")
755 (version "1.4.0")
756 (source (origin
757 (method git-fetch)
758 (uri (git-reference
759 (url "https://github.com/domtronn/spaceline-all-the-icons.el")
760 (commit version)))
761 (file-name (git-file-name name version))
762 (sha256
763 (base32
764 "186v71d8n1iy73drayyf57pyzlz973q74mazkyvb8w3fj8bb3llm"))))
765 (build-system emacs-build-system)
766 (propagated-inputs
767 (list emacs-all-the-icons
768 emacs-memoize
769 emacs-spaceline))
770 (home-page "https://github.com/domtronn/spaceline-all-the-icons.el")
771 (synopsis
772 "Theme for @code{emacs-spaceline} using @code{emacs-all-the-icons}")
773 (description
774 "This package is a theme for @code{emacs-spaceline} that recreates most
775 of the segments available in that package using icons from
776 @code{emacs-all-the-icons}. Icon fonts allow for more tailored and detailed
777 information in the mode line.")
778 (license license:expat)))
779
780 (define-public emacs-project
781 (package
782 (name "emacs-project")
783 (version "0.8.1")
784 (source
785 (origin
786 (method url-fetch)
787 (uri (string-append "https://elpa.gnu.org/packages/project-" version ".tar"))
788 (sha256
789 (base32 "0q2js8qihlhchpx2mx0f992ygslsqri2q4iv8kcl4fx31lpp7c1k"))))
790 (build-system emacs-build-system)
791 (propagated-inputs (list emacs-xref))
792 (home-page "https://elpa.gnu.org/packages/project.html")
793 (synopsis "Operations on the current project")
794 (description
795 "This library contains generic infrastructure for dealing with projects,
796 some utility functions, and commands using that infrastructure.")
797 (license license:gpl3+)))
798
799 (define-public git-modes
800 (package
801 (name "emacs-git-modes")
802 (version "1.4.0")
803 (source
804 (origin
805 (method git-fetch)
806 (uri (git-reference
807 (url "https://github.com/magit/git-modes")
808 (commit version)))
809 (file-name (git-file-name name version))
810 (sha256
811 (base32 "0aqz65pcqc35h5z4s606f48iqn87h5v9nj3cp6n9yjxa2v7w5hfk"))))
812 (build-system emacs-build-system)
813 (home-page "https://github.com/magit/git-modes")
814 (synopsis "Emacs major modes for Git configuration files")
815 (description
816 "This package provides Emacs major modes for editing various Git
817 configuration files, such as @file{.gitattributes}, @file{.gitignore}, and
818 @file{.git/config}.")
819 (license license:gpl3+)))
820
821 (define-public emacs-with-editor
822 (package
823 (name "emacs-with-editor")
824 (version "3.2.0")
825 (source
826 (origin
827 (method git-fetch)
828 (uri (git-reference
829 (url "https://github.com/magit/with-editor")
830 (commit (string-append "v" version))))
831 (file-name (git-file-name name version))
832 (sha256
833 (base32 "1d98hagpm6h5vgx80qlh3zrfcb6z000rfc707w9zzmh634dkg3xx"))))
834 (build-system emacs-build-system)
835 (arguments
836 (list
837 #:phases
838 #~(modify-phases %standard-phases
839 (add-before 'install 'enter-lisp-directory
840 (lambda _
841 (chdir "lisp")))
842 (add-before 'install 'make-info
843 (lambda _
844 (with-directory-excursion "../docs"
845 (invoke "makeinfo" "--no-split"
846 "-o" "with-editor.info" "with-editor.texi")
847 (install-file "with-editor.info" "../lisp")))))))
848 (native-inputs
849 (list texinfo))
850 (propagated-inputs
851 (list emacs-async))
852 (home-page "https://github.com/magit/with-editor")
853 (synopsis "Emacs library for using Emacsclient as EDITOR")
854 (description
855 "This package provides an Emacs library to use the Emacsclient as
856 @code{$EDITOR} of child processes, making sure they know how to call home.
857 For remote processes a substitute is provided, which communicates with Emacs
858 on stdout instead of using a socket as the Emacsclient does.")
859 (license license:gpl3+)))
860
861 (define-public emacs-libgit
862 (let ((commit "0ef8b13aef011a98b7da756e4f1ce3bb18e4d55a")
863 (revision "1"))
864 (package
865 (name "emacs-libgit")
866 (version (git-version "20200515" revision commit))
867 (source (origin
868 (method git-fetch)
869 (uri (git-reference
870 (url "https://github.com/magit/libegit2")
871 (commit commit)))
872 (file-name (git-file-name name version))
873 (sha256
874 (base32
875 "0pnjr3bg6y6354dfjjxfj0g51swzgl1fncpprah75x4k94rd369f"))
876 (patches (search-patches
877 ;; Submitted for inclusion upstream (see:
878 ;; https://github.com/magit/libegit2/pull/96).
879 "emacs-libgit-use-system-libgit2.patch"))
880 (snippet
881 #~(begin
882 ;; bundled, use the one shipped with emacs instead
883 (delete-file "src/emacs-module.h")))))
884 ;; Use the cmake-build-system as it provides support for cross builds.
885 (build-system cmake-build-system)
886 (arguments
887 `(#:configure-flags '("-DUSE_SYSTEM_LIBGIT2=x")
888 ;; Add the emacs-build-system byte compilation and install phases.
889 #:imported-modules (,@%cmake-build-system-modules
890 (guix build emacs-build-system)
891 (guix build emacs-utils))
892 #:modules ((guix build cmake-build-system)
893 ((guix build emacs-build-system) #:prefix emacs:)
894 (guix build emacs-utils)
895 (guix build utils))
896 #:phases
897 (modify-phases %standard-phases
898 (add-after 'unpack 'patch-source
899 (lambda _
900 ;; Use Emacs 28 unibyte strings.
901 ;; XXX: This now breaks if linked against Emacs <= 26, probably
902 ;; also 27.
903 (substitute* "src/egit-blob.c"
904 (("make_string") "make_unibyte_string"))))
905 (add-after 'unpack 'set-libgit--module-file
906 (lambda* (#:key outputs #:allow-other-keys)
907 (let ((out (assoc-ref outputs "out")))
908 (make-file-writable "libgit.el")
909 (emacs-substitute-variables "libgit.el"
910 ("libgit--module-file"
911 (string-append (emacs:elpa-directory out) "/libegit2.so"))))))
912 (add-before 'install 'prepare-for-install
913 (lambda _
914 (let ((s "../source"))
915 (copy-file "libegit2.so" (string-append s "/libegit2.so"))
916 (chdir s))))
917 (replace 'install
918 (lambda* (#:key outputs #:allow-other-keys)
919 (let ((install (assoc-ref emacs:%standard-phases 'install)))
920 (install #:outputs outputs
921 #:include (cons "\\.so$"
922 emacs:%default-include)))))
923 (add-after 'install 'make-autoloads
924 (assoc-ref emacs:%standard-phases 'make-autoloads))
925 (add-after 'make-autoloads 'enable-autoloads-compilation
926 (assoc-ref emacs:%standard-phases 'enable-autoloads-compilation))
927 (add-after 'enable-autoloads-compilation 'patch-el-files
928 (assoc-ref emacs:%standard-phases 'patch-el-files))
929 (add-after 'patch-el-files 'emacs-build
930 (assoc-ref emacs:%standard-phases 'build))
931 (add-after 'emacs-build 'validate-compiled-autoloads
932 (assoc-ref emacs:%standard-phases 'validate-compiled-autoloads)))))
933 (native-inputs
934 (list pkg-config emacs-no-x git-minimal))
935 (inputs
936 (list libgit2))
937 (home-page "https://github.com/magit/libegit2")
938 (synopsis "Emacs bindings for libgit2")
939 (description "This is an experimental module written in C providing
940 libgit2 bindings for Emacs, intended to boost the performance of Magit.")
941 ;; The LICENSE file says GPL v2+, but libgit.el says GPL v3+.
942 (license license:gpl3+))))
943
944 (define-public emacs-magit
945 (package
946 (name "emacs-magit")
947 (version "3.3.0")
948 (source
949 (origin
950 (method git-fetch)
951 (uri (git-reference
952 (url "https://github.com/magit/magit")
953 (commit (string-append "v" version))))
954 (file-name (git-file-name name version))
955 (sha256
956 (base32 "0cxyvp2aav27znc7mf6c83q5pddpdniaqkrxn1r8dbgr540qmnpn"))))
957 (build-system emacs-build-system)
958 (arguments
959 (list
960 #:tests? #t
961 #:test-command #~(list "make" "test")
962 #:exclude #~(cons* "magit-libgit.el"
963 "magit-libgit-pkg.el"
964 %default-exclude)
965 #:phases
966 #~(modify-phases %standard-phases
967 (add-after 'unpack 'build-info-manual
968 (lambda _
969 (invoke "make" "info")
970 ;; Copy info files to the lisp directory, which acts as
971 ;; the root of the project for the emacs-build-system.
972 (for-each (lambda (f)
973 (install-file f "lisp"))
974 (find-files "Documentation" "\\.info$"))))
975 (add-after 'build-info-manual 'set-magit-version
976 (lambda _
977 (make-file-writable "lisp/magit.el")
978 (emacs-substitute-variables "lisp/magit.el"
979 ("magit-version" #$version))))
980 (add-after 'set-magit-version 'patch-exec-paths
981 (lambda* (#:key inputs #:allow-other-keys)
982 (make-file-writable "lisp/magit-sequence.el")
983 (emacs-substitute-variables "lisp/magit-sequence.el"
984 ("magit-perl-executable"
985 (search-input-file inputs "/bin/perl")))))
986 (add-before 'check 'configure-git
987 (lambda _
988 ;; Otherwise some tests fail with error "unable to auto-detect
989 ;; email address".
990 (setenv "HOME" (getcwd))
991 (invoke "git" "config" "--global" "user.name" "toto")
992 (invoke "git" "config" "--global" "user.email"
993 "toto@toto.com")))
994 (add-after 'configure-git 'disable-tramp-test
995 (lambda _
996 ;; There is an issue causing TRAMP to fail in the build
997 ;; environment. Setting the tramp-remote-shell parameter of
998 ;; the sudo-method to the file name of the shell didn't help.
999 (substitute* "t/magit-tests.el"
1000 (("^\\(ert-deftest magit-toplevel:tramp.*" all)
1001 (string-append all " (skip-unless nil)")))))
1002 (replace 'expand-load-path
1003 (lambda args
1004 (with-directory-excursion "lisp"
1005 (apply (assoc-ref %standard-phases 'expand-load-path) args))))
1006 (replace 'install
1007 (lambda args
1008 (with-directory-excursion "lisp"
1009 (apply (assoc-ref %standard-phases 'install) args)))))))
1010 (native-inputs
1011 (list texinfo))
1012 (inputs
1013 (list git perl))
1014 (propagated-inputs
1015 (list emacs-dash emacs-transient emacs-with-editor))
1016 (home-page "https://magit.vc/")
1017 (synopsis "Emacs interface for the Git version control system")
1018 (description
1019 "With Magit, you can inspect and modify your Git repositories
1020 with Emacs. You can review and commit the changes you have made to
1021 the tracked files, for example, and you can browse the history of past
1022 changes. There is support for cherry picking, reverting, merging,
1023 rebasing, and other common Git operations.")
1024 (license license:gpl3+)))
1025
1026 (define-public emacs-magit-svn
1027 (package
1028 (name "emacs-magit-svn")
1029 (version "2.2.3")
1030 (source (origin
1031 (method git-fetch)
1032 (uri (git-reference
1033 (url "https://github.com/magit/magit-svn")
1034 (commit version)))
1035 (file-name (git-file-name name version))
1036 (sha256
1037 (base32
1038 "1v1y4fir1plz4kj0cvkcd29wibli4dw7vp4fmbxq4df76d8iy8yd"))))
1039 (build-system emacs-build-system)
1040 (propagated-inputs (list emacs-dash emacs-with-editor emacs-magit
1041 emacs-transient))
1042 (home-page "https://github.com/magit/magit-svn")
1043 (synopsis "Git-SVN extension to Magit")
1044 (description
1045 "This package is an extension to Magit, the Git Emacs mode, providing
1046 support for Git-SVN.")
1047 (license license:gpl3+)))
1048
1049 (define-public emacs-magit-popup
1050 (package
1051 (name "emacs-magit-popup")
1052 (version "2.13.3")
1053 (source
1054 (origin
1055 (method git-fetch)
1056 (uri (git-reference
1057 (url "https://github.com/magit/magit-popup")
1058 (commit (string-append "v" version))))
1059 (file-name (git-file-name name version))
1060 (sha256
1061 (base32 "0znp6gx6vpcsybg774ab06mdgxb7sfk3gki1yp2qhkanav13i6q1"))))
1062 (build-system emacs-build-system)
1063 (arguments
1064 `(#:phases
1065 (modify-phases %standard-phases
1066 (add-before 'install 'make-info
1067 (lambda _
1068 (invoke "make" "info"))))))
1069 (native-inputs
1070 (list texinfo))
1071 (propagated-inputs
1072 (list emacs-dash))
1073 (home-page "https://github.com/magit/magit-popup")
1074 (synopsis "Define prefix-infix-suffix command combos")
1075 (description
1076 "This library implements a generic interface for toggling switches and
1077 setting options and then invoking an Emacs command which does something with
1078 these arguments. The prototypical use is for the command to call an external
1079 process, passing on the arguments as command line arguments.")
1080 (license license:gpl3+)))
1081
1082 (define-public emacs-magit-annex
1083 (package
1084 (name "emacs-magit-annex")
1085 (version "1.8.1")
1086 (source
1087 (origin
1088 (method git-fetch)
1089 (uri (git-reference
1090 (url "https://github.com/magit/magit-annex")
1091 (commit (string-append "v" version))))
1092 (file-name (git-file-name name version))
1093 (sha256
1094 (base32 "1amr2c08mq1nnn6k66mgz4rzyni4np7gxm96g4qyla2cbfbachgk"))))
1095 (build-system emacs-build-system)
1096 (propagated-inputs
1097 (list emacs-magit emacs-transient))
1098 (home-page "https://github.com/magit/magit-annex/")
1099 (synopsis "Git-annex support for Magit")
1100 (description
1101 "Magit-annex adds a few git-annex operations to the Magit interface.")
1102 (license license:gpl3+)))
1103
1104 (define-public emacs-mct
1105 (package
1106 (name "emacs-mct")
1107 (version "0.5.0")
1108 (source (origin
1109 (method git-fetch)
1110 (uri (git-reference
1111 (url "https://gitlab.com/protesilaos/mct")
1112 (commit version)))
1113 (sha256
1114 (base32 "0714n5nim0hyd5jywvvddka2gi2bhi1vkrbhx75mdn8h50r688kq"))
1115 (file-name (git-file-name name version))))
1116 (native-inputs (list texinfo))
1117 (build-system emacs-build-system)
1118 (arguments
1119 (list
1120 #:phases
1121 #~(modify-phases %standard-phases
1122 (add-after 'install 'makeinfo
1123 (lambda _
1124 (invoke "emacs"
1125 "--batch"
1126 "--eval=(require 'ox-texinfo)"
1127 "--eval=(find-file \"README.org\")"
1128 "--eval=(org-texinfo-export-to-info)")
1129 (install-file "mct.info" (string-append #$output "/share/info")))))))
1130 (home-page "https://protesilaos.com/emacs/mct")
1131 (synopsis "Enhancement of the default Emacs minibuffer completion UI")
1132 (description "Minibuffer and Completions in Tandem, also known as MCT, or
1133 mct.el, is an Emacs package that enhances the default minibuffer and
1134 @samp{*Completions*} buffer so that they work together as part of a unified
1135 framework. The idea is to make the presentation and overall functionality be
1136 consistent with other popular, vertically aligned completion UIs while
1137 leveraging built-in functionality.")
1138 (license (list license:gpl3+
1139 license:fdl1.3+)))) ; GFDLv1.3+ for the manual
1140
1141 (define-public emacs-minions
1142 (package
1143 (name "emacs-minions")
1144 (version "0.3.7")
1145 (source
1146 (origin
1147 (method git-fetch)
1148 (uri (git-reference
1149 (url "https://github.com/tarsius/minions")
1150 (commit (string-append "v" version))))
1151 (file-name (git-file-name name version))
1152 (sha256
1153 (base32 "1bzxxs8mxaihpjkbxgynhsi39lbbnij28grdc3sk9sq09j9752vw"))))
1154 (build-system emacs-build-system)
1155 (propagated-inputs
1156 (list emacs-dash))
1157 (home-page "https://github.com/tarsius/minions")
1158 (synopsis "Minor-mode menu for the mode line")
1159 (description
1160 "This package implements a menu that lists enabled minor-modes, as well
1161 as commonly but not currently enabled minor-modes. It can be used to toggle
1162 local and global minor-modes, to access mode-specific menus, and to get help
1163 about modes.
1164
1165 This menu is intended as a replacement for the incomplete yet wide list of
1166 enabled minor-modes that is displayed in the mode line by default. To use the
1167 menu like this, enable Minions mode.
1168
1169 Alternatively the menu can be bound globally, for example:
1170 @code{(global-set-key [S-down-mouse-3] 'minions-minor-modes-menu)}.")
1171 (license license:gpl3+)))
1172
1173 (define-public emacs-nano-modeline
1174 ;; No tagged release upstream. The commit below matches latest version
1175 ;; bump.
1176 (let ((commit "823161c8894996e5c8375249f467a422579a2947"))
1177 (package
1178 (name "emacs-nano-modeline")
1179 (version "0.7.1")
1180 (source (origin
1181 (method git-fetch)
1182 (uri (git-reference
1183 (url "https://github.com/rougier/nano-modeline")
1184 (commit commit)))
1185 (file-name (git-file-name name version))
1186 (sha256
1187 (base32
1188 "1g59g1r7gs1pz7wbh07k9p47qp7fygd1gc5kwbd0s5w42zhc6mid"))))
1189 (build-system emacs-build-system)
1190 (home-page "https://github.com/rougier/nano-modeline")
1191 (synopsis "Emacs minor mode controlling mode line")
1192 (description "Nano modeline is a minor mode for Emacs that modifies the
1193 mode line as @samp{[ status | name (primary) secondary ]}. It can be
1194 displayed at the bottom or at the top.")
1195 (license license:gpl3+))))
1196
1197 (define-public emacs-moody
1198 (package
1199 (name "emacs-moody")
1200 (version "0.7.1")
1201 (source
1202 (origin
1203 (method git-fetch)
1204 (uri (git-reference
1205 (url "https://github.com/tarsius/moody")
1206 (commit (string-append "v" version))))
1207 (file-name (git-file-name name version))
1208 (sha256
1209 (base32 "09yyihx6cpa724z6cj2rqspajwj325ipgpmckklpgq6l4h5xnwy4"))))
1210 (build-system emacs-build-system)
1211 (home-page "https://github.com/tarsius/moody")
1212 (synopsis "Tabs and ribbons for Emacs mode-line")
1213 (description
1214 "@code{emacs-moody} provides utilities for displaying elements of
1215 the mode line as tabs and ribbons. It also provides replacements for a few
1216 built-in elements. The biggest difference to similar packages is that
1217 this one is much simpler and much more consistent. When using this package,
1218 then only the color of the mode line changes when a window becomes in-/active.")
1219 (license license:gpl3+)))
1220
1221 (define-public emacs-theme-magic
1222 ;; No tagged release upstream, but the commit below correspond to the 0.2.3
1223 ;; release.
1224 (let ((commit "844c4311bd26ebafd4b6a1d72ddcc65d87f074e3")
1225 (revision "0"))
1226 (package
1227 (name "emacs-theme-magic")
1228 (version "0.2.3")
1229 (source
1230 (origin
1231 (method git-fetch)
1232 (uri (git-reference
1233 (url "https://github.com/jcaw/theme-magic")
1234 (commit commit)))
1235 (file-name (git-file-name name version))
1236 (sha256
1237 (base32 "10gkg7jh1s1484gm66a87zr7x8vmv00s7gfd0w2pj47nqf98g8hz"))))
1238 (build-system emacs-build-system)
1239 (arguments
1240 (list
1241 ;; Include Pywal interaction scripts.
1242 #:include #~(cons "^python/" %default-include)
1243 #:phases
1244 #~(modify-phases %standard-phases
1245 (add-after 'unpack 'patch-exec-paths
1246 (lambda* (#:key inputs #:allow-other-keys)
1247 (substitute* '("theme-magic.el" "python/wal_change_colors.py")
1248 (("\"python\"")
1249 (string-append "\""
1250 (search-input-file inputs "/bin/python3")
1251 "\""))
1252 (("\"wal\"")
1253 (string-append "\""
1254 (search-input-file inputs "/bin/wal")
1255 "\""))))))))
1256 (inputs
1257 (list python python-pywal))
1258 (home-page "https://github.com/jcaw/theme-magic")
1259 (synopsis "Generate and apply color palettes based on your Emacs theme")
1260 (description
1261 "This package provides a command to extract the colors from your Emacs
1262 theme and apply them to the rest of Linux with Pywal. Pywal only applies your
1263 theme to the current session.")
1264 (license license:gpl3+))))
1265
1266 (define-public emacs-vscode-dark-plus
1267 (package
1268 (name "emacs-vscode-dark-plus")
1269 (version "2.0.0")
1270 (source
1271 (origin
1272 (method git-fetch)
1273 (uri (git-reference
1274 (url "https://github.com/ianyepan/vscode-dark-plus-emacs-theme")
1275 (commit (string-append "v" version))))
1276 (file-name (git-file-name name version))
1277 (sha256
1278 (base32 "1vcaqvhdgr91pr7kqskbscs8awm8jp6dkh79h6w36i9ipmc4l4hl"))))
1279 (build-system emacs-build-system)
1280 (home-page "https://github.com/ianyepan/vscode-dark-plus-emacs-theme")
1281 (synopsis "Emacs port of the default VS Code Dark+ theme")
1282 (description
1283 "This theme aims to be as identical as possible to the default Dark+
1284 color scheme used by Visual Studio Code.")
1285 (license license:gpl3+)))
1286
1287 (define-public emacs-theme-sorcery
1288 (let ((revision "0")
1289 (commit "5a1c4445b9e6e09589a299a9962a6973272a0c2f"))
1290 (package
1291 (name "emacs-theme-sorcery")
1292 (version "1.0")
1293 (source
1294 (origin
1295 (method git-fetch)
1296 (uri (git-reference
1297 (url "https://github.com/mtreca/emacs-theme-sorcery")
1298 (commit commit)))
1299 (file-name (git-file-name name version))
1300 (sha256
1301 (base32 "1b858049n6nw4qf60fmszjrhl80x7ssh32f7glj722kwy7404kdh"))))
1302 (build-system emacs-build-system)
1303 (propagated-inputs
1304 (list emacs-autothemer))
1305 (home-page "https://github.com/mtreca/emacs-theme-sorcery")
1306 (synopsis "Dark and low-contrast Emacs theme")
1307 (description "Sorcery is a dark and low-contrast Emacs theme inspired by
1308 Apprentice and Sourcerer.")
1309 (license license:gpl3+))))
1310
1311 (define-public emacs-treepy
1312 (package
1313 (name "emacs-treepy")
1314 (version "0.1.2")
1315 (source (origin
1316 (method git-fetch)
1317 (uri (git-reference
1318 (url "https://github.com/volrath/treepy.el")
1319 (commit version)))
1320 (file-name (git-file-name name version))
1321 (sha256
1322 (base32
1323 "0pmrpij80m5kgcr8bw36r8wllgppasw08vn3ghwvis9srpaq75cn"))))
1324 (build-system emacs-build-system)
1325 (home-page
1326 "https://github.com/volrath/treepy.el")
1327 (synopsis "Tree traversal tools")
1328 (description
1329 "Generic tools for recursive and iterative tree traversal based on
1330 clojure.walk and clojure.zip respectively.")
1331 (license license:gpl3+)))
1332
1333 (define-public emacs-typing
1334 (let ((commit "a2ef25dde2d8eb91bd9c0c6164cb5208208647fa")
1335 (revision "0"))
1336 (package
1337 (name "emacs-typing")
1338 (version (git-version "1.1.4" revision commit))
1339 (source
1340 (origin
1341 (method git-fetch)
1342 (uri (git-reference
1343 (url "https://github.com/kensanata/typing")
1344 (commit commit)))
1345 (file-name (git-file-name name version))
1346 (sha256
1347 (base32
1348 "1dbh0srbf54lgd60ia79y9cfnq3kxlgw01qzdjs9mk3nfazzpgnv"))))
1349 (build-system emacs-build-system)
1350 (home-page "https://github.com/kensanata/typing/")
1351 (synopsis "Emacs game where you have to type fast")
1352 (description "The Typing of Emacs is a game for Emacs that
1353 forces you to type words correctly as fast as possible, otherwise
1354 you will die. The game builds the list of words from the active buffer.")
1355 (license license:gpl2+))))
1356
1357 (define-public emacs-graphql
1358 (package
1359 (name "emacs-graphql")
1360 (version "0.1.1")
1361 (source (origin
1362 (modules '((guix build utils)))
1363 ;; Remove examples file with references to external packages as
1364 ;; they do not exist at compilation time.
1365 (snippet
1366 '(begin (delete-file "examples.el")))
1367 (method git-fetch)
1368 (uri (git-reference
1369 (url "https://github.com/vermiculus/graphql.el")
1370 (commit version)))
1371 (file-name (git-file-name name version))
1372 (sha256
1373 (base32
1374 "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw"))))
1375 (build-system emacs-build-system)
1376 (home-page
1377 "https://github.com/vermiculus/graphql.el")
1378 (synopsis "GraphQL utilities")
1379 (description
1380 "GraphQL.el provides a generally-applicable domain-specific language for
1381 creating and executing GraphQL queries against your favorite web services.
1382 GraphQL is a data query language and runtime designed and used to request and
1383 deliver data to mobile and web apps.")
1384 (license license:gpl3+)))
1385
1386 (define-public emacs-graphql-mode
1387 ;; No tagged commit. No "Version" keyword either.
1388 (let ((commit "9bed568ec86242dbe30bdbab324aa0eb2cd9bf08")
1389 (revision "1"))
1390 (package
1391 (name "emacs-graphql-mode")
1392 (version (git-version "0" revision commit))
1393 (source
1394 (origin
1395 (method git-fetch)
1396 (uri (git-reference
1397 (url "https://github.com/davazp/graphql-mode")
1398 (commit commit)))
1399 (file-name (git-file-name name version))
1400 (sha256
1401 (base32 "0x9y7qq6y0zg8ncamzvk68ccmdyzh7xsj0xs0ykyl20d5wdpplj4"))))
1402 (build-system emacs-build-system)
1403 (home-page "https://github.com/davazp/graphql-mode")
1404 (synopsis "Emacs mode to edit GraphQL schema and queries")
1405 (description
1406 "This package implements a major mode to edit GraphQL schemas and
1407 query. The basic functionality includes syntax highlight and indentation.
1408 Additionally, it is able to send GraphQL queries to an end-point URL.
1409
1410 Files with the @file{.graphql} and @file{.gql} extensions are
1411 automatically opened with this mode.")
1412 (license license:gpl3+))))
1413
1414 (define-public emacs-ghq
1415 (package
1416 (name "emacs-ghq")
1417 (version "0.1.2")
1418 (source
1419 (origin
1420 (method git-fetch)
1421 (uri (git-reference
1422 (url "https://github.com/rcoedo/emacs-ghq")
1423 (commit (string-append "v" version))))
1424 (file-name (git-file-name name version))
1425 (sha256
1426 (base32 "0rh2k93c3a0vl073a3s3a3h6gkw454v1lyd7y8l3pd24vw9hc628"))))
1427 (build-system emacs-build-system)
1428 (propagated-inputs
1429 (list ghq))
1430 (home-page "https://github.com/rcoedo/emacs-ghq")
1431 (synopsis "Emacs interface for @code{ghq} tool")
1432 (description
1433 "This package provides a set of functions wrapping @code{ghq}, a tool for
1434 organizing remote Go repository clones.")
1435 (license license:gpl3+)))
1436
1437 (define-public emacs-ghub
1438 (package
1439 (name "emacs-ghub")
1440 (version "3.5.6")
1441 (source
1442 (origin
1443 (method git-fetch)
1444 (uri (git-reference
1445 (url "https://github.com/magit/ghub")
1446 (commit (string-append "v" version))))
1447 (file-name (git-file-name name version))
1448 (sha256
1449 (base32 "1pw1rjrvvanlcxv3rb64s2p646zfaipp7h7v8djlrrnlgy6mwbqd"))))
1450 (build-system emacs-build-system)
1451 (arguments
1452 (list
1453 #:phases
1454 #~(modify-phases %standard-phases
1455 (add-before 'install 'make-info
1456 (lambda _
1457 (invoke "make" "info")))
1458 (add-after 'make-info 'enter-lisp-directory
1459 (lambda _
1460 (chdir "lisp")))
1461 (add-after 'expand-load-path 'add-el-dir-to-emacs-load-path
1462 (lambda _
1463 (setenv "EMACSLOADPATH"
1464 (string-append (getcwd)
1465 "/lisp:"
1466 (getenv "EMACSLOADPATH")))))
1467 (add-after 'install 'install-info
1468 (lambda _
1469 (let ((info (string-append #$output "/share/info")))
1470 (install-file "../docs/ghub.info" info)))))))
1471 (native-inputs
1472 (list texinfo))
1473 (propagated-inputs
1474 (list emacs-dash emacs-let-alist emacs-treepy))
1475 (home-page "https://github.com/magit/ghub")
1476 (synopsis "Emacs client libraries for the APIs of various Git forges")
1477 (description
1478 "Ghub provides basic support for using the APIs of various Git forges from
1479 Emacs packages. It supports the REST APIs of Github, Github GraphQL, Gitlab,
1480 Gitea, Gogs and Bitbucket. It abstracts access to API resources using only a
1481 handful of functions that are not resource-specific.")
1482 (license license:gpl3+)))
1483
1484 (define-public emacs-typit
1485 (package
1486 (name "emacs-typit")
1487 (version "0.3.0")
1488 (source
1489 (origin
1490 (method git-fetch)
1491 (uri (git-reference
1492 (url "https://github.com/mrkkrp/typit")
1493 (commit version)))
1494 (file-name (git-file-name name version))
1495 (sha256
1496 (base32 "0djxmni5mfc9wzm0zg7fsd7138ic5qznbmqd5jyrk4mpf0li8nhy"))))
1497 (build-system emacs-build-system)
1498 (arguments
1499 '(#:include (cons "^dict/" %default-include)))
1500 (propagated-inputs
1501 (list emacs-f emacs-mmt))
1502 (home-page "https://github.com/mrkkrp/typit")
1503 (synopsis "Typing game for Emacs with two difficulties")
1504 (description "Emacs Typit is a typing game for Emacs. Words that are
1505 picked randomly from the most frequent words in language you're practicing,
1506 until time is up.")
1507 (license license:gpl3+)))
1508
1509 (define-public emacs-scribble-mode
1510 (let ((commit "217945d54de5e4bb207033f2116baa28f5c5ecf2")
1511 (revision "2"))
1512 (package
1513 (name "emacs-scribble-mode")
1514 (version (git-version "0.1" revision commit))
1515 (source (origin
1516 (method git-fetch)
1517 (uri (git-reference
1518 (url "https://github.com/emacs-pe/scribble-mode")
1519 (commit commit)))
1520 (file-name (git-file-name name version))
1521 (sha256
1522 (base32
1523 "1s5ccw1a5ack01wd94ywfcrar9j98agchwdh30q7iyxr0d2z4sii"))))
1524 (build-system emacs-build-system)
1525 (home-page "https://github.com/emacs-pe/scribble-mode")
1526 (synopsis "Emacs mode for editing the Scribble documentation syntax")
1527 (description
1528 "This package provides basic syntax highlighting and editing support
1529 for editing Racket's Scribble documentation syntax in Emacs.")
1530 (license license:gpl3+))))
1531
1532 (define-public emacs-shroud
1533 (package
1534 (name "emacs-shroud")
1535 (version "1.105")
1536 (source
1537 (origin
1538 (method git-fetch)
1539 (uri (git-reference
1540 (url "https://git.savannah.gnu.org/git/emacs-shroud.git")
1541 (commit version)))
1542 (file-name (git-file-name name version))
1543 (sha256
1544 (base32 "0q2pb3w8s833fjhkzicciw2php4lsnismad1dnwgp2lcway757ra"))))
1545 (build-system gnu-build-system)
1546 (arguments
1547 `(#:modules ((guix build gnu-build-system)
1548 ((guix build emacs-build-system) #:prefix emacs:)
1549 (guix build utils))
1550 #:imported-modules (,@%gnu-build-system-modules
1551 (guix build emacs-build-system)
1552 (guix build emacs-utils))
1553 #:configure-flags (list (string-append "--with-lispdir="
1554 (emacs:elpa-directory %output)))
1555 #:phases
1556 (modify-phases %standard-phases
1557 (add-after 'unpack 'expand-load-path
1558 (assoc-ref emacs:%standard-phases 'expand-load-path)))))
1559 (native-inputs
1560 (list autoconf automake texinfo perl emacs-minimal))
1561 (propagated-inputs
1562 (list emacs-bui
1563 emacs-dash
1564 emacs-f
1565 emacs-s
1566 gnupg
1567 shroud))
1568 (home-page "https://www.nongnu.org/emacs-shroud")
1569 (synopsis "Emacs interface to the Shroud password manager")
1570 (description
1571 "This package provides an Emacs interface to the Shroud password manager,
1572 using the Buffers User Interface library. You can view, copy, and edit secrets
1573 from within Emacs.")
1574 (license license:gpl3+)))
1575
1576 (define-public emacs-solidity
1577 ;; This commit fixes a spacing issue and adds new keywords.
1578 (let ((commit "d166a86b83907e0cfd64c191e9dfce4b44a9843e")
1579 (revision "0"))
1580 (package
1581 (name "emacs-solidity")
1582 (version (git-version "0.1.10" revision commit))
1583 (source
1584 (origin
1585 (method git-fetch)
1586 (uri (git-reference
1587 (url "https://github.com/ethereum/emacs-solidity")
1588 (commit commit)))
1589 (file-name (git-file-name name version))
1590 (sha256
1591 (base32 "19hgvsrqch2vp49ag6m76bi5qxd20v95z0ib838rib9as15b17wq"))))
1592 (build-system emacs-build-system)
1593 (propagated-inputs
1594 (list emacs-company emacs-flycheck))
1595 (home-page "https://github.com/ethereum/emacs-solidity")
1596 (synopsis "Major mode for writing Solidity code")
1597 (description
1598 "This is a simple language mode for the Solidity language. It is
1599 a constant work in progress as the language itself also progresses.")
1600 (license license:gpl3+))))
1601
1602 (define-public emacs-unpackaged-el
1603 (let ((commit "746801a677ada6cd6fa076e423aa0953779f3fad")
1604 (revision "3"))
1605 (package
1606 (name "emacs-unpackaged-el")
1607 (version (git-version "0" revision commit))
1608 (source
1609 (origin
1610 (method git-fetch)
1611 (uri (git-reference
1612 (url "https://github.com/alphapapa/unpackaged.el")
1613 (commit commit)))
1614 (file-name (git-file-name name version))
1615 (sha256
1616 (base32
1617 "0jvb2ci0h0lj368qhbff3pzkxj3nhlligpbkjzi525k9rkjgm7l8"))))
1618 (build-system emacs-build-system)
1619 (propagated-inputs
1620 (list emacs-dash emacs-org emacs-s emacs-hydra emacs-use-package))
1621 (arguments
1622 (list
1623 #:phases
1624 #~(modify-phases %standard-phases
1625 (add-after 'unpack 'require-hydra
1626 (lambda _
1627 (substitute* "unpackaged.el"
1628 ((";;; Code:") ";;; Code:\n(require 'hydra)")))))))
1629 (home-page "https://github.com/alphapapa/unpackaged.el")
1630 (synopsis "Useful snippets of Emacs Lisp code")
1631 (description "This package provides Emacs Lisp utilities for a variety
1632 of tasks, including version control, task management, and regex-based
1633 replacement.")
1634 (license license:gpl3+))))
1635
1636 (define-public emacs-haskell-mode
1637 (let ((revision "0")
1638 (commit "5a9f8072c7b9168f0a8409adf9d62a3e4ad4ea3d"))
1639 (package
1640 (name "emacs-haskell-mode")
1641 (version (git-version "17.2" revision commit))
1642 (source
1643 (origin
1644 (method git-fetch)
1645 (uri (git-reference
1646 (url "https://github.com/haskell/haskell-mode")
1647 (commit commit)))
1648 (file-name (git-file-name name version))
1649 (sha256
1650 (base32 "0np1wrwdq7b9hpqpl9liampacnkx6diphyk8h2sbz2mfn9qr7pxs"))))
1651 (propagated-inputs
1652 (list emacs-dash))
1653 (native-inputs
1654 (list emacs-minimal emacs-el-search emacs-stream texinfo))
1655 (build-system gnu-build-system)
1656 (arguments
1657 (list
1658 #:make-flags #~(list
1659 (string-append "EMACS=" #$emacs-minimal "/bin/emacs"))
1660 #:modules `((ice-9 match)
1661 (srfi srfi-26)
1662 ((guix build emacs-build-system) #:prefix emacs:)
1663 ,@%gnu-build-system-modules)
1664 #:imported-modules `(,@%gnu-build-system-modules
1665 (guix build emacs-build-system)
1666 (guix build emacs-utils))
1667 #:phases
1668 #~(modify-phases %standard-phases
1669 (delete 'configure)
1670 (add-before 'build 'pre-build
1671 (lambda* (#:key inputs #:allow-other-keys)
1672 (define (el-dir store-dir)
1673 (match (find-files store-dir "\\.el$")
1674 ((f1 f2 ...) (dirname f1))
1675 (_ "")))
1676
1677 (let ((sh (search-input-file inputs "/bin/sh")))
1678 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
1679
1680 (setenv "SHELL" "sh")
1681 (setenv "EMACSLOADPATH"
1682 (string-concatenate
1683 (map (match-lambda
1684 (((? emacs-prefix? name) . dir)
1685 (string-append (el-dir dir) ":"))
1686 (_ ""))
1687 inputs)))
1688 (substitute* (find-files "." "\\.el") (("/bin/sh") sh)))))
1689 (add-before 'check 'delete-failing-tests
1690 ;; XXX: these tests require GHC executable, which would be a big
1691 ;; native input.
1692 (lambda _
1693 (with-directory-excursion "tests"
1694 ;; File `haskell-indent-tests.el' fails with
1695 ;; `haskell-indent-put-region-in-literate-2'
1696 ;; on Emacs 27.1+
1697 ;; XXX: https://github.com/haskell/haskell-mode/issues/1714
1698 (for-each delete-file
1699 '("haskell-indent-tests.el"
1700 "haskell-customize-tests.el"
1701 "inferior-haskell-tests.el"))
1702
1703 ;; requires many external tools (e.g. git, hasktags)
1704 (substitute* "haskell-mode-tests.el"
1705 (("\\(ert-deftest haskell-generate-tags.*" all)
1706 (string-append all " (skip-unless nil)"))))))
1707 (replace 'install
1708 (lambda* (#:key outputs #:allow-other-keys)
1709 (let* ((out (assoc-ref outputs "out"))
1710 (el-dir (emacs:elpa-directory out))
1711 (doc (string-append
1712 out "/share/doc/haskell-mode-" #$version))
1713 (info (string-append out "/share/info")))
1714 (define (copy-to-dir dir files)
1715 (for-each (lambda (f)
1716 (install-file f dir))
1717 files))
1718
1719 (with-directory-excursion "doc"
1720 (invoke "makeinfo" "haskell-mode.texi")
1721 (install-file "haskell-mode.info" info))
1722 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
1723 (copy-to-dir el-dir (find-files "." "\\.elc?"))))))))
1724 (home-page "https://github.com/haskell/haskell-mode")
1725 (synopsis "Haskell mode for Emacs")
1726 (description
1727 "This is an Emacs mode for editing, debugging and developing Haskell
1728 programs.")
1729 (license license:gpl3+))))
1730
1731 (define-public emacs-dante
1732 (let ((commit "38b589417294c7ea44bf65b73b8046d950f9531b")
1733 (revision "1"))
1734 (package
1735 (name "emacs-dante")
1736 (version (git-version "1.6" revision commit))
1737 (source (origin
1738 (method git-fetch)
1739 (uri (git-reference
1740 (url "https://github.com/jyp/dante")
1741 (commit commit)))
1742 (sha256
1743 (base32
1744 "1mnmn635552zlwd4zr68jbvdjipl6gi4mi6wiyck28fsmq8kw96h"))
1745 (file-name (git-file-name name version))))
1746 (build-system emacs-build-system)
1747 (propagated-inputs
1748 (list emacs-dash
1749 emacs-f
1750 emacs-flycheck
1751 emacs-haskell-mode
1752 emacs-s
1753 emacs-company
1754 emacs-lcr))
1755 (home-page "https://github.com/jyp/dante")
1756 (synopsis "Minor mode for interactive Haskell")
1757 (description
1758 "This package provides a minor mode for Haskell development that
1759 supports type hints, definition-jumping, completion, and more.")
1760 (license license:gpl3+))))
1761
1762 (define-public emacs-flycheck
1763 (package
1764 (name "emacs-flycheck")
1765 (version "32")
1766 (source
1767 (origin
1768 (method git-fetch)
1769 (uri (git-reference
1770 (url "https://github.com/flycheck/flycheck/")
1771 (commit version)))
1772 (sha256
1773 (base32 "0dx6wqxz1yfp4shas4yn6abqc8bz21ks3glcyzznm3xspjdaq21s"))
1774 (file-name (git-file-name name version))))
1775 (build-system emacs-build-system)
1776 (propagated-inputs
1777 (list emacs-dash))
1778 (native-inputs
1779 (list emacs-shut-up))
1780 (arguments
1781 (list
1782 #:phases
1783 #~(modify-phases %standard-phases
1784 (add-after 'unpack 'change-flycheck-version
1785 (lambda _
1786 (substitute* "flycheck.el"
1787 (("\\(pkg-info-version-info 'flycheck\\)")
1788 (string-append "\"" #$version "\""))))))
1789 ;; TODO: many failing tests
1790 #:tests? #f
1791 #:test-command
1792 #~(list "emacs" "-Q" "--batch"
1793 "-L" "."
1794 "--load" "test/flycheck-test"
1795 "--load" "test/run.el"
1796 "-f" "flycheck-run-tests-main")))
1797 (home-page "https://www.flycheck.org")
1798 (synopsis "On-the-fly syntax checking")
1799 (description
1800 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
1801 replacement for the older Flymake extension which is part of GNU Emacs, with
1802 many improvements and additional features.
1803
1804 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
1805 checking for over 30 programming and markup languages with more than 70
1806 different tools. It highlights errors and warnings inline in the buffer, and
1807 provides an optional IDE-like error list.")
1808 (license license:gpl3+))) ;+GFDLv1.3+ for the manual
1809
1810 (define-public emacs-flymake-flycheck
1811 (package
1812 (name "emacs-flymake-flycheck")
1813 (version "20210404.2128")
1814 (source
1815 (origin
1816 (method url-fetch)
1817 (uri (string-append "https://melpa.org/packages/flymake-flycheck-"
1818 version ".el"))
1819 (sha256
1820 (base32 "1m59ahd5gjlfwf328labwdlpcxh8ywywkwgfrlsy5jyxfc9ss4nv"))))
1821 (build-system emacs-build-system)
1822 (propagated-inputs (list emacs-flycheck))
1823 (home-page "https://github.com/purcell/flymake-flycheck")
1824 (synopsis "Use Flycheck checkers as Flymake backends")
1825 (description
1826 "This package provides support for running any Flycheck checker as a
1827 Flymake diagnostic backend. The effect is that Flymake will control when the
1828 checker runs, and Flymake will receive its errors.")
1829 (license license:gpl3+)))
1830
1831 (define-public emacs-flymake-quickdef
1832 ;; This particular commit includes bug fixes on top of 1.0.0 release.
1833 (let ((version "1.0.0")
1834 (revision "0")
1835 (commit "150c5839768a3d32f988f9dc08052978a68f2ad7"))
1836 (package
1837 (name "emacs-flymake-quickdef")
1838 (version (git-version version revision commit))
1839 (source
1840 (origin
1841 (method git-fetch)
1842 (uri (git-reference
1843 (url "https://github.com/karlotness/flymake-quickdef")
1844 (commit commit)))
1845 (file-name (git-file-name name version))
1846 (sha256
1847 (base32 "19gfd539l97j8xbrq1fw83b54mxbcamlz9m896088d3p01zf8b0g"))))
1848 (build-system emacs-build-system)
1849 (home-page "https://github.com/karlotness/flymake-quickdef")
1850 (synopsis "Quickly define a new Flymake backend")
1851 (description
1852 "This package mainly defines a macro which helps remove some of the
1853 boilerplate code from defining new Flymake backend functions.")
1854 (license license:gpl3+))))
1855
1856 (define-public emacs-flymake-kondor
1857 (package
1858 (name "emacs-flymake-kondor")
1859 (version "0.1.3")
1860 (source
1861 (origin
1862 (method git-fetch)
1863 (uri (git-reference
1864 (url "https://github.com/turbo-cafe/flymake-kondor")
1865 (commit version)))
1866 (file-name (git-file-name name version))
1867 (sha256
1868 (base32 "1vcl1q07faqqmrryyia36hbgf78g3cs51pbi0bx41yzz779ribvk"))))
1869 (build-system emacs-build-system)
1870 (home-page "https://github.com/turbo-cafe/flymake-kondor")
1871 (synopsis "Linter with clj-kondo")
1872 (description "This package adds Clojure syntax checker clj-kondo.")
1873 (license license:gpl3+)))
1874
1875 (define-public emacs-flymake-shellcheck
1876 ;; No tag, version grabbed from source .el file.
1877 (let ((commit "ac534e9ef15c82ac86ae65fe5004d29dbc8c92c7")
1878 (revision "1"))
1879 (package
1880 (name "emacs-flymake-shellcheck")
1881 (version (git-version "0.1" revision commit))
1882 (source
1883 (origin
1884 (method git-fetch)
1885 (uri (git-reference
1886 (url "https://github.com/federicotdn/flymake-shellcheck")
1887 (commit commit)))
1888 (file-name (git-file-name name version))
1889 (sha256
1890 (base32 "04yfb4sy41spjzk9mhm4gy0h8vnjx09p2g6nm1yzgd9a5ph9sqgl"))))
1891 (build-system emacs-build-system)
1892 (arguments
1893 '(#:phases
1894 (modify-phases %standard-phases
1895 (add-after 'unpack 'substitute-shellcheck-path
1896 (lambda* (#:key inputs #:allow-other-keys)
1897 (make-file-writable "flymake-shellcheck.el")
1898 (emacs-substitute-sexps "flymake-shellcheck.el"
1899 ("defcustom flymake-shellcheck-path"
1900 `(or (executable-find "shellcheck")
1901 ,(string-append (assoc-ref inputs "shellcheck")
1902 "/bin/shellcheck")))))))))
1903 (inputs
1904 (list shellcheck))
1905 (home-page "https://github.com/federicotdn/flymake-shellcheck")
1906 (synopsis "Flymake backend for Bash/Sh powered by ShellCheck")
1907 (description
1908 "This package provides a backend for Flymake to use the
1909 tool ShellCheck for static analyzing @command{bash} and @command{sh}
1910 scripts.")
1911 (license license:gpl3+))))
1912
1913 (define-public emacs-a
1914 (package
1915 (name "emacs-a")
1916 (version "1.0.0")
1917 (source (origin
1918 (method git-fetch)
1919 (uri (git-reference
1920 (url "https://github.com/plexus/a.el")
1921 (commit (string-append "v" version))))
1922 (file-name (git-file-name name version))
1923 (sha256
1924 (base32 "0zkv4xvw1jdsfxqqkxskl2l380gfs13n86hj4hhzrqf0sb6aymws"))))
1925 (build-system emacs-build-system)
1926 (home-page "https://github.com/plexus/a.el/")
1927 (synopsis
1928 "Emacs library for dealing with association lists and hash tables")
1929 (description "@code{emacs-a} provides Emacs Lisp functions for dealing
1930 with associative structures in a uniform and functional way. These functions
1931 can take association lists, hash tables, and in some cases vectors (where the
1932 index is considered the key).")
1933 (license license:gpl3+)))
1934
1935 (define-public emacs-ace-jump-mode
1936 (package
1937 (name "emacs-ace-jump-mode")
1938 (version "2.0")
1939 (home-page "https://github.com/winterTTr/ace-jump-mode")
1940 (source (origin
1941 (method git-fetch)
1942 (uri (git-reference
1943 (url home-page)
1944 (commit (string-append "v" version))))
1945 (sha256
1946 (base32
1947 "1bwvzh056ls2v7y26a0s4j5mj582dmds04lx4x6iqihs04ss74bb"))
1948 (file-name (git-file-name name version))))
1949 (build-system emacs-build-system)
1950 (synopsis "Cursor location minor mode for fast navigation")
1951 (description "Ace-jump-mode is a fast/direct cursor location minor
1952 mode. It creates an N-Branch search tree internally and marks all
1953 the possible position with predefined keys in within the whole Emacs
1954 view. This allows you to move to the character, word, or line almost
1955 directly.")
1956 (license license:gpl3+)))
1957
1958 (define-public emacs-ahg
1959 ;; No tags; commit from 2021-04-12.
1960 (let ((commit "77bc2a628df006dcd2dc359ac12acdf8091a1356")
1961 (revision "0"))
1962 (package
1963 (name "emacs-ahg")
1964 (version (git-version "1.0.0" revision commit))
1965 (source (origin
1966 (method git-fetch)
1967 (uri (git-reference
1968 (url "https://bitbucket.org/agriggio/ahg")
1969 (commit commit)))
1970 (file-name (git-file-name name version))
1971 (sha256
1972 (base32
1973 "1wmvz9d40aznqh2y078v8k7n3l66m48vnf873vifi8rwg6158kqh"))))
1974 (build-system emacs-build-system)
1975 (home-page "https://bitbucket.org/agriggio/ahg")
1976 (synopsis "Emacs front-end for the Mercurial SCM")
1977 (description
1978 "This package provides a simple Emacs front-end for the Mercurial
1979 Distributed @acronym{Source Control Management, SCM} system.")
1980 (license license:gpl3+))))
1981
1982 (define-public emacs-anaphora
1983 (package
1984 (name "emacs-anaphora")
1985 (version "1.0.4")
1986 (source
1987 (origin
1988 (method git-fetch)
1989 (uri (git-reference
1990 (url "https://github.com/rolandwalker/anaphora")
1991 (commit (string-append "v" version))))
1992 (file-name (git-file-name name version))
1993 (sha256
1994 (base32
1995 "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"))))
1996 (build-system emacs-build-system)
1997 (home-page "https://github.com/rolandwalker/anaphora/")
1998 (synopsis "Anaphoric expressions for Emacs Lisp")
1999 (description "@code{emacs-anaphora} implements anaphoric expressions for
2000 Emacs Lisp.
2001
2002 Anaphoric expressions implicitly create one or more temporary variables which
2003 can be referred to during the expression. This technique can improve clarity
2004 in certain cases. It also enables recursion for anonymous functions.")
2005 (license license:public-domain)))
2006
2007 (define-public emacs-xah-fly-keys
2008 (package
2009 (name "emacs-xah-fly-keys")
2010 (version "17.13.20220526011611")
2011 (source (origin
2012 (method git-fetch)
2013 (uri (git-reference
2014 (url "https://github.com/xahlee/xah-fly-keys")
2015 (commit "b1b1ea62c3f1a329376d9125592175cf2027ebc7")))
2016 (file-name (git-file-name name version))
2017 (sha256
2018 (base32
2019 "1gv8d9zgmhzjg6zk2a7y76dz30a3l91xb1p15vldka95faz197wn"))))
2020 (build-system emacs-build-system)
2021 (home-page "http://xahlee.info/emacs/misc/ergoemacs_vi_mode.html")
2022 (synopsis "Modal keybinding system for Emacs, based on command frequency and
2023 ergonomics")
2024 (description "xah-fly-keys.el is a modal editing mode for Emacs, like Vi,
2025 but the design of key/command choice is based on command frequency statistics
2026 and ease-of-key score. Most frequently used commands have most easy keys.")
2027 (license license:gpl3)))
2028
2029 (define-public emacs-xr
2030 (package
2031 (name "emacs-xr")
2032 (version "1.22")
2033 (source
2034 (origin
2035 (method url-fetch)
2036 (uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar"))
2037 (sha256
2038 (base32 "1l3bqgzvbamfs4n628kg789g7vjn4v81q570gzbw2cwjgk4s6xbj"))))
2039 (build-system emacs-build-system)
2040 (home-page "https://elpa.gnu.org/packages/xr.html")
2041 (synopsis "Convert string regexp to rx notation")
2042 (description
2043 "This is an inverse companion to the @code{rx} package for translating
2044 regexps in string form to the @code{rx} notation. Its chief uses are:
2045
2046 @itemize
2047 @item Migrating existing code to @code{rx} form, for better readability and
2048 maintainability
2049 @item Understanding complex regexp strings and finding errors in them
2050 @end itemize
2051
2052 In addition to Emacs regexps, this package can also parse and troubleshoot
2053 skip set strings, which are arguments to @code{skip-chars-forward} and
2054 @code{skip-chars-backward}.")
2055 (license license:gpl3+)))
2056
2057 (define-public emacs-ample-regexps
2058 (let ((commit "153969ce547afe410b8986f01c9ed4087c9cd20b")
2059 (revision "2"))
2060 (package
2061 (name "emacs-ample-regexps")
2062 (version (git-version "0.1" revision commit))
2063 (source
2064 (origin
2065 (method git-fetch)
2066 (uri (git-reference
2067 (url "https://github.com/immerrr/ample-regexps.el")
2068 (commit commit)))
2069 (file-name (git-file-name name version))
2070 (sha256
2071 (base32
2072 "0dkp7bcd7h2ds40wyszy11nmh7c2jxrwy04ayz7pbxh53ir7s2k0"))))
2073 (build-system emacs-build-system)
2074 (native-inputs
2075 (list emacs-ert-runner))
2076 (arguments
2077 `(#:tests? #t
2078 #:test-command '("ert-runner" "-l" "ample-regexps")))
2079 (home-page "https://github.com/immerrr/ample-regexps.el")
2080 (synopsis "Compose and reuse Emacs regexps")
2081 (description
2082 "This package allows common parts of regexps to be easily picked out
2083 and reused.")
2084 (license license:gpl3+))))
2085
2086 (define-public emacs-airline-themes
2087 (package
2088 (name "emacs-airline-themes")
2089 (version "1.8")
2090 (source
2091 (origin
2092 (method git-fetch)
2093 (uri (git-reference
2094 (url "https://github.com/AnthonyDiGirolamo/airline-themes")
2095 (commit version)))
2096 (file-name (git-file-name name version))
2097 (sha256
2098 (base32 "1jx17g8a6pxkw4zlx3fwhqgxfzcf3019k8fklykamfrkharzsc2l"))))
2099 (build-system emacs-build-system)
2100 (propagated-inputs
2101 (list emacs-powerline))
2102 (home-page "https://github.com/AnthonyDiGirolamo/airline-themes")
2103 (synopsis "Vim-airline themes for Emacs Powerline")
2104 (description
2105 "This is a port of the themes in Vim-airline to Emacs Powerline.")
2106 (license license:expat)))
2107
2108 (define-public emacs-ample-theme
2109 (let ((commit "536966adf882446165a1f756830028faa792c7a9")
2110 (revision "1"))
2111 (package
2112 (name "emacs-ample-theme")
2113 (version (git-version "0.0.0" revision commit))
2114 (source (origin
2115 (method git-fetch)
2116 (uri (git-reference
2117 (url "https://github.com/jordonbiondo/ample-theme")
2118 (commit commit)))
2119 (file-name (git-file-name name version))
2120 (sha256
2121 (base32
2122 "07bpv8dag40qjnm5000pgzpazj4whfxf93x2vprz26sg3mjfx0nf"))))
2123 (build-system emacs-build-system)
2124 (home-page "https://github.com/jordonbiondo/ample-theme")
2125 (synopsis "Theme for Emacs providing dark, light, and flat versions")
2126 (description "Ample themes is a collection of three themes sharing a
2127 similar pallet with a light, dark and flat versions with a focus on being easy
2128 on the eyes during night and day. They only support GUI and 256 colour
2129 terminals.")
2130 (license license:gpl3+))))
2131
2132 (define-public emacs-reformatter
2133 (package
2134 (name "emacs-reformatter")
2135 (version "0.6")
2136 (source
2137 (origin
2138 (method git-fetch)
2139 (uri (git-reference
2140 (url "https://github.com/purcell/reformatter.el")
2141 (commit version)))
2142 (file-name (git-file-name name version))
2143 (sha256
2144 (base32 "1dfn7c3gpavpiwd73v2pasd8wd8b62dczhg9iv1cgh8vaqlsf92x"))))
2145 (build-system emacs-build-system)
2146 (home-page "https://github.com/purcell/reformatter.el")
2147 (synopsis "Define commands which run reformatters on the current buffer")
2148 (description
2149 "This library lets elisp authors easily define an idiomatic command to
2150 reformat the current buffer using a command-line program, together with an
2151 optional minor mode which can apply this command automatically on save.")
2152 (license license:gpl3+)))
2153
2154 (define-public emacs-relative-buffers
2155 (let ((release "0.0.1")
2156 (revision "0")
2157 (commit "9762fe268e9ff150dcec2e2e45d862d82d5c4008"))
2158 (package
2159 (name "emacs-relative-buffers")
2160 (version (git-version release revision commit))
2161 (source
2162 (origin
2163 (method git-fetch)
2164 (uri (git-reference
2165 (url "https://github.com/emacsattic/relative-buffers")
2166 (commit commit)))
2167 (file-name (git-file-name name version))
2168 (sha256
2169 (base32 "0fzhwbpyndwrmxip9zlcwkrr675l5pzwcygi45hv7w1hn39w0hxp"))
2170 (snippet
2171 '(begin
2172 ;; Delete the Cask test runners.
2173 (for-each delete-file '("Cask" "test/test-helper.el"))))))
2174 (build-system emacs-build-system)
2175 (arguments
2176 (list
2177 #:tests? #t
2178 #:test-command #~(list "ert-runner")))
2179 (native-inputs
2180 (list emacs-ert-runner))
2181 (propagated-inputs
2182 (list emacs-dash emacs-f emacs-s))
2183 (home-page "https://github.com/emacsattic/relative-buffers")
2184 (synopsis "Minor mode to rename buffers by project structure")
2185 (description
2186 "This package provides a minor mode for renaming buffers according to
2187 project structure. For Python buffers, that will be the whole module name.
2188 For temporary files and directories, that will be the relative path from the
2189 project root.")
2190 (license license:gpl3+))))
2191
2192 (define-public emacs-relint
2193 (package
2194 (name "emacs-relint")
2195 (version "1.20")
2196 (source
2197 (origin
2198 (method url-fetch)
2199 (uri (string-append "https://elpa.gnu.org/packages/"
2200 "relint-" version ".tar"))
2201 (sha256
2202 (base32 "0r20dim2r4a4bv0fmgbnq3graa7hhlai55h9qyknapqbr2j1v1h7"))))
2203 (build-system emacs-build-system)
2204 (propagated-inputs (list emacs-xr))
2205 (home-page "https://github.com/mattiase/relint")
2206 (synopsis "Elisp regexp mistake finder")
2207 (description
2208 "Relint (regular expression lint) scans Elisp files for mistakes in
2209 regexps, including deprecated syntax and bad practice. It also checks the
2210 regexp-like arguments to @code{skip-chars-forward} and
2211 @code{skip-chars-backward}.")
2212 (license license:gpl3+)))
2213
2214 (define-public emacs-bug-hunter
2215 (let ((commit "b88d981afa9154b236c5a3a83b50d5889d46c6a7")
2216 (revision "1"))
2217 (package
2218 (name "emacs-bug-hunter")
2219 (version (git-version "1.3.1" revision commit))
2220 (source
2221 (origin
2222 (method git-fetch)
2223 (uri (git-reference
2224 (url "https://github.com/Malabarba/elisp-bug-hunter")
2225 (commit commit)))
2226 (file-name (git-file-name name commit))
2227 (sha256
2228 (base32
2229 "134fj493sdn93pyyac8rpz1fzahzmayvphsrmqp3wvgysmfqm38l"))))
2230 (build-system emacs-build-system)
2231 (home-page "https://github.com/Malabarba/elisp-bug-hunter")
2232 (synopsis "Hunt down errors by bisecting elisp files")
2233 (description
2234 "The Bug Hunter is an Emacs library that finds the source of an error
2235 or unexpected behavior inside an elisp configuration file (typically
2236 @file{init.el} or @file{.emacs}).")
2237 (license license:gpl3+))))
2238
2239 \f
2240 ;;;
2241 ;;; Web browsing.
2242 ;;;
2243
2244 (define-public emacs-w3m
2245 ;; Emacs-w3m follows a "rolling release" model.
2246 (package
2247 (name "emacs-w3m")
2248 (version "20220508.2259")
2249 (source (origin
2250 ;; "Officially" this is still on cvs.namazu.org, but that repo
2251 ;; seems to be unreachable.
2252 (method git-fetch)
2253 (uri (git-reference
2254 (url "https://github.com/emacs-w3m/emacs-w3m.git")
2255 (commit "bbcebbe20ebfa807a3e4beaadf40ce6f4be213e7")))
2256 (sha256
2257 (base32
2258 "0y892n8jaxzyxi1fgyklc7zfh57ibp4yyywmif69dm28hykj6lmz"))))
2259 (build-system gnu-build-system)
2260 (native-inputs (list autoconf texinfo emacs-minimal))
2261 (inputs (list w3m imagemagick))
2262 (arguments
2263 (list
2264 #:modules '((guix build gnu-build-system)
2265 ((guix build emacs-build-system) #:prefix emacs:)
2266 (guix build utils)
2267 (guix build emacs-utils))
2268 #:imported-modules `(,@%gnu-build-system-modules
2269 (guix build emacs-build-system)
2270 (guix build emacs-utils))
2271 #:configure-flags
2272 #~(list (string-append "--with-lispdir=" (emacs:elpa-directory #$output))
2273 (string-append "--with-icondir="
2274 #$output "/share/images/emacs-w3m")
2275 ;; Leave .el files uncompressed, otherwise GC can't
2276 ;; identify run-time dependencies. See
2277 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
2278 "--without-compress-install")
2279 #:tests? #f ; no check target
2280 #:phases
2281 #~(modify-phases %standard-phases
2282 (add-after 'unpack 'autoconf
2283 (lambda _
2284 (invoke "autoconf")))
2285 (add-before 'configure 'support-emacs!
2286 (lambda _
2287 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
2288 ;; unsupported.
2289 (substitute* "configure"
2290 (("EMACS_FLAVOR=unsupported") "EMACS_FLAVOR=emacs"))))
2291 (add-before 'build 'patch-exec-paths
2292 (lambda* (#:key inputs outputs #:allow-other-keys)
2293 (let ((out (assoc-ref outputs "out")))
2294 (make-file-writable "w3m.el")
2295 (emacs-substitute-variables "w3m.el"
2296 ("w3m-command" (search-input-file inputs "/bin/w3m"))
2297 ("w3m-touch-command" (search-input-file inputs "/bin/touch"))
2298 ("w3m-icon-directory"
2299 (string-append out "/share/images/emacs-w3m")))
2300 (make-file-writable "w3m-image.el")
2301 (emacs-substitute-variables "w3m-image.el"
2302 ("w3m-imagick-convert-program"
2303 (search-input-file inputs "/bin/convert"))
2304 ("w3m-imagick-identify-program"
2305 (search-input-file inputs "/bin/identify"))))))
2306 (replace 'install
2307 (lambda* (#:key outputs #:allow-other-keys)
2308 (invoke "make" "install" "install-icons")
2309 (with-directory-excursion
2310 (emacs:elpa-directory (assoc-ref outputs "out"))
2311 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
2312 (symlink "w3m-load.el" "w3m-autoloads.el")))))))
2313 (home-page "http://emacs-w3m.namazu.org/")
2314 (synopsis "Simple Web browser for Emacs based on w3m")
2315 (description
2316 "Emacs-w3m is an emacs interface for the w3m web browser.")
2317 (license license:gpl2+)))
2318
2319 (define-public emacs-wget
2320 (package
2321 (name "emacs-wget")
2322 (version "0.5.0")
2323 (source
2324 (origin
2325 (method url-fetch)
2326 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
2327 version ".orig.tar.gz"))
2328 (sha256
2329 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
2330 (build-system emacs-build-system)
2331 (inputs (list wget))
2332 (native-inputs
2333 (list emacs-minimal))
2334 (arguments
2335 `(#:tests? #f ;no check target
2336 #:phases
2337 (modify-phases %standard-phases
2338 (add-after 'unpack 'patch-exec-paths
2339 (lambda* (#:key inputs outputs #:allow-other-keys)
2340 (emacs-substitute-variables "wget.el"
2341 ("wget-command" (search-input-file inputs "/bin/wget"))))))))
2342 (home-page "https://www.emacswiki.org/emacs/EmacsWget")
2343 (synopsis "Simple file downloader for Emacs based on wget")
2344 (description
2345 "Emacs-wget is an emacs interface for the wget file downloader.")
2346 (license license:gpl2+)))
2347
2348 (define-public emacs-eww-lnum
2349 (package
2350 (name "emacs-eww-lnum")
2351 (version "1.1")
2352 (source (origin
2353 (method git-fetch)
2354 (uri (git-reference
2355 (url "https://github.com/m00natic/eww-lnum")
2356 (commit version)))
2357 (file-name (git-file-name name version))
2358 (sha256
2359 (base32
2360 "0gs6bi3s2sszc6v2b26929azmn5513kvyin99n4d0ark1jdbjmv2"))))
2361 (build-system emacs-build-system)
2362 (home-page "https://github.com/m00natic/eww-lnum")
2363 (synopsis "Conkeror-like functionality for Eww")
2364 (description "This is extension to the Emacs browser Eww that adds
2365 Conkeror-like functionality. In short, currently visible links, forms,
2366 buttons are temporarily assigned numbers with which the former can be
2367 immediately activated. Also filtering can be applied so selection can be
2368 incrementally confined in Isearch manner.")
2369 (license license:gpl3+)))
2370
2371
2372 \f
2373 ;;;
2374 ;;; Multimedia.
2375 ;;;
2376
2377 (define emacs-emms-print-metadata
2378 (package
2379 (name "emacs-emms-print-metadata")
2380 (version "11")
2381 (source
2382 (origin
2383 (method url-fetch)
2384 (uri (string-append "https://elpa.gnu.org/packages/"
2385 "emms-" version ".tar"))
2386 (sha256
2387 (base32 "000lqhsafyh1n293ksnlyavxv1pzl5pazds4sgxjcqd45lyn55ii"))))
2388 (build-system gnu-build-system)
2389 (arguments
2390 (list
2391 #:make-flags #~(list "emms-print-metadata")
2392 #:tests? #f ; No tests.
2393 #:phases
2394 #~(modify-phases %standard-phases
2395 (delete 'configure)
2396 (replace 'install
2397 (lambda _
2398 (install-file "src/emms-print-metadata"
2399 (string-append #$output "/bin"))
2400 (install-file "emms-print-metadata.1"
2401 (string-append #$output "/share/man/man1")))))))
2402 (inputs
2403 (list taglib))
2404 (home-page "https://www.gnu.org/software/emms/")
2405 (synopsis "The Emacs Multimedia System")
2406 (description
2407 "EMMS is the Emacs Multimedia System. It is a small front-end which
2408 can control one of the supported external players. Thus, it supports
2409 whatever formats are supported by your music player. It also
2410 supports tagging and playlist management, all behind a clean and
2411 light user interface.")
2412 (license license:gpl3+)))
2413
2414 (define-public emacs-emms
2415 (package
2416 (inherit emacs-emms-print-metadata)
2417 (name "emacs-emms")
2418 (build-system emacs-build-system)
2419 (arguments
2420 `(#:phases
2421 (modify-phases %standard-phases
2422 (add-after 'unpack 'set-external-programs
2423 ;; Specify the absolute file names of the various programs
2424 ;; so that everything works out-of-the-box. (tinytag missing)
2425 (lambda* (#:key inputs #:allow-other-keys)
2426 (let ((amixer (search-input-file inputs "/bin/amixer"))
2427 (emms-print-metadata
2428 (search-input-file inputs "/bin/emms-print-metadata"))
2429 (exiftool (search-input-file inputs "/bin/exiftool"))
2430 (metaflac (search-input-file inputs "/bin/metaflac"))
2431 (mp3info (search-input-file inputs "/bin/mp3info"))
2432 (mpg321 (search-input-file inputs "/bin/mpg321"))
2433 (mid3v2 (search-input-file inputs "/bin/mid3v2"))
2434 (ogg123 (search-input-file inputs "/bin/ogg123"))
2435 (ogginfo (search-input-file inputs "/bin/ogginfo"))
2436 (opusinfo (search-input-file inputs "/bin/opusinfo"))
2437 (vorbiscomment (search-input-file inputs "/bin/vorbiscomment")))
2438 (emacs-substitute-variables "emms-player-mpg321-remote.el"
2439 ("emms-player-mpg321-remote-command"
2440 (string-append mpg321 "/bin/mpg321")))
2441 (substitute* "emms-player-simple.el"
2442 (("\"ogg123\"") (string-append "\"" ogg123 "\"")))
2443 (substitute* "emms-player-simple.el"
2444 (("\"mpg321\"") (string-append "\"" mpg321 "\"")))
2445 (emacs-substitute-variables "emms-info-ogginfo.el"
2446 ("emms-info-ogginfo-program-name" ogginfo))
2447 (emacs-substitute-variables "emms-info-opusinfo.el"
2448 ("emms-info-opusinfo-program-name" opusinfo))
2449 (emacs-substitute-variables "emms-info-libtag.el"
2450 ("emms-info-libtag-program-name" emms-print-metadata))
2451 (emacs-substitute-variables "emms-info-mp3info.el"
2452 ("emms-info-mp3info-program-name" mp3info))
2453 (emacs-substitute-variables "emms-info-metaflac.el"
2454 ("emms-info-metaflac-program-name" metaflac))
2455 (emacs-substitute-variables "emms-source-file.el"
2456 ("emms-source-file-gnu-find" (which "find")))
2457 (substitute* "emms-volume-amixer.el"
2458 (("\"amixer\"") (string-append "\"" amixer "\"")))
2459 (substitute* "emms-tag-editor.el"
2460 (("\"mid3v2\"") (string-append "\"" mid3v2 "\""))
2461 (("\"vorbiscomment\"")
2462 (string-append "\"" vorbiscomment "\"")))
2463 (substitute* "emms-info-exiftool.el"
2464 (("\"exiftool\"") (string-append "\"" exiftool "\"")))))))))
2465 (inputs
2466 (list emacs-emms-print-metadata
2467 alsa-utils
2468 flac ;for metaflac
2469 vorbis-tools
2470 mpg321
2471 mp3info
2472 python-mutagen
2473 perl-image-exiftool
2474 opus-tools))))
2475
2476 (define-public emacs-emms-mode-line-cycle
2477 (package
2478 (name "emacs-emms-mode-line-cycle")
2479 (version "0.2.5")
2480 (source
2481 (origin
2482 (method git-fetch)
2483 (uri (git-reference
2484 (url "https://github.com/momomo5717/emms-mode-line-cycle")
2485 (commit version)))
2486 (file-name (git-file-name name version))
2487 (sha256
2488 (base32
2489 "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp"))))
2490 (build-system emacs-build-system)
2491 (propagated-inputs
2492 (list emacs-emms))
2493 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
2494 (synopsis "Display the EMMS mode line as a ticker")
2495 (description
2496 "This is a minor mode for updating the EMMS mode-line string cyclically
2497 within a specified width. It is useful for displaying long track titles.")
2498 (license license:gpl3+)))
2499
2500 \f
2501 ;;;
2502 ;;; Miscellaneous.
2503 ;;;
2504
2505 (define-public emacs-ace-link
2506 (package
2507 (name "emacs-ace-link")
2508 (version "0.5.0")
2509 (source
2510 (origin
2511 (method git-fetch)
2512 (uri (git-reference
2513 (url "https://github.com/abo-abo/ace-link")
2514 (commit version)))
2515 (file-name (git-file-name name version))
2516 (sha256
2517 (base32
2518 "147dz79vg4ym5wg3d544bw2khdb2j3hr73rw4qfm64wf0q2dj0vk"))))
2519 (build-system emacs-build-system)
2520 (propagated-inputs
2521 (list emacs-avy))
2522 (home-page "https://github.com/abo-abo/ace-link")
2523 (synopsis "Quickly follow links in Emacs")
2524 (description
2525 "Currently, to jump to a link in a @code{Info-mode}, @code{help-mode},
2526 @code{woman-mode}, @code{org-mode}, @code{eww-mode}, @code{compilation-mode},
2527 @code{goto-address-mode} buffer, you can tab through the links to select the
2528 one you want. This is an O(N) operation, where the N is the amount of links.
2529 This package turns this into an O(1) operation. It does so by assigning a
2530 letter to each link using avy.")
2531 (license license:gpl3+)))
2532
2533 (define-public emacs-auto-sudoedit
2534 (package
2535 (name "emacs-auto-sudoedit")
2536 (version "1.1.0")
2537 (source
2538 (origin
2539 (method git-fetch)
2540 (uri (git-reference
2541 (url "https://github.com/ncaq/auto-sudoedit")
2542 (commit (string-append "v" version))))
2543 (file-name (git-file-name name version))
2544 (sha256
2545 (base32 "1rhdvrj2rjbvl7vkb0wcp6krqxcaigl7jk9z8yvhx6s4cm2qli6q"))))
2546 (propagated-inputs
2547 (list emacs-f))
2548 (build-system emacs-build-system)
2549 (home-page "https://github.com/ncaq/auto-sudoedit")
2550 (synopsis "Automatically re-open read-only files with sudo")
2551 (description
2552 "This package automatically reopens a file or directory with
2553 @command{sudo} if it cannot write to it.")
2554 (license license:expat)))
2555
2556 (define-public emacs-read-only-cfg
2557 ;; XXX: Upstream has no tagged release. Version is extracted from keyword
2558 ;; in main file.
2559 (let ((commit "c128c9412f768adf89ff5c4ad433cf0beab6656a")
2560 (revision "0"))
2561 (package
2562 (name "emacs-read-only-cfg")
2563 (version (git-version "0.1.0" revision commit))
2564 (source
2565 (origin
2566 (method git-fetch)
2567 (uri (git-reference
2568 (url "https://github.com/pfchen/read-only-cfg")
2569 (commit commit)))
2570 (file-name (git-file-name name version))
2571 (sha256
2572 (base32 "11zj4ysmacvz82j1siqlcp30i05my20lscls8wkdjl75g9d2b12l"))))
2573 (build-system emacs-build-system)
2574 (home-page "https://github.com/pfchen/read-only-cfg")
2575 (synopsis "Make files read-only based on user configuration")
2576 (description
2577 "Read-only-cfg is an Emacs minor mode that can automatically make files
2578 read-only based on user configuration. User configuration may be prefix
2579 directories or regex patterns.")
2580 (license license:gpl3+))))
2581
2582 (define-public emacs-bbdb
2583 (package
2584 (name "emacs-bbdb")
2585 (version "3.2.2.2")
2586 (source
2587 (origin
2588 (method url-fetch)
2589 (uri (string-append "https://elpa.gnu.org/packages/"
2590 "bbdb-" version ".tar"))
2591 (sha256
2592 (base32 "0bf20r5xhxln6z4qp8zrlln0303dkci2ydsr74pxcj08aqgk5xxf"))))
2593 (build-system emacs-build-system)
2594 (arguments
2595 ;; XXX: The following file cannot be byte-compiled, because et requires
2596 ;; `vm-autoloads', from the VM package, with is neither in Emacs nor
2597 ;; packaged in Guix. So, don't bother for now.
2598 `(#:exclude '("bbdb-vm\\.el")))
2599 (home-page "http://elpa.gnu.org/packages/bbdb.html")
2600 (synopsis "Contact management utility for Emacs")
2601 (description
2602 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
2603 an address book for email and snail mail addresses, phone numbers and the
2604 like. It can be linked with various Emacs mail clients (Message and Mail
2605 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
2606 (license license:gpl3+)))
2607
2608 (define-public emacs-beacon
2609 (package
2610 (name "emacs-beacon")
2611 (version "1.3.4")
2612 (source
2613 (origin
2614 (method git-fetch)
2615 (uri (git-reference
2616 (url "https://github.com/Malabarba/beacon")
2617 (commit version)))
2618 (file-name (git-file-name name version))
2619 (sha256
2620 (base32
2621 "0mypzfasclq7bmw0i8hfyp8c1ycd3kdgd5h1faygzh9r0phh7ciy"))))
2622 (build-system emacs-build-system)
2623 (home-page "https://github.com/Malabarba/beacon")
2624 (synopsis "Emacs minor mode creating a light that follows your cursor around")
2625 (description
2626 "Beacon is an Emacs minor-mode. Whenever the window scrolls a light will
2627 shine on top of your cursor so you know where it is.")
2628 (license license:gpl3+)))
2629
2630 (define-public emacs-counsel-bbdb
2631 (package
2632 (name "emacs-counsel-bbdb")
2633 (version "0.0.4")
2634 (source
2635 (origin
2636 (method git-fetch)
2637 (uri (git-reference
2638 (url "https://github.com/redguardtoo/counsel-bbdb")
2639 (commit version)))
2640 (file-name (git-file-name name version))
2641 (sha256
2642 (base32 "0bki658mvlchqf3prkzxz4217a95cxm58c1qmf84yp2n8h6gd0d8"))))
2643 (build-system emacs-build-system)
2644 (propagated-inputs (list emacs-ivy))
2645 (home-page "https://github.com/redguardtoo/counsel-bbdb")
2646 (synopsis "Ivy interface for BBDB")
2647 (description "This Ivy extension enables the use of @code{ivy-mode} to input
2648 email addresses from BBDB efficiently. The main functions are:
2649 @table @code
2650 @item counsel-bbdb-complete-mail to input email addresses;
2651 @item counsel-bbdb-reload' to reload contacts from BBDB database;
2652 @item counsel-bbdb-expand-mail-alias to expand mail alias.
2653 @end table
2654 Since @code{counsel-bbdb} is based on @code{ivy-mode}, all Ivy key bindings
2655 are supported. For example, after @samp{C-u M-x counsel-bbdb-complete-mail},
2656 you can press @samp{C-M-n} to input multiple email addresses.")
2657 (license license:gpl3+)))
2658
2659 (define-public emacs-bluetooth
2660 (package
2661 (name "emacs-bluetooth")
2662 (version "0.3.1")
2663 (source
2664 (origin
2665 (method url-fetch)
2666 (uri (string-append "https://elpa.gnu.org/packages/"
2667 "bluetooth-" version ".tar"))
2668 (sha256
2669 (base32 "1p10kcim5wqnbj2kiqv6hgjkzznaa48qysnnf8ym90mylsczr70z"))))
2670 (build-system emacs-build-system)
2671 (inputs
2672 (list bluez dbus))
2673 (propagated-inputs
2674 (list emacs-dash))
2675 (home-page "https://gitlab.com/rstocker/emacs-bluetooth")
2676 (synopsis "Manage Bluetooth devices using Emacs")
2677 (description
2678 "This package implements basic Bluetooth management functionality, such
2679 as connecting and disconnecting devices, setting properties and aliases,
2680 putting the adapter in discovery mode and controlling its power supply. It
2681 also includes a pairing agent.")
2682 (license license:gpl3+)))
2683
2684 (define-public emacs-aggressive-indent
2685 (package
2686 (name "emacs-aggressive-indent")
2687 (version "1.10.0")
2688 (source (origin
2689 (method url-fetch)
2690 (uri (string-append "https://elpa.gnu.org/packages/"
2691 "aggressive-indent-" version ".tar"))
2692 (sha256
2693 (base32
2694 "166jk1z0vw481lfi3gbg7f9vsgwfv8fiyxpkfphgvgcmf5phv4q1"))))
2695 (build-system emacs-build-system)
2696 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
2697 (synopsis "Minor mode to aggressively keep your code always indented")
2698 (description
2699 "@code{aggressive-indent-mode} is a minor mode that keeps your code
2700 always indented. It reindents after every change, making it more reliable
2701 than @code{electric-indent-mode}.")
2702 (license license:gpl2+)))
2703
2704 (define-public emacs-gcmh
2705 ;; No tagged release upstream, but the commit below correspond to the 0.2.1
2706 ;; release.
2707 (let ((commit "0089f9c3a6d4e9a310d0791cf6fa8f35642ecfd9"))
2708 (package
2709 (name "emacs-gcmh")
2710 (version "0.2.1")
2711 (source
2712 (origin
2713 (method git-fetch)
2714 (uri (git-reference
2715 (url "https://gitlab.com/koral/gcmh")
2716 (commit commit)))
2717 (sha256
2718 (base32 "0yh1ap8phv3x44rp0yr6z884xqw2apanbx4c0acqglvj0gaaqx25"))
2719 (file-name (git-file-name name version))))
2720 (build-system emacs-build-system)
2721 (home-page "https://gitlab.com/koral/gcmh")
2722 (synopsis "Emacs Garbage Collector Magic Hack")
2723 (description
2724 "This package enforces a sneaky @dfn{garbage collector} (GC) strategy
2725 to minimize GC interference with the activity. During normal use a high GC
2726 threshold is set. When idling GC is immediately triggered and a low threshold
2727 is set.")
2728 (license license:gpl3+))))
2729
2730 (define-public emacs-ctrlf
2731 (package
2732 (name "emacs-ctrlf")
2733 (version "1.5")
2734 (source
2735 (origin
2736 (method git-fetch)
2737 (uri (git-reference
2738 (url "https://github.com/raxod502/ctrlf")
2739 (commit (string-append "v" version))))
2740 (file-name (git-file-name name version))
2741 (sha256
2742 (base32 "1nd1yk86s0dyf87q77dg724f6629p270q3ar85jgp8gclw5plvyz"))))
2743 (build-system emacs-build-system)
2744 (home-page "https://github.com/raxod502/ctrlf/")
2745 (synopsis "Single-buffer text search in Emacs")
2746 (description "CTRLF (pronounced @emph{control F}) is an intuitive and
2747 efficient solution for single-buffer text search in Emacs, replacing packages
2748 such as Isearch, Swiper, and helm-swoop. It takes inspiration from the
2749 widely-adopted and battle-tested @samp{Ctrl+F} interfaces in programs such as
2750 web browsers, but follows the flow and keybindings of Isearch.")
2751 (license license:expat)))
2752
2753 (define-public emacs-dhall-mode
2754 ;; There is no proper release. The base version is extracted from the
2755 ;; "Version" keyword in the main file.
2756 (let ((revision "1")
2757 (commit "484bcf8f78f1183ef45c3b04a362bb73690c6b9b"))
2758 (package
2759 (name "emacs-dhall-mode")
2760 (version (git-version "0.1.3" revision commit))
2761 (source
2762 (origin
2763 (method git-fetch)
2764 (uri
2765 (git-reference
2766 (url "https://github.com/psibi/dhall-mode")
2767 (commit commit)))
2768 (file-name (git-file-name name version))
2769 (sha256
2770 (base32 "1wggg8jlzg9rph4jhxp6yiri178rnasbv38838i973kjgqjxrl76"))))
2771 (build-system emacs-build-system)
2772 (propagated-inputs
2773 (list emacs-reformatter))
2774 (home-page "https://github.com/psibi/dhall-mode")
2775 (synopsis "Major mode for working with Dhall configuration language")
2776 (description
2777 "Dhall-mode provides an Emacs Major mode for working with the Dhall
2778 configuration language. It features:
2779
2780 @itemize
2781 @item Syntax highlighting
2782 @item Multiline support for String
2783 @item Basic indentation, commenting
2784 @item Automatic formatting on save using dhall-format.
2785 @item Error highlighting.
2786 @end itemize")
2787 (license license:gpl3+))))
2788
2789 (define-public emacs-link-hint
2790 ;; Last release was in 2015.
2791 (let ((commit "83cd0489b16f013647d0507ef20905a0a91db433")
2792 (revision "4"))
2793 (package
2794 (name "emacs-link-hint")
2795 (version (git-version "0.1" revision commit))
2796 (source
2797 (origin
2798 (method git-fetch)
2799 (uri (git-reference
2800 (url "https://github.com/noctuid/link-hint.el")
2801 (commit commit)))
2802 (file-name (git-file-name name version))
2803 (sha256
2804 (base32
2805 "0kwaia6i0asr7yqcw1anzq6lf93357cc1fphkvp0llbmxizmkzb3"))))
2806 (build-system emacs-build-system)
2807 (propagated-inputs
2808 (list emacs-avy))
2809 (home-page "https://github.com/noctuid/link-hint.el")
2810 (synopsis "Vimperator-style link-hinting in Emacs")
2811 (description "This package provides commands for visiting and acting on
2812 links.")
2813 (license license:gpl3+))))
2814
2815 (define-public emacs-ag
2816 (package
2817 (name "emacs-ag")
2818 (version "0.48")
2819 (source
2820 (origin
2821 (method git-fetch)
2822 (uri (git-reference
2823 (url "https://github.com/Wilfred/ag.el")
2824 (commit version)))
2825 (file-name (git-file-name name version))
2826 (sha256
2827 (base32 "1p918y24vcn2pdliaymd210xp9fvhd4a1srqbv2lfiqrh59yjidx"))))
2828 (build-system emacs-build-system)
2829 (arguments
2830 `(#:phases
2831 (modify-phases %standard-phases
2832 (add-before 'install 'make-info
2833 (lambda _
2834 (with-directory-excursion "docs"
2835 (invoke "make" "info"))))
2836 (add-after 'install 'install-info
2837 (lambda* (#:key outputs #:allow-other-keys)
2838 (let* ((out (assoc-ref outputs "out"))
2839 (info (string-append out "/share/info")))
2840 (install-file "docs/_build/texinfo/agel.info" info)))))))
2841 (native-inputs
2842 (list python-sphinx texinfo))
2843 (propagated-inputs
2844 (list emacs-dash
2845 emacs-s
2846 the-silver-searcher)) ;'ag' executable
2847 (home-page "https://github.com/Wilfred/ag.el")
2848 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
2849 (description "This package provides the ability to use the silver
2850 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
2851 include version control system awareness, use of Perl compatible regular
2852 expressions, editing the search results directly and searching file names
2853 rather than the contents of files.")
2854 (license license:gpl3+)))
2855
2856 (define-public emacs-aio
2857 (package
2858 (name "emacs-aio")
2859 (version "1.0")
2860 (source (origin
2861 (method git-fetch)
2862 (uri (git-reference
2863 (url "https://github.com/skeeto/emacs-aio")
2864 (commit version)))
2865 (file-name (git-file-name name version))
2866 (sha256
2867 (base32
2868 "1y7j10j74r3fy0rcb8g3cm9nlls34qb0pz9xkia7psp77syrlz54"))))
2869 (build-system emacs-build-system)
2870 (arguments
2871 `(#:tests? #t
2872 #:test-command '("emacs" "--batch"
2873 "-l" "aio-test.el"
2874 "-f" "ert-run-tests-batch-and-exit")))
2875 (propagated-inputs
2876 (list emacs-elfeed emacs-skewer-mode))
2877 (home-page "https://github.com/skeeto/emacs-aio")
2878 (synopsis "Async/Await for Emacs Lisp")
2879 (description "@code{aio} is to Emacs Lisp as @code{asyncio} is to
2880 Python. This package builds upon Emacs generators to provide functions that
2881 pause while they wait on asynchronous events. They do not block any thread
2882 while paused.")
2883 (license license:unlicense)))
2884
2885 (define-public emacs-async
2886 (package
2887 (name "emacs-async")
2888 (home-page "https://github.com/jwiegley/emacs-async")
2889 (version "1.9.4")
2890 (source (origin
2891 (method git-fetch)
2892 (uri (git-reference
2893 (url home-page)
2894 (commit (string-append "v" version))))
2895 (file-name (git-file-name name version))
2896 (sha256
2897 (base32
2898 "0hhpyxb3d531jb2f3wvzx25183f0anm8nxv6mh0p825q2gkm6ly7"))))
2899 (build-system emacs-build-system)
2900 (synopsis "Asynchronous processing in Emacs")
2901 (description
2902 "This package provides the ability to call asynchronous functions and
2903 processes. For example, it can be used to run dired commands (for copying,
2904 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
2905 as a library for other Emacs packages.")
2906 (license license:gpl3+)))
2907
2908 (define-public emacs-auctex
2909 (package
2910 (name "emacs-auctex")
2911 (version "13.1.3")
2912 (source
2913 (origin
2914 (method url-fetch)
2915 (uri (string-append "https://elpa.gnu.org/packages/"
2916 "auctex-" version ".tar"))
2917 (sha256
2918 (base32 "0v9rxwz6ngnwrgvzgdki861s136gq30lqhy2gcd9q0a36gb6zhwk"))))
2919 (build-system emacs-build-system)
2920 ;; We use 'emacs' because AUCTeX requires dbus at compile time
2921 ;; ('emacs-minimal' does not provide dbus).
2922 (arguments
2923 `(#:emacs ,emacs
2924 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
2925 #:exclude '("^tests/" "^latex/README")
2926 #:phases
2927 (modify-phases %standard-phases
2928 (add-after 'unpack 'configure
2929 (lambda* (#:key inputs #:allow-other-keys)
2930 (emacs-substitute-variables "preview.el"
2931 ("preview-gs-command"
2932 (search-input-file inputs "/bin/gs")))
2933 (substitute* "preview.el"
2934 (("\"dvipng ")
2935 (let ((dvipng (search-input-file inputs "/bin/dvipng")))
2936 (string-append "\"" dvipng " ")))
2937 (("\"dvips ")
2938 (let ((dvips (search-input-file inputs "/bin/dvips")))
2939 (string-append "\"" dvips " ")))
2940 (("\"pdf2dsc ")
2941 (let ((pdf2dsc (search-input-file inputs "/bin/pdf2dsc")))
2942 (string-append "\"" pdf2dsc " "))))))
2943 (add-after 'install 'install-doc
2944 (lambda* (#:key outputs #:allow-other-keys)
2945 (let* ((out (assoc-ref outputs "out"))
2946 (etc-dir (string-append out "/share/" ,name "/"
2947 ,version "/etc")))
2948 (with-directory-excursion "doc"
2949 (setenv "HOME" (getenv "TMPDIR")) ; for mktextfm
2950 (invoke "pdftex" "tex-ref")
2951 (install-file "tex-ref.pdf"
2952 (string-append etc-dir "/refcards")))))))))
2953 (native-inputs
2954 (list perl))
2955 (inputs
2956 (list ghostscript
2957 (texlive-updmap.cfg (list texlive-amsfonts))))
2958 (home-page "https://www.gnu.org/software/auctex/")
2959 (synopsis "Integrated environment for TeX")
2960 (description
2961 "AUCTeX is a comprehensive customizable integrated environment for
2962 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
2963 or XEmacs.")
2964 (license license:gpl3+)))
2965
2966 (define-public emacs-autothemer
2967 (package
2968 (name "emacs-autothemer")
2969 (version "0.2.2")
2970 (source
2971 (origin
2972 (method git-fetch)
2973 (uri (git-reference
2974 (url "https://github.com/sebastiansturm/autothemer")
2975 (commit version)))
2976 (file-name (git-file-name name version))
2977 (sha256
2978 (base32
2979 "0cd2pqh6k32sjidkcd8682y4l6mx52xw4a05f38kk8nsrk28m74k"))))
2980 (build-system emacs-build-system)
2981 (propagated-inputs
2982 (list emacs-dash))
2983 (home-page "https://github.com/sebastiansturm/autothemer")
2984 (synopsis "Conveniently create Emacs themes")
2985 (description
2986 "Autothemer provides a thin layer on top of @code{deftheme} and
2987 @code{custom-theme-set-faces} that creates a new custom color theme, based on
2988 a set of simplified face specifications and a user-supplied color palette")
2989 (license license:gpl3+)))
2990
2991 (define-public emacs-howm
2992 (package
2993 (name "emacs-howm")
2994 (version "1.4.8")
2995 (source
2996 (origin
2997 (method url-fetch)
2998 (uri (string-append "https://howm.sourceforge.jp/a/"
2999 "howm-" version ".tar.gz"))
3000 (sha256
3001 (base32 "0i5pfnvy130fzk8w62301vgsqf1y22chwhjgnm5hjxr9y0kw5ii4"))))
3002 (build-system gnu-build-system)
3003 (native-inputs
3004 (list emacs-minimal))
3005 (arguments
3006 `(#:configure-flags
3007 (list (string-append "--with-howmdir=" (emacs:elpa-directory %output)))
3008 #:modules ((guix build gnu-build-system)
3009 ((guix build emacs-build-system) #:prefix emacs:)
3010 (guix build utils))
3011 #:imported-modules (,@%gnu-build-system-modules
3012 (guix build emacs-build-system)
3013 (guix build emacs-utils))
3014 #:phases
3015 (modify-phases %standard-phases
3016 (add-after 'install 'make-autoloads
3017 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
3018 (home-page "https://howm.osdn.jp/")
3019 (synopsis "Note-taking tool for Emacs")
3020 (description "Howm is a note-taking tool for Emacs. Like
3021 code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
3022 searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
3023 (license license:gpl1+)))
3024
3025 (define-public emacs-bm
3026 (package
3027 (name "emacs-bm")
3028 (version "201905")
3029 (source
3030 (origin
3031 (method git-fetch)
3032 (uri (git-reference
3033 (url "https://github.com/joodland/bm")
3034 (commit version)))
3035 (file-name (git-file-name name version))
3036 (sha256
3037 (base32 "180b3rc13asrmsdh7v405d54jkrininvaj52xhp71vw91ng51dkn"))))
3038 (build-system emacs-build-system)
3039 (home-page "https://github.com/joodland/bm")
3040 (synopsis "Visual bookmarks for Emacs")
3041 (description "This package provides visible, buffer local bookmarks and
3042 the ability to jump forward and backward to the next bookmark.")
3043 (license license:gpl2+)))
3044
3045 (define-public emacs-calfw
3046 (package
3047 (name "emacs-calfw")
3048 (version "1.6")
3049 (source
3050 (origin
3051 (method git-fetch)
3052 (uri (git-reference
3053 (url "https://github.com/kiwanami/emacs-calfw")
3054 (commit (string-append "v" version))))
3055 (file-name (git-file-name name version))
3056 (sha256
3057 (base32
3058 "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"))))
3059 (build-system emacs-build-system)
3060 (propagated-inputs
3061 (list emacs-howm))
3062 (home-page "https://github.com/kiwanami/emacs-calfw/")
3063 (synopsis "Calendar framework for Emacs")
3064 (description
3065 "This package displays a calendar view with various schedule data in the
3066 Emacs buffer.")
3067 (license license:gpl3+)))
3068
3069 (define-public emacs-caml
3070 (package
3071 (name "emacs-caml")
3072 (version "4.9")
3073 (source
3074 (origin
3075 (method url-fetch)
3076 (uri (string-append "https://elpa.nongnu.org/nongnu/caml-"
3077 version ".tar"))
3078 (sha256
3079 (base32
3080 "00ldvz6r10vwwmk6f3az534p0340ywn7knsg2bmvbvh3q51vyl9i"))))
3081 (build-system emacs-build-system)
3082 (home-page "https://github.com/ocaml/caml-mode")
3083 (synopsis "Caml mode for GNU Emacs")
3084 (description
3085 "This package provides a major mode for editing OCaml code in Emacs.
3086 Some of its major features include:
3087
3088 @itemize
3089 @item syntax highlighting (font lock);
3090 @item automatic indentation;
3091 @item querying the type of expressions (using compiler generated annot files);
3092 @item running an OCaml REPL within Emacs;
3093 @item scanning of declarations and placing them in a menu.
3094 @end itemize")
3095 (license license:gpl2+)))
3096
3097 (define-public emacs-caps-lock
3098 (package
3099 (name "emacs-caps-lock")
3100 (version "1.0")
3101 (source
3102 (origin
3103 (method url-fetch)
3104 (uri (string-append "https://elpa.gnu.org/packages/"
3105 "caps-lock-" version ".el"))
3106 (sha256
3107 (base32 "1i4hwam81p4dr0bk8257fkiz4xmv6knkjxj7a00fa35kgx5blpva"))))
3108 (build-system emacs-build-system)
3109 (home-page "http://elpa.gnu.org/packages/caps-lock.html")
3110 (synopsis "Caps Lock as a minor mode")
3111 (description
3112 "This package provides a minor mode to emulate the behavior of a Caps
3113 Lock key.")
3114 (license license:gpl3+)))
3115
3116 (define-public emacs-chronometrist
3117 (package
3118 (name "emacs-chronometrist")
3119 (version "0.10.0")
3120 (source
3121 (origin
3122 (method git-fetch)
3123 (uri (git-reference
3124 (url "https://tildegit.org/contrapunctus/chronometrist")
3125 (commit (string-append "v" version))))
3126 (file-name (git-file-name name version))
3127 (sha256
3128 (base32 "0qpkpkipmac24m3ng4ahsml3vi15qcvmid3g02pbpgbpc113zfpl"))))
3129 (build-system emacs-build-system)
3130 (arguments
3131 (list
3132 #:phases
3133 #~(modify-phases %standard-phases
3134 (add-after 'unpack 'chdir-elisp
3135 ;; Elisp directory is not in root of the source.
3136 (lambda _
3137 (chdir "elisp")))
3138 (add-after 'install 'install-doc
3139 ;; Documentation consists of several Markdown files.
3140 (lambda _
3141 (let ((doc (string-append #$output
3142 "/share/doc/emacs-chronometrist-"
3143 #$version)))
3144 (with-directory-excursion "../doc"
3145 (for-each (lambda (f) (install-file f doc))
3146 (cons* "../UNLICENSE"
3147 "../WTFPL"
3148 (find-files "." "\\.md$"))))))))))
3149 (propagated-inputs
3150 (list emacs-alert emacs-dash emacs-s emacs-spark emacs-ts))
3151 (home-page "https://github.com/contrapunctus-1/chronometrist")
3152 (synopsis "Time tracker for Emacs")
3153 (description "Chronometrist is a time tracker in Emacs, largely modelled
3154 after the Android application, @emph{A Time Tracker}.
3155
3156 Its features are:
3157 @itemize
3158 @item Simple and efficient to use,
3159 @item Displays useful information about your time usage,
3160 @item Support for both mouse and keyboard,
3161 @item Human errors in tracking are easily fixed by editing a plain text file,
3162 @item Hooks to let you perform arbitrary actions when starting/stopping tasks.
3163 @end itemize")
3164 ;; Software is dual-licensed.
3165 (license (list license:unlicense license:wtfpl2))))
3166
3167 (define-public emacs-citeproc-el
3168 (package
3169 (name "emacs-citeproc-el")
3170 (version "0.9")
3171 (source
3172 (origin
3173 (method git-fetch)
3174 (uri (git-reference
3175 (url "https://github.com/andras-simonyi/citeproc-el")
3176 (commit version)))
3177 (file-name (git-file-name name version))
3178 (sha256
3179 (base32 "1m5j1abyk68f3d1v781yrx2xkg42vyfgfckbj2yk2lgk6d7rz0p1"))))
3180 (build-system emacs-build-system)
3181 (arguments
3182 `(#:emacs ,emacs)) ;need libxml support
3183 (propagated-inputs
3184 (list emacs-dash
3185 emacs-f
3186 emacs-parsebib
3187 emacs-queue
3188 emacs-s
3189 emacs-string-inflection))
3190 (home-page "https://github.com/andras-simonyi/citeproc-el")
3191 (synopsis "Citation Style Language (CSL) processor for Emacs")
3192 (description
3193 "Citeproc-el is an Emacs Lisp library for rendering citations
3194 and bibliographies in styles described in the Citation Style
3195 Language (CSL), an XML-based, open format to describe the formatting
3196 of bibliographic references.")
3197 (license license:gpl3+)))
3198
3199 (define-public emacs-corfu
3200 (package
3201 (name "emacs-corfu")
3202 (version "0.26")
3203 (source
3204 (origin
3205 (method git-fetch)
3206 (uri (git-reference
3207 (url "https://github.com/minad/corfu")
3208 (commit version)))
3209 (file-name (git-file-name name version))
3210 (sha256
3211 (base32 "00fmw6a1pjl4paawrhvbjw2ydnds3vxl2gjgzc9i13khnbv8wdq1"))))
3212 (build-system emacs-build-system)
3213 (arguments
3214 `(#:phases
3215 (modify-phases %standard-phases
3216 ;; Move the extensions source files to the top level, which is included
3217 ;; in the EMACSLOADPATH.
3218 (add-after 'unpack 'move-source-files
3219 (lambda _
3220 (let ((el-files (find-files "./extensions" ".*\\.el$")))
3221 (for-each (lambda (f)
3222 (rename-file f (basename f)))
3223 el-files)))))))
3224 (home-page "https://github.com/minad/corfu")
3225 (synopsis "Completion overlay region function")
3226 (description
3227 "Corfu enhances the default completion in region function with a completion
3228 overlay. The current candidates are shown in a popup overlay below or above
3229 the point. Corfu can be considered the minimalistic
3230 @code{completion-in-region} counterpart of the Vertico minibuffer UI.")
3231 (license license:gpl3+)))
3232
3233 (define-public emacs-corfu-doc
3234 (package
3235 (name "emacs-corfu-doc")
3236 (version "0.6.3")
3237 (source
3238 (origin
3239 (method git-fetch)
3240 (uri (git-reference
3241 (url "https://github.com/galeo/corfu-doc")
3242 (commit "f9566cf13f6730a45b2f3c12e491a3fa2097e5d5")))
3243 (file-name (git-file-name name version))
3244 (sha256
3245 (base32 "098yf29yv1b11p7kvdc7n4ra7f5vcmf6nlvhl85jgwqrsdz1795b"))))
3246 (build-system emacs-build-system)
3247 (propagated-inputs (list emacs-corfu))
3248 (home-page "https://github.com/galeo/corfu-doc")
3249 (synopsis "Documentation popup for Corfu")
3250 (description
3251 "The @code{corfu-doc} package provides a way to display a documentation
3252 popup for completion candidates when using @code{emacs-corfu}. It can
3253 be regarded as @code{emacs-company-quickhelp} for @code{emacs-corfu}.")
3254 (license license:gpl3+)))
3255
3256 (define-public emacs-cape
3257 (package
3258 (name "emacs-cape")
3259 (version "0.8")
3260 (source
3261 (origin
3262 (method git-fetch)
3263 (uri (git-reference
3264 (url "https://github.com/minad/cape")
3265 (commit version)))
3266 (file-name (git-file-name name version))
3267 (sha256
3268 (base32 "0zv3hcnarwyhj4hhfk9kz4gzshks10vd5zfsmpv5nlbhvwp69j3p"))))
3269 (build-system emacs-build-system)
3270 (home-page "https://github.com/minad/cape")
3271 (synopsis "Completion at point extensions for Emacs")
3272 (description
3273 "Cape provides some Completion At Point Extensions, which can be used in
3274 combination with Corfu completion UI or the default completion UI. The
3275 completion backends used by @code{completion-at-point} are so called
3276 @code{completion-at-point-functions} (Capfs). In principle, the Capfs
3277 provided by Cape can also be used by Company.")
3278 (license license:gpl3+)))
3279
3280 (define-public emacs-direnv
3281 (package
3282 (name "emacs-direnv")
3283 (version "2.2.0")
3284 (source
3285 (origin
3286 (method git-fetch)
3287 (uri (git-reference
3288 (url "https://github.com/wbolster/emacs-direnv")
3289 (commit version)))
3290 (file-name (git-file-name name version))
3291 (sha256
3292 (base32 "0cf5npgksl9a03mnfdhfdhlf46gr9qz9adjxz3dbckq9b1vl0dfc"))))
3293 (build-system emacs-build-system)
3294 (arguments
3295 `(#:phases
3296 (modify-phases %standard-phases
3297 (add-after 'unpack 'patch-in-direnv
3298 (lambda* (#:key inputs #:allow-other-keys)
3299 (let ((direnv (search-input-file inputs "/bin/direnv")))
3300 (substitute* "direnv.el"
3301 (("\"direnv\"") (string-append "\"" direnv "\"")))))))))
3302 (inputs
3303 (list direnv))
3304 (propagated-inputs
3305 (list emacs-dash emacs-with-editor))
3306 (home-page "https://github.com/wbolster/emacs-direnv")
3307 (synopsis "Direnv integration for Emacs")
3308 (description
3309 "This package provides support for invoking direnv to get the environment
3310 for the current file and updating the environment within Emacs to match.
3311
3312 Direnv can be invoked manually, and a global minor mode is included that will
3313 update the environment when the active buffer changes.
3314
3315 Using emacs-direnv means that programs started from Emacs will use the
3316 environment set through Direnv.")
3317 (license license:gpl3+)))
3318
3319 (define-public emacs-elf-mode
3320 (package
3321 (name "emacs-elf-mode")
3322 (version "0.1.0")
3323 (source
3324 (origin
3325 (method git-fetch)
3326 (uri
3327 (git-reference
3328 (url "https://github.com/abo-abo/elf-mode")
3329 (commit version)))
3330 (file-name (git-file-name name version))
3331 (sha256
3332 (base32 "0cbvjbk2893ag1iy8ggixpirfiyhssm7fii96hb9jqdz874cdl0k"))))
3333 (build-system emacs-build-system)
3334 (home-page "https://github.com/abo-abo/elf-mode")
3335 (synopsis "Show symbol list when opening a binary file in Emacs")
3336 (description "This Emacs package provides a command showing the symbols
3337 that the binary uses instead of the actual binary contents.")
3338 (license license:gpl3+)))
3339
3340 (define-public emacs-font-lock-studio
3341 (let ((commit "12c35967b31233e06946c70627aa3152dacfe261")
3342 (revision "1"))
3343 (package
3344 (name "emacs-font-lock-studio")
3345 (version (git-version "0.0.7" revision commit))
3346 (source
3347 (origin
3348 (method git-fetch)
3349 (uri (git-reference
3350 (url "https://github.com/Lindydancer/font-lock-studio")
3351 (commit "12c35967b31233e06946c70627aa3152dacfe261")))
3352 (file-name (git-file-name name version))
3353 (sha256
3354 (base32 "0q0s6f5vi3sfifj7vq2nnsmgyyivp1sd3idk32858md5ri71qif0"))))
3355 (build-system emacs-build-system)
3356 (home-page "https://github.com/Lindydancer/font-lock-studio")
3357 (synopsis "Interactive debugger for Font Lock keywords")
3358 (description
3359 "Font Lock Studio is an interactive debugger for Emacs syntax highlighting
3360 rules, also called Font Lock keywords. It can @emph{single-step} Font Lock
3361 keywords -- matchers, highlights, and anchored rules, to see what happens when
3362 a buffer is fontified. Breakpoints can be set on or inside rules. When
3363 inside a rule, matches are visualized using a palette of background colors.
3364 The explainer can describe a rule in plain-text English. Finally, tight
3365 integration with Edebug allows stepping into Lisp expressions that are part of
3366 the Font Lock keywords.")
3367 (license license:gpl3+))))
3368
3369 (define-public emacs-form-feed
3370 (package
3371 (name "emacs-form-feed")
3372 (version "0.2.3")
3373 (source
3374 (origin
3375 (method git-fetch)
3376 (uri (git-reference
3377 (url "https://depp.brause.cc/form-feed.git")
3378 (commit version)))
3379 (file-name (git-file-name name version))
3380 (sha256
3381 (base32 "10mcj4x2fjq0ikq9adkd72k9zp6caqib628bmj8d67wwabvzj6mk"))))
3382 (build-system emacs-build-system)
3383 (home-page "https://depp.brause.cc/form-feed")
3384 (synopsis "Display ^L glyphs as horizontal lines")
3385 (description
3386 "This package provides a minor mode @code{form-feed-mode} to display page
3387 delimiters which usually appear as ^L glyphs on a single line as horizontal
3388 lines spanning the entire window. The minor mode is suitable for inclusion
3389 into mode hooks and is intended to be used that way.")
3390 (license license:gpl3+)))
3391
3392 (define-public emacs-ggtags
3393 (package
3394 (name "emacs-ggtags")
3395 (version "0.9.0")
3396 (source
3397 (origin
3398 (method url-fetch)
3399 (uri (string-append "https://elpa.gnu.org/packages/ggtags-"
3400 version ".tar"))
3401 (sha256
3402 (base32
3403 "0p79x9g94jynl83ndvqp9349vhgkzxzhnc517r8hn44iqxqf6ghg"))))
3404 (build-system emacs-build-system)
3405 (inputs
3406 (list global))
3407 (arguments
3408 `(#:phases
3409 (modify-phases %standard-phases
3410 (add-after 'unpack 'configure
3411 (lambda* (#:key inputs #:allow-other-keys)
3412 (chmod "ggtags.el" #o644)
3413 (emacs-substitute-variables "ggtags.el"
3414 ("ggtags-executable-directory"
3415 (dirname (search-input-file inputs "bin/global")))))))))
3416 (home-page "https://github.com/leoliu/ggtags")
3417 (synopsis "Frontend to the GNU Global source code tagging system")
3418 (description "@code{ggtags} provides a frontend to the GNU Global source
3419 code tagging system.
3420
3421 Features:
3422
3423 @itemize
3424 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
3425 @item Automatically update Global's tag files when needed with tuning for
3426 large source trees.
3427 @item Intuitive navigation among multiple matches with mode-line display of
3428 current match, total matches and exit status.
3429 @item Read tag with completion.
3430 @item Show definition at point.
3431 @item Jump to #include files.
3432 @item Support search history and saving a search to register/bookmark.
3433 @item Query replace.
3434 @item Manage Global's environment variables on a per-project basis.
3435 @item Highlight (definition) tag at point.
3436 @item Abbreviated display of file names.
3437 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
3438 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
3439 @code{pygments} backend.
3440 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
3441 @code{cscope} etc.
3442 @item Support projects on remote hosts (e.g. via @code{tramp}).
3443 @item Support eldoc.
3444 @item Search @code{GTAGSLIBPATH} for references and symbols.
3445 @end itemize\n")
3446 (license license:gpl3+)))
3447
3448 (define-public emacs-go-mode
3449 ;; XXX: Upstream did not tag last release. The commit below matches version
3450 ;; bump.
3451 (let ((commit "3273fcece5d9ab7edd4f15b2d6bce61f4e5a0666"))
3452 (package
3453 (name "emacs-go-mode")
3454 (version "1.6.0")
3455 (source (origin
3456 (method git-fetch)
3457 (uri (git-reference
3458 (url "https://github.com/dominikh/go-mode.el")
3459 (commit commit)))
3460 (file-name (git-file-name name version))
3461 (sha256
3462 (base32
3463 "00qzn136d8cl3szbi44xf3iiv75r6n1m7wwgldmzn4i5mpz8dbq7"))))
3464 (arguments
3465 (list
3466 #:tests? #t
3467 #:test-command #~(list "ert-runner")
3468 #:phases
3469 #~(modify-phases %standard-phases
3470 (add-before 'check 'fix-tests
3471 ;; Two tests fail because they (wrongly) assume we run them from
3472 ;; the "test" sub-directory. Fix their expectations.
3473 (lambda _
3474 (let ((test-file "test/go-indentation-test.el"))
3475 (make-file-writable test-file)
3476 (substitute* test-file
3477 (("testdata/indentation_tests/" all)
3478 (string-append "test/" all)))))))))
3479 (build-system emacs-build-system)
3480 (native-inputs (list emacs-ert-runner))
3481 (home-page "https://github.com/dominikh/go-mode.el")
3482 (synopsis "Go mode for Emacs")
3483 (description
3484 "This package provides go-mode, an Emacs mode for working with software
3485 written in the Go programming language.")
3486 (license license:bsd-3))))
3487
3488 (define-public emacs-google-maps
3489 ;; There has been no new release tag since 2013.
3490 (let ((commit "2eb16ff609f5a9f8d02c15238a111fbb7db6c146")
3491 (revision "1"))
3492 (package
3493 (name "emacs-google-maps")
3494 (version (git-version "1.0.0" revision commit))
3495 (source
3496 (origin
3497 (method git-fetch)
3498 (uri (git-reference
3499 (url "https://github.com/jd/google-maps.el")
3500 (commit commit)))
3501 (file-name (git-file-name name version))
3502 (sha256
3503 (base32 "1bl0dnksbf14d0xcnvdy9qpvzc5c8jwkxpmfvgayj6djikxnw2md"))))
3504 (build-system emacs-build-system)
3505 (home-page "https://github.com/jd/google-maps.el")
3506 (synopsis "Access Google Maps from Emacs")
3507 (description "The @code{google-maps} package displays Google Maps
3508 directly inside Emacs. It requires a Google Map Static API key to function.")
3509 (license license:gpl3+))))
3510
3511 (define-public emacs-graphviz-dot-mode
3512 (package
3513 (name "emacs-graphviz-dot-mode")
3514 (version "0.4.2")
3515 (source
3516 (origin
3517 (method git-fetch)
3518 (uri (git-reference
3519 (url "https://github.com/ppareit/graphviz-dot-mode")
3520 (commit (string-append "v" version))))
3521 (file-name (git-file-name name version))
3522 (sha256
3523 (base32 "1v1p85wk73nfsvv66qf90flgf9dqhmv15z1r7q4zmc4ifklqn08m"))))
3524 (build-system emacs-build-system)
3525 (arguments
3526 (list
3527 #:phases
3528 #~(modify-phases %standard-phases
3529 (add-before 'install 'make-info
3530 (lambda* (#:key inputs #:allow-other-keys)
3531 (with-directory-excursion "texinfo"
3532 (substitute* "Makefile"
3533 (("\\/usr\\/bin\\/gzip")
3534 (search-input-file inputs "/bin/gzip")))
3535 (invoke "make"
3536 "clean"
3537 "info"
3538 (string-append "TEXINFODIR="
3539 #$(this-package-native-input "texinfo")
3540 "/bin")))))
3541 (add-after 'install 'install-info
3542 (lambda _
3543 (let ((info (string-append #$output "/share/info")))
3544 (install-file "texinfo/graphviz-dot-mode.info.gz" info)))))))
3545 (native-inputs
3546 (list gzip texinfo))
3547 (propagated-inputs
3548 (list emacs-company))
3549 (home-page "http://ppareit.github.com/graphviz-dot-mode")
3550 (synopsis "Major mode for editing Graphviz DOT files")
3551 (description
3552 "This Emacs package helps you to create @file{.dot} or @file{.gv} files
3553 using the DOT syntax, and use Graphviz to convert these files to diagrams.")
3554 (license license:gpl2+)))
3555
3556 (define-public emacs-imenu-list
3557 (let ((commit "b50222378412fbe321622a84cb2b036e084c697a")
3558 (revision "1")
3559 (version "0.9"))
3560 (package
3561 (name "emacs-imenu-list")
3562 (version (git-version version revision commit))
3563 (source
3564 (origin
3565 (method git-fetch)
3566 (uri
3567 (git-reference
3568 (url "https://github.com/bmag/imenu-list")
3569 (commit commit)))
3570 (file-name (git-file-name name version))
3571 (sha256
3572 (base32 "1936dd41fa05ndzf2bwhllvjz97iz0rflkazjipr7dvz5q072wj2"))))
3573 (build-system emacs-build-system)
3574 (home-page "https://github.com/bmag/imenu-list")
3575 (synopsis
3576 "Automatically tracks the current buffer's imenu entries")
3577 (description
3578 "This Emacs minor mode creates an automatically updated buffer called
3579 @code{*Ilist*} that is populated with the current buffer's imenu entries.
3580 This buffer is typically shown as a sidebar (Emacs vertically splits the
3581 window).")
3582 (license license:gpl3+))))
3583
3584 (define-public emacs-mmm-mode
3585 (package
3586 (name "emacs-mmm-mode")
3587 (version "0.5.8")
3588 (source
3589 (origin
3590 (method url-fetch)
3591 (uri (string-append "https://elpa.gnu.org/packages/"
3592 "mmm-mode-" version ".tar"))
3593 (sha256
3594 (base32 "05ckf4zapdpvnd3sqpw6kxaa567zh536a36m9qzx3sqyjbyn5fb4"))))
3595 (build-system emacs-build-system)
3596 (home-page "https://github.com/purcell/mmm-mode")
3597 (synopsis "Allow multiple major modes in an Emacs buffer")
3598 (description
3599 "MMM Mode is a minor mode that allows multiple major modes to coexist in
3600 a single buffer.")
3601 (license license:gpl3+)))
3602
3603 (define-public emacs-mmt
3604 (package
3605 (name "emacs-mmt")
3606 (version "0.2.0")
3607 (source
3608 (origin
3609 (method git-fetch)
3610 (uri (git-reference
3611 (url "https://github.com/mrkkrp/mmt")
3612 (commit version)))
3613 (file-name (git-file-name name version))
3614 (sha256
3615 (base32 "13vbfc5597v0gd87qyhn10f93nb477vjpg3jlpphbax9fvkf4gav"))))
3616 (build-system emacs-build-system)
3617 (home-page "https://github.com/mrkkrp/mmt")
3618 (synopsis "Classic tools to write Emacs Lisp macros")
3619 (description "Emacs MMT is a package that contains classic tools for Emacs
3620 Lisp developers who want to write macros with convenience.")
3621 (license license:gpl3+)))
3622
3623 (define-public emacs-tablist
3624 (package
3625 (name "emacs-tablist")
3626 (version "1.0")
3627 (source (origin
3628 (method git-fetch)
3629 (uri (git-reference
3630 (url "https://github.com/politza/tablist")
3631 (commit (string-append "v" version))))
3632 (file-name (git-file-name name version))
3633 (sha256
3634 (base32
3635 "0pzsdg0rm59daw34ppss79cg05z9wnr8nkmdcc48nkd0p69ip2yy"))))
3636 (build-system emacs-build-system)
3637 (home-page "https://github.com/politza/tablist")
3638 (synopsis "Extension for @code{tabulated-list-mode}")
3639 (description "Tablist is the Emacs package that provides several
3640 additional features to @code{tabulated-list-mode}: it adds marks,
3641 filters, new key bindings and faces. It can be enabled by
3642 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
3643 (license license:gpl3+)))
3644
3645 (define-public emacs-djvu
3646 (package
3647 (name "emacs-djvu")
3648 (version "1.1.2")
3649 (source
3650 (origin
3651 (method url-fetch)
3652 (uri (string-append "https://elpa.gnu.org/packages/"
3653 "djvu-" version ".tar"))
3654 (sha256
3655 (base32 "0i7xwgg2fxndy81lnng6fh9iknals8xvx4f1nmxq7c099bzwb57c"))))
3656 (build-system emacs-build-system)
3657 (inputs (list djview djvulibre))
3658 (arguments
3659 (list
3660 #:phases
3661 #~(modify-phases %standard-phases
3662 (add-after 'unpack 'configure
3663 (lambda* (#:key inputs #:allow-other-keys)
3664 (let ((file "djvu.el"))
3665 ;; Specify the absolute executable locations.
3666 (make-file-writable file)
3667 (substitute* file
3668 (("\"djvused\"")
3669 (string-append "\""
3670 (search-input-file inputs "/bin/djvused")
3671 "\""))
3672 (("\"djvm\"")
3673 (string-append "\""
3674 (search-input-file inputs "/bin/djvm")
3675 "\""))
3676 (("\"ddjvu\"")
3677 (string-append "\""
3678 (search-input-file inputs "/bin/ddjvu")
3679 "\"")))
3680 (emacs-substitute-variables file
3681 ("djvu-djview-command"
3682 (search-input-file inputs "/bin/djview")))))))))
3683 (home-page "http://elpa.gnu.org/packages/djvu.html")
3684 (synopsis "Edit and view Djvu files via djvused")
3685 (description
3686 "This package is a front end for the command-line program djvused from
3687 DjVuLibre, see @url{http://djvu.sourceforge.net/}.")
3688 (license license:gpl3+)))
3689
3690 (define-public emacs-djvu3
3691 ;; Commit from 2021-06-03.
3692 (let ((commit "37b675be1d4d436cdd0c3b5d3f13e88b59a7bf18")
3693 (revision "0"))
3694 (package
3695 (name "emacs-djvu3")
3696 ;; `Version:' header says 1.0
3697 (version (git-version "1.0" revision commit))
3698 (source
3699 (origin
3700 (method git-fetch)
3701 (uri (git-reference
3702 (url "https://github.com/dalanicolai/djvu3")
3703 (commit commit)))
3704 (file-name (git-file-name name version))
3705 (sha256
3706 (base32
3707 "0p0izjrgbayx5ybk1n6db5hbrjv9d4kpn57w4iyxdm3h96sp9cmr"))))
3708 (propagated-inputs
3709 (list emacs-djvu emacs-tablist))
3710 (build-system emacs-build-system)
3711 (home-page "https://github.com/dalanicolai/djvu3")
3712 (synopsis "Extend djvu.el to display annotations and more")
3713 (description "This package extends @code{emacs-djvu} with annotation
3714 rendering features and a fast occur search feature using @code{svg.el}.
3715
3716 Other features include:
3717
3718 @itemize
3719 @item clickable links
3720 @item marker extension to @code{svg.el} for providing arrowheads (or other
3721 types of markers)
3722 @item a quite fancy keyboard annotation function
3723 @item an @code{imenu} index function to enable imenu navigation
3724 @item document restore function to open the document at the last location of
3725 the previous session
3726 @end itemize")
3727 (license license:gpl3+))))
3728
3729 (define-public emacs-pabbrev
3730 (package
3731 (name "emacs-pabbrev")
3732 (version "4.2.1")
3733 (source
3734 (origin
3735 (method url-fetch)
3736 (uri (string-append "https://elpa.gnu.org/packages/"
3737 "pabbrev-" version ".el"))
3738 (sha256
3739 (base32 "19v5adk61y8fpigw7k6wz6dj79jwr450hnbi7fj0jvb21cvjmfxh"))))
3740 (build-system emacs-build-system)
3741 (home-page "http://elpa.gnu.org/packages/pabbrev.html")
3742 (synopsis "Predictive abbreviation expansion")
3743 (description
3744 "The code provides a abbreviation expansion for Emacs. It is
3745 fairly similar to Dabbrev expansion, which works based on the contents
3746 of the current buffer (or other buffers).
3747
3748 Predictive abbreviation expansion works based on the previously
3749 written text. Unlike dynamic abbreviation, the text is analysed
3750 during idle time, while Emacs is doing nothing else.")
3751 (license license:gpl3+)))
3752
3753 (define-public emacs-pdf-tools
3754 (package
3755 (name "emacs-pdf-tools")
3756 (version "0.91")
3757 (source
3758 (origin
3759 (method git-fetch)
3760 (uri (git-reference
3761 (url "https://github.com/vedang/pdf-tools")
3762 (commit (string-append "v" version))))
3763 (file-name (git-file-name name version))
3764 (sha256
3765 (base32 "07ixspgn4s1jg66w7m2f3sh43giakz9srhp7rpw389z32g57i1rx"))))
3766 (build-system gnu-build-system)
3767 (arguments
3768 `(#:tests? #f ; there are no tests
3769 #:modules ((guix build gnu-build-system)
3770 ((guix build emacs-build-system) #:prefix emacs:)
3771 (guix build utils)
3772 (guix build emacs-utils))
3773 #:imported-modules (,@%gnu-build-system-modules
3774 (guix build emacs-build-system)
3775 (guix build emacs-utils))
3776 #:phases
3777 (modify-phases %standard-phases
3778 ;; Build server side using 'gnu-build-system'.
3779 (add-after 'unpack 'enter-server-dir
3780 (lambda _ (chdir "server")))
3781 (add-after 'enter-server-dir 'autogen
3782 (lambda _
3783 (invoke "bash" "autogen.sh")))
3784 ;; Build emacs side using 'emacs-build-system'.
3785 (add-after 'compress-documentation 'enter-lisp-dir
3786 (lambda _ (chdir "../lisp")))
3787 (add-after 'enter-lisp-dir 'emacs-patch-variables
3788 (lambda* (#:key outputs #:allow-other-keys)
3789 (for-each make-file-writable (find-files "."))
3790
3791 ;; Set path to epdfinfo program.
3792 (emacs-substitute-variables "pdf-info.el"
3793 ("pdf-info-epdfinfo-program"
3794 (string-append (assoc-ref outputs "out")
3795 "/bin/epdfinfo")))
3796 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
3797 ;; upgrading" that pdf-tools tries to perform.
3798 (emacs-substitute-variables "pdf-tools.el"
3799 ("pdf-tools-handle-upgrades" '()))))
3800 (add-after 'emacs-patch-variables 'emacs-expand-load-path
3801 (assoc-ref emacs:%standard-phases 'expand-load-path))
3802 (add-after 'emacs-expand-load-path 'emacs-install
3803 (assoc-ref emacs:%standard-phases 'install))
3804 (add-after 'emacs-install 'emacs-build
3805 (assoc-ref emacs:%standard-phases 'build))
3806 (add-after 'emacs-install 'emacs-make-autoloads
3807 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
3808 (native-inputs
3809 (list autoconf automake emacs-minimal pkg-config))
3810 (inputs
3811 (list cairo glib libpng poppler zlib))
3812 (propagated-inputs
3813 (list emacs-tablist))
3814 (home-page "https://github.com/politza/pdf-tools")
3815 (synopsis "Emacs support library for PDF files")
3816 (description
3817 "PDF Tools is, among other things, a replacement of DocView for PDF
3818 files. The key difference is that pages are not pre-rendered by
3819 e.g. ghostscript and stored in the file-system, but rather created on-demand
3820 and stored in memory.")
3821 (license license:gpl3+)))
3822
3823 (define-public emacs-saveplace-pdf-view
3824 (package
3825 (name "emacs-saveplace-pdf-view")
3826 (version "1.0.4")
3827 (source
3828 (origin
3829 (method git-fetch)
3830 (uri (git-reference
3831 (url "https://github.com/nicolaisingh/saveplace-pdf-view")
3832 (commit (string-append "saveplace-pdf-view-" version))))
3833 (file-name (git-file-name name version))
3834 (sha256
3835 (base32 "0i03qb6qc2agp9s5s7l08f1wl8anqndh6xshg1c3w357vd1whv7i"))))
3836 (build-system emacs-build-system)
3837 (home-page "https://github.com/nicolaisingh/saveplace-pdf-view")
3838 (synopsis "Save place in pdf-view buffers for Emacs")
3839 (description
3840 "This package extends the built-in Save-Place mode by adding support for
3841 PDF view (see @code{emacs-pdf-tools}). This package will store the
3842 place (e.g., the current page and zoom) of PDF buffers under PDFView mode or
3843 DocView mode, and revisiting those PDF files later using the same mode will
3844 restore the saved place.")
3845 (license license:gpl3+)))
3846
3847 (define-public emacs-dash
3848 (package
3849 (name "emacs-dash")
3850 (version "2.19.1")
3851 (source (origin
3852 (method git-fetch)
3853 (uri (git-reference
3854 (url "https://github.com/magnars/dash.el")
3855 (commit version)))
3856 (file-name (git-file-name name version))
3857 (sha256
3858 (base32
3859 "0z6f8y1m9amhg427iz1d4xcyr6n0kj5w7kmiz134p320ixsdnzd8"))))
3860 (build-system emacs-build-system)
3861 (arguments
3862 (list #:tests? #t
3863 #:phases
3864 #~(modify-phases %standard-phases
3865 (add-after 'unpack 'disable-byte-compile-error-on-warn
3866 (lambda _
3867 (substitute* "Makefile"
3868 (("\\(setq byte-compile-error-on-warn t\\)")
3869 "(setq byte-compile-error-on-warn nil)")))))))
3870 (home-page "https://github.com/magnars/dash.el")
3871 (synopsis "Modern list library for Emacs")
3872 (description "This package provides a modern list API library for Emacs.")
3873 (license license:gpl3+)))
3874
3875 (define-public emacs-bui
3876 (package
3877 (name "emacs-bui")
3878 (version "1.2.1")
3879 (source (origin
3880 (method git-fetch)
3881 (uri (git-reference
3882 (url "https://notabug.org/alezost/emacs-bui.git")
3883 (commit (string-append "v" version))))
3884 (file-name (git-file-name name version))
3885 (sha256
3886 (base32
3887 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
3888 (build-system emacs-build-system)
3889 (propagated-inputs
3890 (list emacs-dash))
3891 (home-page "https://notabug.org/alezost/emacs-bui")
3892 (synopsis "Buffer interface library for Emacs")
3893 (description
3894 "BUI (Buffer User Interface) is a library for making @code{list} and
3895 @code{info} interfaces to display an arbitrary data of the same
3896 type, for example: packages, buffers, files, etc.")
3897 (license license:gpl3+)))
3898
3899 (define-public emacs-guix
3900 (let ((commit "c9aef52121b458297e70bb50f49f7276b4a8d759")
3901 (revision "5"))
3902 (package
3903 (name "emacs-guix")
3904 (version (git-version "0.5.2" revision commit))
3905 (source (origin
3906 (method git-fetch)
3907 (uri (git-reference
3908 (url "https://gitlab.com/emacs-guix/emacs-guix.git")
3909 (commit commit)))
3910 (file-name (git-file-name name version))
3911 (sha256
3912 (base32
3913 "00xdxadbi9fxpfp60zah9190rcz3w08vl1blbhmaiy7c1hd2gi39"))))
3914 (build-system gnu-build-system)
3915 (arguments
3916 (list
3917 #:modules '((guix build gnu-build-system)
3918 ((guix build emacs-build-system) #:prefix emacs:)
3919 (guix build utils))
3920 #:imported-modules `(,@%gnu-build-system-modules
3921 (guix build emacs-build-system)
3922 (guix build emacs-utils))
3923 #:configure-flags
3924 #~(list (string-append "--with-lispdir="
3925 (emacs:elpa-directory #$output)))
3926 #:phases
3927 #~(modify-phases %standard-phases
3928 (add-after 'unpack 'expand-load-path
3929 (lambda _
3930 ((assoc-ref emacs:%standard-phases 'expand-load-path)
3931 #:prepend-source? #f))))))
3932 (native-inputs
3933 (list autoconf automake emacs-minimal pkg-config texinfo))
3934 (inputs
3935 `(("guile"
3936 ,@(assoc-ref (package-native-inputs guix) "guile"))
3937 ("guix" ,guix)))
3938 (propagated-inputs
3939 (list emacs-bui
3940 emacs-dash
3941 emacs-edit-indirect
3942 emacs-geiser
3943 emacs-geiser-guile
3944 emacs-magit-popup
3945 guile-gcrypt))
3946 (home-page "https://emacs-guix.gitlab.io/website/")
3947 (synopsis "Emacs interface for GNU Guix")
3948 (description
3949 "Emacs-Guix provides a visual interface, tools and features for the GNU
3950 Guix package manager. Particularly, it allows you to do various package
3951 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
3952 @code{M-x guix-help} command.")
3953 (license license:gpl3+))))
3954
3955 (define-public emacs-build-farm
3956 (package
3957 (name "emacs-build-farm")
3958 (version "0.2.2")
3959 (source (origin
3960 (method git-fetch)
3961 (uri (git-reference
3962 (url "https://notabug.org/alezost/emacs-build-farm.git")
3963 (commit (string-append "v" version))))
3964 (file-name (git-file-name name version))
3965 (sha256
3966 (base32
3967 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
3968 (build-system emacs-build-system)
3969 (propagated-inputs
3970 (list emacs-bui emacs-magit-popup))
3971 (home-page "https://notabug.org/alezost/emacs-build-farm")
3972 (synopsis "Emacs interface for Hydra and Cuirass build farms")
3973 (description
3974 "This Emacs package provides an interface for Hydra and
3975 Cuirass (build farms used by Nix and Guix). It allows you to look at
3976 various data related to the build farm projects, jobsets, builds and
3977 evaluations. The entry point is @code{M-x build-farm} command.")
3978 (license license:gpl3+)))
3979
3980 (define-public emacs-d-mode
3981 (package
3982 (name "emacs-d-mode")
3983 (version "2.0.12")
3984 (source
3985 (origin
3986 (method git-fetch)
3987 (uri (git-reference
3988 (url "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
3989 (commit version)))
3990 (file-name (git-file-name name version))
3991 (sha256
3992 (base32 "0mwd412d2kha8avkyhvvkh8r7an859xk18f7phgx7kj989pr3xkr"))))
3993 (build-system emacs-build-system)
3994 (propagated-inputs
3995 (list emacs-undercover))
3996 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
3997 (synopsis "Emacs major mode for editing D code")
3998 (description "This package provides an Emacs major mode for highlighting
3999 code written in the D programming language.")
4000 (license license:gpl2+)))
4001
4002 (define-public emacs-extempore-mode
4003 ;; Use the latest commit at time of packaging. There are no releases or tags.
4004 (let ((commit "09518ae6650d7be33a4633a4c0f31b7130d04c6e")
4005 (revision "1"))
4006 (package
4007 (name "emacs-extempore-mode")
4008 (version (git-version "0.0.0" revision commit))
4009 (source
4010 (origin
4011 (method git-fetch)
4012 (uri (git-reference
4013 (url "https://github.com/extemporelang/extempore-emacs-mode")
4014 (commit commit)))
4015 (file-name (git-file-name name version))
4016 (sha256
4017 (base32 "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp"))))
4018 (build-system emacs-build-system)
4019 (home-page "https://github.com/extemporelang/extempore-emacs-mode")
4020 (synopsis "Emacs major mode for Extempore source files")
4021 (description
4022 "This package provides a major mode for editing Extempore code. It can
4023 create an Extempore REPL, connect the current @code{extempore-mode} buffer to a
4024 running Extempore process, and more.")
4025 (license license:bsd-2))))
4026
4027 (define-public emacs-kakoune
4028 ;; Package has no release. Version is extracted from "Version:" keyword in
4029 ;; main file.
4030 (let ((commit "d73d14e69ea38076af50cc69f846808383ff539d")
4031 (revision "0"))
4032 (package
4033 (name "emacs-kakoune")
4034 (version (git-version "0.1" revision commit))
4035 (source
4036 (origin
4037 (method git-fetch)
4038 (uri (git-reference
4039 (url "https://github.com/jmorag/kakoune.el")
4040 (commit commit)))
4041 (file-name (git-file-name name version))
4042 (sha256
4043 (base32 "0nk6jdy1y5mc3ryd0smiqghrk6iv34d5grc7f7migmshlbq0np92"))))
4044 (build-system emacs-build-system)
4045 (propagated-inputs
4046 (list emacs-expand-region emacs-multiple-cursors emacs-ryo-modal))
4047 (home-page "https://github.com/jmorag/kakoune.el")
4048 (synopsis "Emacs simple simulation, but not emulation, of Kakoune")
4049 (description "This package provides many, but not all of the editing
4050 primitives in the Kakoune editor. Unlike Evil mode for Vim, this is a very
4051 shallow emulation, which seeks to do as little work as possible, leveraging
4052 Emacs native editing commands and the work of other packages wherever
4053 possible.")
4054 (license license:expat))))
4055
4056 (define-public emacs-kana
4057 ;; Package has no release. Version is extracted from "Version:" keyword in
4058 ;; main file.
4059 (let ((commit "b239c3c3c6124b46ff720cca7b80ecbafd7fa489")
4060 (revision "0"))
4061 (package
4062 (name "emacs-kana")
4063 (version (git-version "1.0.0" revision commit))
4064 (source
4065 (origin
4066 (method git-fetch)
4067 (uri (git-reference
4068 (url "https://github.com/chenyanming/kana")
4069 (commit commit)))
4070 (file-name (git-file-name name version))
4071 (sha256
4072 (base32 "0vrrl1kniq4h111jvnapvx3wybvsl3alfaygw634mmryr3h7pwi8"))))
4073 (build-system emacs-build-system)
4074 (home-page "https://github.com/chenyanming/kana")
4075 (synopsis "Learn Japanese Kana in Emacs")
4076 (description
4077 "This Emacs mode displays Hiragana and Katakana flashcards. It can use
4078 functionality from Emacs Kanji mode if it is installed.")
4079 (license license:gpl3+))))
4080
4081 (define-public emacs-kanji
4082 ;; Package has no release. Version is extracted from "Version:" keyword in
4083 ;; main file.
4084 (let ((commit "5e9d5b72468ece11cfb81b729be6babf63ede425")
4085 (revision "0"))
4086 (package
4087 (name "emacs-kanji")
4088 (version (git-version "1.0" revision commit))
4089 (source
4090 (origin
4091 (method git-fetch)
4092 (uri (git-reference
4093 (url "https://github.com/wsgac/kanji-mode")
4094 (commit commit)))
4095 (file-name (git-file-name name version))
4096 (sha256
4097 (base32 "1zh7klqaza840q5f44zzh1wrnd6sqa2k93z3dgx3yhhsxfd1dxvy"))))
4098 (build-system emacs-build-system)
4099 (home-page "https://github.com/wsgac/kanji-mode")
4100 (synopsis "Emacs minor mode for displaying Japanese Kanji stroke order")
4101 (description
4102 "This minor mode displays the stroke order of the Kanji sign under
4103 cursor in a transient buffer. It has a built-in collection of SVG images
4104 depicting stroke orders for all Kanji. The collection is a slightly modified
4105 and limited version of the images provided by the KanjiVG project.")
4106 (license license:gpl3+))))
4107
4108 (define-public emacs-kbd
4109 ;; Package has no release. Version is extracted from "Version:" keyword in
4110 ;; main file.
4111 (let ((commit "a7f4c9b9770fa6a58895c5f121df82652bb1b737")
4112 (revision "0"))
4113 (package
4114 (name "emacs-kbd")
4115 (version (git-version "0.0.1" revision commit))
4116 (source
4117 (origin
4118 (method git-fetch)
4119 (uri (git-reference
4120 (url "https://github.com/slotThe/kbd-mode")
4121 (commit commit)))
4122 (file-name (git-file-name name version))
4123 (sha256
4124 (base32 "0jv9yfsncgf96308c041hvps3jlc151xb0aipm0vasbma3x83ygm"))))
4125 (build-system emacs-build-system)
4126 (arguments
4127 (list
4128 #:phases
4129 #~(modify-phases %standard-phases
4130 (add-after 'unpack 'enter-lisp-directory
4131 (lambda _ (chdir "lisp"))))))
4132 (home-page "https://github.com/slotThe/kbd-mode")
4133 (synopsis "Minor mode for syntax highlighting kmonad's @file{.kbd} files")
4134 (description
4135 "This minor mode provides syntax highlighting for Lisp-like DSL used in
4136 kmonad's configuration files (@file{.kbd}).")
4137 (license license:gpl3+))))
4138
4139 (define-public emacs-keycast
4140 (package
4141 (name "emacs-keycast")
4142 (version "1.2.0")
4143 (source
4144 (origin
4145 (method git-fetch)
4146 (uri (git-reference
4147 (url "https://github.com/tarsius/keycast")
4148 (commit (string-append "v" version))))
4149 (file-name (git-file-name name version))
4150 (sha256
4151 (base32 "01z20lsnjk8pwdsl4vx5dqdc4603bmb7fxan7n8j1fgvkvi63yzl"))))
4152 (build-system emacs-build-system)
4153 (home-page "https://github.com/tarsius/keycast")
4154 (synopsis "Show current command and its key in the mode line")
4155 (description
4156 "This package provides Keycast mode. Once enabled, that mode shows the
4157 current command and its key or mouse binding in the mode line, and updates
4158 them whenever another command is invoked.")
4159 (license license:gpl3+)))
4160
4161 (define-public emacs-keyfreq
4162 (package
4163 (name "emacs-keyfreq")
4164 (version "20160516.716")
4165 (source
4166 (origin
4167 (method url-fetch)
4168 (uri (string-append "http://melpa.org/packages/keyfreq-"
4169 version ".el"))
4170 (sha256
4171 (base32
4172 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
4173 (build-system emacs-build-system)
4174 (home-page "https://github.com/dacap/keyfreq")
4175 (synopsis "Track Emacs command frequencies")
4176 (description "@code{emacs-keyfeq} tracks and shows how many times you used
4177 a command.")
4178 (license license:gpl3+)))
4179
4180 (define-public emacs-olivetti
4181 (package
4182 (name "emacs-olivetti")
4183 (version "2.0.4")
4184 (source
4185 (origin
4186 (method git-fetch)
4187 (uri (git-reference
4188 (url "https://github.com/rnkn/olivetti")
4189 (commit (string-append "v" version))))
4190 (file-name (git-file-name name version))
4191 (sha256
4192 (base32 "0wc0rki4zvzdxs126g5c8d92h1vfn9slfkdx831rr9d0jx93wc7s"))))
4193 (build-system emacs-build-system)
4194 (home-page "https://github.com/rnkn/olivetti")
4195 (synopsis "Emacs minor mode for a nice writing environment")
4196 (description "This package provides an Emacs minor mode that puts writing
4197 in the center.")
4198 (license license:gpl3+)))
4199
4200 (define-public emacs-undo-tree
4201 (package
4202 (name "emacs-undo-tree")
4203 (version "0.8.2")
4204 (source
4205 (origin
4206 (method git-fetch)
4207 (uri (git-reference
4208 (url "https://gitlab.com/tsc25/undo-tree")
4209 (commit "42aab056e37e033816b2d192f9121b89410b958e"))) ; no 0.8.2 tag
4210 (file-name (git-file-name name version))
4211 (sha256
4212 (base32 "1xvkxc078b4z5zqwndz6jcv4ga8yd2ci32v7l8pdvqjmz7fq7bfz"))))
4213 (build-system emacs-build-system)
4214 (propagated-inputs
4215 (list emacs-queue))
4216 (home-page "https://www.dr-qubit.org/undo-tree.html")
4217 (synopsis "Treat undo history as a tree")
4218 (description
4219 "Tree-like interface to Emacs undo system, providing
4220 graphical tree presentation of all previous states of buffer that
4221 allows easily move between them.")
4222 (license license:gpl3+)))
4223
4224 (define-public emacs-undo-fu
4225 ;; There are no tagged releases upstream on gitlab, instead we are using
4226 ;; the most recent commit.
4227 (let ((commit "c0806c1903c5a0e4c69b6615cdc3366470a9b8ca")
4228 (revision "0"))
4229 (package
4230 (name "emacs-undo-fu")
4231 (version (git-version "0.4" revision commit))
4232 (source
4233 (origin
4234 (method git-fetch)
4235 (uri (git-reference
4236 (url "https://gitlab.com/ideasman42/emacs-undo-fu")
4237 (commit commit)))
4238 (file-name (git-file-name name version))
4239 (sha256
4240 (base32 "1n594aakmcgyl7qbda86v4wsx8clm62ypiv3h559xz3x72h7mr3j"))))
4241 (build-system emacs-build-system)
4242 (home-page "https://gitlab.com/ideasman42/emacs-undo-fu")
4243 (synopsis "Simple, stable linear undo with redo for Emacs")
4244 (description
4245 "This is a light weight wrapper for Emacs built-in undo system,
4246 adding convenient undo/redo without losing access to the full undo history,
4247 allowing you to visit all previous states of the document if you need.")
4248 (license license:gpl3+))))
4249
4250 (define-public emacs-undo-fu-session
4251 ;; There are no tagged releases upstream on gitlab, instead we are using the
4252 ;; most recent commit.
4253 (let ((commit "56cdd3538a058c6916bdf2d9010c2179f2505829")
4254 (revision "0"))
4255 (package
4256 (name "emacs-undo-fu-session")
4257 (version (git-version "0.2" revision commit))
4258 (source
4259 (origin
4260 (method git-fetch)
4261 (uri (git-reference
4262 (url "https://gitlab.com/ideasman42/emacs-undo-fu-session")
4263 (commit commit)))
4264 (file-name (git-file-name name version))
4265 (sha256
4266 (base32 "04wq1alrzzlidcb4mjb5j7pg68pks1vgv7kvvmi6dzb3l602mb2a"))))
4267 (build-system emacs-build-system)
4268 (arguments
4269 (list
4270 #:tests? #t
4271 #:test-command #~(list "emacs" "--batch" "-l" "undo-fu-session.el"
4272 "-l" "undo-fu-session-test.el")
4273 #:phases
4274 #~(modify-phases %standard-phases
4275 (add-before 'check 'set-home
4276 (lambda _
4277 (setenv "HOME" "/tmp"))))))
4278 (home-page "https://gitlab.com/ideasman42/emacs-undo-fu-session")
4279 (synopsis "Save & recover undo steps between Emacs sessions")
4280 (description "This package writes undo/redo information upon file save
4281 which is restored where possible when the file is loaded again.")
4282 (license license:gpl3+))))
4283
4284 (define-public emacs-s
4285 (package
4286 (name "emacs-s")
4287 (version "1.12.0")
4288 (source
4289 (origin
4290 (method git-fetch)
4291 (uri (git-reference
4292 (url "https://github.com/magnars/s.el")
4293 (commit version)))
4294 (file-name (git-file-name name version))
4295 (sha256
4296 (base32 "1g8mqd13llj007al4nlxxx4z2lcsg3wk970mgjn0avwrhjjgdmmv"))))
4297 (build-system emacs-build-system)
4298 (arguments
4299 `(#:tests? #t
4300 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
4301 #:test-command '("./run-tests.sh")))
4302 (home-page "https://github.com/magnars/s.el")
4303 (synopsis "Emacs string manipulation library")
4304 (description "This package provides an Emacs library for manipulating
4305 strings.")
4306 (license license:gpl3+)))
4307
4308 (define-public emacs-symon
4309 (package
4310 (name "emacs-symon")
4311 (version "20160630")
4312 (source
4313 (origin
4314 (method git-fetch)
4315 (uri (git-reference
4316 (url "https://github.com/zk-phi/symon")
4317 (commit version)))
4318 (file-name (git-file-name name version))
4319 (sha256
4320 (base32 "1q7di9s8k710nx98wnqnbkkhdimrn0jf6z4xkm4c78l6s5idjwlz"))))
4321 (build-system emacs-build-system)
4322 (home-page "https://github.com/zk-phi/symon")
4323 (synopsis "Tiny graphical system monitor")
4324 (description
4325 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
4326 (license license:gpl2+)))
4327
4328 (define-public emacs-sx
4329 (let ((version "20191229")
4330 (revision "0")
4331 (commit "e9d1093c97507a6d7b4f4710ef65200dae725e5f"))
4332 (package
4333 (name "emacs-sx")
4334 (version (git-version version revision commit))
4335 (source
4336 (origin
4337 (method git-fetch)
4338 (uri (git-reference
4339 (url "https://github.com/vermiculus/sx.el")
4340 (commit commit)))
4341 (file-name (git-file-name name version))
4342 (sha256
4343 (base32 "0m90ddwm8j0y6d1ppqhd2gil1107k202blw6mzm5bdambn4nfqkf"))))
4344 (build-system emacs-build-system)
4345 (propagated-inputs
4346 (list emacs-markdown-mode))
4347 (home-page "https://github.com/vermiculus/sx.el")
4348 (synopsis "Emacs StackExchange client")
4349 (description
4350 "Emacs StackExchange client. Ask and answer questions on
4351 Stack Overflow, Super User, and other StackExchange sites.")
4352 (license license:gpl3+))))
4353
4354 (define-public emacs-skempo
4355 (package
4356 (name "emacs-skempo")
4357 (version "0.1.0")
4358 (source
4359 (origin
4360 (method git-fetch)
4361 (uri (git-reference
4362 (url "https://github.com/xFA25E/skempo")
4363 (commit version)))
4364 (file-name (git-file-name name version))
4365 (sha256
4366 (base32
4367 "0na465f27p6n64sf0pj0aqdi384m1wy3hxcc2d6a67hs39rkyvi9"))))
4368 (build-system emacs-build-system)
4369 (propagated-inputs
4370 (list emacs-parent-mode))
4371 (home-page "https://github.com/xFA25E/skempo")
4372 (synopsis "Enhancements for skeleton/tempo + abbrev")
4373 (description
4374 "Skempo is an attempt to improve Emacs built-in Skeleton and Tempo
4375 templates. It tries to make a unified syntax for template definitions. It
4376 also adds tags and marks support for Skeleton, and Abbrev support for Tempo.")
4377 (license license:gpl3+)))
4378
4379 (define-public emacs-toc-org
4380 (package
4381 (name "emacs-toc-org")
4382 (version "1.2.0")
4383 (source
4384 (origin
4385 (method git-fetch)
4386 (uri (git-reference
4387 (url "https://github.com/snosov1/toc-org")
4388 (commit version)))
4389 (file-name (git-file-name name version))
4390 (sha256
4391 (base32 "00a2al7ghrlabf65kfj1mk30p2pl37h6ppwlgghbgiy7rwlzkdbm"))))
4392 (build-system emacs-build-system)
4393 (home-page "https://github.com/snosov1/toc-org")
4394 (synopsis "Table of Contents generator for Emacs Org mode")
4395 (description
4396 "This package generates a table of contents when saving in Org and
4397 Markdown files.")
4398 (license license:gpl2+)))
4399
4400 (define-public emacs-toml-mode
4401 (let ((version "0.1.3")
4402 (revision "0")
4403 (commit "f6c61817b00f9c4a3cab1bae9c309e0fc45cdd06"))
4404 (package
4405 (name "emacs-toml-mode")
4406 (version (git-version version revision commit))
4407 (source
4408 (origin
4409 (method git-fetch)
4410 (uri (git-reference
4411 (url "https://github.com/dryman/toml-mode.el")
4412 (commit commit)))
4413 (file-name (git-file-name name version))
4414 (sha256
4415 (base32 "05b4ksay85c8y5ncax0qsvnmplwsfiw24z16a58gkarjz938hb57"))))
4416 (build-system emacs-build-system)
4417 (home-page "https://github.com/dryman/toml-mode.el")
4418 (synopsis "Emacs major mode for editing TOML files")
4419 (description
4420 ;; XXX: Ideally we'd use @acronym for "TOML", but Guile's Texinfo
4421 ;; parser does not currently support @comma{}, making it impossible
4422 ;; to use commas in the @acronym arguments.
4423 "This package provides a major mode for editing files in @dfn{TOML}
4424 (Tom's Obvious, Minimal Language) data format.")
4425 (license license:gpl3+))))
4426
4427 (define-public emacs-twittering-mode
4428 (package
4429 (name "emacs-twittering-mode")
4430 (version "3.1.0")
4431 (source
4432 (origin
4433 (method url-fetch)
4434 (uri (string-append "mirror://sourceforge/twmode"
4435 "/twittering-mode-" version
4436 "/twittering-mode-" version ".tar.xz"))
4437 (sha256
4438 (base32 "02imis1gxz90lah0b5n37j2hlsaw5igss11d85vpsm5d1bgw8j28"))))
4439 (build-system emacs-build-system)
4440 (home-page "http://twmode.sourceforge.net")
4441 (synopsis "Emacs major mode for Twitter")
4442 (description
4443 "Twittering mode is an Emacs major mode for Twitter.
4444 You can check timelines, tweet, mark posts as favorites and so on with
4445 Emacs.")
4446 (license license:gpl2+)))
4447
4448 (define-public emacs-f
4449 (package
4450 (name "emacs-f")
4451 (version "0.20.0")
4452 (source (origin
4453 (method git-fetch)
4454 (uri (git-reference
4455 (url "https://github.com/rejeep/f.el")
4456 (commit (string-append "v" version))))
4457 (file-name (git-file-name name version))
4458 (sha256
4459 (base32
4460 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
4461 (build-system emacs-build-system)
4462 (propagated-inputs
4463 (list emacs-s emacs-dash))
4464 (home-page "https://github.com/rejeep/f.el")
4465 (synopsis "Emacs API for working with files and directories")
4466 (description "This package provides an Emacs library for working with
4467 files and directories.")
4468 (license license:gpl3+)))
4469
4470 (define-public emacs-fountain-mode
4471 (package
4472 (name "emacs-fountain-mode")
4473 (version "3.6.0")
4474 (source
4475 (origin
4476 (method git-fetch)
4477 (uri (git-reference
4478 (url "https://github.com/rnkn/fountain-mode")
4479 (commit (string-append "v" version))))
4480 (file-name (git-file-name name version))
4481 (sha256
4482 (base32 "14cb4r23pn98sxzh0qwjwpvm7k7q9hhpks8avydccwssm69x1s1w"))))
4483 (build-system emacs-build-system)
4484 (home-page "https://github.com/rnkn/fountain-mode")
4485 (synopsis "Major mode for screenwriting in Fountain markup")
4486 (description "Fountain Mode is a scriptwriting program for GNU Emacs
4487 using the Fountain plain text markup format.")
4488 (license license:gpl3+)))
4489
4490 (define-public emacs-fringe-helper
4491 (let ((commit "ef4a9c023bae18ec1ddd7265f1f2d6d2e775efdd")
4492 (revision "1"))
4493 (package
4494 (name "emacs-fringe-helper")
4495 (version (git-version "1.0.1" revision commit))
4496 (source
4497 (origin
4498 (method git-fetch)
4499 (uri (git-reference
4500 (url "https://github.com/nschum/fringe-helper.el")
4501 (commit commit)))
4502 (file-name (git-file-name name version))
4503 (sha256
4504 (base32 "0ra9rc53l1gvkqank8apasl3r7wz2yfjrcvmfk3wpxhh24ppxv9d"))))
4505 (build-system emacs-build-system)
4506 (arguments
4507 `(#:tests? #t
4508 #:test-command '("emacs" "--batch"
4509 "-l" "tests.el"
4510 "-f" "ert-run-tests-batch-and-exit")))
4511 (home-page "https://github.com/nschum/fringe-helper.el")
4512 (synopsis "Helper functions for fringe bitmaps")
4513 (description
4514 "This package allows fringe bitmaps to be defined with a visual string
4515 representation.")
4516 (license license:gpl2+))))
4517
4518 (define-public emacs-git-gutter
4519 (package
4520 (name "emacs-git-gutter")
4521 (version "0.91")
4522 (source
4523 (origin
4524 (method git-fetch)
4525 (uri (git-reference
4526 (url "https://github.com/syohex/emacs-git-gutter")
4527 (commit version)))
4528 (file-name (git-file-name name version))
4529 (sha256
4530 (base32 "0zc9f73app1d7j4yb10sy4xidh5252ncyxlvr5kh0kiqk88ck6j9"))))
4531 (build-system emacs-build-system)
4532 (home-page "https://github.com/syohex/emacs-git-gutter")
4533 (synopsis "See and manage hunks of text in a version control system")
4534 (description
4535 "This package is an Emacs minor mode for displaying and interacting with
4536 hunks of text managed in a version control system. Added modified and deleted
4537 areas can be indicated with symbols on the edge of the buffer, and commands
4538 can be used to move between and perform actions on these hunks.
4539
4540 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
4541 display and behaviour is easily customisable.")
4542 (license license:gpl3+)))
4543
4544 (define-public emacs-git-gutter-fringe
4545 (let ((commit "16226caab44174301f1659f7bf8cc67a76153445")
4546 (revision "1"))
4547 (package
4548 (name "emacs-git-gutter-fringe")
4549 (version (git-version "0.23" revision commit))
4550 (source
4551 (origin
4552 (method git-fetch)
4553 (uri (git-reference
4554 (url "https://github.com/emacsorphanage/git-gutter-fringe")
4555 (commit commit)))
4556 (file-name (git-file-name name version))
4557 (sha256
4558 (base32 "1y77gjl0yznamdj0f55d418zb75k22izisjg7ikvrfsl2yfqf3pm"))))
4559 (build-system emacs-build-system)
4560 (propagated-inputs
4561 (list emacs-git-gutter emacs-fringe-helper))
4562 (home-page "https://github.com/emacsorphanage/git-gutter-fringe")
4563 (synopsis "See and manage hunks of text in a version control system")
4564 (description
4565 "This package extends @code{git-gutter} to use the fringe area of a
4566 window.")
4567 (license license:gpl3+))))
4568
4569 (define-public emacs-git-link
4570 (package
4571 (name "emacs-git-link")
4572 (version "0.8.6")
4573 (source
4574 (origin
4575 (method git-fetch)
4576 (uri (git-reference
4577 (url "https://github.com/sshaw/git-link")
4578 (commit (string-append "v" version))))
4579 (file-name (git-file-name name version))
4580 (sha256
4581 (base32 "1ifq9z4p0rbz2bpm6qz89xg5ycn5fflsyradzzxzsgyys0zc6szx"))))
4582 (build-system emacs-build-system)
4583 (arguments
4584 (list
4585 #:tests? #t
4586 #:test-command #~(list "make" "test")))
4587 (home-page "https://github.com/sshaw/git-link")
4588 (synopsis "Create links for files and commits in GitHub/GitLab/etc. repos")
4589 (description
4590 "@code{git-link} returns the URL for the current buffer's file location
4591 at the current line number or active region. @code{git-link-commit} returns
4592 the URL for a commit. URLs are added to the kill ring.")
4593 (license license:gpl3+)))
4594
4595 (define-public emacs-apache-mode
4596 (package
4597 (name "emacs-apache-mode")
4598 (version "2.2.0")
4599 (source (origin
4600 (method git-fetch)
4601 (uri (git-reference
4602 (url "https://github.com/emacs-php/apache-mode")
4603 (commit version)))
4604 (file-name (git-file-name name version))
4605 (sha256
4606 (base32
4607 "1grs2x51k8pa6sgfa82s5pwwdfv7zw46ccw0zvd2rvzbhpq21p2z"))))
4608 (build-system emacs-build-system)
4609 (home-page "https://github.com/emacs-php/apache-mode")
4610 (synopsis
4611 "Syntax highlighting and indentation support for Apache config files")
4612 (description
4613 "This package provides @code{apache-mode}, an Emacs major mode for Apache
4614 configuration files which provides syntax highlighting and indentation rules.
4615 This mode supports Apache HTTP Server 2.4 and major modules.")
4616 (license license:gpl2+)))
4617
4618 (define-public emacs-apheleia
4619 (package
4620 (name "emacs-apheleia")
4621 (version "3.0")
4622 (source
4623 (origin
4624 (method git-fetch)
4625 (uri (git-reference
4626 (url "https://github.com/raxod502/apheleia")
4627 (commit (string-append "v" version))))
4628 (file-name (git-file-name name version))
4629 (sha256
4630 (base32 "0fpqh4wv69msfsnv3k88cai3nbja70ab5c02xf8gwfgg3613pjdd"))))
4631 (build-system emacs-build-system)
4632 (home-page "https://github.com/raxod502/apheleia")
4633 (synopsis "Reformat buffer stably")
4634 (description
4635 "This package allows for a buffer to be reformatted without moving point,
4636 so that running a formatting tool like @code{Prettier} or @code{Black} upon
4637 saving won't move point back to the beginning of the buffer.")
4638 (license license:gpl3+)))
4639
4640 (define-public emacs-git-timemachine
4641 (package
4642 (name "emacs-git-timemachine")
4643 (version "4.11")
4644 (source
4645 (origin
4646 (method git-fetch)
4647 (uri (git-reference
4648 (url "https://gitlab.com/pidu/git-timemachine.git")
4649 (commit version)))
4650 (file-name (git-file-name name version))
4651 (sha256
4652 (base32
4653 "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n"))))
4654 (build-system emacs-build-system)
4655 (propagated-inputs
4656 (list emacs-transient))
4657 (home-page "https://gitlab.com/pidu/git-timemachine")
4658 (synopsis "Step through historic versions of Git-controlled files")
4659 (description "This package enables you to step through historic versions
4660 of files under Git version control from within Emacs.")
4661 (license license:gpl3+)))
4662
4663 (define-public emacs-minitest
4664 (package
4665 (name "emacs-minitest")
4666 (version "0.9.2")
4667 (source (origin
4668 (method git-fetch)
4669 (uri (git-reference
4670 (url "https://github.com/arthurnn/minitest-emacs")
4671 (commit (string-append "v" version))))
4672 (file-name (git-file-name name version))
4673 (sha256
4674 (base32
4675 "0d8kg68yy5x1y3ivj43vzcakb3gii6bh8jm40g4sah5f53bbrs16"))))
4676 (build-system emacs-build-system)
4677 (arguments
4678 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
4679 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
4680 (propagated-inputs
4681 (list emacs-dash emacs-f))
4682 (home-page "https://github.com/arthurnn/minitest-emacs")
4683 (synopsis "Emacs minitest mode")
4684 (description
4685 "The minitest mode provides commands to run the tests for the current
4686 file or line, as well as rerunning the previous tests, or all the tests for a
4687 project.
4688
4689 This package also includes relevant snippets for yasnippet.")
4690 (license license:expat)))
4691
4692 (define-public emacs-gdscript-mode
4693 (package
4694 (name "emacs-gdscript-mode")
4695 (version "1.4.0")
4696 (source
4697 (origin
4698 (method git-fetch)
4699 (uri (git-reference
4700 (url "https://github.com/godotengine/emacs-gdscript-mode")
4701 (commit version)))
4702 (file-name (git-file-name name version))
4703 (sha256
4704 (base32 "09q0himrz7a6xgz0jmcl85qc5xhk5fwi6d2vw1n8qaiavm96ksdy"))))
4705 (build-system emacs-build-system)
4706 (home-page "https://github.com/godotengine/emacs-gdscript-mode")
4707 (synopsis "GDScript support and syntax highlighting in Emacs")
4708 (description
4709 "This package adds support for the GDScript programming language from the
4710 Godot game engine in Emacs. It features all the essentials, e.g., syntax
4711 highlighting, code folding, indentation, automatic pairing, auto-completion,
4712 and code formatting.")
4713 (license license:gpl3+)))
4714
4715 (define-public emacs-el-mock
4716 (package
4717 (name "emacs-el-mock")
4718 (version "1.25.1")
4719 (source
4720 (origin
4721 (method git-fetch)
4722 (uri (git-reference
4723 (url "https://github.com/rejeep/el-mock.el")
4724 (commit (string-append "v" version))))
4725 (file-name (git-file-name name version))
4726 (sha256
4727 (base32 "13mv1rhgkwiww2wh5w926jz7idppp492wir1vdl245c5x50dh4f7"))))
4728 (build-system emacs-build-system)
4729 (home-page "https://github.com/rejeep/el-mock.el")
4730 (synopsis "Tiny mock and stub framework in Emacs Lisp")
4731 (description
4732 "Emacs Lisp Mock is a library for mocking and stubbing using readable
4733 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
4734 Expectations, but it can be used in other contexts.")
4735 (license license:gpl3+)))
4736
4737 (define-public emacs-ecukes
4738 (package
4739 (name "emacs-ecukes")
4740 (version "0.6.18")
4741 (source
4742 (origin
4743 (method git-fetch)
4744 (uri (git-reference
4745 (url "https://github.com/ecukes/ecukes")
4746 (commit (string-append "v" version))))
4747 (file-name (git-file-name name version))
4748 (sha256
4749 (base32 "182qgddfv8nd89y1l55rs5vm5i61ayc8cxbplb8zx0alnid9xrw1"))))
4750 (build-system emacs-build-system)
4751 (arguments
4752 `(#:include (cons* "^feature/" "^reporters/" "^templates/" %default-include)))
4753 (propagated-inputs
4754 (list emacs-ansi
4755 emacs-commander
4756 emacs-dash
4757 emacs-espuds
4758 emacs-f
4759 emacs-s))
4760 (home-page "https://github.com/ecukes/ecukes")
4761 (synopsis "Cucumber for Emacs")
4762 (description
4763 "This package provides Ecukes, a Cucumber-inspired integration testing
4764 tool for Emacs. Ecukes is not a complete clone of Cucumber and is not
4765 intended to be.")
4766 (license license:gpl3+)))
4767
4768 (define-public emacs-espuds
4769 (package
4770 (name "emacs-espuds")
4771 (version "0.3.3")
4772 (source
4773 (origin
4774 (method git-fetch)
4775 (uri (git-reference
4776 (url "https://github.com/ecukes/espuds")
4777 (commit (string-append "v" version))))
4778 (file-name (git-file-name name version))
4779 (sha256
4780 (base32 "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg"))))
4781 (build-system emacs-build-system)
4782 (propagated-inputs
4783 (list emacs-s emacs-dash emacs-f))
4784 (home-page "https://github.com/ecukes/espuds")
4785 (synopsis "Common step definitions for Ecukes")
4786 (description "Espuds is a collection of the most commonly used step
4787 definitions for testing with the Ecukes framework.")
4788 (license license:gpl3+)))
4789
4790 (define-public emacs-spark
4791 (let ((version "20160503") ; no proper tag, use date of commit
4792 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
4793 (revision "1"))
4794 (package
4795 (name "emacs-spark")
4796 (version (git-version version revision commit))
4797 (source
4798 (origin
4799 (method git-fetch)
4800 (uri (git-reference
4801 (url "https://github.com/alvinfrancis/spark")
4802 (commit commit)))
4803 (file-name (git-file-name name version))
4804 (sha256
4805 (base32
4806 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
4807 (build-system emacs-build-system)
4808 (home-page "https://github.com/alvinfrancis/spark")
4809 (synopsis "Sparkline generation library for Emacs Lisp")
4810 (description "@code{emacs-spark} is a sparkline generation library for
4811 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
4812 port of @code{cl-spark} to Emacs Lisp.")
4813 (license license:expat))))
4814
4815 (define-public emacs-spray
4816 (let ((version "0.0.2") (revision "0")
4817 (commit "74d9dcfa2e8b38f96a43de9ab0eb13364300cb46"))
4818 (package
4819 (name "emacs-spray")
4820 (version (git-version version revision commit))
4821 (source (origin
4822 (method git-fetch)
4823 (uri (git-reference
4824 (url "https://git.sr.ht/~iank/spray")
4825 (commit commit)))
4826 (file-name (git-file-name name version))
4827 (sha256
4828 (base32
4829 "1avbfr32dvff26kgvd5vgan99nb5c6al9kv5xbmy2rcls17py7r2"))))
4830 (build-system emacs-build-system)
4831 (home-page "https://git.sr.ht/~iank/spray")
4832 (synopsis "Speed reading mode for Emacs")
4833 (description
4834 "For speed reading, or just more enjoyable reading. Narrows
4835 the buffer to show one word at a time. Adjust speed / pause as needed.")
4836 (license license:gpl3+))))
4837
4838 (define-public emacs-es-mode
4839 (package
4840 (name "emacs-es-mode")
4841 (version "4.3.0")
4842 (source
4843 (origin
4844 (method git-fetch)
4845 (uri (git-reference
4846 (url "https://github.com/dakrone/es-mode")
4847 (commit version)))
4848 (file-name (git-file-name name version))
4849 (sha256
4850 (base32 "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg"))))
4851 (build-system emacs-build-system)
4852 (propagated-inputs
4853 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
4854 ;; to be rendered incorrectly
4855 (list emacs-dash emacs-org emacs-spark))
4856 (home-page "https://github.com/dakrone/es-mode")
4857 (synopsis "Major mode for editing Elasticsearch queries")
4858 (description "@code{es-mode} includes highlighting, completion and
4859 indentation support for Elasticsearch queries. Also supported are
4860 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
4861 be processed through @code{jq}, or in the case of aggregations, can be
4862 rendered in to a table. In addition, there is an @code{es-command-center}
4863 mode, which displays information about Elasticsearch clusters.")
4864 (license license:gpl3+)))
4865
4866 (define-public emacs-expand-region
4867 (package
4868 (name "emacs-expand-region")
4869 (version "0.11.0")
4870 (source
4871 (origin
4872 (method git-fetch)
4873 (uri (git-reference
4874 (url "https://github.com/magnars/expand-region.el")
4875 (commit version)))
4876 (file-name (git-file-name name version))
4877 (sha256
4878 (base32 "0h40dhc3kn8fq86xnwi5lz7ql8my8737y7wkqr897p15y90swr35"))))
4879 (build-system emacs-build-system)
4880 (home-page "https://github.com/magnars/expand-region.el")
4881 (synopsis "Increase selected region by semantic units")
4882 (description
4883 "Expand region increases the selected region by semantic units. Just
4884 keep pressing the key until it selects what you want. There's also
4885 @code{er/contract-region} if you expand too far.")
4886 (license license:gpl3+)))
4887
4888 (define-public emacs-explain-pause-mode
4889 (let ((commit "2356c8c3639cbeeb9751744dbe737267849b4b51")
4890 (revision "0"))
4891 (package
4892 (name "emacs-explain-pause-mode")
4893 (version (git-version "0.1" revision commit))
4894 (source
4895 (origin
4896 (method git-fetch)
4897 (uri (git-reference
4898 (url "https://github.com/lastquestion/explain-pause-mode")
4899 (commit commit)))
4900 (file-name (git-file-name name version))
4901 (sha256
4902 (base32 "0frnfwqal9mrnrz6q4v7vcai26ahaw81894arff1yjw372pfgv7v"))))
4903 (build-system emacs-build-system)
4904 (native-inputs
4905 (list emacs-buttercup))
4906 (arguments
4907 '(#:tests? #t
4908 #:phases
4909 (modify-phases %standard-phases
4910 ;; This causes the byte-compilation before unit-tests to fail.
4911 (add-after 'unpack 'remove-error-on-warn
4912 (lambda _
4913 (substitute* "Makefile"
4914 (("--eval '\\(setq byte-compile-error-on-warn t\\)'") "")))))
4915 ;; Don't run case-tests as they will fail to create sockets because
4916 ;; the path is too long
4917 #:test-command '("make" "byte-compile" "unit-tests")
4918 ;; Parallel testing will cause the tests to run before
4919 ;; byte-compilation is finished
4920 #:parallel-tests? #f))
4921 (home-page "https://github.com/lastquestion/explain-pause-mode")
4922 (synopsis "Top-like interface to determine why Emacs paused")
4923 (description
4924 "This package monitors Emacs function calls and records their execution
4925 time. This information can be reviewed to determine what is causing the user
4926 interface to pause.")
4927 (license license:gpl3+))))
4928
4929 (define-public emacs-filladapt
4930 (package
4931 (name "emacs-filladapt")
4932 (version "2.12.2")
4933 (source
4934 (origin
4935 (method url-fetch)
4936 (uri (string-append
4937 "https://elpa.gnu.org/packages/filladapt-"
4938 version ".el"))
4939 (sha256
4940 (base32
4941 "1cxyxfdjg1dsmn1jrl6b7xy03xr42fb6vyggh27s4dk417ils6yg"))))
4942 (build-system emacs-build-system)
4943 (home-page "http://elpa.gnu.org/packages/filladapt.html")
4944 (synopsis "Adaptive fill for Emacs")
4945 (description
4946 "This package provides functions which enhance the default behavior of
4947 Emacs' Auto Fill mode and the commands @code{fill-paragraph},
4948 @code{lisp-fill-paragraph}, @code{fill-region-as-paragraph}, and
4949 @code{fill-region}.
4950
4951 The chief improvement is that the beginning of a line to be
4952 filled is examined and, based on information gathered, an
4953 appropriate value for fill-prefix is constructed. Also the
4954 boundaries of the current paragraph are located. This occurs
4955 only if the fill prefix is not already non-nil.
4956
4957 The net result of this is that blurbs of text that are offset
4958 from left margin by asterisks, dashes, and/or spaces, numbered
4959 examples, included text from USENET news articles, etc. are
4960 generally filled correctly with no fuss.")
4961 (license license:gpl3+)))
4962
4963 (define-public emacs-fill-column-indicator
4964 (package
4965 (name "emacs-fill-column-indicator")
4966 (version "1.90")
4967 (source
4968 (origin
4969 (method git-fetch)
4970 (uri (git-reference
4971 (url "https://github.com/alpaker/Fill-Column-Indicator")
4972 (commit version)))
4973 (file-name (git-file-name name version))
4974 (sha256
4975 (base32 "0snjznxdwwfdgccdcvrnk467416r244r2r5qcm2sga8l0ha9gw9z"))))
4976 (build-system emacs-build-system)
4977 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
4978 (synopsis "Graphically indicate the fill column")
4979 (description
4980 "Fill-column-indicator graphically indicates the location of the fill
4981 column by drawing a thin line down the length of the editing window.")
4982 (license license:gpl3+)))
4983
4984 (define-public emacs-grep-a-lot
4985 (package
4986 (name "emacs-grep-a-lot")
4987 (version "1.0.7")
4988 (source
4989 (origin
4990 (method git-fetch)
4991 (uri (git-reference
4992 (url "https://github.com/ZungBang/emacs-grep-a-lot")
4993 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
4994 (file-name (git-file-name name version))
4995 (sha256
4996 (base32 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
4997 (build-system emacs-build-system)
4998 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
4999 (synopsis "Enables multiple grep buffers in Emacs")
5000 (description
5001 "This Emacs package allows managing multiple grep buffers.")
5002 (license license:gpl3+)))
5003
5004 (define-public emacs-fd
5005 (package
5006 (name "emacs-fd")
5007 (version "0.1.0")
5008 (source (origin
5009 (method git-fetch)
5010 (uri (git-reference
5011 (url "https://github.com/yqrashawn/fd-dired")
5012 (commit version)))
5013 (file-name (git-file-name name version))
5014 (sha256
5015 (base32
5016 "1fas0fpvym2lyzybwm44gly9jz6a2fpp72yxnwfbqqjkfgk9910y"))))
5017 (build-system emacs-build-system)
5018 (home-page "https://github.com/yqrashawn/fd-dired")
5019 (synopsis "Dired-mode interface for fd result")
5020 (description "This package provides a dired-mode interface for fd's
5021 result.")
5022 (license license:gpl3+)))
5023
5024 (define-public emacs-ripgrep
5025 (package
5026 (name "emacs-ripgrep")
5027 (version "0.4.0")
5028 (source
5029 (origin
5030 (method git-fetch)
5031 (uri (git-reference
5032 (url "https://github.com/nlamirault/ripgrep.el")
5033 (commit version)))
5034 (file-name (git-file-name name version))
5035 (sha256
5036 (base32 "1a5rdpmvsgsjlc9sywism9pq7jd6n9qbcdsvpbfkq1npwhpifkbj"))))
5037 (build-system emacs-build-system)
5038 (arguments
5039 `(#:phases
5040 (modify-phases %standard-phases
5041 ;; The repository contains both ripgrep and projectile-ripgrep
5042 ;; packages. The latter has been merged into projectile itself.
5043 (add-after 'unpack 'delete-projectile-ripgrep
5044 (lambda _
5045 (delete-file "projectile-ripgrep.el"))))))
5046 (propagated-inputs
5047 (list ripgrep))
5048 (home-page "https://github.com/nlamirault/ripgrep.el")
5049 (synopsis "Search using ripgrep from inside Emacs")
5050 (description "@code{ripgrep} is an Emacs search package based on the
5051 @command{ripgrep} command line tool.")
5052 (license license:gpl2+)))
5053
5054 (define-public emacs-rg
5055 (package
5056 (name "emacs-rg")
5057 (version "2.2.1")
5058 (source
5059 (origin
5060 (method git-fetch)
5061 (uri (git-reference
5062 (url "https://github.com/dajva/rg.el")
5063 (commit version)))
5064 (file-name (git-file-name name version))
5065 (sha256
5066 (base32 "1nxzplpk5cf6hhr2v85bmg68i6am96shi2zq7m83fs96bilhwsp5"))))
5067 (build-system emacs-build-system)
5068 (arguments
5069 (list
5070 #:phases
5071 #~(modify-phases %standard-phases
5072 (add-after 'unpack 'remove-rg-path
5073 ;; Remove the path to ripgrep so that it works on remote systems.
5074 (lambda _
5075 (let ((file "rg.el"))
5076 (make-file-writable file)
5077 (emacs-substitute-sexps file
5078 ("(defcustom rg-executable" "rg"))))))))
5079 (propagated-inputs
5080 (list emacs-s emacs-transient emacs-wgrep ripgrep))
5081 (home-page "https://rgel.readthedocs.io/en/latest/")
5082 (synopsis "Search tool based on @code{ripgrep}")
5083 (description
5084 "@code{rg} is an Emacs search package based on the @code{ripgrep} command
5085 line tool. It allows one to interactively search based on the editing context
5086 then refine or modify the search results.")
5087 (license license:gpl3+)))
5088
5089 (define-public emacs-inf-ruby
5090 (package
5091 (name "emacs-inf-ruby")
5092 (version "2.5.2")
5093 (source
5094 (origin
5095 (method git-fetch)
5096 (uri (git-reference
5097 (url "https://github.com/nonsequitur/inf-ruby")
5098 (commit version)))
5099 (file-name (git-file-name name version))
5100 (sha256
5101 (base32 "0a1hhvfbl6mq8rjsi77fg9fh5a91hi5scjrg9rjqc5ffbql67y0v"))))
5102 (build-system emacs-build-system)
5103 (home-page "https://github.com/nonsequitur/inf-ruby")
5104 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
5105 (description
5106 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
5107 for easy interaction with a ruby subprocess. Features include support for
5108 detecting specific uses of Ruby, e.g. when using rails, and using a
5109 appropriate console.")
5110 (license license:gpl3+)))
5111
5112 (define-public emacs-znc
5113 (package
5114 (name "emacs-znc")
5115 (version "0.4")
5116 (source
5117 (origin
5118 (method git-fetch)
5119 (uri (git-reference
5120 (url "https://github.com/sshirokov/ZNC.el")
5121 (commit version)))
5122 (file-name (git-file-name name version))
5123 (sha256
5124 (base32 "1ran86ycnays9s23wk3iczqqgnpbyx0lijiarx65am3jc1yzg5ia"))))
5125 (build-system emacs-build-system)
5126 (home-page "https://github.com/sshirokov/ZNC.el")
5127 (synopsis "Make ERC and ZNC get along better")
5128 (description
5129 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
5130 IRC bouncer with ERC.")
5131 (license license:expat)))
5132
5133 (define-public emacs-erc-status-sidebar
5134 (let ((commit "ea4189a1dbfe60117359c36e681ad7c389e2968c")
5135 (revision "1"))
5136 (package
5137 (name "emacs-erc-status-sidebar")
5138 (version (git-version "0.1" revision commit))
5139 (source
5140 (origin
5141 (method git-fetch)
5142 (uri (git-reference
5143 (url "https://github.com/drewbarbs/erc-status-sidebar")
5144 (commit commit)))
5145 (file-name (git-file-name name version))
5146 (sha256
5147 (base32 "1hwlhzgx03z8891sblz56zdp8zj0izh72kxykgcnz5rrkyc3vfi3"))))
5148 (build-system emacs-build-system)
5149 (home-page "https://github.com/drewbarbs/erc-status-sidebar")
5150 (synopsis "Hexchat-like activity overview for ERC channels")
5151 (description
5152 "This package provides a Hexchat-like status bar for joined channels in
5153 ERC, an Emacs client for IRC (Internet Relay Chat). It relies on the
5154 @code{erc-track} module, and displays all the same information
5155 @code{erc-track} does in the mode line, but in an alternative format.")
5156 (license license:gpl3+))))
5157
5158 (define-public emacs-shut-up
5159 (package
5160 (name "emacs-shut-up")
5161 (version "0.3.3")
5162 (source
5163 (origin
5164 (method git-fetch)
5165 (uri (git-reference
5166 (url "https://github.com/cask/shut-up")
5167 (commit (string-append "v" version))))
5168 (file-name (git-file-name name version))
5169 (sha256
5170 (base32 "1bnmrwrhra6cpc3jjgwwzrydj5ps7q2dlkh2ag4j7rkyv4dlk351"))))
5171 (build-system emacs-build-system)
5172 (home-page "https://github.com/cask/shut-up")
5173 (synopsis "Silence Emacs")
5174 (description "This package silences most output of Emacs when running an
5175 Emacs shell script.")
5176 (license license:expat)))
5177
5178 (define-public emacs-undercover
5179 (package
5180 (name "emacs-undercover")
5181 (version "0.8.1")
5182 (source
5183 (origin
5184 (method git-fetch)
5185 (uri (git-reference
5186 (url "https://github.com/sviridov/undercover.el")
5187 (commit (string-append "v" version))))
5188 (file-name (git-file-name name version))
5189 (sha256
5190 (base32 "0qmvyy3xg5qi7ws8zcs934d6afsappr1a6pgfp796xpa9vdr4y6j"))))
5191 (build-system emacs-build-system)
5192 (propagated-inputs
5193 (list emacs-dash emacs-shut-up))
5194 (home-page "https://github.com/sviridov/undercover.el")
5195 (synopsis "Test coverage library for Emacs Lisp")
5196 (description
5197 "Undercover is a test coverage library for software written in Emacs
5198 Lisp.")
5199 (license license:expat)))
5200
5201 (define-public emacs-paren-face
5202 (package
5203 (name "emacs-paren-face")
5204 (version "1.0.8")
5205 (source
5206 (origin
5207 (method git-fetch)
5208 (uri (git-reference
5209 (url "https://github.com/tarsius/paren-face")
5210 (commit version)))
5211 (file-name (git-file-name name version))
5212 (sha256
5213 (base32 "13d8psgd2j3vqmgwwf62gwyq7h6qlj8rrs31fxwjqmzzdblwqy1y"))))
5214 (build-system emacs-build-system)
5215 (home-page "https://github.com/tarsius/paren-face")
5216 (synopsis "Face for parentheses in Lisp modes")
5217 (description
5218 "This library defines a face named @code{parenthesis} used just for
5219 parentheses. The intended purpose of this face is to make parentheses less
5220 visible in Lisp code by dimming them. Lispers probably don't need to be
5221 constantly made aware of the existence of the parentheses. Dimming them might
5222 be even more useful for people new to Lisp who have not yet learned to
5223 subconsciously blend out the parentheses.")
5224 (license license:gpl3+)))
5225
5226 (define-public emacs-page-break-lines
5227 (package
5228 (name "emacs-page-break-lines")
5229 (version "0.14")
5230 (source
5231 (origin
5232 (method git-fetch)
5233 (uri (git-reference
5234 (url "https://github.com/purcell/page-break-lines")
5235 (commit version)))
5236 (file-name (git-file-name name version))
5237 (sha256
5238 (base32 "0plfyzmh93x1r3zgfjyx23cc7vi1pcniipclzlms1iwfkl7zsqvp"))))
5239 (build-system emacs-build-system)
5240 (home-page "https://github.com/purcell/page-break-lines")
5241 (synopsis "Display page breaks as tidy horizontal lines")
5242 (description
5243 "This library provides a global mode which displays form feed characters
5244 as horizontal rules.")
5245 (license license:gpl3+)))
5246
5247 (define-public emacs-simple-httpd
5248 (package
5249 (name "emacs-simple-httpd")
5250 (version "1.5.1")
5251 (source
5252 (origin
5253 (method git-fetch)
5254 (uri (git-reference
5255 (url "https://github.com/skeeto/emacs-web-server")
5256 (commit version)))
5257 (file-name (git-file-name name version))
5258 (sha256
5259 (base32 "0dpn92rg813c4pq7a1vzj3znyxzp2lmvxqz6pzcqi0l2xn5r3wvb"))))
5260 (build-system emacs-build-system)
5261 (home-page "https://github.com/skeeto/emacs-web-server")
5262 (synopsis "HTTP server in pure Emacs Lisp")
5263 (description
5264 "This package provides a simple HTTP server written in Emacs Lisp to
5265 serve files and directory listings.")
5266 (license license:unlicense)))
5267
5268 (define-public emacs-skewer-mode
5269 (package
5270 (name "emacs-skewer-mode")
5271 (version "1.8.0")
5272 (source
5273 (origin
5274 (method git-fetch)
5275 (uri (git-reference
5276 (url "https://github.com/skeeto/skewer-mode")
5277 (commit version)))
5278 (file-name (git-file-name name version))
5279 (sha256
5280 (base32 "1ha7jl7776pk1bki5zj2q0jy66450mn8xr3aqjc0m9kj3gc9qxgw"))))
5281 (build-system emacs-build-system)
5282 (propagated-inputs
5283 (list emacs-simple-httpd emacs-js2-mode))
5284 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
5285 (home-page "https://github.com/skeeto/skewer-mode")
5286 (synopsis "Live web development in Emacs")
5287 (description
5288 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
5289 a web browser. Expressions are sent on-the-fly from an editing buffer to be
5290 evaluated in the browser, just like Emacs does with an inferior Lisp process
5291 in Lisp modes.")
5292 (license license:unlicense)))
5293
5294 (define-public emacs-litable
5295 (let ((commit "b0278f3f8dcff424bfbdfdefb545b1fbff33206f"))
5296 (package
5297 (name "emacs-litable")
5298 (version (git-version "0.1" "0" commit))
5299 (source (origin
5300 (method git-fetch)
5301 (uri (git-reference
5302 (url "https://github.com/Fuco1/litable")
5303 (commit commit)))
5304 (file-name (git-file-name name version))
5305 (sha256
5306 (base32
5307 "0bny40hv9a024n01clxns351cs4j4ifhgcc7m4743xncqf612p7g"))))
5308 (build-system emacs-build-system)
5309 (propagated-inputs
5310 (list emacs-dash))
5311 (home-page "https://github.com/Fuco1/litable/")
5312 (synopsis "Dynamic evaluation replacement with Emacs")
5313 (description "This package provides dynamic evaluation in Emacs.")
5314 (license license:gpl3+))))
5315
5316 (define-public emacs-literate-elisp
5317 (package
5318 (name "emacs-literate-elisp")
5319 (version "0.8")
5320 (source (origin
5321 (method git-fetch)
5322 (uri (git-reference
5323 (url "https://github.com/jingtaozf/literate-elisp")
5324 (commit version)))
5325 (file-name (git-file-name name version))
5326 (sha256
5327 (base32 "0i9468rh61l4xq918fgwk6li93lpm6zbn0lkpxr7pbvkgrl5xsr6"))))
5328 (build-system emacs-build-system)
5329 (home-page "https://github.com/jingtaozf/literate-elisp/tags")
5330 (synopsis "Load Emacs Lisp code blocks from Org files")
5331 (description
5332 "Literate-Elisp is an Emacs lisp library to provide an easy way to use
5333 literal programming in Emacs lisp. It extends the Emacs load mechanism so
5334 Emacs can load Org files as Lisp source files directly.")
5335 (license license:gpl3+)))
5336
5337 (define-public emacs-literate-calc-mode
5338 (let ((commit "ba7d22140a165b0fdd900a8d04916115ca6ab8ff")
5339 (revision "2"))
5340 (package
5341 (name "emacs-literate-calc-mode")
5342 (version (git-version "0.1" revision commit))
5343 (source
5344 (origin
5345 (method git-fetch)
5346 (uri (git-reference
5347 (url "https://github.com/sulami/literate-calc-mode.el")
5348 (commit commit)))
5349 (file-name (git-file-name name version))
5350 (sha256
5351 (base32 "1bdybw44pmhfpikdv1kg2sx88546xyncks5a4b2s0ak4p66r82k3"))))
5352 (build-system emacs-build-system)
5353 (propagated-inputs
5354 (list emacs-s))
5355 (home-page "https://github.com/sulami/literate-calc-mode.el")
5356 (synopsis "Literate programming for Emacs Calc")
5357 (description
5358 "This library provides literate programming for Calc. There is both
5359 a major and a minor mode. The major mode does some basic syntax highlighting,
5360 while the minor mode only evaluates all Calc statements while typing. In
5361 particular, the minor mode works quite well with Org or Markdown modes, or
5362 other markup language major modes.")
5363 (license license:gpl3+))))
5364
5365 (define-public emacs-standard-dirs
5366 (package
5367 (name "emacs-standard-dirs")
5368 (version "2.0.0")
5369 (home-page "https://github.com/lafrenierejm/standard-dirs.el")
5370 (source
5371 (origin
5372 (method git-fetch)
5373 (uri (git-reference
5374 (url home-page)
5375 (commit version)))
5376 (file-name (git-file-name name version))
5377 (sha256
5378 (base32 "0r814qcrhvx4qlx4sdzwdmrhiryslqclx0bnpp0qcrbx6g8qfl25"))))
5379 (build-system emacs-build-system)
5380 (propagated-inputs
5381 (list emacs-f emacs-s))
5382 (synopsis "Platform-specific paths for config, cache, and other data")
5383 (description
5384 "This package provides platform-specific paths for reading and writing
5385 configuration, cache, and other data.")
5386 (license license:gpl3+)))
5387
5388 (define-public emacs-string-inflection
5389 (package
5390 (name "emacs-string-inflection")
5391 (version "1.0.16")
5392 (source
5393 (origin
5394 (method git-fetch)
5395 (uri (git-reference
5396 (url "https://github.com/akicho8/string-inflection")
5397 (commit (string-append "v" version))))
5398 (file-name (git-file-name name version))
5399 (sha256
5400 (base32 "0wskrp3v5gi3b3s9471ijkdncnfd888qd50c72rv2p8846174paj"))))
5401 (build-system emacs-build-system)
5402 (native-inputs
5403 (list emacs-ert-runner))
5404 (arguments
5405 `(#:tests? #t
5406 #:test-command '("ert-runner")))
5407 (home-page "https://github.com/akicho8/string-inflection")
5408 (synopsis "Convert symbol names between different naming conventions")
5409 (description
5410 "This Emacs package provides convenient methods for manipulating the
5411 naming style of a symbol. It supports different naming conventions such as:
5412
5413 @enumerate
5414 @item camel case
5415 @item Pascal case
5416 @item all upper case
5417 @item lower case separated by underscore
5418 @item etc...
5419 @end enumerate\n")
5420 (license license:gpl2+)))
5421
5422 (define-public emacs-stripe-buffer
5423 (package
5424 (name "emacs-stripe-buffer")
5425 (version "0.2.5")
5426 (source
5427 (origin
5428 (method git-fetch)
5429 (uri (git-reference
5430 (url "https://github.com/sabof/stripe-buffer")
5431 (commit version)))
5432 (file-name (git-file-name name version))
5433 (sha256
5434 (base32 "035ym1c1vzg6hjsnd258z4dkrfc11lj4c0y4gpgybhk54dq3w9dk"))))
5435 (build-system emacs-build-system)
5436 (home-page "https://github.com/sabof/stripe-buffer/")
5437 (synopsis "Add stripes to list buffers")
5438 (description
5439 "This Emacs package adds faces to add stripes to list buffers and org
5440 tables.")
5441 (license license:gpl2+)))
5442
5443 (define-public emacs-org-beautify-theme
5444 ;; Latest release (0.4) is not tagged, use commit hash.
5445 (let ((commit "df6a1114fda313e1689363e196c8284fbe2a2738")
5446 (revision "0"))
5447 (package
5448 (name "emacs-org-beautify-theme")
5449 (version "0.4")
5450 (source
5451 (origin
5452 (method git-fetch)
5453 (uri (git-reference
5454 (url "https://github.com/jonnay/org-beautify-theme")
5455 (commit commit)))
5456 (file-name (git-file-name name version))
5457 (sha256
5458 (base32 "1lkz7736swimad12khwbbqc4gxjydgr1k45p4mx03s25pv1w920y"))))
5459 (build-system emacs-build-system)
5460 (home-page "https://github.com/jonnay/org-beautify-theme")
5461 (synopsis "Theme to make Org mode look more beautiful")
5462 (description
5463 "The theme adds padding between headings, increases the size of titles,
5464 strike through completed TODO headings, changes Org blocks, changes Org check
5465 boxes, and more.")
5466 (license license:gpl3+))))
5467
5468 (define-public emacs-org-books
5469 (package
5470 (name "emacs-org-books")
5471 (version "0.3.0")
5472 (source
5473 (origin
5474 (method git-fetch)
5475 (uri (git-reference
5476 (url "https://github.com/lepisma/org-books")
5477 (commit version)))
5478 (file-name (git-file-name name version))
5479 (sha256
5480 (base32
5481 "1sgckvpjdaig9r2clcvs6ckgf2kx7amikkpq26y30jbnfnbskf0v"))))
5482 (build-system emacs-build-system)
5483 (propagated-inputs
5484 (list emacs-dash
5485 emacs-enlive
5486 emacs-helm
5487 emacs-helm-org
5488 emacs-org
5489 emacs-s))
5490 (home-page "https://github.com/lepisma/org-books")
5491 (synopsis "Reading list management with Org mode and Helm")
5492 (description
5493 "Org Books is a tool for managing reading lists in an Org mode file.")
5494 (license license:gpl3+)))
5495
5496 (define-public emacs-org-chef
5497 ;; Upstream does not tag version bumps. Version is extracted from "Version"
5498 ;; keyword in main file.
5499 (let ((commit "87e9a6c4844ff32f47c8d1108ec0f087a3148a8e")
5500 (revision "0"))
5501 (package
5502 (name "emacs-org-chef")
5503 (version (git-version "0.1.3" revision commit))
5504 (source
5505 (origin
5506 (method git-fetch)
5507 (uri (git-reference
5508 (url "https://github.com/Chobbes/org-chef")
5509 (commit commit)))
5510 (sha256
5511 (base32 "0xdfaf3shl3iij7nnshb5ryccqq70rpk0zm0d3fdwdbfa8rf7fkp"))))
5512 (build-system emacs-build-system)
5513 (propagated-inputs (list emacs-org))
5514 (home-page "https://github.com/Chobbes/org-chef")
5515 (synopsis "Cookbook and recipe management with Emacs Org mode")
5516 (description
5517 "Org Chef is a package for managing recipes in Org mode. One of the
5518 main features is that it can automatically extract recipes from websites like
5519 allrecipes.com.")
5520 (license license:expat))))
5521
5522 (define-public emacs-org-inline-pdf
5523 (package
5524 (name "emacs-org-inline-pdf")
5525 (version "0.2")
5526 (source (origin
5527 (method git-fetch)
5528 (uri (git-reference
5529 (url "https://github.com/shg/org-inline-pdf.el")
5530 (commit version)))
5531 (file-name (git-file-name name version))
5532 (sha256
5533 (base32
5534 "1qc92xvgxmnwjixk8bxwbc1l1jj0qk9dg73jyaip6lk4g0wjk6xf"))))
5535 (build-system emacs-build-system)
5536 (inputs
5537 (list pdf2svg))
5538 (arguments
5539 `(#:phases
5540 (modify-phases %standard-phases
5541 (add-after 'unpack 'patch-exec-paths
5542 (lambda* (#:key inputs #:allow-other-keys)
5543 (let ((pdf2svg (assoc-ref inputs "pdf2svg")))
5544 (substitute* "org-inline-pdf.el"
5545 (("\"pdf2svg\"") (string-append "\"" pdf2svg "/bin/pdf2svg\"")))))))))
5546 (home-page "https://github.com/shg/org-inline-pdf.el")
5547 (synopsis "Inline PDF previewing for Org")
5548 (description "This package provides a minor mode that enables
5549 inline PDF preview in Org buffers by using pdf2svg.")
5550 (license license:gpl3+)))
5551
5552 (define-public emacs-org-rich-yank
5553 (package
5554 (name "emacs-org-rich-yank")
5555 (version "0.2.1")
5556 (source
5557 (origin
5558 (method git-fetch)
5559 (uri (git-reference
5560 (url "https://github.com/unhammer/org-rich-yank")
5561 (commit (string-append "v" version))))
5562 (file-name (git-file-name name version))
5563 (sha256
5564 (base32 "0gxb0fnh5gxjmld0hnk5hli0cvdd8gjd27m30bk2b80kwldxlq1z"))))
5565 (build-system emacs-build-system)
5566 (home-page "https://github.com/unhammer/org-rich-yank")
5567 (synopsis "Automatically surround source code pasted into Org with
5568 @code{#+BEGIN_SRC} blocks")
5569 (description
5570 "This package provides a utility function for Org buffers that makes a
5571 @code{_SRC} block with the appropriate language annotation for code that has
5572 been copied from an Emacs major mode.")
5573 (license license:gpl2+)))
5574
5575 (define-public emacs-org-fancy-priorities
5576 (let ((commit "819bb993b71e7253cefef7047306ab4e0f9d0a86")
5577 (revision "1"))
5578 (package
5579 (name "emacs-org-fancy-priorities")
5580 (version (git-version "1.1" revision commit))
5581 (source
5582 (origin
5583 (method git-fetch)
5584 (uri (git-reference
5585 (url "https://github.com/harrybournis/org-fancy-priorities.git")
5586 (commit commit)))
5587 (file-name (git-file-name name version))
5588 (sha256
5589 (base32
5590 "13cyzlx0415i953prq6ch7r5iy23c1pz116bdxi5yqags4igh4wv"))))
5591 (build-system emacs-build-system)
5592 (home-page "https://github.com/harrybournis/org-fancy-priorities")
5593 (synopsis "Display org priorities as custom strings")
5594 (description
5595 "This package provides a minor mode that displays Org priorities as
5596 custom strings. This mode does not change your files in any way, it only
5597 displays the priority part of a heading as your preferred string value.")
5598 (license license:expat))))
5599
5600 (define-public emacs-org-fragtog
5601 (package
5602 (name "emacs-org-fragtog")
5603 (version "0.4.1")
5604 (source
5605 (origin
5606 (method git-fetch)
5607 (uri (git-reference
5608 (url "https://github.com/io12/org-fragtog.git")
5609 (commit version)))
5610 (file-name (git-file-name name version))
5611 (sha256
5612 (base32 "1912nlnk5v20szlmxr6y7chvms294z0p0hzdfgi8i3c7yrz7lmsj"))))
5613 (build-system emacs-build-system)
5614 (propagated-inputs
5615 (list emacs-org))
5616 (home-page "https://github.com/io12/org-fragtog")
5617 (synopsis "Toggle Org mode LaTeX fragments preview at cursor")
5618 (description
5619 "Org mode supports inline image previews of LaTeX fragments. This
5620 package automates this, so fragment previews are disabled for editing when
5621 your cursor steps onto them, and re-enabled when the cursor leaves.")
5622 (license license:gpl3+)))
5623
5624 (define-public emacs-ob-erlang
5625 (let ((revision "1")
5626 (commit "a029c23902b4ad73b84f262a7fc5b98d87b63dfd"))
5627 (package
5628 (name "emacs-ob-erlang")
5629 (version (git-version "20210321" revision commit))
5630 (source (origin
5631 (method git-fetch)
5632 (uri (git-reference
5633 (url "https://github.com/xfwduke/ob-erlang")
5634 (commit commit)))
5635 (file-name (git-file-name name version))
5636 (sha256
5637 (base32
5638 "1dlb9qgmijff4giglwb358g5zzyjbnay0wkr5spks1bawvyxpiyl"))))
5639 (build-system emacs-build-system)
5640 (home-page "https://github.com/xfwduke/ob-erlang/")
5641 (synopsis "Org-babel support for Erlang")
5642 (description "This package adds support for working with Erlang code
5643 blocks with @code{org-babel} in @code{org-mode}.")
5644 (license license:gpl3+))))
5645
5646 (define-public emacs-ob-restclient
5647 (let ((commit "f7449b2068498fe9d8ab9589e0a638148861533f"))
5648 (package
5649 (name "emacs-ob-restclient")
5650 (version (git-version "0.02" "2" commit))
5651 (source
5652 (origin
5653 (method git-fetch)
5654 (uri (git-reference
5655 (url "https://github.com/alf/ob-restclient.el")
5656 (commit commit)))
5657 (file-name (git-file-name name version))
5658 (sha256
5659 (base32 "0s3931w9ab3yfml2pmq71rw21yf6hpg7m3vihxyy3vs6zli1cvmq"))))
5660 (propagated-inputs
5661 (list emacs-restclient))
5662 (build-system emacs-build-system)
5663 (home-page "https://github.com/alf/ob-restclient.el")
5664 (synopsis "Org-babel functionality for @code{restclient-mode}")
5665 (description
5666 "This package integrates @code{restclient-mode} with Org.")
5667 (license license:gpl3+))))
5668
5669 (define-public emacs-org-now
5670 (let ((commit "8f6b277a73f1c66e58ccb4b7f40d406851befc91"))
5671 (package
5672 (name "emacs-org-now")
5673 (version (git-version "0.1-pre" "1" commit))
5674 (source
5675 (origin
5676 (method git-fetch)
5677 (uri (git-reference
5678 (url "https://github.com/alphapapa/org-now")
5679 (commit commit)))
5680 (file-name (git-file-name name version))
5681 (sha256
5682 (base32 "117zzkryznznk6h4i1jqzdn888nl019xrgxm2gza0lndx8dxsg2c"))))
5683 (propagated-inputs
5684 (list emacs-dash))
5685 (build-system emacs-build-system)
5686 (home-page "https://github.com/alphapapa/org-now")
5687 (synopsis "Show current Org tasks in a sidebar")
5688 (description
5689 "This package provides commands to show Org headings in a sidebar
5690 window while working on them. After defining one heading as the \"now\"
5691 heading, other headings can be refiled to it with one command, and back to
5692 their original location with another.")
5693 (license license:gpl3+))))
5694
5695 (define-public emacs-rich-minority
5696 (package
5697 (name "emacs-rich-minority")
5698 (version "1.0.3")
5699 (source
5700 (origin
5701 (method git-fetch)
5702 (uri (git-reference
5703 (url "https://github.com/Malabarba/rich-minority")
5704 (commit version)))
5705 (file-name (git-file-name name version))
5706 (sha256
5707 (base32
5708 "1kn7c9qr9ykj68iqffzzmjsr6aazwac8cxb7j960sjb282rq0yyj"))))
5709 (build-system emacs-build-system)
5710 (home-page "https://github.com/Malabarba/rich-minority")
5711 (synopsis "Clean-up and beautify the list of minor modes")
5712 (description
5713 "This Emacs package hides and/or highlights minor modes in the
5714 mode-line.")
5715 (license license:gpl2+)))
5716
5717 (define-public emacs-robe
5718 (package
5719 (name "emacs-robe")
5720 (version "0.8.3")
5721 (source
5722 (origin
5723 (method git-fetch)
5724 (uri (git-reference
5725 (url "https://github.com/dgutov/robe")
5726 (commit version)))
5727 (file-name (git-file-name name version))
5728 (sha256
5729 (base32 "1xbj7wi389n6pxfvxrakvhylkdlqg8ll9ad2zmxggcchygwah6nl"))))
5730 (build-system emacs-build-system)
5731 (arguments
5732 '(#:include (cons "^lib\\/" %default-include)))
5733 (propagated-inputs
5734 (list emacs-inf-ruby))
5735 (home-page "https://github.com/dgutov/robe")
5736 (synopsis "Ruby code assistance tool for Emacs")
5737 (description
5738 "Robe can provide information on loaded classes and modules in Ruby code,
5739 as well as where methods are defined. This allows the user to jump to method
5740 definitions, modules and classes, display method documentation and provide
5741 method and constant name completion.")
5742 (license license:gpl3+)))
5743
5744 (define-public emacs-robot-mode
5745 (package
5746 (name "emacs-robot-mode")
5747 (version "0.6.1")
5748 (source
5749 (origin
5750 (method git-fetch)
5751 (uri (git-reference
5752 (url "https://github.com/kopoli/robot-mode")
5753 (commit version)))
5754 (file-name (git-file-name name version))
5755 (sha256
5756 (base32 "127lydk66n90ih39q8gxzb44rss2xllb7bn3ygxrf5m5vvl9w5rj"))))
5757 (build-system emacs-build-system)
5758 (home-page "https://github.com/kopoli/robot-mode")
5759 (synopsis "Emacs mode for Robot Framework")
5760 (description
5761 "This major mode facilitates editing Robot Framework source files with
5762 features such as syntax highlighting, comments, finding keywords, completing
5763 keywords and smart indentation.")
5764 (license license:gpl3+)))
5765
5766 (define-public emacs-robot-log
5767 (package
5768 (name "emacs-robot-log")
5769 (version "0.1.3")
5770 (source (origin
5771 (method git-fetch)
5772 (uri (git-reference
5773 (url "https://git.sr.ht/~apteryx/emacs-robot-log")
5774 (commit version)))
5775 (file-name (git-file-name name version))
5776 (sha256
5777 (base32
5778 "0pv0kljx2n2n7ql6rfw1x63mbd1k2qwbq3zkw452lb8jmnp7dr3y"))))
5779 (build-system emacs-build-system)
5780 (native-inputs (list python-robotframework))
5781 (arguments (list #:tests? #t))
5782 (home-page "https://sr.ht/~apteryx/emacs-robot-log/")
5783 (synopsis "Emacs major mode for viewing RobotFramework debug log files")
5784 (description "@code{robot-log} is an Emacs major mode that allows more
5785 easily viewing and navigating RobotFramework debug log files. It provides
5786 syntax highlighting and convenient shortcuts to move from one keyword to the
5787 next, or locate errors.")
5788 (license license:gpl3+)))
5789
5790 (define-public emacs-robots-txt-mode
5791 (package
5792 (name "emacs-robots-txt-mode")
5793 (version "0.0.9")
5794 (source (origin
5795 (method git-fetch)
5796 (uri (git-reference
5797 (url "https://github.com/emacs-php/robots-txt-mode")
5798 (commit version)))
5799 (file-name (git-file-name name version))
5800 (sha256
5801 (base32
5802 "07255pn80w4742sz2h9vbmfxxd8ps2kcn73p7m2bgy02kgbzw42b"))))
5803 (build-system emacs-build-system)
5804 (home-page "https://github.com/emacs-php/robots-txt-mode")
5805 (synopsis "Syntax highlighting for @file{robots.txt} files")
5806 (description "This package provides an Emacs major mode for editing
5807 @file{robots.txt} files.")
5808 (license license:gpl3+)))
5809
5810 (define-public emacs-roguel-ike
5811 (package
5812 (name "emacs-roguel-ike")
5813 (version "0.1.1")
5814 (source
5815 (origin
5816 (method git-fetch)
5817 (uri (git-reference
5818 (url "https://github.com/stevenremot/roguel-ike")
5819 (commit version)))
5820 (file-name (git-file-name name version))
5821 (sha256
5822 (base32 "0rgv4y9aa5cc2ddz3y5z8d22xmr8kf5c60h0r3g8h91jmcw3rb4z"))))
5823 (build-system emacs-build-system)
5824 (propagated-inputs
5825 (list emacs-popup))
5826 (arguments
5827 (list
5828 #:include #~(cons* "^roguel-ike/" "^roguel-ike-lib/" %default-include)
5829 #:phases
5830 #~(modify-phases %standard-phases
5831 (add-before 'check 'set-test-environment
5832 (lambda _
5833 (setenv "HOME" "/tmp"))))))
5834 (home-page "https://github.com/stevenremot/roguel-ike.git")
5835 (synopsis "Coffee-break roguelike for Emacs")
5836 (description
5837 "Roguel-ike is an attempt to develop a coffee-break roguelike for
5838 Emacs. The complete game would allow the player to create various characters
5839 and to make them fulfill challenges like arena fight and short dungeon
5840 explorations.")
5841 (license license:gpl3+)))
5842
5843 (define-public emacs-rspec
5844 (let ((commit "66ea7cc9699d6edc6115daa024818adbd85efc20")
5845 (revision "1"))
5846 (package
5847 (name "emacs-rspec")
5848 (version (git-version "1.11" revision commit))
5849 (source
5850 (origin
5851 (method git-fetch)
5852 (uri (git-reference
5853 (url "https://github.com/pezra/rspec-mode")
5854 (commit commit)))
5855 (file-name (git-file-name name version))
5856 (sha256
5857 (base32 "0b11s8r0pi7ah54km4yg4fqff8wkk409d25qnlwm1l94pdwjd1c8"))))
5858 (build-system emacs-build-system)
5859 (arguments
5860 `(#:include (cons "^snippets\\/rspec-mode\\/" %default-include)
5861 #:tests? #t
5862 #:test-command '("make" "test")))
5863 (home-page "https://github.com/pezra/rspec-mode")
5864 (synopsis "Provides a rspec mode for working with RSpec")
5865 (description
5866 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
5867 verify the spec associated with the current buffer, or entire project, as well
5868 as moving between the spec files, and corresponding code files.
5869
5870 Also included are keybindings for spec files and Dired buffers, as well as
5871 snippets for yasnippet.")
5872 (license license:gpl3+))))
5873
5874 (define-public emacs-mode-line-idle
5875 ;; Package has no release. Version is extracted from "Version:" keyword in
5876 ;; main file.
5877 (let ((commit "02b1da6278e43cc9cc0356110cc6bfbb37eb8241")
5878 (revision "1"))
5879 (package
5880 (name "emacs-mode-line-idle")
5881 (version (git-version "0.1" revision commit))
5882 (source
5883 (origin
5884 (method git-fetch)
5885 (file-name (git-file-name name version))
5886 (uri (git-reference
5887 (url "https://gitlab.com/ideasman42/emacs-mode-line-idle")
5888 (commit commit)))
5889 (sha256
5890 (base32 "0ky330b2sfbzkbxbfp9b21hdywsjw26bllspglz08hrbni7jmry8"))))
5891 (build-system emacs-build-system)
5892 (home-page "https://gitlab.com/ideasman42/emacs-mode-line-idle")
5893 (synopsis "Simple delayed text evaluation for the mode-line")
5894 (description
5895 "Mode Line Idle provides a convenient way to defer text evaluation
5896 which integrates into existing mode-line without requiring a minor mode or
5897 configuration.")
5898 (license license:gpl3+))))
5899
5900 (define-public emacs-nyan-mode
5901 (package
5902 (name "emacs-nyan-mode")
5903 (version "1.1.3")
5904 (source
5905 (origin
5906 (method git-fetch)
5907 (uri (git-reference
5908 (url "https://github.com/TeMPOraL/nyan-mode/")
5909 (commit (string-append "v" version))))
5910 (sha256
5911 (base32 "0d0hdjliad8afz4br38gwidph9zhmm5s09y45n95kqlazq62jfsx"))))
5912 (build-system emacs-build-system)
5913 (arguments
5914 (list
5915 #:include #~(cons* "img/" "mus/" %default-include)
5916 #:phases
5917 #~(modify-phases %standard-phases
5918 (add-after 'unpack 'patch-sources
5919 (lambda* (#:key inputs #:allow-other-keys)
5920 (substitute* "nyan-mode.el"
5921 (("mplayer ")
5922 (string-append (search-input-file inputs "bin/mplayer")
5923 " "))))))))
5924 (inputs (list mplayer))
5925 (home-page "https://github.com/TeMPOraL/nyan-mode/")
5926 (synopsis "Nyan Cat as buffer position indicator")
5927 (description
5928 "Nyan mode is an analog indicator of your position in the buffer. The cat
5929 should go from left to right in your mode-line, as you move your point from 0%
5930 to 100%. You can click on the rainbow or the empty space to scroll backwards
5931 and forwards and also animate it.")
5932 (license license:gpl3+)))
5933
5934 (define-public emacs-smart-mode-line
5935 (package
5936 (name "emacs-smart-mode-line")
5937 (version "2.14")
5938 (source
5939 (origin
5940 (method git-fetch)
5941 (uri (git-reference
5942 (url "https://github.com/Malabarba/smart-mode-line")
5943 (commit version)))
5944 (file-name (git-file-name name version))
5945 (sha256
5946 (base32 "1h5w5lrgrmhpaqwppg5msylh7z78mvwy9mm8xiiv8w4wxvncxxl2"))))
5947 (build-system emacs-build-system)
5948 (propagated-inputs
5949 (list emacs-rich-minority))
5950 (home-page "https://github.com/Malabarba/smart-mode-line")
5951 (synopsis "Color-coded smart mode-line")
5952 (description
5953 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
5954 read from small to large monitors by using colors, a prefix feature, and smart
5955 truncation.")
5956 (license license:gpl2+)))
5957
5958 (define-public emacs-sqlite
5959 ;; XXX: There is no tagged commit.
5960 (let ((commit "dad42b8bbca4994be1871343dd18fd6528ee5797")
5961 (revision "0"))
5962 (package
5963 (name "emacs-sqlite")
5964 (build-system emacs-build-system)
5965 (version (git-version "1.0" revision commit))
5966 (source
5967 (origin
5968 (method git-fetch)
5969 (uri (git-reference
5970 (url "https://gitlab.com/cnngimenez/sqlite.el")
5971 (commit commit)))
5972 (file-name (git-file-name name version))
5973 (sha256
5974 (base32 "06ln4vijl8kii3nzc5cscgsadx1fqgxksflijd3ain83bn8g4wrd"))))
5975 (home-page "https://gitlab.com/cnngimenez/sqlite.el")
5976 (synopsis "SQLite interface for Emacs Lisp")
5977 (description "Emacs SQLite is a simple SQLite interface for connecting
5978 and retrieving information using the SQLite program through Elisp programming.
5979 It is not intended as a user interface.")
5980 (license license:gpl3+))))
5981
5982 (define-public emacs-sr-speedbar
5983 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
5984 (revision "0"))
5985 (package
5986 (name "emacs-sr-speedbar")
5987 (version (git-version "20161025" revision commit))
5988 (source
5989 (origin
5990 (method git-fetch)
5991 (uri (git-reference
5992 (url "https://github.com/emacsorphanage/sr-speedbar")
5993 (commit commit)))
5994 (file-name (git-file-name name version))
5995 (sha256
5996 (base32
5997 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
5998 (build-system emacs-build-system)
5999 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
6000 (synopsis "Same frame Emacs @code{speedbar}")
6001 (description
6002 "This Emacs package allows you to show @code{M-x speedbar} in the
6003 same frame (in an extra window). You can customize the initial width of
6004 the speedbar window.")
6005 (license license:gpl3+))))
6006
6007 (define-public emacs-shell-switcher
6008 (package
6009 (name "emacs-shell-switcher")
6010 (version "1.0.1")
6011 (source
6012 (origin
6013 (method git-fetch)
6014 (uri (git-reference
6015 (url "https://github.com/DamienCassou/shell-switcher")
6016 (commit (string-append "v" version))))
6017 (file-name (git-file-name name version))
6018 (sha256
6019 (base32 "0ia7sdip4hl27avckv3qpqgm3k4ynvp3xxq1cy53bqfzzx0gcria"))))
6020 (build-system emacs-build-system)
6021 (home-page "https://github.com/DamienCassou/shell-switcher")
6022 (synopsis "Provide fast switching between shell buffers")
6023 (description
6024 "This package provides commands to quickly switch between shell buffers.")
6025 (license license:gpl3+)))
6026
6027 (define-public emacs-shx
6028 (package
6029 (name "emacs-shx")
6030 (version "1.5.0")
6031 (source (origin
6032 (method git-fetch)
6033 (uri (git-reference
6034 (url "https://github.com/riscy/shx-for-emacs")
6035 (commit (string-append "v" version))))
6036 (file-name (git-file-name name version))
6037 (sha256
6038 (base32 "1cb5w6p9gnfxgh8qp7yj2f5ibpk1b4b5af3ynldaaj6yfpa8hqzn"))))
6039 (build-system emacs-build-system)
6040 (arguments
6041 `(#:tests? #t
6042 #:test-command
6043 '("emacs" "--batch" "--quiet"
6044 "--script" "test/script.el")))
6045 (home-page "https://github.com/riscy/shx-for-emacs")
6046 (synopsis "Extras for the comint-mode shell")
6047 (description
6048 "This package extends @code{comint-mode}: it parses markup in the output
6049 stream, enabling plots and graphics to be embedded, and adds command-line
6050 functions which plug into Emacs (e.g. use @code{:e <filename>} to edit a
6051 file).")
6052 (license license:gpl3+)))
6053
6054 (define-public emacs-names
6055 (let ((commit "d8baba5360e5253938a25d3e005455b6d2d86971")
6056 (version "20151201.0")
6057 (revision "8"))
6058 (package
6059 (name "emacs-names")
6060 (version (git-version version revision commit))
6061 (source
6062 (origin
6063 (method git-fetch)
6064 (uri (git-reference
6065 (url "https://github.com/Malabarba/names")
6066 (commit commit)))
6067 (file-name (git-file-name name version))
6068 (sha256
6069 (base32
6070 "11wyha2q8y7bzqq3jrzix8n97ywvsibvddrahqcps1a1yqk4hzfz"))))
6071 (build-system emacs-build-system)
6072 (home-page "https://github.com/Malabarba/names/")
6073 (synopsis "Namespace implementation for Emacs Lisp")
6074 (description
6075 "This package provides a macro that writes your namespaces for you.")
6076 (license license:gpl3+))))
6077
6078 (define-public emacs-nameless
6079 (package
6080 (name "emacs-nameless")
6081 (version "1.0.2")
6082 (source
6083 (origin
6084 (method git-fetch)
6085 (uri (git-reference
6086 (url "https://github.com/Malabarba/Nameless")
6087 (commit version)))
6088 (file-name (git-file-name name version))
6089 (sha256
6090 (base32 "107q1rximjnag9r9vgwh0iv687i3rsscbdnjc46f8l16j6vi4n7d"))))
6091 (build-system emacs-build-system)
6092 (home-page "https://github.com/Malabarba/nameless")
6093 (synopsis "Hide package namespace in your Emacs-lisp code")
6094 (description
6095 "This package provides a @code{nameless-mode} minor mode in which the
6096 package namespace prefix is ​​hidden by a colon.")
6097 (license license:gpl2+)))
6098
6099 (define-public emacs-evil-leader
6100 (package
6101 (name "emacs-evil-leader")
6102 (version "0.4.3")
6103 (source
6104 (origin
6105 (method git-fetch)
6106 (uri
6107 (git-reference
6108 (url "https://github.com/cofi/evil-leader")
6109 (commit version)))
6110 (file-name (git-file-name name version))
6111 (sha256
6112 (base32 "1k2zinchs0jjllp8zkpggckyy63dkyi5yig3p46vh4w45jdzysk5"))))
6113 (inputs
6114 (list emacs-evil))
6115 (build-system emacs-build-system)
6116 (home-page "https://github.com/cofi/evil-leader")
6117 (synopsis "Implement <leader> feature from Vim")
6118 (description
6119 "Evil Leader provides the @code{<leader>} feature from Vim that provides
6120 an easy way to bind keys under a configurable prefix key.")
6121 (license license:gpl3+)))
6122
6123 (define-public emacs-evil-tex
6124 (package
6125 (name "emacs-evil-tex")
6126 (version "1.0.2")
6127 (source
6128 (origin
6129 (method git-fetch)
6130 (uri (git-reference
6131 (url "https://github.com/iyefrat/evil-tex")
6132 (commit version)))
6133 (file-name (git-file-name name version))
6134 (sha256
6135 (base32 "1wrx8ihimn1sx3vzzfppcwv0yfh3x95jrkxqvzj0ykckipm3zk0b"))))
6136 (build-system emacs-build-system)
6137 (arguments
6138 `(#:phases
6139 (modify-phases %standard-phases
6140 (add-before 'build 'set-home
6141 (lambda _ (setenv "HOME" "/tmp"))))))
6142 (propagated-inputs
6143 (list emacs-auctex emacs-evil))
6144 (home-page "https://github.com/iyefrat/evil-tex")
6145 (synopsis "Evil oriented additions for editing LaTeX")
6146 (description "This package is a toolbox for LaTeX editing with Evil. It
6147 provides many text objects fully utilizing @code{evil-surround}, some useful
6148 movements, and keymaps for quickly entering environments or
6149 @code{cdlatex}-like accents.")
6150 (license license:gpl3+)))
6151
6152 (define-public emacs-evil-textobj-syntax
6153 (let ((commit "2d9ba8c75c754b409aea7469f46a5cfa52a872f3")
6154 (version "0")
6155 (revision "1"))
6156 (package
6157 (name "emacs-evil-textobj-syntax")
6158 (version (git-version version revision commit))
6159 (source
6160 (origin
6161 (method git-fetch)
6162 (uri (git-reference
6163 (url "https://github.com/laishulu/evil-textobj-syntax/")
6164 (commit commit)))
6165 (file-name (git-file-name name version))
6166 (sha256
6167 (base32
6168 "031p5i3274dazp7rz6m5y38shfgszm1clmkcf58qfqlvy978ammc"))))
6169 (build-system emacs-build-system)
6170 (propagated-inputs (list emacs-evil emacs-names))
6171 (home-page "https://github.com/laishulu/evil-textobj-syntax/")
6172 (synopsis "Text objects based on syntax highlighting")
6173 (description
6174 "This package provides text objects for @code{evil-mode} with
6175 boundaries defined by syntax highlighting.")
6176 (license license:gpl3+))))
6177
6178 (define-public emacs-flycheck-flow
6179 (let ((commit "9e8e52cfc98af6a23fd906f9cb5d5d470d8cf82d")
6180 (version "1.1")
6181 (revision "1"))
6182 (package
6183 (name "emacs-flycheck-flow")
6184 (version (git-version version revision commit))
6185 (source
6186 (origin
6187 (method git-fetch)
6188 (uri (git-reference
6189 (url "https://github.com/lbolla/emacs-flycheck-flow")
6190 (commit commit)))
6191 (file-name (git-file-name name version))
6192 (sha256
6193 (base32
6194 "14qldlisbmxzammr500gyha2hiv2xgyzfc6mysqii06kbcqn1ik1"))))
6195 (build-system emacs-build-system)
6196 (propagated-inputs
6197 (list emacs-flycheck))
6198 (home-page "https://github.com/lbolla/emacs-flycheck-flow")
6199 (synopsis "Flow support for @code{flycheck-mode}")
6200 (description
6201 "This package allows @code{flycheck-mode} to provide syntax-checking
6202 for Flow files.")
6203 (license license:gpl3+))))
6204
6205 (define-public emacs-flycheck-grammalecte
6206 (package
6207 (name "emacs-flycheck-grammalecte")
6208 (version "2.0")
6209 (source
6210 (origin
6211 (method git-fetch)
6212 (uri (git-reference
6213 (url "https://git.umaneti.net/flycheck-grammalecte/")
6214 (commit (string-append "v" version))))
6215 (file-name (git-file-name name version))
6216 (sha256
6217 (base32 "040mb9djj4cxpjsjch9i30pi36a2z7grkhnsnfdi5qyh341p4pq0"))))
6218 (build-system emacs-build-system)
6219 (arguments
6220 `(#:include (cons "\\.py$" %default-include)
6221 #:exclude '("^test-profile.el$")
6222 #:emacs ,emacs ;need libxml support
6223 #:phases
6224 (modify-phases %standard-phases
6225 (add-after 'unpack 'specify-python-location
6226 ;; Hard-code python3 executable location in the library.
6227 (lambda* (#:key inputs #:allow-other-keys)
6228 (let ((python3 (search-input-file inputs "/bin/python3")))
6229 (substitute* '("flycheck-grammalecte.el" "grammalecte.el")
6230 (("\"python3") (string-append "\"" python3)))
6231 (substitute* '("conjugueur.py" "flycheck_grammalecte.py")
6232 (("/usr/bin/env python3?") python3)))))
6233 (add-after 'unpack 'specify-grammalecte-location
6234 ;; Use our own Grammalecte.
6235 (lambda* (#:key inputs #:allow-other-keys)
6236 (make-file-writable "grammalecte.el")
6237 (emacs-substitute-variables "grammalecte.el"
6238 ("grammalecte-python-package-directory"
6239 (search-input-directory
6240 inputs
6241 (string-append "lib/python"
6242 ,(version-major+minor (package-version python))
6243 "/site-packages/grammalecte"))))))
6244 (add-after 'unpack 'do-not-phone-home
6245 ;; Do not check for Grammalecte updates, ever.
6246 (lambda _
6247 (make-file-writable "grammalecte.el")
6248 (emacs-substitute-variables "grammalecte.el"
6249 ("grammalecte-check-upstream-version-delay" 0)))))))
6250 (inputs
6251 (list grammalecte python))
6252 (propagated-inputs
6253 (list emacs-flycheck))
6254 (home-page "https://git.umaneti.net/flycheck-grammalecte/")
6255 (synopsis "Integrate Grammalecte with Flycheck")
6256 (description
6257 "Integrate the French grammar and typography checker Grammalecte with
6258 Flycheck to automatically look for mistakes in your writings. It also
6259 provides an easy way to find synonyms and antonyms for a given word (to avoid
6260 repetitions for example).")
6261 (license license:gpl3+)))
6262
6263 (define-public emacs-flycheck-guile
6264 (package
6265 (name "emacs-flycheck-guile")
6266 (version "0.2")
6267 (source
6268 (origin
6269 (method git-fetch)
6270 (uri
6271 (git-reference
6272 (url "https://github.com/flatwhatson/flycheck-guile")
6273 (commit version)))
6274 (file-name (git-file-name name version))
6275 (sha256
6276 (base32 "0cs5r0ik6a3bl1k3imjl0r8y1i69kx9x9m9cgxj470qk34brwyj5"))))
6277 (propagated-inputs
6278 (list emacs-flycheck emacs-geiser emacs-geiser-guile))
6279 (build-system emacs-build-system)
6280 (home-page "https://github.com/flatwhatson/flycheck-guile")
6281 (synopsis "GNU Guile support for Flycheck")
6282 (description
6283 "This package provides a Flycheck checker for GNU Guile using @code{guild
6284 compile}.")
6285 (license license:gpl3+)))
6286
6287 (define-public emacs-flycheck-ledger
6288 (package
6289 (name "emacs-flycheck-ledger")
6290 (version "0.5")
6291 (source
6292 (origin
6293 (method git-fetch)
6294 (uri (git-reference
6295 (url "https://github.com/purcell/flycheck-ledger")
6296 (commit version)))
6297 (file-name (git-file-name name version))
6298 (sha256
6299 (base32 "1djrj3is0dzrl2703bw7bclf33dp4xqmy144q7xj5pvpb9v3kf50"))))
6300 (arguments
6301 (list
6302 #:phases
6303 #~(modify-phases %standard-phases
6304 (add-after 'unpack 'configure
6305 (lambda _
6306 (let ((ledger #$(this-package-input "ledger")))
6307 ;; Specify the absolute executable location of ledger.
6308 (substitute* "flycheck-ledger.el"
6309 (("\"ledger\"") (string-append "\"" ledger "\"")))))))))
6310 (inputs (list ledger))
6311 (propagated-inputs
6312 (list emacs-flycheck))
6313 (build-system emacs-build-system)
6314 (home-page "https://github.com/purcell/flycheck-ledger")
6315 (synopsis "Ledger support for Flycheck")
6316 (description
6317 "This Flycheck checker uses the output of @code{ledger balance} on the
6318 current file to find errors such as unbalanced transactions and syntax
6319 errors.")
6320 (license license:gpl3+)))
6321
6322 (define-public emacs-flycheck-rust
6323 (package
6324 (name "emacs-flycheck-rust")
6325 (version "1.1")
6326 (source
6327 (origin
6328 (method git-fetch)
6329 (uri
6330 (git-reference
6331 (url "https://github.com/flycheck/flycheck-rust")
6332 (commit version)))
6333 (file-name (git-file-name name version))
6334 (sha256
6335 (base32 "1fh6j5w2387nh2fwwjphkhq17cgj5m2q5k0fhidvgc2w65lzbr1r"))))
6336 (propagated-inputs
6337 (list emacs-dash emacs-flycheck emacs-let-alist))
6338 (build-system emacs-build-system)
6339 (home-page "https://github.com/flycheck/flycheck-rust")
6340 (synopsis "Rust/Cargo support for Flycheck")
6341 (description
6342 "This Flycheck extension configures Flycheck automatically for
6343 the current Cargo project.")
6344 (license license:gpl3+)))
6345
6346 (define-public emacs-flycheck-package
6347 (package
6348 (name "emacs-flycheck-package")
6349 (version "0.14")
6350 (source
6351 (origin
6352 (method git-fetch)
6353 (uri (git-reference
6354 (url "https://github.com/purcell/flycheck-package")
6355 (commit version)))
6356 (file-name (git-file-name name version))
6357 (sha256
6358 (base32
6359 "00py39n1383761wq6wp194pvyk94ydqdbxj9kl64g9jnipkp7849"))))
6360 (build-system emacs-build-system)
6361 (propagated-inputs
6362 (list emacs-flycheck emacs-package-lint))
6363 (home-page "https://github.com/purcell/flycheck-package")
6364 (synopsis "Flycheck checker for elisp package metadata")
6365 (description
6366 "This library provides a flycheck checker for the metadata in Emacs Lisp
6367 files which are intended to be packages.")
6368 (license license:gpl3+)))
6369
6370 (define-public emacs-flymake-proselint
6371 (let ((commit "6a99865c7ac6474b8c5d1f9a1ae2384667f06d36")
6372 (revision "0"))
6373 (package
6374 (name "emacs-flymake-proselint")
6375 (version (git-version "0.2.3" revision commit))
6376 (source (origin
6377 (method git-fetch)
6378 (uri (git-reference
6379 (url "https://git.sr.ht/~manuel-uberti/flycheck-proselint")
6380 (commit commit)))
6381 (file-name (git-file-name name version))
6382 (sha256
6383 (base32
6384 "028ilp9h22rlawlh5ydiykvi8pryyknwi019sjyxkk2h0fza9jan"))))
6385 (build-system emacs-build-system)
6386 (arguments
6387 (list
6388 #:phases
6389 #~(modify-phases %standard-phases
6390 (add-after 'unpack 'patch-exec-paths
6391 (lambda* (#:key inputs #:allow-other-keys)
6392 (substitute* "flymake-proselint.el"
6393 (("\"proselint\"")
6394 (string-append
6395 "\"" (search-input-file inputs "/bin/proselint") "\""))))))))
6396 (propagated-inputs
6397 (list emacs-flycheck))
6398 (inputs
6399 (list python-proselint))
6400 (home-page "https://git.sr.ht/~manuel-uberti/flycheck-proselint")
6401 (synopsis "Flymake backend for @code{proselint}")
6402 (description "This package adds support for @code{proselint} in Flymake.")
6403 (license license:gpl3+))))
6404
6405 (define-public emacs-elisp-demos
6406 (package
6407 (name "emacs-elisp-demos")
6408 (version "2020.02.19")
6409 (source
6410 (origin
6411 (method git-fetch)
6412 (uri (git-reference
6413 (url "https://github.com/xuchunyang/elisp-demos")
6414 (commit version)))
6415 (file-name (git-file-name name version))
6416 (sha256
6417 (base32
6418 "0mckgaz92v3y2vlkggx9kd51fd1mahylw39c42l51dyv8wscm7sc"))))
6419 (build-system emacs-build-system)
6420 (arguments
6421 `(#:include '("\\.el$" "\\.org$")
6422 #:tests? #t
6423 #:test-command '("make" "test")))
6424 (home-page "https://github.com/xuchunyang/elisp-demos/")
6425 (synopsis "Enhance @code{*Help*} buffers with additional examples")
6426 (description
6427 "This package injects example uses of Elisp functions into their
6428 respective @code{*Help*} buffers.")
6429 (license license:gpl3+)))
6430
6431 (define-public emacs-docker-compose-mode
6432 (package
6433 (name "emacs-docker-compose-mode")
6434 (version "1.1.0")
6435 (source
6436 (origin
6437 (method git-fetch)
6438 (uri (git-reference
6439 (url "https://github.com/meqif/docker-compose-mode")
6440 (commit version)))
6441 (file-name (git-file-name name version))
6442 (sha256
6443 (base32
6444 "1fbcxwfvm33xcdj3cs26d9i1zyrryyjjkv7sc3mfxd45nq8d3ivj"))))
6445 (build-system emacs-build-system)
6446 (propagated-inputs
6447 (list emacs-dash emacs-f emacs-yaml-mode))
6448 (home-page "https://github.com/meqif/docker-compose-mode/")
6449 (synopsis "Major mode for editing @file{docker-compose} files")
6450 (description
6451 "This is a major mode for @file{docker-compose} files that provides
6452 completion of relevant keywords.")
6453 (license license:expat)))
6454
6455 (define-public emacs-dvc
6456 (let ((revision "591") ;no tags or official releases
6457 (guix-revision "1"))
6458 (package
6459 (name "emacs-dvc")
6460 (version (string-append "0.0.0-" guix-revision "." revision))
6461 (source
6462 (origin
6463 (method bzr-fetch)
6464 (uri (bzr-reference
6465 (url "lp:dvc")
6466 (revision revision)))
6467 (sha256
6468 (base32 "03pqn493w70wcpgaxvqnfgynxghw114l9pyiv3r414d84vzhan6h"))
6469 (file-name (string-append name "-" version "-checkout"))))
6470 (build-system gnu-build-system)
6471 (arguments
6472 (list
6473 #:modules `((guix build gnu-build-system)
6474 ((guix build emacs-build-system) #:prefix emacs:)
6475 (guix build utils))
6476 #:imported-modules `(,@%gnu-build-system-modules
6477 (guix build emacs-build-system)
6478 (guix build emacs-utils))
6479 #:configure-flags
6480 #~(list (string-append "--with-lispdir="
6481 (emacs:elpa-directory #$output)))
6482 #:tests? #f ;no test suite
6483 #:phases
6484 #~(modify-phases %standard-phases
6485 (add-before 'build 'set-home
6486 ;; Something in dvc-bookmarks.el attempts to write config files
6487 ;; in $HOME during the autoload generation.
6488 (lambda _ (setenv "HOME" (getenv "TMPDIR"))))
6489 (add-before 'build 'fix-texinfo
6490 ;; See https://bugs.launchpad.net/dvc/+bug/1264383.
6491 (lambda _
6492 (substitute* "texinfo/dvc-intro.texinfo"
6493 (("@itemx update ``to''") "@item update ``to''")
6494 (("@itemx brief") "@item brief")
6495 (("@itemx full") "@item full")
6496 (("@itemx drop") "@item drop")
6497 (("@itemx left file") "@item left file")))))))
6498 (native-inputs
6499 (list autoconf automake emacs-minimal texinfo))
6500 (home-page "http://xsteve.at/prg/emacs_dvc/index.html")
6501 (synopsis "Emacs front-end for various distributed version control systems")
6502 (description "DVC is a legacy Emacs front-end for a number of
6503 distributed version control systems. It currently supports GNU Arch, GNU
6504 Bazaar, git, Mercurial, and Monotone. It also provides some integration with
6505 Gnus, e.g., for applying patches received by email.")
6506 (license license:gpl2+))))
6507
6508 (define-public emacs-sudo-edit
6509 (package
6510 (name "emacs-sudo-edit")
6511 (version "0.1.1")
6512 (source
6513 (origin
6514 (method git-fetch)
6515 (uri (git-reference
6516 (url "https://github.com/nflath/sudo-edit")
6517 (commit (string-append "v" version))))
6518 (file-name (git-file-name name version))
6519 (sha256
6520 (base32 "1hncxbg5lvywzkwvdmzvrz71midy4samjq2vvxxhz90z1y5l8l29"))))
6521 (build-system emacs-build-system)
6522 (native-inputs
6523 (list emacs-undercover))
6524 (arguments
6525 (list
6526 #:emacs emacs
6527 #:phases
6528 #~(modify-phases %standard-phases
6529 (add-before 'check 'fix-makefile
6530 (lambda _
6531 (substitute* "Makefile"
6532 (("\\$\\(CASK\\) exec ") "")))))
6533 #:tests? #t
6534 #:test-command #~(list "make" "test")))
6535 (home-page "https://github.com/nflath/sudo-edit/")
6536 (synopsis "Open files as another user")
6537 (description
6538 "This package allows editing files as another user, including the root
6539 user.")
6540 (license license:gpl3+)))
6541
6542 (define-public emacs-subed
6543 (package
6544 (name "emacs-subed")
6545 (version "1.0.3")
6546 (source (origin
6547 (method url-fetch)
6548 (uri (string-append "https://elpa.nongnu.org/nongnu/subed-"
6549 version ".tar"))
6550 (sha256
6551 (base32
6552 "0wibakmp1lhfyr6sifb7f3jcqp2s5sy0z37ad9n1n9rhj5q8yhzg"))))
6553 (arguments
6554 (list
6555 #:tests? #t
6556 #:test-command #~(list "make" "test-only")))
6557 (native-inputs
6558 (list emacs-buttercup))
6559 (build-system emacs-build-system)
6560 (home-page "https://elpa.nongnu.org/nongnu/subed.html")
6561 (synopsis "Major mode for editing subtitles")
6562 (description
6563 "@code{subed} is an Emacs major mode for editing subtitles while playing
6564 the corresponding video with @code{mpv}. At the moment, the only supported
6565 formats are SubRip (@file{.srt}), WebVTT (@file{.vtt}), and Advanced
6566 SubStation Alpha (@file{.ass}).")
6567 (license license:gpl3+)))
6568
6569 (define-public emacs-miniedit
6570 (package
6571 (name "emacs-miniedit")
6572 (version "2.0")
6573 (source
6574 (origin
6575 (method git-fetch)
6576 (uri (git-reference
6577 (url "https://github.com/emacsmirror/miniedit")
6578 (commit version)))
6579 (file-name (git-file-name name version))
6580 (sha256
6581 (base32
6582 "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq"))))
6583 (build-system emacs-build-system)
6584 (home-page "https://github.com/emacsmirror/miniedit/")
6585 (synopsis "Enhanced editing for minibuffer fields")
6586 (description
6587 "This package provides a function that can be called from the
6588 minibuffer to enable editing the minibuffer input in another buffer with
6589 @code{text-mode} enabled.")
6590 (license license:gpl2+)))
6591
6592 (define-public emacs-ob-ipython
6593 (package
6594 (name "emacs-ob-ipython")
6595 (version "20180224")
6596 (source (origin
6597 (method git-fetch)
6598 (uri (git-reference
6599 (commit "7147455230841744fb5b95dcbe03320313a77124")
6600 (url "https://github.com/gregsexton/ob-ipython")))
6601 (file-name (git-file-name name version))
6602 (sha256
6603 (base32
6604 "1a10fc2jk37ni5sjjvf87s5nyaz2a6h2mlj5dxh4dhv5sd3bb85p"))))
6605 (build-system emacs-build-system)
6606 (propagated-inputs
6607 (list emacs-f))
6608 (home-page "http://www.gregsexton.org")
6609 (synopsis "Org-Babel functions for IPython evaluation")
6610 (description "This package adds support to Org-Babel for evaluating Python
6611 source code using IPython.")
6612 (license license:gpl3+)))
6613
6614 (define-public emacs-ob-async
6615 (package
6616 (name "emacs-ob-async")
6617 (version "1.0.0")
6618 (source
6619 (origin
6620 (method git-fetch)
6621 (uri (git-reference
6622 (url "https://github.com/astahlman/ob-async")
6623 (commit (string-append "v" version))))
6624 (file-name (git-file-name name version))
6625 (sha256
6626 (base32 "10x4hxrjm4pr6vg42a961h9ilqzyd0l0fv7fsbq9clxi439f1nd6"))))
6627 (build-system emacs-build-system)
6628 (propagated-inputs
6629 (list emacs-async emacs-dash))
6630 (home-page "https://github.com/astahlman/ob-async")
6631 (synopsis "Asynchronous src_block execution for org-babel")
6632 (description "@code{ob-async} enables asynchronous execution of org-babel
6633 src blocks.")
6634 (license license:gpl3+)))
6635
6636 (define-public emacs-debbugs
6637 (package
6638 (name "emacs-debbugs")
6639 (version "0.32")
6640 (source
6641 (origin
6642 (method url-fetch)
6643 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
6644 version ".tar"))
6645 (sha256
6646 (base32 "1xp3mj3ndaljma0g7x9abziphgi2a6j8k1v52sb8xwgn4p5gdvby"))))
6647 (build-system emacs-build-system)
6648 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
6649 (propagated-inputs
6650 (list emacs-soap-client))
6651 (home-page "https://elpa.gnu.org/packages/debbugs.html")
6652 (synopsis "Access the Debbugs bug tracker in Emacs")
6653 (description
6654 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
6655 Tracker} from within Emacs.
6656
6657 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
6658 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
6659 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
6660 @code{M-x debbugs-org} and related commands.
6661
6662 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
6663 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
6664 (license license:gpl3+)))
6665
6666 (define-public emacs-ert-expectations
6667 (package
6668 (name "emacs-ert-expectations")
6669 (version "0.2")
6670 (source
6671 (origin
6672 (method url-fetch)
6673 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
6674 (sha256
6675 (base32
6676 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
6677 (build-system emacs-build-system)
6678 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
6679 (synopsis "Simple unit test framework for Emacs Lisp")
6680 (description "@code{emacs-ert-expectations} is a simple unit test
6681 framework for Emacs Lisp to be used with @code{ert}.")
6682 (license license:gpl3+)))
6683
6684 (define-public emacs-deferred
6685 (package
6686 (name "emacs-deferred")
6687 (version "0.5.1")
6688 (home-page "https://github.com/kiwanami/emacs-deferred")
6689 (source
6690 (origin
6691 (method git-fetch)
6692 (uri (git-reference
6693 (url home-page)
6694 (commit (string-append "v" version))))
6695 (file-name (git-file-name name version))
6696 (sha256
6697 (base32 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))
6698 (patches
6699 (search-patches "emacs-deferred-fix-number-of-arguments.patch"))))
6700 (build-system emacs-build-system)
6701 (arguments
6702 `(#:phases
6703 (modify-phases %standard-phases
6704 (add-after 'unpack 'set-shell
6705 ;; Setting the SHELL environment variable is required for the tests
6706 ;; to find sh.
6707 (lambda _
6708 (setenv "SHELL" (which "sh"))))
6709 (add-before 'check 'fix-makefile
6710 (lambda _
6711 (substitute* "Makefile"
6712 (("\\$\\(CASK\\) exec ") "")))))
6713 #:tests? #t
6714 #:test-command '("make" "test")))
6715 (native-inputs
6716 (list emacs-ert-expectations emacs-ert-runner emacs-undercover))
6717 (synopsis "Simple asynchronous functions for Emacs Lisp")
6718 (description
6719 "The @code{deferred.el} library provides support for asynchronous tasks.
6720 The API is almost the same as that of
6721 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
6722 for asynchronous tasks.")
6723 (license license:gpl3+)))
6724
6725 (define-public emacs-butler
6726 (package
6727 (name "emacs-butler")
6728 (version "0.2.6")
6729 (home-page "https://github.com/AshtonKem/Butler")
6730 (source (origin
6731 (method git-fetch)
6732 (uri (git-reference
6733 (url home-page)
6734 (commit version)))
6735 (file-name (git-file-name name version))
6736 (sha256
6737 (base32
6738 "1wsk5isza8xqr84w6haal95ssifz6j2lrr5phbsdc90jb9hicbff"))))
6739 (build-system emacs-build-system)
6740 (propagated-inputs
6741 (list emacs-deferred))
6742 (synopsis "Emacs client for Jenkins")
6743 (description
6744 "Butler provides an interface to connect to Jenkins continuous
6745 integration servers. Users can specify a list of server in the
6746 @code{butler-server-list} variable and then use @code{M-x butler-status} to
6747 view the build status of those servers' build jobs, and possibly to trigger
6748 build jobs.")
6749 (license license:gpl3+)))
6750
6751 (define-public emacs-zmq
6752 (package
6753 (name "emacs-zmq")
6754 (version "0.10.10")
6755 (source
6756 (origin
6757 (method git-fetch)
6758 (uri (git-reference
6759 (url "https://github.com/nnicandro/emacs-zmq")
6760 (commit (string-append "v" version))))
6761 (file-name (git-file-name name version))
6762 (sha256
6763 (base32 "0ngxm5mm0kqgvn8977ryrngamx0khzlw86d8vz5s0jhm2kgwnqp8"))))
6764 (build-system emacs-build-system)
6765 (arguments
6766 `(#:tests? #f ; no tests
6767 #:phases
6768 (modify-phases %standard-phases
6769 (add-after 'unpack 'configure
6770 (lambda _
6771 (invoke "make" "src/configure")
6772 (substitute* "src/configure"
6773 (("/bin/sh") (which "sh"))
6774 (("/usr/bin/file") (which "file")))
6775 (invoke "make")))
6776 (add-after 'install 'install-shared-object
6777 (lambda* (#:key inputs outputs #:allow-other-keys)
6778 (let* ((out (assoc-ref outputs "out"))
6779 (site-lisp (string-append out "/share/emacs/site-lisp"))
6780 (libdir (string-append site-lisp "/zmq-0.10.10")))
6781 (copy-file "emacs-zmq.so"
6782 (string-append libdir "/emacs-zmq.so"))))))))
6783 (native-inputs
6784 (list autoconf automake libtool pkg-config))
6785 (inputs
6786 (list zeromq))
6787 (home-page "https://github.com/nnicandro/emacs-zmq")
6788 (synopsis "Emacs bindings to ØMQ")
6789 (description "This package provides Emacs bindings to ØMQ.")
6790 (license (list license:gpl2+ ;zmq.el
6791 license:gpl3+)))) ;src/emacs-module.h
6792
6793 (define-public emacs-tup-mode
6794 (package
6795 (name "emacs-tup-mode")
6796 (version "1.3.1")
6797 (source
6798 (origin
6799 (method git-fetch)
6800 (uri (git-reference
6801 (url "https://github.com/ejmr/tup-mode")
6802 (commit (string-append "v" version))))
6803 (file-name (git-file-name name version))
6804 (sha256
6805 (base32 "0asd024n5v23wdsg1959sszq568wg3a1bp4jrk0cllfji1z0n78y"))))
6806 (build-system emacs-build-system)
6807 (home-page "https://github.com/ejmr/tup-mode")
6808 (synopsis "Major mode for editing ``tupfiles'' used by the Tup build system")
6809 (description
6810 "Tup mode provides syntax highlighting for all of the elements of
6811 tupfiles, such as rule definitions, user-defined variables, macros, flags, bin
6812 variables, and so on. The mode also allows you to execute Tup commands.")
6813 (license license:gpl3+)))
6814
6815 (define-public emacs-compat
6816 (package
6817 (name "emacs-compat")
6818 (version "28.1.1.2")
6819 (source (origin
6820 (method git-fetch)
6821 (uri (git-reference
6822 (url "https://git.sr.ht/~pkal/compat")
6823 (commit version)))
6824 (file-name (git-file-name name version))
6825 (sha256
6826 (base32
6827 "19abp29rnbkw91q0h2yqm2z7awzzjhci8h6v875g5ahvplrp6337"))))
6828 (build-system emacs-build-system)
6829 (propagated-inputs (list emacs-nadvice))
6830 (home-page "https://git.sr.ht/~pkal/compat")
6831 (synopsis "Emacs Lisp Compatibility Library")
6832 (description
6833 "To allow for the usage of Emacs functions and macros that are defined
6834 in newer versions of Emacs, @code{compat.el} provides definitions that
6835 are installed ONLY if necessary. These reimplementations of functions
6836 and macros are at least subsets of the actual implementations. Be
6837 sure to read the documentation string to make sure.
6838
6839 Not every function provided in newer versions of Emacs is provided
6840 here. Some depend on new features from the core, others cannot be
6841 implemented to a meaningful degree. The main audience for this
6842 library are not regular users, but package maintainers. Therefore
6843 commands and user options are usually not implemented here.")
6844 (license license:gpl3+)))
6845
6846 (define-public emacs-company
6847 (package
6848 (name "emacs-company")
6849 (version "0.9.13")
6850 (source
6851 (origin
6852 (method url-fetch)
6853 (uri (string-append "https://elpa.gnu.org/packages/"
6854 "company-" version ".tar"))
6855 (sha256
6856 (base32 "1c9x9wlzzsn7vrsm57l2l44nqx455saa6wrm853szzg09qn8dlnw"))))
6857 (build-system emacs-build-system)
6858 (home-page "https://company-mode.github.io/")
6859 (synopsis "Modular text completion framework")
6860 (description
6861 "Company is a modular completion mechanism. Modules for retrieving
6862 completion candidates are called back-ends, modules for displaying them are
6863 front-ends. Company comes with many back-ends, e.g., @code{company-elisp}.
6864 These are distributed in separate files and can be used individually.")
6865 (license license:gpl3+)))
6866
6867 (define-public emacs-company-box
6868 ;; There is no release yet. Version is extracted from the main
6869 ;; file.
6870 (let ((version "0.0.1")
6871 (revision "0")
6872 (commit "be37a9a30dc112ab172af21af694e2cb04a74f85"))
6873 (package
6874 (name "emacs-company-box")
6875 (version (git-version version revision commit))
6876 (source
6877 (origin
6878 (method git-fetch)
6879 (uri (git-reference
6880 (url "https://github.com/sebastiencs/company-box")
6881 (commit commit)))
6882 (file-name (git-file-name name version))
6883 (sha256
6884 (base32 "13fgmdy51gqdwijqfvb784pirx4lgva0y7ysi0c3fcx8f82cdj59"))))
6885 (build-system emacs-build-system)
6886 (propagated-inputs
6887 (list emacs-company emacs-dash emacs-frame-local))
6888 (home-page "https://github.com/sebastiencs/company-box")
6889 (synopsis "Company front-end with icons")
6890 (description
6891 "Company box is a Company front-end. It supports different
6892 colors for different backends, associates icons to functions,
6893 variables... and their backends, and displays candidate's
6894 documentation. It is not limited by the current window size or
6895 buffer's text properties.
6896
6897 This package is not compatible with a TTY.")
6898 (license license:gpl3+))))
6899
6900 (define-public emacs-company-posframe
6901 (package
6902 (name "emacs-company-posframe")
6903 (version "0.5.0")
6904 (source (origin
6905 (method git-fetch)
6906 (uri (git-reference
6907 (url "https://github.com/tumashu/company-posframe")
6908 (commit (string-append "v" version))))
6909 (file-name (git-file-name name version))
6910 (sha256
6911 (base32
6912 "05ays6xkqbxcfplvx7wfc2slflmwc3aw7vkixvabk0ilvisndvgm"))))
6913 (build-system emacs-build-system)
6914 (propagated-inputs
6915 (list emacs-company emacs-posframe))
6916 (home-page "https://github.com/tumashu/company-posframe")
6917 (synopsis "Use a posframe for @code{emacs-company}'s candidate menu")
6918 (description
6919 "Allows @code{emacs-company} to use child frames for its candidate menus.
6920
6921 @code{emacs-company-posframe} is fast enough for daily use and supports CJK
6922 languages.")
6923 (license license:gpl3+)))
6924
6925 (define-public emacs-irony-mode
6926 (package
6927 (name "emacs-irony-mode")
6928 (version "1.5.0")
6929 (home-page "https://github.com/Sarcasm/irony-mode")
6930 (source
6931 (origin
6932 (method git-fetch)
6933 (uri (git-reference
6934 (url (string-append home-page ".git"))
6935 (commit (string-append "v" version))))
6936 (file-name (git-file-name name version))
6937 (sha256
6938 (base32 "1ilvfqn7hzrjjy2zrv08dbdnmgksdgsmrdcvx05s8704430ag0pb"))))
6939 (build-system emacs-build-system)
6940 (arguments
6941 (list
6942 #:phases
6943 #~(modify-phases %standard-phases
6944 (add-after 'unpack 'configure
6945 (lambda _
6946 (chmod "irony.el" #o644)
6947 (emacs-substitute-variables "irony.el"
6948 ("irony-server-install-prefix" #$emacs-irony-mode-server)))))))
6949 (inputs (list emacs-irony-mode-server))
6950 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
6951 (description "Irony-mode provides Clang-assisted syntax checking and
6952 completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
6953 provide syntax checking and autocompletion on compiler level which is very
6954 resistant against false positives. It also integrates well with other
6955 packages like @code{eldoc-mode} and especially @code{company-mode} as
6956 described on the homepage.")
6957 (license license:gpl3+)))
6958
6959 (define-public emacs-irony-mode-server
6960 (package
6961 (inherit emacs-irony-mode)
6962 (name "emacs-irony-mode-server")
6963 (arguments
6964 `(#:phases
6965 (modify-phases %standard-phases
6966 (replace 'configure
6967 (lambda* (#:key outputs #:allow-other-keys)
6968 (let ((out (assoc-ref outputs "out")))
6969 (invoke "cmake"
6970 "server"
6971 (string-append "-DCMAKE_INSTALL_PREFIX=" out))))))))
6972 (inputs
6973 (list clang))
6974 (build-system cmake-build-system)
6975 (synopsis "Server for the Emacs @dfn{irony mode}")))
6976
6977 (define-public emacs-company-irony
6978 (package
6979 (name "emacs-company-irony")
6980 (version "1.1.1")
6981 (source
6982 (origin
6983 (method git-fetch)
6984 (uri (git-reference
6985 (url "https://github.com/Sarcasm/company-irony")
6986 (commit (string-append "v" version))))
6987 (sha256
6988 (base32 "1d3jw0d4zymznri86a5iixyxnw16jzkkrbhrh657ys73189c1c73"))
6989 (file-name (git-file-name name version))))
6990 (build-system emacs-build-system)
6991 (inputs
6992 (list emacs-company emacs-irony-mode))
6993 (synopsis "C++ completion backend for Company using Irony mode")
6994 (description "This backend for Company allows for C++ code completion
6995 with Irony mode using Clang tooling.")
6996 (home-page "https://github.com/Sarcasm/company-irony")
6997 (license license:gpl3+)))
6998
6999 (define-public emacs-flycheck-irony
7000 (package
7001 (name "emacs-flycheck-irony")
7002 (version "0.1.0")
7003 (source (origin
7004 (method git-fetch)
7005 (uri (git-reference
7006 (url "https://github.com/Sarcasm/flycheck-irony")
7007 (commit (string-append "v" version))))
7008 (file-name (git-file-name name version))
7009 (sha256
7010 (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))))
7011 (build-system emacs-build-system)
7012 (inputs
7013 (list emacs-irony-mode emacs-flycheck emacs-company))
7014 (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
7015 (description "This package provides a frontend for Flycheck that lets
7016 irony-mode do the syntax checking.")
7017 (home-page "https://github.com/Sarcasm/flycheck-irony")
7018 (license license:gpl3+)))
7019
7020 (define-public emacs-irony-eldoc
7021 (package
7022 (name "emacs-irony-eldoc")
7023 (version (package-version emacs-irony-mode))
7024 (source
7025 (origin
7026 (method git-fetch)
7027 (uri (git-reference
7028 (url "https://github.com/ikirill/irony-eldoc")
7029 (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
7030 (file-name (git-file-name name version))
7031 (sha256
7032 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))))
7033 (build-system emacs-build-system)
7034 (inputs
7035 (list emacs-irony-mode))
7036 (synopsis "Eldoc integration for irony-mode")
7037 (description "Irony-eldoc is an eldoc extension that shows documentation
7038 for the current function or variable in the minibuffer.")
7039 (home-page "https://github.com/ikirill/irony-eldoc")
7040 (license license:gpl3+)))
7041
7042 (define-public emacs-company-quickhelp
7043 (package
7044 (name "emacs-company-quickhelp")
7045 (version "2.3.0")
7046 (source
7047 (origin
7048 (method git-fetch)
7049 (uri (git-reference
7050 (url "https://github.com/expez/company-quickhelp")
7051 (commit version)))
7052 (file-name (git-file-name name version))
7053 (sha256
7054 (base32 "08ccsfvwdpzpj0gai3xrdb2bv1nl6myjkxsc5774pbvlq9nkfdvr"))))
7055 (build-system emacs-build-system)
7056 (propagated-inputs
7057 (list emacs-pos-tip emacs-company))
7058 (home-page "https://github.com/expez/company-quickhelp")
7059 (synopsis "Popup documentation for completion candidates")
7060 (description "@code{company-quickhelp} shows documentation for the
7061 completion candidate when using the Company text completion framework.")
7062 (license license:gpl3+)))
7063
7064 (define-public emacs-math-symbol-lists
7065 (package
7066 (name "emacs-math-symbol-lists")
7067 (version "1.3")
7068 (source
7069 (origin
7070 (method git-fetch)
7071 (uri (git-reference
7072 (url "https://github.com/vspinu/math-symbol-lists")
7073 (commit (string-append "v" version))))
7074 (file-name (git-file-name name version))
7075 (sha256
7076 (base32 "1r2i600356k8g0l53s4b5xc24flpka664i8f23zbj4h7gk1g2787"))))
7077 (build-system emacs-build-system)
7078 (home-page "https://github.com/vspinu/math-symbol-lists")
7079 (synopsis "Lists of Unicode math symbols and @code{LaTeX} commands")
7080 (description "This is a storage package used by completion engines like
7081 @code{company-math}.")
7082 (license license:gpl3+)))
7083
7084 (define-public emacs-company-coq
7085 (package
7086 (name "emacs-company-coq")
7087 (version "1.0.1")
7088 (source
7089 (origin
7090 (method git-fetch)
7091 (uri
7092 (git-reference
7093 (url "https://github.com/cpitclaudel/company-coq")
7094 (commit version)))
7095 (file-name (git-file-name name version))
7096 (sha256
7097 (base32 "0dxi4h8xqq5647k7h89s4pi8nwyj3brlhsckrv3p3b1g4dr6mk3b"))))
7098 (inputs
7099 (list emacs-company emacs-company-math emacs-dash emacs-yasnippet))
7100 (build-system emacs-build-system)
7101 (home-page "https://github.com/cpitclaudel/company-coq")
7102 (synopsis "Emacs extensions for Proof General's Coq mode")
7103 (description "This package includes a collection of Company mode backends
7104 for Proof-General's Coq mode, and many useful extensions to Proof-General. It
7105 features:
7106
7107 @itemize
7108 @item Prettification of operators, types, and subscripts,
7109 @item Auto-completion,
7110 @item Insertion of cases,
7111 @item Fully explicit intros,
7112 @item Outlines, code folding, and jumping to definition,
7113 @item Help with errors,
7114 @item and more.
7115 @end itemize")
7116 (license license:gpl3+)))
7117
7118 (define-public emacs-company-math
7119 (package
7120 (name "emacs-company-math")
7121 (version "1.4")
7122 (source
7123 (origin
7124 (method git-fetch)
7125 (uri (git-reference
7126 (url "https://github.com/vspinu/company-math")
7127 (commit (string-append "v" version))))
7128 (file-name (git-file-name name version))
7129 (sha256
7130 (base32 "1y1fw926insgdl7ib9ynxjrxf3p6wfjkfxvf5vgdca7267cvcll1"))))
7131 (build-system emacs-build-system)
7132 (propagated-inputs
7133 (list emacs-math-symbol-lists emacs-company))
7134 (home-page "https://github.com/vspinu/company-math")
7135 (synopsis "Completion backends for math symbols and @code{LaTeX} tags")
7136 (description
7137 "This package provides a backend for use with Company mode allowing for
7138 completion of common math symbols.")
7139 (license license:gpl3+)))
7140
7141 (define-public emacs-compdef
7142 (let ((commit "67104a38763cc819644f711248b170a43bce151b")
7143 (revision "2"))
7144 (package
7145 (name "emacs-compdef")
7146 (version (git-version "0.2" revision commit))
7147 (source
7148 (origin
7149 (method git-fetch)
7150 (uri (git-reference
7151 (url "https://gitlab.com/jjzmajic/compdef.git")
7152 (commit commit)))
7153 (file-name (git-file-name name version))
7154 (sha256
7155 (base32 "1f6y6cr67gps9jp5hd20xszfd3k26v70g6z4g5db6wdkvlnc2wkg"))))
7156 (build-system emacs-build-system)
7157 (home-page "https://gitlab.com/jjzmajic/compdef")
7158 (synopsis "Set local completion backends")
7159 (description "This package provides a function to cleanly set local
7160 completion backends according to mode, and integrates with
7161 @code{use-package}.")
7162 (license license:gpl3+))))
7163
7164 (define-public emacs-icomplete-vertical
7165 (package
7166 (name "emacs-icomplete-vertical")
7167 (version "0.3")
7168 (source
7169 (origin
7170 (method git-fetch)
7171 (uri (git-reference
7172 (url "https://github.com/oantolin/icomplete-vertical")
7173 (commit version)))
7174 (file-name (git-file-name name version))
7175 (sha256
7176 (base32 "02v190pb802vck7di39jyf5prvmfsgcxln8mgwsls2b4clx9da97"))))
7177 (build-system emacs-build-system)
7178 (home-page "https://github.com/oantolin/icomplete-vertical")
7179 (synopsis "Display Icomplete candidates vertically")
7180 (description
7181 "This package defines a global minor mode to display Icomplete
7182 completion candidates vertically.")
7183 (license license:gpl3+)))
7184
7185 (define-public emacs-handle
7186 (let ((commit "51c050bc1c6e5caf0eb47ecd985daea1db7241ab")
7187 (revision "2"))
7188 (package
7189 (name "emacs-handle")
7190 (version (git-version "0.1" revision commit))
7191 (source
7192 (origin
7193 (method git-fetch)
7194 (uri (git-reference
7195 (url "https://gitlab.com/jjzmajic/handle.git")
7196 (commit commit)))
7197 (file-name (git-file-name name version))
7198 (sha256
7199 (base32 "14f15qzfmwdslml4rv37zb5d1lsjf0jibriz636hb7q7knx1n4sg"))))
7200 (build-system emacs-build-system)
7201 (propagated-inputs
7202 (list emacs-parent-mode))
7203 (home-page "https://gitlab.com/jjzmajic/handle")
7204 (synopsis "Handle generic functions across related major modes")
7205 (description "This package provides generic functions that specialize on
7206 major modes and intended purpose rather than on arguments. Different
7207 callables for tasks like expression evaluation, definition-jumping, and more
7208 can now be grouped accordingly and tried in sequence until one of them
7209 succeeds.")
7210 (license license:gpl3+))))
7211
7212 (define-public emacs-nswbuff
7213 (package
7214 (name "emacs-nswbuff")
7215 (version "1.3")
7216 (source
7217 (origin
7218 (method git-fetch)
7219 (uri (git-reference
7220 (url "https://github.com/joostkremers/nswbuff")
7221 (commit version)))
7222 (file-name (git-file-name name version))
7223 (sha256
7224 (base32 "0bkx7mwy3zbb0ixawvn4cysxk3jjc7ahssvdprvw19ls9xx3wbsp"))))
7225 (build-system emacs-build-system)
7226 (home-page "https://github.com/joostkremers/nswbuff")
7227 (synopsis "Quickly switch between buffers")
7228 (description "This package allows for navigating between buffers within
7229 a customizable list.")
7230 (license license:gpl3+)))
7231
7232 (define-public emacs-phi-search
7233 (let ((commit "9a089b8271cb1cff9640848850298c9ec855286c")
7234 (revision "1"))
7235 (package
7236 (name "emacs-phi-search")
7237 (version (git-version "20160630" revision commit))
7238 (source
7239 (origin
7240 (method git-fetch)
7241 (uri (git-reference
7242 (url "https://github.com/zk-phi/phi-search")
7243 (commit commit)))
7244 (file-name (git-file-name name version))
7245 (sha256
7246 (base32 "1gr5plcbrfdc4pglfj905s89hf8x0kc083h30wcnd81bnw9jwz1x"))))
7247 (build-system emacs-build-system)
7248 (home-page "https://github.com/zk-phi/phi-search")
7249 (synopsis "Interactive search compatible with @code{multiple-cursors}")
7250 (description "This package can be used with @code{multiple-cursors} to
7251 provide an incremental search that moves all fake cursors in sync.")
7252 (license license:gpl2+))))
7253
7254 (define-public emacs-phi-search-mc
7255 (let ((commit "7aa671910f766437089aec26c3aa7814222d1356")
7256 (revision "1"))
7257 (package
7258 (name "emacs-phi-search-mc")
7259 (version (git-version "2.2.1" revision commit))
7260 (source
7261 (origin
7262 (method git-fetch)
7263 (uri (git-reference
7264 (url "https://github.com/knu/phi-search-mc.el")
7265 (commit commit)))
7266 (file-name (git-file-name name version))
7267 (sha256
7268 (base32 "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd"))))
7269 (build-system emacs-build-system)
7270 (propagated-inputs
7271 (list emacs-phi-search emacs-multiple-cursors))
7272 (home-page "https://github.com/knu/phi-search-mc.el")
7273 (synopsis "Extend @code{phi-search} with additional
7274 @code{multiple-cursors} functionality")
7275 (description "This package provides further integration between
7276 @code{multiple-cursors} and @code{phi-search}, a package that allows for
7277 interactive searches to move multiple fake cursors.")
7278 (license license:bsd-2))))
7279
7280 (define-public emacs-multiple-cursors
7281 (package
7282 (name "emacs-multiple-cursors")
7283 (version "1.4.0")
7284 (source
7285 (origin
7286 (method git-fetch)
7287 (uri (git-reference
7288 (url "https://github.com/magnars/multiple-cursors.el")
7289 (commit version)))
7290 (file-name (git-file-name name version))
7291 (sha256
7292 (base32 "1ijgvzv5r44xqvz751fd5drbvrspapw6xwv47582w255j363r6ss"))))
7293 (build-system emacs-build-system)
7294 (home-page "https://github.com/magnars/multiple-cursors.el")
7295 (synopsis "Multiple cursors for Emacs")
7296 (description
7297 "This package adds support to Emacs for editing text with multiple
7298 simultaneous cursors.")
7299 (license license:gpl3+)))
7300
7301 (define-public emacs-multifiles
7302 ;; There is no tag and no "Version:" keyword. Using the latest release
7303 ;; instead.
7304 (let ((commit "dddfe64b8e1c1cd1f9ccc1f03405477fc0d53897")
7305 (revision "1"))
7306 (package
7307 (name "emacs-multifiles")
7308 (version (git-version "0" revision commit))
7309 (source
7310 (origin
7311 (method git-fetch)
7312 (uri (git-reference
7313 (url "https://github.com/magnars/multifiles.el")
7314 (commit commit)))
7315 (file-name (git-file-name name version))
7316 (sha256
7317 (base32 "065l04ylplng1vgykkbn2vnkcs3sn1k2cikx1ha2q8wmgx6bkvai"))))
7318 (build-system emacs-build-system)
7319 (propagated-inputs
7320 (list emacs-dash))
7321 (home-page "https://github.com/magnars/multifiles.el")
7322 (synopsis "Edit multiple files in a single Emacs buffer")
7323 (description
7324 "This package allows one to view and edit parts of multiple files in
7325 one Emacs buffer.")
7326 (license license:gpl3+))))
7327
7328 (define-public emacs-mc-extras
7329 (let ((commit "053abc52181b8718559d7361a587bbb795faf164")
7330 (revision "1"))
7331 (package
7332 (name "emacs-mc-extras")
7333 (version (git-version "1.2.4" revision commit))
7334 (source
7335 (origin
7336 (method git-fetch)
7337 (uri (git-reference
7338 (url "https://github.com/knu/mc-extras.el")
7339 (commit commit)))
7340 (file-name (git-file-name name version))
7341 (sha256
7342 (base32 "16y48qrd20m20vypvys5jp4v4gc1qrqlkm75s1pk1r68i9zrw481"))))
7343 (build-system emacs-build-system)
7344 (propagated-inputs
7345 (list emacs-multiple-cursors))
7346 (home-page "https://github.com/knu/mc-extras.el")
7347 (synopsis "Extra functions for manipulating multiple cursors")
7348 (description
7349 "This package provides additional functions for
7350 @code{multiple-cursors}, including functions for marking s-expressions,
7351 comparing characters, removing cursors, and more.")
7352 (license license:bsd-2))))
7353
7354 (define-public emacs-typo
7355 (package
7356 (name "emacs-typo")
7357 (version "1.1")
7358 (home-page "https://github.com/jorgenschaefer/typoel")
7359 (source (origin
7360 (method git-fetch)
7361 (uri (git-reference
7362 (url home-page)
7363 (commit (string-append "v" version))))
7364 (file-name (git-file-name name version))
7365 (sha256
7366 (base32
7367 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))))
7368 (build-system emacs-build-system)
7369 (synopsis "Minor mode for typographic editing")
7370 (description
7371 "This package provides two Emacs modes, @code{typo-mode} and
7372 @code{typo-global-mode}. These modes automatically insert Unicode characters
7373 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
7374 automatically inserts a Unicode opening or closing quotation mark, depending
7375 on context.")
7376 (license license:gpl3+)))
7377
7378 (define-public emacs-company-lsp
7379 (package
7380 (name "emacs-company-lsp")
7381 (version "2.1.0")
7382 (source (origin
7383 (method git-fetch)
7384 (uri (git-reference
7385 (url "https://github.com/tigersoldier/company-lsp")
7386 (commit version)))
7387 (file-name (git-file-name name version))
7388 (sha256
7389 (base32
7390 "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"))))
7391 (build-system emacs-build-system)
7392 (propagated-inputs
7393 (list emacs-dash emacs-lsp-mode emacs-company emacs-s emacs-dash))
7394 (native-inputs
7395 (list emacs-buttercup))
7396 (arguments
7397 `(#:tests? #t
7398 #:test-command '("buttercup" "-L" ".")))
7399 (home-page "https://github.com/tigersoldier/company-lsp")
7400 (synopsis "Completion for @code{lsp-mode}")
7401 (description
7402 "This package provides completion features that are not possible with
7403 @code{lsp-mode} and @code{company-capf} alone, including support for trigger
7404 characters and asynchronous fetching of completion candidates.")
7405 (license license:gpl3+)))
7406
7407 (define-public emacs-scala-mode
7408 (package
7409 (name "emacs-scala-mode")
7410 (version "1.1.0")
7411 (source
7412 (origin
7413 (method git-fetch)
7414 (uri (git-reference
7415 (url "https://github.com/hvesalai/emacs-scala-mode")
7416 (commit (string-append "v" version))))
7417 (file-name (git-file-name name version))
7418 (sha256
7419 (base32 "1072lsin7dxadc0xyhy42wd0cw549axbbd4dy95wfmfcc1xbzjwv"))))
7420 (build-system emacs-build-system)
7421 (home-page "https://github.com/hvesalai/emacs-scala-mode")
7422 (synopsis "Emacs major mode for Scala")
7423 (description
7424 "This package provides basic Emacs support for the Scala language,
7425 including: local indenting of code, comments and multi-line strings, motion
7426 commands and highlighting.")
7427 ;; There are no copyright headers in the source code. The LICENSE file
7428 ;; indicates GPL3.
7429 (license license:gpl3)))
7430
7431 (define-public emacs-sbt-mode
7432 (package
7433 (name "emacs-sbt-mode")
7434 (version "2.0.0")
7435 (source
7436 (origin
7437 (method git-fetch)
7438 (uri (git-reference
7439 (url "https://github.com/hvesalai/emacs-sbt-mode")
7440 (commit (string-append "v" version))))
7441 (file-name (git-file-name name version))
7442 (sha256
7443 (base32 "0lv9ridzk9x6rkf7lj21srnszypyq04vqg05vl10zhpz1yqlnbjd"))))
7444 (build-system emacs-build-system)
7445 (home-page "https://github.com/hvesalai/emacs-sbt-mode")
7446 (synopsis "Basic functionality for interacting with sbt inside Emacs")
7447 (description
7448 "This mode provides basic functionality required for successfully
7449 interacting with sbt inside Emacs. The core functionality includes
7450 interacting with the sbt shell and Scala console, compiling code and
7451 navigation to errors.")
7452 (license license:gpl3+)))
7453
7454 (define-public emacs-scheme-complete
7455 ;; Upstream does not provide tags. The commit below corresponds to the
7456 ;; exact version update. Version is extracted from main file.
7457 (let ((commit "5c0a16684a3be7021d67067b2955f1c3e17a320a"))
7458 (package
7459 (name "emacs-scheme-complete")
7460 (version "0.9.9")
7461 (source
7462 (origin
7463 (method git-fetch)
7464 (uri (git-reference
7465 (url "https://github.com/ashinn/scheme-complete")
7466 (commit commit)))
7467 (file-name (git-file-name name version))
7468 (sha256
7469 (base32 "1smxr5bkzbfrjx21vhrj1wagmqx5yd92i997dbgs16iaqbzzr7cz"))))
7470 (build-system emacs-build-system)
7471 (home-page "https://github.com/ashinn/scheme-complete")
7472 (synopsis "Smart tab completion for Scheme in Emacs")
7473 (description
7474 "This file provides a single function, @code{scheme-smart-complete},
7475 which you can use for intelligent, context-sensitive completion for any Scheme
7476 implementation in Emacs. To use it just load this file and bind that function
7477 to a key in your preferred mode.")
7478 (license license:public-domain))))
7479
7480 (define-public emacs-scel
7481 (let ((version "20170629")
7482 (revision "1")
7483 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
7484 (package
7485 (name "emacs-scel")
7486 (version (git-version version revision commit))
7487 (source
7488 (origin
7489 (method git-fetch)
7490 (uri (git-reference
7491 (url "https://github.com/supercollider/scel")
7492 (commit commit)))
7493 (file-name (git-file-name name version))
7494 (sha256
7495 (base32
7496 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
7497 (build-system emacs-build-system)
7498 (arguments
7499 (list
7500 #:modules '((guix build emacs-build-system)
7501 ((guix build cmake-build-system) #:prefix cmake:)
7502 (guix build utils))
7503 #:imported-modules `(,@%emacs-build-system-modules
7504 (guix build cmake-build-system))
7505 #:phases
7506 #~(modify-phases %standard-phases
7507 (add-after 'unpack 'configure
7508 (lambda* (#:key outputs #:allow-other-keys)
7509 (substitute* "el/CMakeLists.txt"
7510 (("share/emacs/site-lisp/SuperCollider")
7511 (elpa-directory #$output)))
7512 ((assoc-ref cmake:%standard-phases 'configure)
7513 #:outputs outputs
7514 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
7515 (add-after 'expand-load-path 'add-el-dir-to-emacs-load-path
7516 (lambda _
7517 (setenv "EMACSLOADPATH"
7518 (string-append (getcwd)
7519 "/el:"
7520 (getenv "EMACSLOADPATH")))))
7521 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
7522 (inputs
7523 (list supercollider))
7524 (native-inputs
7525 (list cmake-minimal))
7526 (home-page "https://github.com/supercollider/scel")
7527 (synopsis "SuperCollider Emacs interface")
7528 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
7529 SuperCollider is a platform for audio synthesis and algorithmic composition.")
7530 (license license:gpl2+))))
7531
7532 (define-public emacs-company-auctex
7533 (let ((commit "48c42c58ce2f0e693301b0cb2d085055410c1b25")
7534 (revision "1"))
7535 (package
7536 (name "emacs-company-auctex")
7537 (version (git-version "0.1" revision commit))
7538 (source
7539 (origin
7540 (method git-fetch)
7541 (uri (git-reference
7542 (url "https://github.com/alexeyr/company-auctex")
7543 (commit commit)))
7544 (file-name (git-file-name name version))
7545 (sha256
7546 (base32 "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8"))))
7547 (build-system emacs-build-system)
7548 (arguments
7549 `(#:phases
7550 (modify-phases %standard-phases
7551 (add-before 'build 'set-home
7552 (lambda _ (setenv "HOME" "/tmp"))))))
7553 (propagated-inputs
7554 (list emacs-auctex emacs-company emacs-yasnippet))
7555 (home-page "https://github.com/alexeyr/company-auctex/")
7556 (synopsis "Completion for @code{AUCTeX}")
7557 (description
7558 "This package provides a group of backends permitting auto-completion
7559 for @code{AUCTeX}.")
7560 (license license:gpl3+))))
7561
7562 (define-public emacs-mit-scheme-doc
7563 (package
7564 (name "emacs-mit-scheme-doc")
7565 (version "20140203")
7566 (source
7567 (origin
7568 (modules '((guix build utils)))
7569 (snippet
7570 ;; keep only file of interest
7571 '(begin
7572 (for-each delete-file '("dot-emacs.el" "Makefile"))
7573 (install-file "6.945-config/mit-scheme-doc.el" ".")
7574 (delete-file-recursively "6.945-config")))
7575 (file-name (string-append name "-" version ".tar.bz2"))
7576 (method url-fetch)
7577 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
7578 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
7579 (sha256
7580 (base32
7581 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
7582 (build-system emacs-build-system)
7583 (inputs (list mit-scheme))
7584 (arguments
7585 `(#:phases
7586 (modify-phases %standard-phases
7587 (add-after 'unpack 'configure-doc
7588 (lambda* (#:key inputs #:allow-other-keys)
7589 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
7590 (doc-dir (string-append mit-scheme-dir "/share/doc/"
7591 "mit-scheme-"
7592 ,(package-version mit-scheme))))
7593 (substitute* "mit-scheme-doc.el"
7594 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
7595 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
7596 (home-page "https://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
7597 (synopsis "MIT-Scheme documentation lookup for Emacs")
7598 (description
7599 "This package provides a set of Emacs functions to search definitions of
7600 identifiers in the MIT-Scheme documentation.")
7601 (license license:gpl2+)))
7602
7603 (define-public emacs-constants
7604 (package
7605 (name "emacs-constants")
7606 (version "2.6")
7607 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
7608 (source
7609 (origin
7610 (method git-fetch)
7611 (uri (git-reference
7612 (url "https://github.com/fedeinthemix/emacs-constants")
7613 (commit (string-append "v" version))))
7614 (file-name (git-file-name name version))
7615 (sha256
7616 (base32 "0f5sh6b45a8p9kancjp9jk44ws8ww6x50a0i6zgyyvr7dbvii1a0"))))
7617 (build-system emacs-build-system)
7618 (synopsis "Enter definition of constants into an Emacs buffer")
7619 (description
7620 "This package provides functions for inserting the definition of natural
7621 constants and units into an Emacs buffer.")
7622 (license license:gpl2+)))
7623
7624 (define-public emacs-tagedit
7625 (package
7626 (name "emacs-tagedit")
7627 (version "1.4.0")
7628 (source
7629 (origin
7630 (method git-fetch)
7631 (uri (git-reference
7632 (url "https://github.com/magnars/tagedit")
7633 (commit version)))
7634 (file-name (git-file-name name version))
7635 (sha256
7636 (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb"))))
7637 (build-system emacs-build-system)
7638 (propagated-inputs
7639 (list emacs-s emacs-dash))
7640 (home-page "https://github.com/magnars/tagedit")
7641 (synopsis "Some paredit-like features for html-mode")
7642 (description
7643 "This package provides a collection of paredit-like functions for editing
7644 in @code{html-mode}.")
7645 (license license:gpl3+)))
7646
7647 (define-public emacs-slime
7648 (package
7649 (name "emacs-slime")
7650 (version "2.27")
7651 (source
7652 (origin
7653 (method git-fetch)
7654 (uri (git-reference
7655 (url "https://github.com/slime/slime")
7656 (commit (string-append "v" version))))
7657 (file-name (git-file-name name version))
7658 (sha256
7659 (base32 "1s5mbljlz22pb90gwbd380nighkz6gdxl77hc08gri7wwr5gy5n2"))))
7660 (build-system emacs-build-system)
7661 (native-inputs
7662 (list texinfo))
7663 (arguments
7664 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
7665 #:exclude '("^slime-tests.el" "^contrib/test/"
7666 "^contrib/Makefile$" "^contrib/README.md$")
7667 #:phases
7668 (modify-phases %standard-phases
7669 (add-after 'unpack 'make-git-checkout-writable
7670 (lambda _
7671 (for-each make-file-writable (find-files "."))))
7672 (add-before 'install 'configure
7673 (lambda* _
7674 (emacs-substitute-variables "slime.el"
7675 ("inferior-lisp-program" "sbcl"))))
7676 (add-before 'install 'install-doc
7677 (lambda* (#:key outputs #:allow-other-keys)
7678 (let* ((out (assoc-ref outputs "out"))
7679 (info-dir (string-append out "/share/info"))
7680 (doc-dir (string-append out "/share/doc/"
7681 ,name "-" ,version))
7682 (doc-files '("doc/slime-refcard.pdf"
7683 "README.md" "NEWS" "PROBLEMS"
7684 "CONTRIBUTING.md")))
7685 (with-directory-excursion "doc"
7686 (substitute* "Makefile"
7687 (("infodir=/usr/local/info")
7688 (string-append "infodir=" info-dir)))
7689 (invoke "make" "html/index.html")
7690 (invoke "make" "slime.info")
7691 (install-file "slime.info" info-dir)
7692 (copy-recursively "html" (string-append doc-dir "/html")))
7693 (for-each (lambda (f)
7694 (install-file f doc-dir)
7695 (delete-file f))
7696 doc-files)
7697 (delete-file-recursively "doc")))))))
7698 (home-page "https://github.com/slime/slime")
7699 (synopsis "Superior Lisp Interaction Mode for Emacs")
7700 (description
7701 "SLIME extends Emacs with support for interactive programming in
7702 Common Lisp. The features are centered around @command{slime-mode},
7703 an Emacs minor mode that complements the standard @command{lisp-mode}.
7704 While lisp-mode supports editing Lisp source files, @command{slime-mode}
7705 adds support for interacting with a running Common Lisp process
7706 for compilation, debugging, documentation lookup, and so on.")
7707 (license (list license:gpl2+ license:public-domain))))
7708
7709 (define-public emacs-popup
7710 (package
7711 (name "emacs-popup")
7712 (version "0.5.8")
7713 (source
7714 (origin
7715 (method git-fetch)
7716 (uri (git-reference
7717 (url "https://github.com/auto-complete/popup-el")
7718 (commit (string-append "v" version))))
7719 (file-name (git-file-name name version))
7720 (sha256
7721 (base32 "0qrsz4z9q2bfq9xv4n94mvyslm232v2ql9r1fjycx7rnmpqggiwl"))))
7722 (build-system emacs-build-system)
7723 (home-page "https://github.com/auto-complete/popup-el")
7724 (synopsis "Visual Popup User Interface for Emacs")
7725 (description
7726 "Popup.el is a visual popup user interface library for Emacs.
7727 This provides a basic API and common UI widgets such as popup tooltips
7728 and popup menus.")
7729 (license license:gpl3+)))
7730
7731 (define-public emacs-popup-kill-ring
7732 (let ((commit "a45c9cf79c4e1207fdbdd662e161154ef224ad61")
7733 (revision "0"))
7734 (package
7735 (name "emacs-popup-kill-ring")
7736 (version (git-version "0.2.8" revision commit))
7737 (source (origin
7738 (method git-fetch)
7739 (uri (git-reference
7740 (url "https://github.com/waymondo/popup-kill-ring")
7741 (commit commit)))
7742 (file-name (git-file-name name version))
7743 (sha256
7744 (base32
7745 "0bpnsc4agy6mcnc79d9a6gi79jiiqrhf3a55pw0p4z16m86vwyqr"))))
7746 (build-system emacs-build-system)
7747 (propagated-inputs (list emacs-pos-tip emacs-popup))
7748 (home-page "https://github.com/waymondo/popup-kill-ring")
7749 (synopsis "Interactively insert item from kill-ring")
7750 (description "This Emacs packages manages your Emacs kill-ring in an
7751 autocomplete style popup menu.")
7752 (license license:gpl3+))))
7753
7754 (define-public emacs-popper
7755 ;; No tagged release upstream for version 0.45. The commit below matches
7756 ;; version bump.
7757 (let ((commit "851d83882192ac9599ac5b053614a42d683b3fab"))
7758 (package
7759 (name "emacs-popper")
7760 (version "0.45")
7761 (source (origin
7762 (method git-fetch)
7763 (uri (git-reference
7764 (url "https://github.com/karthink/popper")
7765 (commit commit)))
7766 (file-name (git-file-name name version))
7767 (sha256
7768 (base32
7769 "0pk5wzqlz7n6v8rb1957i3ql0wjx578l68a3rp2m9pxr7a8a03h4"))))
7770 (build-system emacs-build-system)
7771 (home-page "https://github.com/karthink/popper")
7772 (synopsis "Emacs minor-mode to summon and dismiss buffers easily")
7773 (description
7774 "Popper is a minor-mode to tame the flood of ephemeral
7775 windows Emacs produces, while still keeping them within arm’s reach.")
7776 (license license:gpl3+))))
7777
7778 (define-public emacs-python-black
7779 (package
7780 (name "emacs-python-black")
7781 (version "1.1.0")
7782 (source
7783 (origin
7784 (method git-fetch)
7785 (uri (git-reference
7786 (url "https://github.com/wbolster/emacs-python-black")
7787 (commit version)))
7788 (file-name (git-file-name name version))
7789 (sha256
7790 (base32
7791 "1cmzc0fa3jj7ajxbqhbsc8jx47k6g223sfd42c4lrqdnmh95760m"))))
7792 (build-system emacs-build-system)
7793 (propagated-inputs
7794 (list emacs-dash emacs-reformatter python-black-macchiato))
7795 (arguments `(#:tests? #f))
7796 (home-page "https://github.com/wbolster/emacs-python-black")
7797 (synopsis "Reformat Python code via @code{python-black}")
7798 (description
7799 "This package makes it easy to reformat Python code using
7800 @code{python-black} and @code{python-black-macchiato} for entire and partial
7801 buffers, respectively.")
7802 (license license:bsd-3)))
7803
7804 (define-public emacs-py-isort
7805 (package
7806 (name "emacs-py-isort")
7807 (version "2016.1")
7808 (source
7809 (origin
7810 (method git-fetch)
7811 (uri (git-reference
7812 (url "https://github.com/paetzke/py-isort.el")
7813 (commit (string-append "v" version))))
7814 (file-name (git-file-name name version))
7815 (sha256
7816 (base32 "08i55gv392wc12x8v3dca0dmz8a8p9ljsqhyajsb6qv1k120wqhx"))))
7817 (build-system emacs-build-system)
7818 (arguments
7819 `(#:tests? #f)) ;tests fail with "emacs: standard input is not a tty"
7820 (propagated-inputs
7821 (list python-isort))
7822 (home-page "https://github.com/paetzke/py-isort.el")
7823 (synopsis "Sort the imports in Python buffers")
7824 (description
7825 "This package provides commands and a minor mode to sort Python imports
7826 using @code{python-isort}.")
7827 (license license:gpl3+)))
7828
7829 (define-public emacs-python-environment
7830 (package
7831 (name "emacs-python-environment")
7832 (version "0.0.2")
7833 (source
7834 (origin
7835 (method git-fetch)
7836 (uri (git-reference
7837 (url "https://github.com/tkf/emacs-python-environment/")
7838 (commit version)))
7839 (file-name (git-file-name name version))
7840 (sha256
7841 (base32 "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk"))))
7842 (build-system emacs-build-system)
7843 (propagated-inputs
7844 (list emacs-deferred))
7845 (home-page "https://github.com/tkf/emacs-python-environment")
7846 (synopsis "Provides a @code{virtualenv} API in Emacs Lisp")
7847 (description
7848 "This package permits automated installation of tools written in Python.")
7849 (license license:gpl3+)))
7850
7851 (define-public emacs-jedi
7852 (package
7853 (name "emacs-jedi")
7854 (version "0.2.8")
7855 (source (origin
7856 (method git-fetch)
7857 (uri (git-reference
7858 (url "https://github.com/tkf/emacs-jedi/")
7859 (commit (string-append "v" version))))
7860 (file-name (git-file-name name version))
7861 (sha256
7862 (base32
7863 "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"))))
7864 (build-system emacs-build-system)
7865 (arguments
7866 (list
7867 #:imported-modules `(,@%emacs-build-system-modules
7868 (guix build python-build-system))
7869 #:modules '((guix build emacs-build-system)
7870 ((guix build python-build-system) #:prefix python:)
7871 (guix build emacs-utils)
7872 (guix build utils))
7873 #:phases
7874 #~(modify-phases %standard-phases
7875 (add-after 'unpack 'ensure-no-mtimes-pre-1980
7876 (assoc-ref python:%standard-phases
7877 'ensure-no-mtimes-pre-1980))
7878 (add-after 'ensure-no-mtimes-pre-1980 'relax-python-requirements
7879 (lambda _
7880 ;; Argparse should only be required for Python < 3.2
7881 ;; (see: https://github.com/tkf/emacs-jedi/issues/365).
7882 (substitute* "setup.py"
7883 ((".*argparse.*") ""))))
7884 (add-after 'relax-python-requirements 'python:add-install-to-pythonpath
7885 (assoc-ref python:%standard-phases 'add-install-to-pythonpath))
7886 (add-after 'python:add-install-to-pythonpath 'python:install
7887 ;; This is needed to get the Python-built 'jediepcserver' command.
7888 (assoc-ref python:%standard-phases 'install))
7889 (add-after 'python:install 'python:wrap
7890 (assoc-ref python:%standard-phases 'wrap))
7891 (add-after 'python:wrap 'patch-jedi:server-command
7892 (lambda* (#:key outputs #:allow-other-keys)
7893 (emacs-substitute-variables "jedi-core.el"
7894 ("jedi:server-command"
7895 (search-input-file outputs "bin/jediepcserver"))))))))
7896 (native-inputs (list emacs-mocker python-wrapper))
7897 (inputs (list python-wrapper python-epc python-jedi)) ;wrapped
7898 (propagated-inputs
7899 (list emacs-auto-complete emacs-python-environment emacs-epc))
7900 (home-page "https://github.com/tkf/emacs-jedi")
7901 (synopsis "Provides Python completion in Emacs")
7902 (description
7903 "This package provides completion in Python buffers and also helps find
7904 the locations of docstrings, arguments, and functions.")
7905 (license license:gpl3+)))
7906
7907 (define-public emacs-company-jedi
7908 (package
7909 (name "emacs-company-jedi")
7910 (version "0.04")
7911 (source (origin
7912 (method git-fetch)
7913 (uri (git-reference
7914 (url "https://github.com/syohex/emacs-company-jedi")
7915 (commit version)))
7916 (file-name (git-file-name name version))
7917 (sha256
7918 (base32
7919 "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1"))))
7920 (build-system emacs-build-system)
7921 (propagated-inputs
7922 (list emacs-jedi emacs-company))
7923 (home-page "https://github.com/syohex/emacs-company-jedi")
7924 (synopsis "Provides Python completion in @code{company-mode}")
7925 (description
7926 "This package provides a Company backend for Python.")
7927 (license license:gpl3+)))
7928
7929 (define-public emacs-puppet-mode
7930 (package
7931 (name "emacs-puppet-mode")
7932 (version "0.4")
7933 (source
7934 (origin
7935 (method git-fetch)
7936 (uri (git-reference
7937 (url "https://github.com/voxpupuli/puppet-mode")
7938 (commit version)))
7939 (file-name (git-file-name name version))
7940 (sha256
7941 (base32
7942 "0c5q8qmbligzjsn05di4wh6ggpd3944j4yqb78vzd441b8ssq70i"))))
7943 (build-system emacs-build-system)
7944 (home-page "https://github.com/voxpupuli/puppet-mode")
7945 (synopsis "Emacs major mode for the Puppet configuration language")
7946 (description
7947 "This package provides support for the Puppet configuration language,
7948 including syntax highlighting, indentation of expressions and statements,
7949 linting of manifests and integration with Puppet Debugger.")
7950 ;; Also incorporates work covered by the Apache License, Version 2.0
7951 (license license:gpl3+)))
7952
7953 (define-public emacs-purescript-mode
7954 ;; Retrieved on 2021-05-18.
7955 (let ((revision "0")
7956 (commit "0acd1af446424ba855153161fe07a20f67dc0a89"))
7957 (package
7958 (name "emacs-purescript-mode")
7959 (version (git-version "0.0.0" revision commit))
7960 (source
7961 (origin
7962 (method git-fetch)
7963 (uri (git-reference
7964 (url "https://github.com/purescript-emacs/purescript-mode")
7965 (commit commit)))
7966 (file-name (git-file-name name version))
7967 (sha256
7968 (base32
7969 "0rxdsmx8826az4blhnnvqrx7bjky9hwph6gkyrh33sck26xhh3g5"))))
7970 (build-system emacs-build-system)
7971 (arguments
7972 `(#:phases
7973 (modify-phases %standard-phases
7974 (add-before 'install 'make-info
7975 (lambda _
7976 (invoke "makeinfo" "--no-split"
7977 "-o" "purescript-mode.info" "purescript-mode.texi"))))))
7978 (native-inputs
7979 (list texinfo))
7980 (home-page "https://github.com/purescript-emacs/purescript-mode")
7981 (synopsis "Emacs major mode and related tools for Purescript")
7982 (description "This package provides an Emacs major mode for writing Purescript.")
7983 (license license:gpl3+))))
7984
7985 (define-public emacs-god-mode
7986 (package
7987 (name "emacs-god-mode")
7988 (version "2.17.3")
7989 (source
7990 (origin
7991 (method git-fetch)
7992 (uri (git-reference
7993 (url "https://github.com/chrisdone/god-mode")
7994 (commit version)))
7995 (file-name (git-file-name name version))
7996 (sha256
7997 (base32
7998 "1wsc04l5j5a9y5439qx85pcchxjnjgcgwbffw3l30q9zlblvc58b"))))
7999 (build-system emacs-build-system)
8000 (home-page "https://github.com/chrisdone/god-mode")
8001 (synopsis "Minor mode for entering commands without modifier keys")
8002 (description
8003 "This package provides a global minor mode for entering Emacs commands
8004 without modifier keys. It's similar to Vim's separation of commands and
8005 insertion mode. When enabled all keys are implicitly prefixed with
8006 @samp{C-} (among other helpful shortcuts).")
8007 (license license:gpl3+)))
8008
8009 (define-public emacs-jinja2-mode
8010 (package
8011 (name "emacs-jinja2-mode")
8012 (version "0.2")
8013 (source
8014 (origin
8015 (method git-fetch)
8016 (uri (git-reference
8017 (url "https://github.com/paradoxxxzero/jinja2-mode")
8018 (commit (string-append "v" version))))
8019 (file-name (git-file-name name version))
8020 (sha256
8021 (base32 "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381"))))
8022 (build-system emacs-build-system)
8023 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
8024 (synopsis "Major mode for jinja2")
8025 (description
8026 "Emacs major mode for jinja2 with: syntax highlighting,
8027 sgml/html integration, and indentation (working with sgml).")
8028 (license license:gpl3+)))
8029
8030 (define-public emacs-company-cabal
8031 ;; The latest version is 0.3.0, but no release has been provided after 0.2.1.
8032 (let ((commit "62112a7259e24bd6c08885629a185afe512b7d3d")
8033 (revision "1"))
8034 (package
8035 (name "emacs-company-cabal")
8036 (version (git-version "0.3.0" revision commit))
8037 (source (origin
8038 (method git-fetch)
8039 (uri (git-reference
8040 (url "https://github.com/iquiw/company-cabal/")
8041 (commit commit)))
8042 (file-name (git-file-name name version))
8043 (sha256
8044 (base32
8045 "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg"))))
8046 (build-system emacs-build-system)
8047 (propagated-inputs
8048 (list emacs-company))
8049 (arguments
8050 `(#:include (cons "^tools\\/" %default-include)))
8051 (home-page "https://github.com/iquiw/company-cabal/")
8052 (synopsis "Company completion for Haskell Cabal files")
8053 (description
8054 "This package allows for completion of field names, section names,
8055 field values, and more within @code{haskell-cabal-mode}.")
8056 (license license:gpl3+))))
8057
8058 (define-public emacs-rfcview
8059 (package
8060 (name "emacs-rfcview")
8061 (version "0.13")
8062 (home-page "http://www.loveshack.ukfsn.org/emacs")
8063 (source (origin
8064 (method url-fetch)
8065 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
8066 (sha256
8067 (base32
8068 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
8069 (build-system emacs-build-system)
8070 (synopsis "Prettify Request for Comments (RFC) documents")
8071 (description "The Internet Engineering Task Force (IETF) and the Internet
8072 Society (ISOC) publish various Internet-related protocols and specifications
8073 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
8074 documents. RFCs and STDs are published in a simple text form. This package
8075 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
8076 read these documents in Emacs. It prettifies the text and adds
8077 hyperlinks/menus for easier navigation. It also provides functions for
8078 browsing the index of RFC documents and fetching them from remote servers or
8079 local directories.")
8080 (license license:gpl3+)))
8081
8082 (define-public emacs-ffap-rfc-space
8083 (package
8084 (name "emacs-ffap-rfc-space")
8085 (version "12")
8086 (home-page "https://user42.tuxfamily.org/ffap-rfc-space/index.html")
8087 (source (origin
8088 (method url-fetch)
8089 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
8090 (sha256
8091 (base32
8092 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
8093 (build-system emacs-build-system)
8094 (synopsis "Make ffap recognize an RFC with a space before its number")
8095 (description "The Internet Engineering Task Force (IETF) and the
8096 Internet Society (ISOC) publish various Internet-related protocols and
8097 specifications as \"Request for Comments\" (RFC) documents. The
8098 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
8099 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
8100 and load the appropriate RFC from a remote server. However, it fails
8101 to recognize a name like \"RFC 1234\". This package enhances ffap so
8102 that it correctly finds RFCs even when a space appears before the
8103 number.")
8104 (license license:gpl3+)))
8105
8106 (define-public emacs-feature-mode
8107 (let ((version "20190801")
8108 (revision "1")
8109 (commit "11ae1671629bfedaa553c7b819676d64eb320992"))
8110 (package
8111 (name "emacs-feature-mode")
8112 (version (git-version version revision commit))
8113 (source (origin
8114 (method git-fetch)
8115 (uri (git-reference
8116 (url "https://github.com/michaelklishin/cucumber.el")
8117 (commit commit)))
8118 (file-name (git-file-name name version))
8119 (sha256
8120 (base32
8121 "0yd4gkxz9xcbgibfgr8apsid3f83nmg5jgqk5nql0linj5gymc28"))))
8122 (build-system emacs-build-system)
8123 (arguments
8124 `(#:include (cons* "^features\\/" "snippets\\/" "^support\\/"
8125 %default-include)))
8126 (home-page "https://github.com/michaelklishin/cucumber.el/")
8127 (synopsis "Emacs mode for editing Gherkin plain text user stories")
8128 (description "Major mode for editing Gherkin (popularized by the
8129 Cucumber tool) user stories. Also known by the name @code{cucumber.el}.")
8130 (license license:gpl2+))))
8131
8132 (define-public emacs-org-bullets
8133 (package
8134 (name "emacs-org-bullets")
8135 (version "0.2.4")
8136 (source
8137 (origin
8138 (method git-fetch)
8139 (uri (git-reference
8140 (url "https://github.com/sabof/org-bullets")
8141 (commit version)))
8142 (file-name (git-file-name name version))
8143 (sha256
8144 (base32 "10nr4sjffnqbllv6gmak6pviyynrb7pi5nvrq331h5alm3xcpq0w"))))
8145 (build-system emacs-build-system)
8146 (home-page "https://github.com/sabof/org-bullets")
8147 (synopsis "Show bullets in org-mode as UTF-8 characters")
8148 (description
8149 "This package provides an Emacs minor mode causing bullets in
8150 @code{org-mode} to be rendered as UTF-8 characters.")
8151 (license license:gpl3+)))
8152
8153 (define-public emacs-org-appear
8154 (package
8155 (name "emacs-org-appear")
8156 (version "0.3.0")
8157 (source
8158 (origin
8159 (method git-fetch)
8160 (uri (git-reference
8161 (url "https://github.com/awth13/org-appear")
8162 (commit version)))
8163 (file-name (git-file-name name version))
8164 (sha256
8165 (base32 "1pdf16agcjfzpjvz8kv39abir35rip93nkawxcpjjh4ywsdsbnm6"))))
8166 (build-system emacs-build-system)
8167 (home-page "https://github.com/awth13/org-appear")
8168 (synopsis "Make invisible parts of Org fragments appear visible")
8169 (description "This package enables automatic visibility toggling of
8170 org-mode elements depending on cursor position. Hidden fragment parts appear
8171 when the cursor enters a fragment and disappear when it leaves.")
8172 (license license:expat)))
8173
8174 (define-public emacs-org-drill
8175 (package
8176 (name "emacs-org-drill")
8177 (version "2.7.0")
8178 (source
8179 (origin
8180 (method git-fetch)
8181 (uri (git-reference
8182 (url "https://gitlab.com/phillord/org-drill")
8183 (commit version)))
8184 (file-name (git-file-name name version))
8185 (sha256
8186 (base32 "13y302lyscdqrba1sfx60yf5ji2xi7fbsvjsjbw7hiz63kg6rccy"))))
8187 (build-system emacs-build-system)
8188 (propagated-inputs
8189 (list emacs-org emacs-persist))
8190 (home-page "https://gitlab.com/phillord/org-drill")
8191 (synopsis "Flash card memorization system using Org mode")
8192 (description
8193 "This package uses spaced repetition algorithms to conduct interactive
8194 drill sessions to aid in memorization. In these sessions you are shown flash
8195 cards created in Org mode.")
8196 (license license:gpl3+)))
8197
8198 (define-public emacs-anki-editor
8199 ;; Last release was in 2018.
8200 (let ((commit "546774a453ef4617b1bcb0d1626e415c67cc88df")
8201 (revision "0")
8202 (version "0.3.3"))
8203 (package
8204 (name "emacs-anki-editor")
8205 (version (git-version version revision commit))
8206 (source
8207 (origin
8208 (method git-fetch)
8209 (uri (git-reference
8210 (url "https://github.com/louietan/anki-editor")
8211 (commit commit)))
8212 (file-name (git-file-name name version))
8213 (sha256
8214 (base32 "1if610hq5j8rbjh1caw5bwbgnsn231awwxqbpwvrh966kdxzl4qf"))))
8215 (build-system emacs-build-system)
8216 (propagated-inputs
8217 (list emacs-dash emacs-request))
8218 (home-page "https://github.com/louietan/anki-editor")
8219 (synopsis "Minor mode for making Anki cards with Org mode")
8220 (description
8221 "This package is for people who use Anki as a spaced repetition system
8222 (SRS) but would like to make cards in Org mode.")
8223 (license license:gpl3+))))
8224
8225 (define-public emacs-org-mime
8226 (package
8227 (name "emacs-org-mime")
8228 (version "0.3.1")
8229 (source
8230 (origin
8231 (method git-fetch)
8232 (uri (git-reference
8233 (url "https://github.com/org-mime/org-mime")
8234 (commit version)))
8235 (file-name (git-file-name name version))
8236 (sha256
8237 (base32 "17380kpf08j5ai30nn5iks0k3x8sm3kmz8lkyr1v0qvpr5a8s70b"))))
8238 (build-system emacs-build-system)
8239 (home-page "https://github.com/org-mime/org-mime")
8240 (synopsis "Send HTML email using Org mode HTML export")
8241 (description
8242 "This program sends HTML email using Org-mode HTML export.
8243 This approximates a WYSiWYG HTML mail editor from within Emacs, and can be
8244 useful for sending tables, fontified source code, and inline images in
8245 email.")
8246 (license license:gpl3+)))
8247
8248 (define-public emacs-org-msg
8249 ;; No git tags. The commit below corresponds to the release of version 3.3.
8250 (let ((commit "89e746c0a864031eef940758230bc7263a6f2289"))
8251 (package
8252 (name "emacs-org-msg")
8253 (version "3.3")
8254 (source
8255 (origin
8256 (method git-fetch)
8257 (uri (git-reference
8258 (url "https://github.com/jeremy-compostella/org-msg")
8259 (commit commit)))
8260 (file-name (git-file-name name version))
8261 (sha256
8262 (base32 "15gd5zbxvdallyra9lmpb9i1r2mmwz0j0i0ra7j9imnbfiz3ln9r"))))
8263 (build-system emacs-build-system)
8264 (propagated-inputs
8265 (list emacs-htmlize))
8266 (home-page "https://github.com/jeremy-compostella/org-msg")
8267 (synopsis "Mix Org mode and Message mode to compose emails")
8268 (description
8269 "OrgMsg is a GNU Emacs global minor mode mixing up Org mode and your
8270 Mail User Agent Mode (Message, mu4e, or Notmuch) to compose and reply to
8271 emails in a Outlook HTML friendly style.")
8272 (license license:gpl3+))))
8273
8274 (define-public emacs-org-superstar
8275 (package
8276 (name "emacs-org-superstar")
8277 (version "1.5.0")
8278 (source
8279 (origin
8280 (method git-fetch)
8281 (uri (git-reference
8282 (url "https://github.com/integral-dw/org-superstar-mode")
8283 (commit (string-append "v" version))))
8284 (file-name (git-file-name name version))
8285 (sha256
8286 (base32 "12inin2p6pm6vbv3yc06fx343dsp0vp07fjb35w088akhikmqh2a"))))
8287 (build-system emacs-build-system)
8288 (propagated-inputs
8289 (list emacs-org))
8290 (home-page "https://github.com/integral-dw/org-superstar-mode")
8291 (synopsis "Prettify headings and plain lists in Org mode")
8292 (description "This package prettifies headings and plain lists in
8293 Org mode. It is a direct descendant of @code{org-bullets}, with most
8294 of the code base completely rewritten.
8295
8296 Currently, this package prettifies Org heading lines by:
8297 @itemize
8298 @item replacing trailing bullets by UTF-8 bullets,
8299 @item hiding leading stars, customizing their look or removing them from vision,
8300 @item applying a custom face to the header bullet,
8301 @item applying a custom face to the leading bullets,
8302 @item using double-bullets for inline tasks,
8303 @item (optional) using special bullets for TODO keywords.
8304 @end itemize
8305
8306 It also prettifies Org plain list bullets by:
8307 @itemize
8308 @item replacing each bullet type (*, + and -) with UTF-8 bullets,
8309 @item applying a custom face to item bullets.
8310 @end itemize
8311
8312 Features degrade gracefully when viewed from terminal.")
8313 (license license:gpl3+)))
8314
8315 (define-public emacs-org-pandoc-import
8316 (package
8317 (name "emacs-org-pandoc-import")
8318 (version "1.0")
8319 (source
8320 (origin
8321 (method git-fetch)
8322 (uri (git-reference
8323 (url "https://github.com/tecosaur/org-pandoc-import/")
8324 (commit (string-append "v" version))))
8325 (file-name (git-file-name name version))
8326 (sha256
8327 (base32 "00z9bpm975mlyqlxbyib3j547br6kvcam04b70qkmq22vh8yf341"))))
8328 (build-system emacs-build-system)
8329 (arguments
8330 `(#:include
8331 (cons* "^filters\\/" "^preprocessors" %default-include)
8332 #:phases
8333 (modify-phases %standard-phases
8334 (add-after 'unpack 'patch-exec-paths
8335 (lambda* (#:key inputs #:allow-other-keys)
8336 (let ((pandoc (assoc-ref inputs "pandoc")))
8337 (substitute* "org-pandoc-import.el"
8338 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))))))))
8339 (inputs
8340 (list pandoc))
8341 (home-page "https://github.com/tecosaur/org-pandoc-import/")
8342 (synopsis "Read and edit non-Org file types in Org")
8343 (description
8344 "This package uses Pandoc to convert selected file types to Org. It can
8345 convert supported non-Org files to an Org file with Pandoc.
8346
8347 It can also intercept requests for non-Org files it knows it can convert,
8348 convert the file to a temporary Org file, and open this file instead. On
8349 save, it exports back to the original non-Org file.")
8350 (license license:gpl3+)))
8351
8352 (define-public emacs-org-pomodoro
8353 ;; Last release version was from 2016.
8354 (let ((commit "aa07c11318f91219336197e62c47bc7a3d090479")
8355 (revision "1"))
8356 (package
8357 (name "emacs-org-pomodoro")
8358 (version (git-version "2.1.0" revision commit))
8359 (source
8360 (origin
8361 (method git-fetch)
8362 (uri (git-reference
8363 (url "https://github.com/marcinkoziej/org-pomodoro")
8364 (commit commit)))
8365 (file-name (git-file-name name version))
8366 (sha256
8367 (base32 "0nbprh2nhnmb7ngp9ndr6zr37ashcsvpi5slv7a37x1dl7j6w1k4"))))
8368 (build-system emacs-build-system)
8369 (propagated-inputs
8370 (list emacs-alert))
8371 (arguments
8372 (list
8373 #:include #~(cons "^resources\\/" %default-include)
8374 #:tests? #t
8375 #:test-command
8376 #~(list "emacs" "--batch"
8377 "-l" "org-pomodoro-tests.el"
8378 "-f" "ert-run-tests-batch-and-exit")
8379 #:phases
8380 #~(modify-phases %standard-phases
8381 (add-before 'check 'make-tests-writable
8382 (lambda _
8383 (make-file-writable "org-pomodoro-tests.el")))
8384 (add-before 'check 'add-require
8385 (lambda _
8386 (emacs-batch-edit-file "org-pomodoro-tests.el"
8387 `(progn (progn (goto-char (point-min))
8388 (re-search-forward "ert-deftest")
8389 (beginning-of-line)
8390 (forward-line -1)
8391 (insert "(require 'org-pomodoro)"))
8392 (basic-save-buffer))))))))
8393 (home-page "https://github.com/marcinkoziej/org-pomodoro")
8394 (synopsis "Pomodoro technique for org-mode")
8395 (description "@code{emacs-org-pomodoro} adds very basic support for
8396 Pomodoro technique in Emacs org-mode.
8397
8398 Run @code{M-x org-pomodoro} for the task at point or select one of the
8399 last tasks that you clocked time for. Each clocked-in pomodoro starts
8400 a timer of 25 minutes and after each pomodoro a break timer of 5
8401 minutes is started automatically. Every 4 breaks a long break is
8402 started with 20 minutes. All values are customizable.")
8403 (license license:gpl3+))))
8404
8405 (define-public emacs-org-sidebar
8406 (package
8407 (name "emacs-org-sidebar")
8408 (version "0.3.2")
8409 (source
8410 (origin
8411 (method git-fetch)
8412 (uri (git-reference
8413 (url "https://github.com/alphapapa/org-sidebar")
8414 (commit version)))
8415 (file-name (git-file-name name version))
8416 (sha256
8417 (base32 "1r8kp954ciin4j7j7j8ihdkryf5x09s3ryl7bi9h2j6xqc1ij4wq"))))
8418 (build-system emacs-build-system)
8419 (propagated-inputs
8420 (list emacs-dash emacs-org-super-agenda emacs-org emacs-org-ql
8421 emacs-s))
8422 (home-page "https://github.com/alphapapa/org-sidebar")
8423 (synopsis "Helpful sidebar for Org buffers")
8424 (description "This package provides a sidebar for Org buffers. At the
8425 top is a chronological list of scheduled and deadlined tasks in the current
8426 buffer (similar to the Org agenda ,but without all its features), and below
8427 that is a list of all other non-done to-do items. If the buffer is narrowed,
8428 the sidebar only shows items in the narrowed portion; this allows seeing an
8429 overview of tasks in a subtree.")
8430 (license license:gpl3+)))
8431
8432 (define-public emacs-org-trello
8433 (package
8434 (name "emacs-org-trello")
8435 (version "0.8.2")
8436 (source
8437 (origin
8438 (method git-fetch)
8439 (uri (git-reference
8440 (url "https://github.com/org-trello/org-trello")
8441 (commit version)))
8442 (file-name (git-file-name name version))
8443 (sha256
8444 (base32
8445 "18y5zdjc7zh4jlwz6k1nl13i721rknqm0vp4mxfnmq0sc5a0qva0"))))
8446 (build-system emacs-build-system)
8447 (propagated-inputs
8448 (list emacs-dash
8449 emacs-deferred
8450 emacs-f
8451 emacs-helm
8452 emacs-request
8453 emacs-s))
8454 (home-page "https://org-trello.github.io")
8455 (synopsis "Emacs minor mode for interacting with Trello")
8456 (description "This package provides an Emacs minor mode to extend
8457 @code{org-mode} with Trello abilities. Trello is an online project
8458 organizer.")
8459 (license license:gpl3+)))
8460
8461 (define-public emacs-org-tanglesync
8462 (let ((commit "d99181f173b4e55b4e835d99fcd415e62beb047f")
8463 (revision "2"))
8464 (package
8465 (name "emacs-org-tanglesync")
8466 (version (git-version "0.6" revision commit))
8467 (source
8468 (origin
8469 (method git-fetch)
8470 (uri (git-reference
8471 (url "https://github.com/mtekman/org-tanglesync.el")
8472 (commit commit)))
8473 (file-name (git-file-name name version))
8474 (sha256
8475 (base32 "0x94gy1bgfd1f3p9w2bfrqj11bwy9ql0cpi1gw6srpj7kykx0lml"))))
8476 (build-system emacs-build-system)
8477 (propagated-inputs
8478 (list emacs-org))
8479 (home-page "https://github.com/mtekman/org-tanglesync.el")
8480 (synopsis "Sync Org source blocks with tangled external files")
8481 (description "This package automatically pulls changes from source code
8482 to their corresponding tangled blocks.")
8483 (license license:gpl3+))))
8484
8485 (define-public emacs-company-flow
8486 (let ((commit "76ef585c70d2a3206c2eadf24ba61e59124c3a16")
8487 (revision "1"))
8488 (package
8489 (name "emacs-company-flow")
8490 (version (git-version "0.1.0" revision commit))
8491 (source (origin
8492 (method git-fetch)
8493 (uri (git-reference
8494 (url "https://github.com/aaronjensen/company-flow/")
8495 (commit commit)))
8496 (file-name (git-file-name name version))
8497 (sha256
8498 (base32
8499 "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw"))))
8500 (build-system emacs-build-system)
8501 (propagated-inputs
8502 (list emacs-company emacs-dash))
8503 (home-page "https://github.com/aaronjensen/company-flow/")
8504 (synopsis "Flow backend for @code{company-mode}")
8505 (description
8506 "This package provides completion for JavaScript files utilizing Flow.")
8507 (license license:gpl3+))))
8508
8509 (define-public emacs-habitica
8510 (let ((commit "c45c602ddf9d6cbb0e3baf5cb3e1b7ef90f2759d")
8511 (revision "1"))
8512 (package
8513 (name "emacs-habitica")
8514 (version (git-version "1.0" revision commit))
8515 (source
8516 (origin
8517 (method git-fetch)
8518 (uri (git-reference
8519 (url "https://github.com/abrochard/emacs-habitica")
8520 (commit commit)))
8521 (file-name (git-file-name name version))
8522 (sha256
8523 (base32
8524 "0wgnzn3z98bl28jgqi7xklw9fwx2wwgihj3mq0jb8ah4vn70d0j3"))))
8525 (build-system emacs-build-system)
8526 (home-page "https://github.com/abrochard/emacs-habitica")
8527 (synopsis "Emacs interface for Habitica")
8528 (description "Emacs extension for @uref{https://habitica.com/, Habitica},
8529 a RPG style habit tracker and todo list.")
8530 (license license:gpl3+))))
8531
8532 (define-public emacs-atom-one-dark-theme
8533 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
8534 (revision "0"))
8535 (package
8536 (name "emacs-atom-one-dark-theme")
8537 (version (git-version "0.4.0" revision commit))
8538 (source (origin
8539 (method git-fetch)
8540 (uri (git-reference
8541 (url "https://github.com/jonathanchu/atom-one-dark-theme")
8542 (commit commit)))
8543 (sha256
8544 (base32
8545 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
8546 (file-name (git-file-name name version))))
8547 (build-system emacs-build-system)
8548 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
8549 (synopsis "Atom One Dark color theme for Emacs")
8550 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
8551 (license license:gpl3+))))
8552
8553 (define-public emacs-zenburn-theme
8554 (package
8555 (name "emacs-zenburn-theme")
8556 (version "2.7.0")
8557 (source
8558 (origin
8559 (method git-fetch)
8560 (uri (git-reference
8561 (url "https://github.com/bbatsov/zenburn-emacs")
8562 (commit (string-append "v" version))))
8563 (file-name (git-file-name name version))
8564 (sha256
8565 (base32 "1991s1gz2i3jchf0yvcsjjb5flwn13ifbnnfkqqrxxvy2imfh18q"))))
8566 (build-system emacs-build-system)
8567 (home-page "https://github.com/bbatsov/zenburn-emacs")
8568 (synopsis "Low contrast color theme for Emacs")
8569 (description
8570 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
8571 It is built on top of the custom theme support in Emacs 24 or later.")
8572 (license license:gpl3+)))
8573
8574 (define-public emacs-moe-theme-el
8575 (package
8576 (name "emacs-moe-theme-el")
8577 (version "1.0.1")
8578 (source
8579 (origin
8580 (method git-fetch)
8581 (uri (git-reference
8582 (url "https://github.com/kuanyui/moe-theme.el")
8583 (commit (string-append "v" version))))
8584 (file-name (git-file-name name version))
8585 (sha256
8586 (base32 "14higsv6h0pka90gr25a3yxh95xn65l6qxb39mmdzkfdlnzsg664"))))
8587 (build-system emacs-build-system)
8588 (home-page "https://github.com/kuanyui/moe-theme.el")
8589 (synopsis "Anime-inspired color themes")
8590 (description
8591 "This package provides vibrant color schemes with light and dark
8592 variants.")
8593 (license license:gpl3+)))
8594
8595 (define-public emacs-solarized-theme
8596 (package
8597 (name "emacs-solarized-theme")
8598 (version "2.0.0")
8599 (source
8600 (origin
8601 (method git-fetch)
8602 (uri (git-reference
8603 (url "https://github.com/bbatsov/solarized-emacs/")
8604 (commit (string-append "v" version))))
8605 (file-name (git-file-name name version))
8606 (sha256
8607 (base32 "17z6cj8ids88xj2i6zs1s0mxs0fhn3gr7g5nhhy8s8khnzmyy2vj"))))
8608 (build-system emacs-build-system)
8609 (propagated-inputs
8610 (list emacs-dash))
8611 (home-page "https://github.com/bbatsov/solarized-emacs")
8612 (synopsis "Port of the Solarized theme for Emacs")
8613 (description
8614 "Solarized for Emacs is a port of the Solarized theme for Vim. This
8615 package provides a light and a dark variant.")
8616 (license license:gpl3+)))
8617
8618 (define-public emacs-poet-theme
8619 (let ((commit "16eb694f0755c04c4db98614d0eca1199fddad70")
8620 (revision "1"))
8621 (package
8622 (name "emacs-poet-theme")
8623 (version (git-version "0" revision commit))
8624 (source
8625 (origin
8626 (method git-fetch)
8627 (uri (git-reference
8628 (url "https://github.com/kunalb/poet")
8629 (commit commit)))
8630 (file-name (git-file-name name version))
8631 (sha256
8632 (base32
8633 "0zm8jbviddyj7jnyssh77jx43jghbpjwr77n9s3cjp3bmadwkrv5"))))
8634 (build-system emacs-build-system)
8635 (home-page "https://github.com/kunalb/poet/")
8636 (synopsis "Emacs theme for prose")
8637 (description
8638 "Emacs has very good support for multiple fonts in a single file. Poet
8639 uses this support to make it much more convenient to write prose within Emacs,
8640 with particular attention paid to @code{org-mode} and @code{markdown-mode}.
8641 Code blocks, tables, etc are formatted in monospace text with the appropriate
8642 backgrounds.")
8643 (license license:expat))))
8644
8645 (define-public emacs-ahungry-theme
8646 (package
8647 (name "emacs-ahungry-theme")
8648 (version "1.10.0")
8649 (source
8650 (origin (method url-fetch)
8651 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
8652 version ".tar"))
8653 (sha256
8654 (base32
8655 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
8656 (build-system emacs-build-system)
8657 (home-page "https://github.com/ahungry/color-theme-ahungry")
8658 (synopsis "Ahungry color theme for Emacs")
8659 (description "Ahungry theme for Emacs provides bright and bold colors.
8660 If you load it from a terminal, you will be able to make use of the
8661 transparent background. If you load it from a GUI, it will default to a
8662 dark background.")
8663 (license license:gpl3+)))
8664
8665 (define-public emacs-color-theme-modern
8666 ;; No release since October 2019
8667 (let ((commit "74ad69bbca6fcfff3c0960d888c7c9c1f9f3e2e8")
8668 (revision "1"))
8669 (package
8670 (name "emacs-color-theme-modern")
8671 (version (git-version "0.0.3" revision commit))
8672 (source (origin
8673 (method git-fetch)
8674 (uri (git-reference
8675 (url "https://github.com/emacs-jp/replace-colorthemes.git")
8676 (commit commit)))
8677 (file-name (git-file-name name version))
8678 (sha256
8679 (base32
8680 "13ff4s372wsl5x13vh4vywhi6qcc54gybhp6rxl0r1l4wxidanwn"))))
8681 (build-system emacs-build-system)
8682 (home-page "https://github.com/emacs-jp/replace-colorthemes")
8683 (synopsis "Emacs color themes implemented via built-in customization")
8684 (description "This package contains several themes that were originally
8685 implemented with the venerable @code{color-themes} package, ported to Emacs'
8686 built-in custom themes.")
8687 (license license:gpl3+))))
8688
8689 (define-public emacs-gruvbox-theme
8690 (package
8691 (name "emacs-gruvbox-theme")
8692 (version "1.28.0")
8693 (source (origin
8694 (method git-fetch)
8695 (uri (git-reference
8696 (url "https://github.com/greduan/emacs-theme-gruvbox")
8697 (commit version)))
8698 (file-name (git-file-name name version))
8699 (sha256
8700 (base32
8701 "00qq92gp1g55pzm97rh7k0dgxy44pxziridl8kqm4rbpi31r7k9p"))))
8702 (build-system emacs-build-system)
8703 (propagated-inputs
8704 (list emacs-autothemer))
8705 (home-page "https://github.com/greduan/emacs-theme-gruvbox")
8706 (synopsis "Gruvbox is a retro groove color scheme ported from Vim")
8707 (description
8708 "Gruvbox is heavily inspired by badwolf, jellybeans and solarized.
8709
8710 Designed as a bright theme with pastel 'retro groove' colors and light/dark
8711 mode switching in the way of solarized. The main focus when developing gruvbox
8712 is to keep colors easily distinguishable, contrast enough and still pleasant
8713 for the eyes.")
8714 (license license:expat))) ; MIT license
8715
8716 (define-public emacs-spacegray-theme
8717 (let ((commit "9826265c2bceb2ebc1c5e16a45021da0253ace97")
8718 (revision "0"))
8719 (package
8720 (name "emacs-spacegray-theme")
8721 (version (git-version "0" revision commit))
8722 (source (origin
8723 (method git-fetch)
8724 (uri (git-reference
8725 (url "https://github.com/bruce/emacs-spacegray-theme")
8726 (commit commit)))
8727 (file-name (git-file-name name version))
8728 (sha256
8729 (base32
8730 "0aplwmm17ypbns5blc4rf5rr6dasj0zp5ibykpfl43fh4bd8z89n"))))
8731 (build-system emacs-build-system)
8732 (home-page "https://github.com/bruce/emacs-spacegray-theme")
8733 (synopsis "Port of Sublime Text's Spacegray theme for Emacs")
8734 (description
8735 "@code{spacegray-theme} is an Emacs port of the Spacegray theme from
8736 Sublime Text. It features a dark blue/gray background and soft blue, green,
8737 orange and red as accent colors.")
8738 (license license:expat)))) ; MIT license
8739
8740 (define-public emacs-org-cv
8741 ;; There are no tagged releases.
8742 (let ((commit "24bcd82348d441d95c2c80fb8ef8b5d6d4b80d95")
8743 (revision "0"))
8744 (package
8745 (name "emacs-org-cv")
8746 (version (git-version "0" revision commit))
8747 (source
8748 (origin
8749 (method git-fetch)
8750 (uri (git-reference
8751 (url "https://gitlab.com/Titan-C/org-cv")
8752 (commit commit)))
8753 (file-name (git-file-name name version))
8754 (sha256
8755 (base32 "0zcnbxvlwi4d6vzsm3ag7z74qphdigmx303gppb9d614jnsfsdg2"))))
8756 (build-system emacs-build-system)
8757 (propagated-inputs
8758 (list emacs-ox-hugo))
8759 (home-page "https://titan-c.gitlab.io/org-cv/")
8760 (synopsis "Collection of export backends for Org to generate a CV")
8761 (description
8762 "This project exports an Org file with reasonably structured items into
8763 a LaTeX file, which compiles into a nice CV. In the same spirit, the Org file
8764 may export to Markdown so that it can be used for a web based CV.")
8765 (license license:gpl3+))))
8766
8767 (define-public emacs-ox-gfm
8768 (package
8769 (name "emacs-ox-gfm")
8770 (version "1.0")
8771 (source (origin
8772 (method git-fetch)
8773 (uri (git-reference
8774 (url "https://github.com/larstvei/ox-gfm")
8775 (commit (string-append "v" version))))
8776 (sha256
8777 (base32
8778 "0drdypmgxk3238hmkqw9s3cw9wv94cyfqar5ar0bv0k69s92pxj8"))))
8779 (build-system emacs-build-system)
8780 (home-page "https://github.com/larstvei/ox-gfm")
8781 (synopsis "Github Flavored Markdown Back-End for Org Export Engine")
8782 (description "This package is a small exporter based on the Markdown
8783 exporter already existing in Org mode. It supports the Github flavored
8784 markdown features.")
8785 (license license:gpl3+)))
8786
8787 (define-public emacs-2048-game
8788 (package
8789 (name "emacs-2048-game")
8790 (version "20151026.1233")
8791 (source
8792 (origin
8793 (method url-fetch)
8794 (uri (string-append "https://melpa.org/packages/2048-game-"
8795 version ".el"))
8796 (sha256
8797 (base32
8798 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
8799 (build-system emacs-build-system)
8800 (home-page "https://hg.sr.ht/~zck/game-2048")
8801 (synopsis "Implementation of the game 2048 in Emacs Lisp")
8802 (description
8803 "This program is an implementation of 2048 for Emacs.
8804 The goal of this game is to create a tile with value 2048. The size of the
8805 board and goal value can be customized.")
8806 (license license:gpl3+)))
8807
8808 (define-public emacs-chess
8809 (package
8810 (name "emacs-chess")
8811 (version "2.0.5")
8812 (source
8813 (origin
8814 (method url-fetch)
8815 (uri (string-append "https://elpa.gnu.org/packages/"
8816 "chess-" version ".tar"))
8817 (sha256
8818 (base32 "1a4iwjdh6k348df6qywjws9z9f862d62m0b2sz57z4xhywiyxpr7"))))
8819 (build-system emacs-build-system)
8820 (arguments
8821 (list
8822 #:phases
8823 #~(modify-phases %standard-phases
8824 (add-after 'install 'install-pieces
8825 (lambda _
8826 (let ((pieces
8827 (string-append #$output "/share/emacs/site-lisp/chess-"
8828 #$version "/pieces")))
8829 (mkdir-p pieces)
8830 (copy-recursively "pieces" pieces)))))))
8831 (home-page "https://elpa.gnu.org/packages/chess.html")
8832 (synopsis "Play chess in GNU Emacs")
8833 (description
8834 "Chess is an Emacs Lisp library and several clients on top of the
8835 underlying library functionality for performing various activities related to
8836 the game of chess.")
8837 (license license:gpl3+)))
8838
8839 (define-public emacs-4clojure
8840 ;; There is no release. Base version is extracted from Version keyword in
8841 ;; the main file.
8842 (let ((commit "4eccf8c7d4341a36c269451838114b27836699f9")
8843 (revision "1"))
8844 (package
8845 (name "emacs-4clojure")
8846 (version (git-version "0.2.1" revision commit))
8847 (source
8848 (origin
8849 (method git-fetch)
8850 (uri (git-reference
8851 (url "https://github.com/emacsorphanage/4clojure")
8852 (commit commit)))
8853 (file-name (git-file-name name version))
8854 (sha256
8855 (base32 "19x653lzc1dxil4ix257hciidbdmbhaxhs6qhlkwi9ygjrlrgvnk"))))
8856 (build-system emacs-build-system)
8857 (propagated-inputs
8858 (list emacs-request))
8859 (home-page "https://github.com/emacsorphanage/4clojure/")
8860 (synopsis "Open and evaluate 4clojure questions in Emacs")
8861 (description "Emacs 4clojure interacts with
8862 @url{http://www.4clojure.com, 4clojure} problems. You can open a specific
8863 question and move to the next or previous one. You can also verify your
8864 answers.")
8865 (license license:gpl3+))))
8866
8867 (define-public emacs-base16-theme
8868 (package
8869 (name "emacs-base16-theme")
8870 (version "3.0")
8871 (source
8872 (origin
8873 (method git-fetch)
8874 (uri (git-reference
8875 (url "https://github.com/belak/base16-emacs")
8876 (commit version)))
8877 (file-name (git-file-name name version))
8878 (sha256
8879 (base32 "0qp71j77zg8gippcn277s0j5a9n6dbwv3kdp2nya6li4b412vgba"))))
8880 (build-system emacs-build-system)
8881 (arguments
8882 (list #:include #~(cons "^build\\/.*\\.el$" %default-include)
8883 #:phases
8884 #~(modify-phases %standard-phases
8885 (add-after 'install 'mv-themes
8886 (lambda _
8887 (use-modules (ice-9 regex))
8888 (let ((theme-dir (string-append (elpa-directory #$output)
8889 "/build")))
8890 (for-each (lambda (theme)
8891 (rename-file
8892 theme
8893 (regexp-substitute #f
8894 (string-match "build\\/"
8895 theme)
8896 'pre 'post)))
8897 (find-files theme-dir "\\.el$"))
8898 (delete-file-recursively theme-dir)))))))
8899 (home-page "https://github.com/belak/base16-emacs")
8900 (synopsis "Base16 color themes for Emacs")
8901 (description
8902 "Base16 provides carefully chosen syntax highlighting and a default set
8903 of sixteen colors suitable for a wide range of applications. Base16 is not a
8904 single theme but a set of guidelines with numerous implementations.")
8905 (license license:expat)))
8906
8907 (define-public emacs-solaire-mode
8908 (package
8909 (name "emacs-solaire-mode")
8910 (version "2.0.4")
8911 (source
8912 (origin
8913 (method git-fetch)
8914 (uri (git-reference
8915 (url "https://github.com/hlissner/emacs-solaire-mode")
8916 (commit (string-append "v" version))))
8917 (file-name (git-file-name name version))
8918 (sha256
8919 (base32 "1lkm09wznal0grpz61ikc77mjrri1x1bi79qwyf1cah9s0wv3isq"))))
8920 (build-system emacs-build-system)
8921 (home-page "https://github.com/hlissner/emacs-solaire-mode")
8922 (synopsis "Change background of file-visiting buffers in Emacs")
8923 (description
8924 "@code{solaire-mode} is inspired by editors which visually distinguish
8925 code-editing windows from sidebars, popups, terminals, ecetera. It changes the
8926 background of file-visiting buffers (and certain aspects of the UI) to make
8927 them easier to distinguish from other, less important buffers.")
8928 (license license:expat)))
8929
8930 (define-public emacs-embark
8931 (package
8932 (name "emacs-embark")
8933 (version "0.17")
8934 (source
8935 (origin
8936 (method git-fetch)
8937 (uri (git-reference
8938 (url "https://github.com/oantolin/embark")
8939 (commit version)))
8940 (sha256
8941 (base32 "1s0ssf4q9kg4c5w87h2ypyvrhi31mz3s6k4h7pxi9a47lkccq8n1"))
8942 (file-name (git-file-name name version))))
8943 (build-system emacs-build-system)
8944 (propagated-inputs
8945 (list emacs-avy emacs-consult))
8946 (home-page "https://github.com/oantolin/embark")
8947 (synopsis "Emacs mini-buffer actions rooted in keymaps")
8948 (description
8949 "This package provides a sort of right-click contextual menu for Emacs
8950 offering you relevant @emph{actions} to use on a @emph{target} determined by
8951 the context.
8952
8953 In the minibuffer, the target is the current best completion candidate. In
8954 the @code{*Completions*} buffer the target is the completion at point. In
8955 a regular buffer, the target is the region if active, or else the file, symbol
8956 or URL at point.
8957
8958 The type of actions offered depend on the type of the target. For files you
8959 get offered actions like deleting, copying, renaming, visiting in another
8960 window, running a shell command on the file, etc. For buffers the actions
8961 include switching to or killing the buffer. For package names the actions
8962 include installing, removing or visiting the homepage.")
8963 (license license:gpl3+)))
8964
8965 (define-public emacs-prescient
8966 (package
8967 (name "emacs-prescient")
8968 (version "5.2")
8969 (source
8970 (origin
8971 (method git-fetch)
8972 (uri (git-reference
8973 (url "https://github.com/raxod502/prescient.el")
8974 (commit (string-append "v" version))))
8975 (file-name (git-file-name name version))
8976 (sha256
8977 (base32 "024l7s0b6apbzanw3cnhjypxnxfinfb5b3nhaabrc138m5pis8j5"))))
8978 (build-system emacs-build-system)
8979 (propagated-inputs
8980 (list emacs-company emacs-ivy emacs-selectrum))
8981 (home-page "https://github.com/raxod502/prescient.el/")
8982 (synopsis "Emacs library for sorting and filtering candidates")
8983 (description
8984 "Prescient is a library for sorting and filtering, as well as extensions
8985 for Ivy and Company that make use of the library.")
8986 (license license:expat)))
8987
8988 (define-public emacs-selectrum
8989 (package
8990 (name "emacs-selectrum")
8991 (version "3.1")
8992 (source
8993 (origin
8994 (method git-fetch)
8995 (uri (git-reference
8996 (url "https://github.com/raxod502/selectrum")
8997 (commit (string-append "v" version))))
8998 (file-name (git-file-name name version))
8999 (sha256
9000 (base32 "02jrki6vzyfyi1bbslki5pk2348flh9dz18jkc4y7p60bvbr52cb"))))
9001 (build-system emacs-build-system)
9002 (home-page "https://github.com/raxod502/selectrum/")
9003 (synopsis "Incremental narrowing in Emacs")
9004 (description "Selectrum is a solution for incremental narrowing in
9005 Emacs, replacing Helm, Ivy, and IDO. Its design philosophy is based
9006 on choosing the right abstractions and prioritizing consistency and
9007 predictability over special-cased improvements for particular cases.
9008 As such, Selectrum follows existing Emacs conventions where they exist
9009 and are reasonable, and it declines to implement features which have
9010 marginal benefit compared to the additional complexity of a new
9011 interface.")
9012 (license license:expat)))
9013
9014 (define-public emacs-orderless
9015 (package
9016 (name "emacs-orderless")
9017 (version "0.7")
9018 (source
9019 (origin
9020 (method git-fetch)
9021 (uri (git-reference
9022 (url "https://github.com/oantolin/orderless")
9023 (commit version)))
9024 (sha256
9025 (base32 "0m9nyz80j0qnn14drbgk8vn5yr7sv0z6yiz8w95ahcw2qwlgyjs7"))
9026 (file-name (git-file-name name version))))
9027 (build-system emacs-build-system)
9028 (arguments
9029 `(#:phases
9030 (modify-phases %standard-phases
9031 (add-after 'install 'makeinfo
9032 (lambda* (#:key outputs #:allow-other-keys)
9033 (invoke "makeinfo" "orderless.texi")
9034 (install-file "orderless.info"
9035 (string-append (assoc-ref outputs "out")
9036 "/share/info")))))))
9037 (native-inputs
9038 (list texinfo))
9039 (home-page "https://github.com/oantolin/orderless")
9040 (synopsis "Emacs completion style that matches multiple regexps in any order")
9041 (description "This package provides an orderless completion style that
9042 divides the pattern into space-separated components, and matches candidates
9043 that match all of the components in any order. Each component can match in
9044 any one of several ways: literally, as a regexp, as an initialism, in the flex
9045 style, or as multiple word prefixes.")
9046 (license license:gpl3+)))
9047
9048 (define-public emacs-consult
9049 (package
9050 (name "emacs-consult")
9051 (version "0.18")
9052 (source
9053 (origin
9054 (method git-fetch)
9055 (uri (git-reference
9056 (url "https://github.com/minad/consult")
9057 (commit version)))
9058 (sha256
9059 (base32 "0sy4rn1vjk1g50r8z14hzj8lds6s7ij2zkjqfi6mfash5il75wnq"))
9060 (file-name (git-file-name name version))))
9061 (build-system emacs-build-system)
9062 (propagated-inputs (list emacs-compat))
9063 (home-page "https://github.com/minad/consult")
9064 (synopsis "Consulting completing-read")
9065 (description "This package provides various handy commands based on the
9066 Emacs completion function completing-read, which allows quickly selecting from a
9067 list of candidates.")
9068 (license license:gpl3+)))
9069
9070 (define-public emacs-consult-dir
9071 (package
9072 (name "emacs-consult-dir")
9073 (version "0.1")
9074 (source (origin
9075 (method git-fetch)
9076 (uri (git-reference
9077 (url "https://github.com/karthink/consult-dir")
9078 (commit (string-append "v" version))))
9079 (sha256
9080 (base32 "1cff4ssrn1mw2s5n090pdmwdirnfih8idg5f0ll2bi2djc4hq5kn"))
9081 (file-name (git-file-name name version))))
9082 (build-system emacs-build-system)
9083 (propagated-inputs (list emacs-consult))
9084 (home-page "https://github.com/karthink/consult-dir")
9085 (synopsis "Insert paths into minibuffer prompts in Emacs")
9086 (description "Consult-dir allows you to easily insert directory
9087 paths into the minibuffer prompt in Emacs.
9088
9089 When using the minibuffer, you can switch---with completion and filtering
9090 provided by your completion setup---to any directory you’ve visited recently,
9091 or to a project or bookmarked directory. The minibuffer prompt will be
9092 replaced with the directory you choose.")
9093 (license license:gpl3+)))
9094
9095 (define-public emacs-consult-notmuch
9096 (package
9097 (name "emacs-consult-notmuch")
9098 (version "0.7")
9099 (source
9100 (origin
9101 (method git-fetch)
9102 (uri (git-reference
9103 (url "https://codeberg.org/jao/consult-notmuch")
9104 (commit version)))
9105 (file-name (git-file-name name version))
9106 (sha256
9107 (base32 "0xzpkpf2sb89qkbqcrwddp4pgnzdjp40bc5da22jq9r4pf67y7qs"))))
9108 (build-system emacs-build-system)
9109 (propagated-inputs
9110 (list emacs-consult emacs-notmuch))
9111 (home-page "https://codeberg.org/jao/consult-notmuch")
9112 (synopsis "Search and preview Notmuch emails using Consult")
9113 (description
9114 "This package provides two commands using consult to query Notmuch emails
9115 and present results either as single emails or full trees.")
9116 (license license:gpl3+)))
9117
9118 (define-public emacs-consult-eglot
9119 (package
9120 (name "emacs-consult-eglot")
9121 (version "0.2.0")
9122 (source (origin
9123 (method git-fetch)
9124 (uri (git-reference
9125 (url "https://github.com/mohkale/consult-eglot")
9126 (commit (string-append "v" version))))
9127 (sha256
9128 (base32 "1qxk1npxbf8m3g9spikgdxcf6mzjx6cwy3f5vn6zz5ksh14xw3sd"))
9129 (file-name (git-file-name name version))))
9130 (build-system emacs-build-system)
9131 (propagated-inputs (list emacs-consult emacs-eglot))
9132 (home-page "https://github.com/mohkale/consult-eglot")
9133 (synopsis "Consulting-read interface for eglot")
9134 (description "This package acts as a parallel of consult-lsp for eglot and
9135 provides a front-end interface for the workspace/symbols LSP procedure
9136 call.")
9137 (license license:gpl3+)))
9138
9139 (define-public emacs-marginalia
9140 (package
9141 (name "emacs-marginalia")
9142 (version "0.13")
9143 (source
9144 (origin
9145 (method git-fetch)
9146 (uri (git-reference
9147 (url "https://github.com/minad/marginalia")
9148 (commit version)))
9149 (file-name (git-file-name name version))
9150 (sha256
9151 (base32 "1qk6j7l39z92h4kvvbwcs85ilyx3d6y0l8zm33iar2pjnyks1kq3"))))
9152 (build-system emacs-build-system)
9153 (home-page "https://github.com/minad/marginalia")
9154 (synopsis "Marginalia in the minibuffer completions")
9155 (description
9156 "This package provides Marginalia mode which adds marginalia to the
9157 minibuffer completions. Marginalia are marks or annotations placed at the
9158 margin of the page of a book or in this case helpful colorful annotations
9159 placed at the margin of the minibuffer for your completion candidates.")
9160 (license license:gpl3+)))
9161
9162 (define-public emacs-smartparens
9163 (package
9164 (name "emacs-smartparens")
9165 (version "1.11.0")
9166 (source
9167 (origin
9168 (method git-fetch)
9169 (uri (git-reference
9170 (url "https://github.com/Fuco1/smartparens")
9171 (commit version)))
9172 (file-name (git-file-name name version))
9173 (sha256
9174 (base32 "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6"))))
9175 (build-system emacs-build-system)
9176 (propagated-inputs
9177 (list emacs-dash emacs-markdown-mode))
9178 (home-page "https://github.com/Fuco1/smartparens")
9179 (synopsis "Paredit-like insertion, wrapping and navigation with user
9180 defined pairs")
9181 (description
9182 "Smartparens is a minor mode for Emacs that deals with parens pairs
9183 and tries to be smart about it. It started as a unification effort to
9184 combine functionality of several existing packages in a single,
9185 compatible and extensible way to deal with parentheses, delimiters, tags
9186 and the like. Some of these packages include autopair, textmate,
9187 wrap-region, electric-pair-mode, paredit and others. With the basic
9188 features found in other packages it also brings many improvements as
9189 well as completely new features.")
9190 (license license:gpl3+)))
9191
9192 (define-public emacs-dumbparens
9193 ;; There are no releases.
9194 (let ((commit "18b668772f25e5f7b62c0a000b8169eaf7515057")
9195 (revision "0"))
9196 (package
9197 (name "emacs-dumbparens")
9198 (version (git-version "0" revision commit))
9199 (source
9200 (origin
9201 (method git-fetch)
9202 (uri
9203 (git-reference
9204 (url "https://github.com/raxod502/dumbparens")
9205 (commit commit)))
9206 (file-name (git-file-name name version))
9207 (sha256
9208 (base32 "0xv2yzjzq2450z007jppf86knnwzb2s3sxvqyk1yp6qs9mgrmnyp"))))
9209 (build-system emacs-build-system)
9210 (arguments
9211 (list
9212 #:tests? #t
9213 #:test-command #~(list "make" "test")))
9214 (home-page "https://github.com/raxod502/dumbparens/")
9215 (synopsis "Minor mode that provides improvements on Smartparens")
9216 (description
9217 "@code{emacs-dumbparens} is a minor mode for Emacs that deals with parens
9218 pairs and doesn't try to be smart about it.")
9219 (license license:expat))))
9220
9221 (define-public emacs-highlight-symbol
9222 ;; We prefer a more recent commit that provides an option to squelch
9223 ;; echo-area alerts that can drown out useful information like eldoc
9224 ;; messages.
9225 (let ((commit "7a789c779648c55b16e43278e51be5898c121b3a")
9226 (version "1.3")
9227 (revision "1"))
9228 (package
9229 (name "emacs-highlight-symbol")
9230 (version (git-version version revision commit))
9231 (source
9232 (origin
9233 (method git-fetch)
9234 (uri (git-reference
9235 (url "https://github.com/nschum/highlight-symbol.el")
9236 (commit commit)))
9237 (file-name (git-file-name name version))
9238 (sha256
9239 (base32 "19cgyk0sh8nsmf3jbi92i8qsdx4l4yilfq5jj9zfdbj9p5gvwx96"))))
9240 (build-system emacs-build-system)
9241 (home-page "https://nschum.de/src/emacs/highlight-symbol/")
9242 (synopsis "Automatic and manual symbol highlighting for Emacs")
9243 (description
9244 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
9245 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
9246 the symbol at point highlighted.
9247
9248 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
9249 @code{highlight-symbol-next-in-defun} and
9250 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
9251 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
9252 bindings @code{M-p} and @code{M-p} for navigation. When
9253 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
9254 regardless of @code{highlight-symbol-idle-delay}.
9255
9256 @code{highlight-symbol-query-replace} can be used to replace the symbol.")
9257 (license license:gpl2+))))
9258
9259 (define-public emacs-symbol-overlay
9260 (package
9261 (name "emacs-symbol-overlay")
9262 (version "4.2")
9263 (source
9264 (origin
9265 (method git-fetch)
9266 (uri (git-reference
9267 (url "https://github.com/wolray/symbol-overlay")
9268 (commit version)))
9269 (file-name (git-file-name name version))
9270 (sha256
9271 (base32 "10n0871xzycifyqp73xnbqmrgy60imlb26yhm3p6vfj3d84mg1b2"))))
9272 (build-system emacs-build-system)
9273 (home-page "https://github.com/wolray/symbol-overlay")
9274 (synopsis "Highlight symbols and perform various search operations on them")
9275 (description
9276 "This package provides functions for highlighting and navigating
9277 between symbols.")
9278 (license license:gpl3+)))
9279
9280 (define-public emacs-hl-todo
9281 (package
9282 (name "emacs-hl-todo")
9283 (version "3.3.0")
9284 (source (origin
9285 (method git-fetch)
9286 (uri (git-reference
9287 (url "https://github.com/tarsius/hl-todo")
9288 (commit (string-append "v" version))))
9289 (file-name (git-file-name name version))
9290 (sha256
9291 (base32
9292 "0bdwdp8d0g7n0kv6l4h7alya3z6fsfi618dzw5x8f2az3r87yg8y"))))
9293 (build-system emacs-build-system)
9294 (home-page "https://github.com/tarsius/hl-todo")
9295 (synopsis "Emacs mode to highlight TODO and similar keywords")
9296 (description
9297 "This package provides an Emacs mode to highlight TODO and similar
9298 keywords in comments and strings. This package also provides commands for
9299 moving to the next or previous keyword and to invoke @code{occur} with a
9300 regexp that matches all known keywords.")
9301 (license license:gpl3+)))
9302
9303 (define-public emacs-perspective
9304 (package
9305 (name "emacs-perspective")
9306 (version "2.17")
9307 (source
9308 (origin
9309 (method git-fetch)
9310 (uri (git-reference
9311 (url "https://github.com/nex3/perspective-el")
9312 (commit version)))
9313 (file-name (git-file-name name version))
9314 (sha256
9315 (base32 "1nmz39pcaa969g1966ykblzrz6lr3ddb0ip465y5in1fj498as6y"))))
9316 (build-system emacs-build-system)
9317 (arguments
9318 `(#:tests? #t
9319 #:test-command '("emacs" "-Q" "-batch" "-L" "."
9320 "-l" "test/test-perspective.el"
9321 "-f" "ert-run-tests-batch-and-exit")))
9322 (home-page "https://github.com/nex3/perspective-el")
9323 (synopsis "Switch between named \"perspectives\"")
9324 (description
9325 "This package provides tagged workspaces in Emacs, similar to workspaces in
9326 windows managers such as Awesome and XMonad. @code{perspective.el} provides
9327 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
9328 perspective is composed of a window configuration and a set of buffers.
9329 Switching to a perspective activates its window configuration, and when in a
9330 perspective only its buffers are available by default.")
9331 ;; This package is released under the same license as Emacs (GPLv3+) or
9332 ;; the Expat license.
9333 (license license:gpl3+)))
9334
9335 (define-public emacs-persp-mode
9336 (package
9337 (name "emacs-persp-mode")
9338 (version "2.9.8")
9339 (source
9340 (origin
9341 (method git-fetch)
9342 (uri (git-reference
9343 (url "https://github.com/Bad-ptr/persp-mode.el")
9344 (commit (string-append "v" version))))
9345 (file-name (git-file-name name version))
9346 (sha256
9347 (base32
9348 "0b4y7a6j70s9lvr37riyy9k5kh3yvmx0m6nd9c0c8572ji4ij65g"))))
9349 (build-system emacs-build-system)
9350 (home-page "https://github.com/Bad-ptr/persp-mode.el")
9351 (synopsis "Switch between named \"perspectives\" shared among frames")
9352 (description
9353 "This package extends @code{perspective.el} to enable perspectives that
9354 can be saved to and restored from a file.")
9355 (license license:gpl2+)))
9356
9357 (define-public emacs-eyebrowse
9358 ;; XXX: Upstream has no tagged release. Version is extracted from keyword
9359 ;; in main file.
9360 (let ((commit "88c7b59aa7c5c93bc23812217213adfa238f977b")
9361 (revision "0"))
9362 (package
9363 (name "emacs-eyebrowse")
9364 (version (git-version "0.7.8" revision commit))
9365 (source
9366 (origin
9367 (method git-fetch)
9368 (uri (git-reference
9369 (url "https://depp.brause.cc/eyebrowse.git")
9370 (commit commit)))
9371 (file-name (git-file-name name version))
9372 (sha256
9373 (base32 "09s07mvg5bz3dm9sxgn40c7z6d6ry1sdjzsxwgmy825f3xm66avs"))))
9374 (build-system emacs-build-system)
9375 (propagated-inputs
9376 (list emacs-dash))
9377 (home-page "https://depp.brause.cc/eyebrowse/")
9378 (synopsis "Simple-minded way to manage window configs in Emacs")
9379 (description
9380 "Eyebrowse is a global minor mode for Emacs that allows you to manage
9381 your window configurations in a simple manner, just like tiling window
9382 managers like i3wm with their workspaces do. It displays their current state
9383 in the modeline by default.")
9384 (license license:gpl3+))))
9385
9386 (define-public emacs-test-simple
9387 (package
9388 (name "emacs-test-simple")
9389 (version "1.3.0")
9390 (source
9391 (origin
9392 (method url-fetch)
9393 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
9394 version ".el"))
9395 (sha256
9396 (base32
9397 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
9398 (build-system emacs-build-system)
9399 (home-page "https://github.com/rocky/emacs-test-simple")
9400 (synopsis "Simple unit test framework for Emacs Lisp")
9401 (description
9402 "Test Simple is a simple unit test framework for Emacs Lisp. It
9403 alleviates the need for context macros, enclosing specifications or required
9404 test tags. It supports both interactive and non-interactive use.")
9405 (license license:gpl3+)))
9406
9407 (define-public emacs-load-relative
9408 (package
9409 (name "emacs-load-relative")
9410 (version "1.3.1")
9411 (source
9412 (origin
9413 (method url-fetch)
9414 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
9415 version ".el"))
9416 (sha256
9417 (base32 "1m37scr82lqqy954fchjxrmdh4lngrl4d1yzxhp3yfjhsydizhrj"))))
9418 (build-system emacs-build-system)
9419 (home-page "https://github.com/rocky/emacs-load-relative")
9420 (synopsis "Emacs Lisp relative file loading related functions")
9421 (description
9422 "Provides functions which facilitate writing multi-file Emacs packages
9423 and running from the source tree without having to \"install\" code or fiddle
9424 with @{load-path}.
9425
9426 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
9427 another (presumably currently running) Emacs Lisp file.")
9428 (license license:gpl3+)))
9429
9430 (define-public emacs-loc-changes
9431 (package
9432 (name "emacs-loc-changes")
9433 (version "1.2")
9434 (source
9435 (origin
9436 (method url-fetch)
9437 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
9438 version ".el"))
9439 (sha256
9440 (base32
9441 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
9442 (build-system emacs-build-system)
9443 (home-page "https://github.com/rocky/emacs-loc-changes")
9444 (synopsis "Keeps track of positions even after buffer changes")
9445 (description
9446 "This Emacs package provides a mean to track important buffer positions
9447 after buffer changes.")
9448 (license license:gpl3+)))
9449
9450 (define-public emacs-realgud
9451 (package
9452 (name "emacs-realgud")
9453 (version "1.5.1")
9454 (source
9455 (origin
9456 (method git-fetch)
9457 (uri (git-reference
9458 (url "https://github.com/realgud/realgud/")
9459 (commit version)))
9460 (sha256
9461 (base32
9462 "1d3s23jk0i34wpyxfajydgyyvsxnpbqrfl0mgydsq7zw2c75ylnq"))
9463 (file-name (git-file-name name version))))
9464 (build-system emacs-build-system)
9465 (arguments
9466 (list
9467 #:tests? #t
9468 #:phases
9469 #~(modify-phases %standard-phases
9470 (add-after 'unpack 'fix-realgud:run-process-void-error
9471 ;; See: https://github.com/realgud/realgud/issues/269.
9472 (lambda _
9473 (substitute* '("realgud/debugger/gdb/gdb.el"
9474 "realgud/debugger/gub/gub.el")
9475 (("^\\(require 'load-relative\\).*" anchor)
9476 (string-append anchor
9477 "(require-relative-list \
9478 '(\"../../common/run\") \"realgud:\")\n")))))
9479 (add-after 'expand-load-path 'fix-autogen-script
9480 (lambda _
9481 (substitute* "autogen.sh"
9482 (("./configure") "sh configure"))))
9483 (add-after 'fix-autogen-script 'autogen
9484 (lambda _
9485 (setenv "CONFIG_SHELL" "sh")
9486 (invoke "sh" "autogen.sh")))
9487 (add-after 'fix-autogen-script 'set-home
9488 (lambda _
9489 (setenv "HOME" (getenv "TMPDIR"))))
9490 (add-before 'patch-el-files 'remove-realgud-pkg.el
9491 (lambda _
9492 ;; FIXME: `patch-el-files' crashes on this file with error:
9493 ;; unable to locate "bashdb".
9494 (delete-file "./test/test-regexp-bashdb.el"))))
9495 #:include #~(cons* ".*\\.el$" %default-include)))
9496 (native-inputs
9497 (list autoconf automake emacs-test-simple))
9498 (propagated-inputs
9499 (list emacs-load-relative emacs-loc-changes))
9500 (home-page "https://github.com/realgud/realgud/")
9501 (synopsis
9502 "Modular front-end for interacting with external debuggers")
9503 (description
9504 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
9505 with external debuggers. It integrates various debuggers such as gdb, pdb,
9506 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows visually steping through code in the
9507 sources. Unlike GUD, it also supports running multiple debug sessions in
9508 parallel.")
9509 (license license:gpl3+)))
9510
9511 (define-public emacs-rmsbolt
9512 ;; There is no release tag. Version is extracted from main file.
9513 (let ((commit "ff496660cc52a6dd33d358ef0acc6d4bb70cc340")
9514 (revision "0")
9515 (version "0.1.2"))
9516 (package
9517 (name "emacs-rmsbolt")
9518 (version (git-version version revision commit))
9519 (source
9520 (origin
9521 (method git-fetch)
9522 (uri (git-reference
9523 (url "https://gitlab.com/jgkamat/rmsbolt")
9524 (commit commit)))
9525 (file-name (git-file-name name version))
9526 (sha256
9527 (base32 "05i0101238yy1da6z543nr9x5gpvgdxrrdn3sw5dibcn6z62ml3p"))))
9528 (build-system emacs-build-system)
9529 (home-page "https://gitlab.com/jgkamat/rmsbolt")
9530 (synopsis "Emacs viewer for compiler output")
9531 (description
9532 "RMSBolt is a package to provide assembly or bytecode output for
9533 a source code input file.")
9534 (license license:agpl3+))))
9535
9536 (define-public emacs-request
9537 ;; We prefer a more recent commit that has support for auth-source,
9538 ;; and has some bug fixes for Emacs 28.
9539 (let ((commit "3336eaa97de923f74b90dda3e35985e122d40805")
9540 (revision "1"))
9541 (package
9542 (name "emacs-request")
9543 (version (git-version "0.3.2" revision commit))
9544 (source (origin
9545 (method git-fetch)
9546 (uri (git-reference
9547 (url "https://github.com/tkf/emacs-request")
9548 (commit commit)))
9549 (file-name (git-file-name name version))
9550 (sha256
9551 (base32
9552 "0jckwy5zhz95d6l3lz8b9b34pppcjjzy97fg1wn8mqzhf3h460ac"))))
9553 (build-system emacs-build-system)
9554 (arguments
9555 `(#:tests? #f)) ; requires network access.
9556 (propagated-inputs
9557 (list emacs-deferred))
9558 (home-page "https://github.com/tkf/emacs-request")
9559 (synopsis "Package for speaking HTTP in Emacs Lisp")
9560 (description "This package provides a HTTP request library with multiple
9561 backends. It supports url.el which is shipped with Emacs and the curl command
9562 line program.")
9563 (license license:gpl3+))))
9564
9565 (define-public emacs-rudel
9566 (package
9567 (name "emacs-rudel")
9568 (version "0.3.2")
9569 (source
9570 (origin
9571 (method url-fetch)
9572 (uri (string-append "https://elpa.gnu.org/packages/rudel-"
9573 version ".tar"))
9574 (sha256
9575 (base32 "03hcvpp6ykavidwn5x48gs986w1i5icvh7ks6p74pdaagpgw4jmk"))))
9576 (build-system emacs-build-system)
9577 (home-page "http://rudel.sourceforge.net/")
9578 (synopsis "Collaborative editing framework")
9579 (description
9580 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
9581 is to share buffers with other users in order to edit the contents of those
9582 buffers collaboratively. Rudel supports multiple backends to enable
9583 communication with other collaborative editors using different protocols,
9584 though currently Obby (for use with the Gobby editor) is the only
9585 fully-functional one.")
9586 (license license:gpl3+)))
9587
9588 (define-public emacs-hydra
9589 (package
9590 (name "emacs-hydra")
9591 (version "0.15.0")
9592 (source
9593 (origin
9594 (method git-fetch)
9595 (uri (git-reference
9596 (url "https://github.com/abo-abo/hydra")
9597 (commit version)))
9598 (file-name (git-file-name name version))
9599 (sha256
9600 (base32
9601 "0fapvhmhgc9kppf3bvkgry0cd7gyilg7sfvlscfrfjxpx4xvwsfy"))))
9602 (build-system emacs-build-system)
9603 (arguments
9604 `(#:tests? #t
9605 #:test-command '("make" "test")))
9606 (home-page "https://github.com/abo-abo/hydra")
9607 (synopsis "Make Emacs bindings that stick around")
9608 (description
9609 "This package can be used to tie related commands into a family of short
9610 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
9611 the prefixed binding), all the heads can be called in succession with only a
9612 short extension. Any binding that isn't the Hydra's head vanquishes the
9613 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
9614 serve its original purpose, calling the command assigned to it. This makes
9615 the Hydra very seamless; it's like a minor mode that disables itself
9616 automatically.")
9617 (license license:gpl3+)))
9618
9619 (define-public emacs-pretty-hydra
9620 (package
9621 (name "emacs-pretty-hydra")
9622 (version "0.2.2")
9623 (source
9624 (origin
9625 (method git-fetch)
9626 (uri (git-reference
9627 (url "https://github.com/jerrypnz/major-mode-hydra.el")
9628 (commit version)))
9629 (file-name (git-file-name name version))
9630 (sha256
9631 (base32
9632 "08a15knkdq35pzjq82imff016fbfdib5q4glg2xmdy2b5fnk7jqa"))))
9633 (build-system emacs-build-system)
9634 (propagated-inputs
9635 (list emacs-dash emacs-hydra emacs-s))
9636 (arguments
9637 `(#:exclude (cons "^major-mode-hydra\\.el" %default-exclude)))
9638 (home-page "https://github.com/jerrypnz/major-mode-hydra.el")
9639 (synopsis "Major mode keybindings managed by Hydra")
9640 (description
9641 "This package offers an hydra-based method of managing major
9642 mode-specific key bindings. It is intended for use as a library only; see
9643 package @code{emacs-major-mode-hydra} for a user-friendly interface.")
9644 (license license:gpl3+)))
9645
9646 (define-public emacs-interleave
9647 (package
9648 (name "emacs-interleave")
9649 (version "1.4.0")
9650 (source
9651 (origin
9652 (method git-fetch)
9653 (uri
9654 (git-reference
9655 (url "https://github.com/rudolfochrist/interleave")
9656 (commit (string-append "interleave-" version))))
9657 (file-name (git-file-name name version))
9658 (sha256
9659 (base32 "0l5b681mrpk12lx5c16m7kc13p29z6zismwg1llsjg7cdmrmsrcb"))))
9660 (build-system emacs-build-system)
9661 (home-page "https://github.com/rudolfochrist/interleave")
9662 (synopsis "Emacs minor mode to interleave notes and text books")
9663 (description
9664 "Interleave is a minor mode that presents a document viewer side
9665 by side to an Org buffer with your notes relevant to the current page.")
9666 (license license:gpl3+)))
9667
9668 (define-public emacs-major-mode-hydra
9669 (package
9670 (inherit emacs-pretty-hydra)
9671 (name "emacs-major-mode-hydra")
9672 (propagated-inputs
9673 (list emacs-dash emacs-pretty-hydra))
9674 (arguments
9675 `(#:exclude (cons "^pretty-hydra\\.el" %default-exclude)))
9676 (synopsis "Create nice-looking hydras")
9677 (description
9678 "This package provides the macro @code{pretty-hydra-define} to define
9679 hydras with one column per group of heads.")))
9680
9681 (define-public emacs-ivy
9682 (package
9683 (name "emacs-ivy")
9684 (version "0.13.4")
9685 (source
9686 (origin
9687 (method url-fetch)
9688 (uri (string-append "https://elpa.gnu.org/packages/ivy-" version ".tar"))
9689 (sha256
9690 (base32 "0qpza1c45mr8fcpnm32cck4v22fnzz1yb7kww05rzgq1k9iivx5v"))))
9691 (build-system emacs-build-system)
9692 (propagated-inputs
9693 (list emacs-hydra))
9694 (home-page "https://github.com/abo-abo/swiper")
9695 (synopsis "Incremental vertical completion for Emacs")
9696 (description
9697 "This package provides @code{ivy-read} as an alternative to
9698 @code{completing-read} and similar functions. No attempt is made to determine
9699 the best candidate. Instead, the user can navigate candidates with
9700 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
9701 splitting the input text by spaces and re-building it into a regular
9702 expression.")
9703 (license license:gpl3+)))
9704
9705 (define-public emacs-counsel
9706 (package
9707 (name "emacs-counsel")
9708 (version "0.13.4")
9709 (source
9710 (origin
9711 (method url-fetch)
9712 (uri (string-append "https://elpa.gnu.org/packages/"
9713 "counsel-" version ".tar"))
9714 (sha256
9715 (base32 "094zfapfn1l8wjf3djkipk0d9nks0g77sbk107pfsbr3skkzh031"))))
9716 (build-system emacs-build-system)
9717 (propagated-inputs
9718 (list emacs-swiper))
9719 (home-page "https://github.com/abo-abo/swiper")
9720 (synopsis "Various completion functions using Ivy")
9721 (description
9722 "Just call one of the interactive functions in a file to complete the
9723 corresponding thing using Ivy.
9724
9725 The following completions are currently available:
9726 @itemize
9727 @item Symbol completion for Elisp, Common Lisp, Python, Clojure, C, C++.
9728 @item Describe functions for Elisp: function, variable, library, command,
9729 @item bindings, theme.
9730 @item Navigation functions: imenu, ace-line, semantic, outline.
9731 @item Git utilities: git-files, git-grep, git-log, git-stash, git-checkout.
9732 @item Grep utilities: grep, ag, pt, recoll, ack, rg.
9733 @item System utilities: process list, rhythmbox, linux-app.
9734 @item Many more.
9735 @end itemize")
9736 (license license:gpl3+)))
9737
9738 (define-public emacs-swiper
9739 (package
9740 (name "emacs-swiper")
9741 (version "0.13.4")
9742 (source
9743 (origin
9744 (method url-fetch)
9745 (uri (string-append "https://elpa.gnu.org/packages/swiper-" version ".tar"))
9746 (sha256
9747 (base32 "197pq2cvvskib87aky907wv2am55vilr7y5dabmmm07a8vr9py0v"))))
9748 (build-system emacs-build-system)
9749 (propagated-inputs
9750 (list emacs-ivy))
9751 (home-page "https://github.com/abo-abo/swiper")
9752 (synopsis "Isearch with an overview")
9753 (description
9754 "This package gives an overview of the current regex search candidates.
9755 The search regex can be split into groups with a space. Each group is
9756 highlighted with a different face.
9757
9758 It can double as a quick `regex-builder', although only single lines will be
9759 matched.")
9760 (license license:gpl3+)))
9761
9762 (define-public emacs-ivy-xref
9763 (let ((commit "1a35fc0f070388701b05b0a455cbe262e924d547")
9764 (revision "1"))
9765 (package
9766 (name "emacs-ivy-xref")
9767 (version (git-version "0.1" revision commit))
9768 (source
9769 (origin
9770 (method git-fetch)
9771 (uri (git-reference
9772 (url "https://github.com/alexmurray/ivy-xref")
9773 (commit commit)))
9774 (file-name (git-file-name name version))
9775 (sha256
9776 (base32
9777 "0d71nm9d9ajp5i6dnl8h1hw9jqp8gd1ajgninb1h13i80rplzl9k"))))
9778 (build-system emacs-build-system)
9779 (propagated-inputs
9780 (list emacs-ivy))
9781 (home-page "https://github.com/alexmurray/ivy-xref")
9782 (synopsis "Ivy interface for @code{xref}")
9783 (description "This package provides an Ivy interface for selecting from
9784 @code{xref} results.")
9785 (license license:gpl3))))
9786
9787 (define-public emacs-ivy-pass
9788 (let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5")
9789 (revision "1"))
9790 (package
9791 (name "emacs-ivy-pass")
9792 (version (git-version "0.1" revision commit))
9793 (source
9794 (origin
9795 (method git-fetch)
9796 (uri (git-reference
9797 (url "https://github.com/ecraven/ivy-pass")
9798 (commit commit)))
9799 (file-name (git-file-name name version))
9800 (sha256
9801 (base32
9802 "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk"))))
9803 (build-system emacs-build-system)
9804 (propagated-inputs
9805 (list emacs-ivy emacs-password-store password-store))
9806 (home-page "https://github.com/ecraven/ivy-pass")
9807 (synopsis "Ivy interface for password store (pass)")
9808 (description "This package provides an Ivy interface for working with
9809 the password store @code{pass}.")
9810 (license license:gpl3))))
9811
9812 (define-public emacs-ivy-yasnippet
9813 (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
9814 (revision "2"))
9815 (package
9816 (name "emacs-ivy-yasnippet")
9817 (version (git-version "0.1" revision commit))
9818 (source
9819 (origin
9820 (method git-fetch)
9821 (uri (git-reference
9822 (url "https://github.com/mkcms/ivy-yasnippet")
9823 (commit commit)))
9824 (file-name (git-file-name name version))
9825 (sha256
9826 (base32
9827 "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
9828 (build-system emacs-build-system)
9829 (propagated-inputs
9830 (list emacs-ivy emacs-yasnippet emacs-dash))
9831 (home-page "https://github.com/mkcms/ivy-yasnippet")
9832 (synopsis "Preview @code{yasnippets} with @code{ivy}")
9833 (description "This package allows you to select @code{yasnippet}
9834 snippets using @code{ivy} completion. When current selection changes in the
9835 minibuffer, the snippet contents are temporarily expanded in the buffer. To
9836 use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
9837 @code{yas-minor-mode} first).")
9838 (license license:gpl3+))))
9839
9840 ;; The 0.1.6 release is incompatible with newer ivy versions, so we instead
9841 ;; pick a more recent snapshot of the repository, see
9842 ;; https://github.com/Yevgnen/ivy-rich/pull/80.
9843 (define-public emacs-ivy-rich
9844 (let ((commit "600b8183ed0be8668dcc548cc2c8cb94b001363b")
9845 (revision "2"))
9846 (package
9847 (name "emacs-ivy-rich")
9848 (version (git-version "0.1.6" revision commit))
9849 (source
9850 (origin
9851 (method git-fetch)
9852 (uri (git-reference
9853 (url "https://github.com/Yevgnen/ivy-rich")
9854 (commit commit)))
9855 (file-name (git-file-name name version))
9856 (sha256
9857 (base32 "1dv6vr7fv32v5m04zdy02sdajpvrnpc4i3pbh2dwfv73ff8d8yxm"))))
9858 (build-system emacs-build-system)
9859 (propagated-inputs
9860 (list emacs-ivy))
9861 (home-page "https://github.com/Yevgnen/ivy-rich")
9862 (synopsis "More friendly interface for @code{ivy}")
9863 (description
9864 "This package extends Ivy by showing more information in the minibuffer
9865 for each candidate. It adds columns showing buffer modes, file sizes,
9866 docstrings, etc. If @code{emacs-all-the-icons} is installed, it can show
9867 icons as well.")
9868 (license license:gpl3+))))
9869
9870 (define-public emacs-avy
9871 (package
9872 (name "emacs-avy")
9873 (version "0.5.0")
9874 (source
9875 (origin
9876 (method git-fetch)
9877 (uri (git-reference
9878 (url "https://github.com/abo-abo/avy")
9879 (commit version)))
9880 (file-name (git-file-name name version))
9881 (sha256
9882 (base32 "09qdni1s74i5pv8741szl5g4ynj8fxn0x65qmwa9rmfkbimnc0fs"))))
9883 (build-system emacs-build-system)
9884 (arguments
9885 `(#:tests? #t
9886 #:test-command '("make" "test")))
9887 (home-page "https://github.com/abo-abo/avy")
9888 (synopsis "Tree-based completion for Emacs")
9889 (description
9890 "This package provides a generic completion method based on building a
9891 balanced decision tree with each candidate being a leaf. To traverse the tree
9892 from the root to a desired leaf, typically a sequence of @code{read-key} can
9893 be used.
9894
9895 In order for @code{read-key} to make sense, the tree needs to be visualized
9896 appropriately, with a character at each branch node. So this completion
9897 method works only for things that you can see on your screen, all at once,
9898 such as the positions of characters, words, line beginnings, links, or
9899 windows.")
9900 (license license:gpl3+)))
9901
9902 (define-public emacs-ace-window
9903 (package
9904 (name "emacs-ace-window")
9905 (version "0.10.0")
9906 (source
9907 (origin
9908 (method git-fetch)
9909 (uri (git-reference
9910 (url "https://github.com/abo-abo/ace-window")
9911 (commit version)))
9912 (file-name (git-file-name name version))
9913 (sha256
9914 (base32
9915 "0f3r40d5yxp2pm2j0nn86s29nqj8py0jxjbj50v4ci3hsd92d8jl"))))
9916 (build-system emacs-build-system)
9917 (propagated-inputs
9918 (list emacs-avy))
9919 (home-page "https://github.com/abo-abo/ace-window")
9920 (synopsis "Quickly switch windows in Emacs")
9921 (description
9922 "@code{ace-window} is meant to replace @code{other-window}.
9923 In fact, when there are only two windows present, @code{other-window} is
9924 called. If there are more, each window will have its first character
9925 highlighted. Pressing that character will switch to that window.")
9926 (license license:gpl3+)))
9927
9928 (define-public emacs-windsize
9929 ;; There is no proper release. The base version is extracted from the
9930 ;; "Version" keyword in the main file.
9931 (let ((revision "1")
9932 (commit "62c2846bbe95b0a73e996c75e4a644d05f57aaaa"))
9933 (package
9934 (name "emacs-windsize")
9935 (version (git-version "0.1" revision commit))
9936 (source
9937 (origin
9938 (method git-fetch)
9939 (uri (git-reference
9940 (url "https://github.com/grammati/windsize")
9941 (commit commit)))
9942 (file-name (git-file-name name version))
9943 (sha256
9944 (base32 "13kfrmv3vmkfanxv9nym5v43hx5p7xkgqmx65zcxh4gcbaham1mi"))))
9945 (build-system emacs-build-system)
9946 (home-page "https://github.com/grammati/windsize")
9947 (synopsis "Easy resizing of Emacs windows")
9948 (description
9949 "This package allows moving the borders of the active window
9950 with the arrow keys. It prefers to move the right or bottom border when
9951 possible, and falls back to moving the left or top border otherwise.")
9952 (license license:gpl3+))))
9953
9954 (define-public emacs-window-purpose
9955 (package
9956 (name "emacs-window-purpose")
9957 (version "1.8.1")
9958 (source
9959 (origin
9960 (method git-fetch)
9961 (uri (git-reference
9962 (url "https://github.com/bmag/emacs-purpose.git")
9963 (commit (string-append "v" version))))
9964 (file-name (git-file-name name version))
9965 (sha256
9966 (base32
9967 "1cw513mh3gyl21qpmgwqjgpi8kwddmd4n69l4ax5a5pv3vvwrcx9"))))
9968 (build-system emacs-build-system)
9969 (propagated-inputs
9970 (list emacs-let-alist emacs-imenu-list))
9971 (arguments
9972 '(#:include
9973 '("^[^/]+.el$"
9974 "^[^/]+.el.in$"
9975 "^dir$"
9976 "^[^/]+.info$"
9977 "^[^/]+.texi$"
9978 "^[^/]+.texinfo$"
9979 "^doc/dir$"
9980 "^doc/[^/]+.info$"
9981 "^doc/[^/]+.texi$"
9982 "^doc/[^/]+.texinfo$"
9983 "^layouts$")
9984 #:exclude
9985 '("^.dir-locals.el$"
9986 "^test.el$"
9987 "^tests.el$"
9988 "^[^/]+-test.el$"
9989 "^[^/]+-tests.el$")))
9990 (home-page "https://github.com/bmag/emacs-purpose")
9991 (synopsis "Purpose-based window management for Emacs")
9992 (description "Purpose is a package that introduces the concept of a
9993 \"purpose\" for windows and buffers, and then helps you maintain a robust
9994 window layout easily.")
9995 (license license:gpl3+)))
9996
9997 (define-public emacs-iedit
9998 (package
9999 (name "emacs-iedit")
10000 (version "0.9.9.9.9")
10001 (source
10002 (origin
10003 (method git-fetch)
10004 (uri (git-reference
10005 (url "https://github.com/victorhge/iedit")
10006 (commit (string-append "v" version))))
10007 (file-name (git-file-name name version))
10008 (sha256
10009 (base32 "02jdyrff88n69d4kadjaac38gwcv28lhiqqa93rlqzdvmgqsbwak"))))
10010 (build-system emacs-build-system)
10011 (home-page "https://www.emacswiki.org/emacs/Iedit")
10012 (synopsis "Edit multiple regions in the same way simultaneously")
10013 (description
10014 "This package is an Emacs minor mode and allows you to edit one
10015 occurrence of some text in a buffer (possibly narrowed) or region, and
10016 simultaneously have other occurrences edited in the same way.
10017
10018 You can also use Iedit mode as a quick way to temporarily show only the buffer
10019 lines that match the current text being edited. This gives you the effect of
10020 a temporary @code{keep-lines} or @code{occur}.")
10021 (license license:gpl3+)))
10022
10023 (define-public emacs-zoutline
10024 (package
10025 (name "emacs-zoutline")
10026 (version "0.2.0")
10027 (source
10028 (origin
10029 (method git-fetch)
10030 (uri (git-reference
10031 (url "https://github.com/abo-abo/zoutline")
10032 (commit version)))
10033 (sha256
10034 (base32
10035 "1w0zh6vs7klgivq5r030a82mcfg1zwic4x3fimyiqyg5n8p67hyx"))
10036 (file-name (git-file-name name version))))
10037 (build-system emacs-build-system)
10038 (home-page "https://github.com/abo-abo/zoutline")
10039 (synopsis "Simple outline library")
10040 (description
10041 "This library provides helpers for outlines. Outlines allow users to
10042 navigate code in a tree-like fashion.")
10043 (license license:gpl3+)))
10044
10045 (define-public emacs-lispy
10046 ;; No release since May 2019 and tons of fixes have landed on master.
10047 ;; https://github.com/abo-abo/lispy/issues/513
10048 (let ((commit "df1b7e614fb0f73646755343e8892ddda310f427"))
10049 (package
10050 (name "emacs-lispy")
10051 (version (git-version "0.27.0" "3" commit))
10052 (home-page "https://github.com/abo-abo/lispy")
10053 (source (origin
10054 (method git-fetch)
10055 (uri (git-reference
10056 (url "https://github.com/abo-abo/lispy")
10057 (commit commit)))
10058 (sha256
10059 (base32
10060 "02pmnn9cqslahnvllqzawp2j5icmb3wgkrk4qrfxjds68jg7pjj4"))
10061 (patches
10062 (search-patches "emacs-lispy-fix-thread-last-test.patch"))
10063 (file-name (git-file-name name version))))
10064 (build-system emacs-build-system)
10065 (propagated-inputs
10066 (list emacs-ace-window emacs-hydra emacs-iedit emacs-swiper
10067 emacs-zoutline))
10068 (native-inputs
10069 (list which emacs-clojure-mode emacs-undercover))
10070 (arguments
10071 (list
10072 #:include #~(cons* "^lispy-clojure\\.clj$"
10073 "^lispy-python\\.py$"
10074 %default-include)
10075 #:phases
10076 ;; XXX: Some failing tests
10077 #~(modify-phases %standard-phases
10078 (add-before 'check 'make-test-writable
10079 (lambda _
10080 (make-file-writable "lispy-test.el")))
10081 (add-before 'check 'remove-failing-test
10082 (lambda _
10083 (emacs-batch-edit-file "lispy-test.el"
10084 `(progn
10085 (dolist (test '("lispy-eval-python-str" "lispy--clojure-dot-object"))
10086 (goto-char (point-min))
10087 (re-search-forward
10088 (concat "ert-deftest " test))
10089 (beginning-of-line)
10090 (kill-sexp))
10091 (basic-save-buffer))))))
10092 #:tests? #t
10093 ;; Set BEMACS to prevent the test suite from loading straight.el.
10094 #:test-command #~(list "make" "test" "BEMACS=emacs -batch")))
10095 (synopsis "Modal S-expression editing")
10096 (description
10097 "Due to the structure of Lisp syntax it's very rare for the programmer
10098 to want to insert characters right before \"(\" or right after \")\". Thus
10099 unprefixed printable characters can be used to call commands when the point is
10100 at one of these special locations. Lispy provides unprefixed keybindings for
10101 S-expression editing when point is at the beginning or end of an
10102 S-expression.")
10103 (license license:gpl3+))))
10104
10105 (define-public emacs-lispyville
10106 (let ((commit "89316f01822b2135e52ca27fd308d207ef618052")
10107 (revision "3"))
10108 (package
10109 (name "emacs-lispyville")
10110 (version (git-version "0.1" revision commit))
10111 (home-page "https://github.com/noctuid/lispyville")
10112 (source (origin
10113 (method git-fetch)
10114 (uri (git-reference (url home-page) (commit commit)))
10115 (sha256
10116 (base32
10117 "10k3hxxpx2v2k4dyad7j1bzmr1q7rzvv4y6c67pa9zcqyaw8m91v"))
10118 (file-name (git-file-name name version))))
10119 (propagated-inputs
10120 (list emacs-evil emacs-lispy))
10121 (build-system emacs-build-system)
10122 (synopsis "Minor mode for integrating Evil with lispy")
10123 (description
10124 "LispyVille's main purpose is to provide a Lisp editing environment
10125 suited towards Evil users. It can serve as a minimal layer on top of lispy
10126 for better integration with Evil, but it does not require the use of lispy’s
10127 keybinding style. The provided commands allow for editing Lisp in normal
10128 state and will work even without lispy being enabled.")
10129 (license license:gpl3+))))
10130
10131 (define-public emacs-lpy
10132 ;; There is no proper release/tag.
10133 (let ((commit "076ce9acb68f6ac1b39127b634a91ffd865d13d8")
10134 (revision "4"))
10135 (package
10136 (name "emacs-lpy")
10137 (version (git-version "0.1.0" revision commit))
10138 (source
10139 (origin
10140 (method git-fetch)
10141 (uri (git-reference
10142 (url "https://github.com/abo-abo/lpy")
10143 (commit commit)))
10144 (sha256
10145 (base32
10146 "10sab50wmr3zn7jgzx93201ymhmacqacn3m2qllsqkfw2gpsi6dn"))
10147 (file-name (git-file-name name version))))
10148 (propagated-inputs
10149 (list emacs-zoutline emacs-lispy))
10150 (build-system emacs-build-system)
10151 (home-page "https://github.com/abo-abo/lpy")
10152 (synopsis "Modal editing for Python")
10153 (description
10154 "This package provides a minor mode for Python that binds useful
10155 commands to unprefixed keys, such as @code{j} or @code{e}, under certain
10156 circumstances, and leaves the keys untouched outside of those situations,
10157 allowing unprefixed keys to insert their respective characters as expected.")
10158 (license license:gpl3+))))
10159
10160 (define-public emacs-clojure-mode
10161 (package
10162 (name "emacs-clojure-mode")
10163 (version "5.14.0")
10164 (source
10165 (origin
10166 (method git-fetch)
10167 (uri (git-reference
10168 (url "https://github.com/clojure-emacs/clojure-mode")
10169 (commit (string-append "v" version))))
10170 (file-name (git-file-name name version))
10171 (sha256
10172 (base32 "0n7v6hx21f8x37gj388wnff38aqpzxxv5g8vxavp74vr3cbagsnn"))))
10173 (build-system emacs-build-system)
10174 (native-inputs
10175 (list emacs-buttercup emacs-dash emacs-paredit emacs-s))
10176 (arguments
10177 `(#:tests? #t
10178 #:test-command '("buttercup")))
10179 (home-page "https://github.com/clojure-emacs/clojure-mode")
10180 (synopsis "Major mode for Clojure code")
10181 (description
10182 "This Emacs package provides font-lock, indentation, navigation and basic
10183 refactoring for the @uref{http://clojure.org, Clojure programming language}.
10184 It is recommended to use @code{clojure-mode} with Paredit or Smartparens.")
10185 (license license:gpl3+)))
10186
10187 (define-public emacs-clojure-snippets
10188 ;; Use latest commit (2018) since latest tagged release is too old and is
10189 ;; missing important changes.
10190 (let ((version "1.0.1")
10191 (revision "0")
10192 (commit "6068dca90467a0f4ebc2cd39338a173d6f5ddc04"))
10193 (package
10194 (name "emacs-clojure-snippets")
10195 (version (git-version version revision commit))
10196 (source
10197 (origin
10198 (method git-fetch)
10199 (uri (git-reference
10200 (url "https://github.com/mpenet/clojure-snippets")
10201 (commit commit)))
10202 (file-name (git-file-name name version))
10203 (sha256
10204 (base32 "0vvadcydpsz4b17dlm1jd4fbddzfqibh3mlzv3k4gvp67vv10cqy"))))
10205 (build-system emacs-build-system)
10206 (arguments
10207 `(#:include (cons* "^.*\\/" %default-include)))
10208 (propagated-inputs
10209 (list emacs-yasnippet))
10210 (home-page "https://github.com/mpenet/clojure-snippets")
10211 (synopsis "Yasnippets for Clojure")
10212 (description
10213 "This package provides Yasnippets snippets for Clojure.")
10214 (license license:gpl3+))))
10215
10216 (define-public emacs-anakondo
10217 ;; This particular commit introduces bug fixes above latest release.
10218 (let ((version "0.2.1")
10219 (revision "0")
10220 (commit "c48518560815c49d8d78fb9069906d17e883385e"))
10221 (package
10222 (name "emacs-anakondo")
10223 (version (git-version version revision commit))
10224 (source
10225 (origin
10226 (method git-fetch)
10227 (uri (git-reference
10228 (url "https://github.com/didibus/anakondo")
10229 (commit commit)))
10230 (file-name (git-file-name name version))
10231 (sha256
10232 (base32 "1fzsqd150gpmrj8kz3zy9cd78x9vank7ra720mljhyf04z0h1mj6"))))
10233 (build-system emacs-build-system)
10234 (home-page "https://github.com/didibus/anakondo")
10235 (synopsis "clj-kondo based Clojure[Script] editing facilities")
10236 (description
10237 "This package makes use of clj-kondo's analysis data to provide code
10238 editing facilities related to Clojure, ClojureScript and cljc source.")
10239 (license license:expat))))
10240
10241 (define-public emacs-epl
10242 (package
10243 (name "emacs-epl")
10244 (version "0.9")
10245 (source
10246 (origin
10247 (method git-fetch)
10248 (uri (git-reference
10249 (url "https://github.com/cask/epl")
10250 (commit version)))
10251 (file-name (git-file-name name version))
10252 (sha256
10253 (base32 "0d3z5z90ln8ipk1yds1n1p8fj9yyh2kpspqjs7agl38indra3nb4"))))
10254 (build-system emacs-build-system)
10255 (home-page "https://github.com/cask/epl")
10256 (synopsis "Emacs Package Library")
10257 (description
10258 "A package management library for Emacs, based on @code{package.el}.
10259
10260 The purpose of this library is to wrap all the quirks and hassle of
10261 @code{package.el} into a sane API.")
10262 (license license:gpl3+)))
10263
10264 (define-public emacs-counsel-jq
10265 (package
10266 (name "emacs-counsel-jq")
10267 (version "1.1")
10268 (home-page "https://github.com/200ok-ch/counsel-jq")
10269 (source
10270 (origin
10271 (method git-fetch)
10272 (uri (git-reference
10273 (url home-page)
10274 (commit "aaf33fc2447096cd0d03b77395fe2a95c9fe1481")))
10275 (file-name (git-file-name name version))
10276 (sha256
10277 (base32 "10rz0qm8a4bl0m86kx19zq8lri047p4sxqyny08bgm9pbam0wvwn"))))
10278 (build-system emacs-build-system)
10279 (propagated-inputs
10280 (list emacs-swiper jq))
10281 (synopsis "Live preview @code{jq} queries using counsel")
10282 (description
10283 "This Emacs package provides the ability to live preview @code{jq}
10284 queries using counsel.")
10285 (license license:gpl3+)))
10286
10287 (define-public emacs-counsel-notmuch
10288 ;; Upstream provides no release. Extract version for main file.
10289 (let ((commit "a4a1562935e4180c42524c51609d1283e9be0688")
10290 (revision "0"))
10291 (package
10292 (name "emacs-counsel-notmuch")
10293 (version (git-version "1.0" revision commit))
10294 (source
10295 (origin
10296 (method git-fetch)
10297 (uri (git-reference
10298 (url "https://github.com/fuxialexander/counsel-notmuch")
10299 (commit commit)))
10300 (file-name (git-file-name name version))
10301 (sha256
10302 (base32 "01k1321d961kc2i660a5595bqk0d85f16snsxngsn5si6y83kqr7"))))
10303 (build-system emacs-build-system)
10304 (arguments
10305 `(#:phases
10306 (modify-phases %standard-phases
10307 (add-after 'unpack 'locate-notmuch
10308 (lambda* (#:key inputs #:allow-other-keys)
10309 (make-file-writable "counsel-notmuch.el")
10310 (emacs-substitute-variables "counsel-notmuch.el"
10311 ("counsel-notmuch-path"
10312 (search-input-file inputs "/bin/notmuch"))))))))
10313 (inputs
10314 (list emacs-counsel notmuch emacs-s))
10315 (propagated-inputs
10316 (list emacs-notmuch))
10317 (home-page "https://github.com/fuxialexander/counsel-notmuch")
10318 (synopsis "Search emails in Notmuch asynchronously with Ivy")
10319 (description
10320 "This package can be used to search emails in Notmuch
10321 asynchronously, with Counsel and Ivy. Simply call
10322 @code{counsel-notmuch} and input your Notmuch query.")
10323 (license license:gpl3+))))
10324
10325 (define-public emacs-counsel-projectile
10326 (package
10327 (name "emacs-counsel-projectile")
10328 (version "0.3.2")
10329 (source
10330 (origin
10331 (method git-fetch)
10332 (uri (git-reference
10333 (url "https://github.com/ericdanan/counsel-projectile")
10334 (commit version)))
10335 (file-name (git-file-name name version))
10336 (sha256
10337 (base32 "1vp39r5njfzchkqv9g0w77whazp070anh9gmbkp3z4n3xxbik27f"))))
10338 (build-system emacs-build-system)
10339 (propagated-inputs
10340 (list emacs-counsel emacs-projectile))
10341 (home-page "https://github.com/ericdanan/counsel-projectile")
10342 (synopsis "Enhance Projectile with Ivy")
10343 (description
10344 "This package uses Ivy to provide additional actions for Projectile
10345 commands and replacements for existing functions.")
10346 (license license:gpl3+)))
10347
10348 (define-public emacs-qml-mode
10349 (package
10350 (name "emacs-qml-mode")
10351 (version "0.4")
10352 (source (origin
10353 (method git-fetch)
10354 (uri (git-reference
10355 (url "https://github.com/coldnew/qml-mode")
10356 (commit version)))
10357 (file-name (git-file-name name version))
10358 (sha256
10359 (base32
10360 "1sncsvzjfgmhp4m8w5jd4y51k24n2jfpgvrkd64wlhhzbj3wb947"))))
10361 (build-system emacs-build-system)
10362 (home-page "https://github.com/coldnew/qml-mode/")
10363 (synopsis "Qt Modeling Language (QML) mode for Emacs")
10364 (description "This package provides the @code{qml-mode} major Emacs mode
10365 for editing source files written in the Qt Modeling Language (QML) user
10366 interface markup language. It provides syntax highlighting and basic
10367 navigation commands. @code{qml-mode} is derived from code{js-mode}, the Emacs
10368 builtin JavaScript mode.")
10369 (license license:gpl2+)))
10370
10371 (define-public emacs-queue
10372 (package
10373 (name "emacs-queue")
10374 (version "0.2")
10375 (source (origin
10376 (method url-fetch)
10377 (uri (string-append "https://elpa.gnu.org/packages/queue-"
10378 version ".el"))
10379 (sha256
10380 (base32
10381 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
10382 (build-system emacs-build-system)
10383 (home-page "https://www.dr-qubit.org/emacs_data-structures.html")
10384 (synopsis "Queue data structure for Emacs")
10385 (description
10386 "This Emacs library provides queue data structure. These queues can be
10387 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
10388 stack, i.e. elements can be added to the front or back of the queue, and can
10389 be removed from the front. This type of data structure is sometimes called an
10390 \"output-restricted deque\".")
10391 (license license:gpl3+)))
10392
10393 (define-public emacs-quickrun
10394 (package
10395 (name "emacs-quickrun")
10396 (version "2.3.1")
10397 (source
10398 (origin
10399 (method git-fetch)
10400 (uri (git-reference
10401 (url "https://github.com/emacsorphanage/quickrun")
10402 (commit version)))
10403 (sha256
10404 (base32 "0a1n2v09h0n7d9p2izflqqang4ny0b46dlqvmxvkkik4bb6f4wcz"))
10405 (file-name (git-file-name name version))))
10406 (build-system emacs-build-system)
10407 (home-page "https://github.com/emacsorphanage/quickrun")
10408 (synopsis "Execute editing buffer and show its output quickly")
10409 (description
10410 "This package evaluates the content of a buffer, or region, and displays
10411 the result. Quickrun executes not only script languages (Perl, Ruby, Python
10412 etc), but also compiling languages (C, C++, Go, Java etc) and markup
10413 languages.")
10414 (license license:gpl3+)))
10415
10416 (define-public emacs-pkg-info
10417 (package
10418 (name "emacs-pkg-info")
10419 (version "0.6")
10420 (source
10421 (origin
10422 (method git-fetch)
10423 (uri (git-reference
10424 (url "https://github.com/lunaryorn/pkg-info.el")
10425 (commit version)))
10426 (file-name (git-file-name name version))
10427 (sha256
10428 (base32 "0nk12dcppdyhav6m6yf7abpywyd7amxd4237zsfd32w4zxsx39k1"))))
10429 (build-system emacs-build-system)
10430 (propagated-inputs (list emacs-epl))
10431 (home-page "https://github.com/lunaryorn/pkg-info.el")
10432 (synopsis "Information about Emacs packages")
10433 (description
10434 "This library extracts information from the installed Emacs packages.")
10435 (license license:gpl3+)))
10436
10437 (define-public emacs-spinner
10438 (package
10439 (name "emacs-spinner")
10440 (version "1.7.4")
10441 (source (origin
10442 (method url-fetch)
10443 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
10444 version ".tar"))
10445 (sha256
10446 (base32 "140kss25ijbwf8hzflbjz67ry76w2cyrh02axk95n6qcxv7jr7pv"))))
10447 (build-system emacs-build-system)
10448 (home-page "https://github.com/Malabarba/spinner.el")
10449 (synopsis "Emacs mode-line spinner for operations in progress")
10450 (description
10451 "This Emacs package adds spinners and progress-bars to the mode-line for
10452 ongoing operations.")
10453 (license license:gpl3+)))
10454
10455 (define-public emacs-sparql-mode
10456 (package
10457 (name "emacs-sparql-mode")
10458 (version "4.0.2")
10459 (source
10460 (origin
10461 (method git-fetch)
10462 (uri (git-reference
10463 (url "https://github.com/ljos/sparql-mode")
10464 (commit (string-append "v" version))))
10465 (file-name (git-file-name name version))
10466 (sha256
10467 (base32 "0hqp8r24wvzrkl630wbm0lynrcrnawv2yn2a3xgwqwwhwgva35rn"))))
10468 (build-system emacs-build-system)
10469 (propagated-inputs
10470 (list emacs-company))
10471 (home-page "https://github.com/ljos/sparql-mode")
10472 (synopsis "SPARQL mode for Emacs")
10473 (description
10474 "This package is a major mode for Emacs that provides syntax highlighting
10475 for SPARQL. It can also execute queries against a SPARQL HTTP endpoint, such
10476 as Fuseki or DBPedia.")
10477 (license license:gpl3+)))
10478
10479 (define-public emacs-better-defaults
10480 (package
10481 (name "emacs-better-defaults")
10482 (version "0.1.3")
10483 (source
10484 (origin
10485 (method git-fetch)
10486 (uri (git-reference
10487 (url "https://github.com/technomancy/better-defaults")
10488 (commit version)))
10489 (file-name (git-file-name name version))
10490 (sha256
10491 (base32
10492 "1rxznx2l0cdpiz8mad8s6q17m1fngpgb1cki7ch6yh18r3qz8ysr"))))
10493 (build-system emacs-build-system)
10494 (home-page "https://github.com/technomancy/better-defaults")
10495 (synopsis "Better defaults for Emacs")
10496 (description
10497 "Better defaults attempts to address the most obvious deficiencies of the
10498 Emacs default configuration in uncontroversial ways that nearly everyone can
10499 agree upon.")
10500 (license license:gpl3+)))
10501
10502 (define-public emacs-undohist-el
10503 (package
10504 (name "emacs-undohist-el")
10505 (version "0.2.1")
10506 (source
10507 (origin
10508 (method git-fetch)
10509 (uri (git-reference
10510 (url "https://github.com/m2ym/undohist-el")
10511 (commit version)))
10512 (file-name (git-file-name name version))
10513 (sha256
10514 (base32 "0hmx2b20nrxg2lb8vplgrzdh8chgxwlbmjvbq5scddggd302sd56"))))
10515 (build-system emacs-build-system)
10516 (home-page "https://github.com/m2ym/undohist-el")
10517 (synopsis "Save undo history between sessions")
10518 (description "This package allows persistent use of undo history for
10519 individual file buffers.")
10520 (license license:gpl3+)))
10521
10522 (define-public emacs-eprime
10523 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
10524 (package
10525 (name "emacs-eprime")
10526 (version (string-append "20140513-" (string-take commit 7)))
10527 (source (origin
10528 (method url-fetch)
10529 (uri (string-append "https://raw.githubusercontent.com"
10530 "/AndrewHynes/eprime-mode/"
10531 commit "/eprime-mode.el"))
10532 (file-name (string-append "eprime-" version ".el"))
10533 (sha256
10534 (base32
10535 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
10536 (build-system emacs-build-system)
10537 (home-page "https://github.com/AndrewHynes/eprime-mode")
10538 (synopsis "E-prime checking mode for Emacs")
10539 (description "This package provides an E-prime checking mode for Emacs
10540 that highlights non-conforming text. The subset of the English language called
10541 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
10542 (license license:gpl3+))))
10543
10544 (define-public emacs-julia-mode
10545 (package
10546 (name "emacs-julia-mode")
10547 (version "0.4")
10548 (source
10549 (origin
10550 (method git-fetch)
10551 (uri (git-reference
10552 (url "https://github.com/JuliaEditorSupport/julia-emacs")
10553 (commit version)))
10554 (file-name (git-file-name name version))
10555 (sha256
10556 (base32
10557 "1w131jb9mhvyjxa0p93iwfhzidgbcs6b8i6jg79yisqb9wchik99"))))
10558 (build-system emacs-build-system)
10559 (arguments
10560 `(#:tests? #t
10561 #:test-command '("emacs" "--batch"
10562 "-l" "julia-mode-tests.el"
10563 "-f" "ert-run-tests-batch-and-exit")))
10564 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
10565 (synopsis "Major mode for Julia")
10566 (description "This Emacs package provides a mode for the Julia
10567 programming language.")
10568 (license license:expat)))
10569
10570 (define-public emacs-julia-repl
10571 (package
10572 (name "emacs-julia-repl")
10573 (version "1.3.0")
10574 (source (origin
10575 (method git-fetch)
10576 (uri (git-reference
10577 (url "https://github.com/tpapp/julia-repl")
10578 (commit version)))
10579 (file-name (git-file-name name version))
10580 (sha256
10581 (base32
10582 "11vpqqnxqj9nxh8kccj4y6h3f8lib6jxnsk6vxc2j2fqw6alnafm"))))
10583 (build-system emacs-build-system)
10584 (home-page "https://github.com/tpapp/julia-repl")
10585 (synopsis "Minor mode for interacting with a Julia REPL")
10586 (description "This package provides a minor mode for interacting with a
10587 Julia REPL running inside Emacs. The julia process is started in an ANSI
10588 terminal (term), which allows text formatting and colors, and interaction with
10589 the help system and the debugger. It is recommended that you use this minor
10590 mode with the package emacs-julia-mode.")
10591 (license license:expat)))
10592
10593 (define-public emacs-julia-snail
10594 (package
10595 (name "emacs-julia-snail")
10596 (version "1.1.5")
10597 (source (origin
10598 (method git-fetch)
10599 (uri (git-reference
10600 (url "https://github.com/gcv/julia-snail")
10601 (commit version)))
10602 (file-name (git-file-name name version))
10603 (sha256
10604 (base32
10605 "04nh37izz04lxkvkxhsig8khbrrgdl4p6pkjsv5bxymnp84zwlw7"))))
10606 (build-system emacs-build-system)
10607 (arguments
10608 (list #:include #~(cons "^JuliaSnail\\.jl" %default-include)))
10609 (inputs
10610 (list emacs-dash emacs-s emacs-spinner emacs-xref))
10611 (propagated-inputs
10612 (list libvterm
10613 emacs-julia-mode ;required by parser
10614 emacs-parsec ;required by parser
10615 emacs-vterm))
10616 (home-page "https://github.com/gcv/julia-snail")
10617 (synopsis "Development environment and REPL interaction package for Julia")
10618 (description "This package provides a development environment and REPL
10619 interaction package for Julia in the spirit of Common Lisp’s SLIME and
10620 Clojure’s CIDER. It enables convenient and dynamic REPL-driven development.")
10621 (license license:gpl3)))
10622
10623 (define-public emacs-smex
10624 (package
10625 (name "emacs-smex")
10626 (version "3.0")
10627 (source (origin
10628 (method url-fetch)
10629 (uri (string-append "https://raw.githubusercontent.com"
10630 "/nonsequitur/smex/" version "/smex.el"))
10631 (file-name (string-append "smex-" version ".el"))
10632 (sha256
10633 (base32
10634 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
10635 (build-system emacs-build-system)
10636 (home-page "https://github.com/nonsequitur/smex/")
10637 (synopsis "M-x interface with Ido-style fuzzy matching")
10638 (description
10639 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
10640 convenient interface to your recently and most frequently used commands. And
10641 to all the other commands, too.")
10642 (license license:gpl3+)))
10643
10644 (define-public emacs-js2-mode
10645 (package
10646 (name "emacs-js2-mode")
10647 (version "20211229")
10648 (source
10649 (origin
10650 (method git-fetch)
10651 (uri (git-reference
10652 (url "https://github.com/mooz/js2-mode")
10653 (commit version)))
10654 (file-name (git-file-name name version))
10655 (sha256
10656 (base32 "1wcz3xji7viqxa5is81jd7in7x1fya6rzybm8qj9rwgdc8camvyb"))))
10657 (build-system emacs-build-system)
10658 (arguments
10659 `(#:tests? #t
10660 #:test-command '("make" "test")))
10661 (home-page "https://github.com/mooz/js2-mode/")
10662 (synopsis "Improved JavaScript editing mode for Emacs")
10663 (description
10664 "Js2-mode provides a JavaScript major mode for Emacs that is more
10665 advanced than the built-in javascript-mode. Features include accurate syntax
10666 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
10667 errors and strict-mode warnings, smart line-wrapping within comments and
10668 strings, and code folding.")
10669 (license license:gpl3+)))
10670
10671 (define-public emacs-nodejs-repl
10672 (package
10673 (name "emacs-nodejs-repl")
10674 (version "0.2.4")
10675 (source (origin
10676 (method git-fetch)
10677 (uri (git-reference
10678 (url "https://github.com/abicky/nodejs-repl.el")
10679 (commit version)))
10680 (file-name (git-file-name name version))
10681 (sha256
10682 (base32
10683 "0a5mmg3cmdi73giblp07ksl06xzl9nb2m3f96ny4r3rv0ar3v1bx"))))
10684 (build-system emacs-build-system)
10685 (inputs
10686 (list node))
10687 (native-inputs
10688 (list emacs-ert-expectations))
10689 (arguments
10690 `(#:phases
10691 (modify-phases %standard-phases
10692 (add-after 'unpack 'set-shell
10693 ;; Setting the SHELL environment variable is required for the tests
10694 ;; to find sh.
10695 (lambda _
10696 (setenv "SHELL" (which "sh"))
10697 #t))
10698 (add-after 'unpack 'configure
10699 (lambda* (#:key inputs outputs #:allow-other-keys)
10700 (let ((node (assoc-ref inputs "node")))
10701 ;; Specify the absolute file names of the various
10702 ;; programs so that everything works out-of-the-box.
10703 (make-file-writable "nodejs-repl.el")
10704 (emacs-substitute-variables
10705 "nodejs-repl.el"
10706 ("nodejs-repl-command"
10707 (string-append node "/bin/node")))))))
10708 #:tests? #t
10709 #:test-command '("emacs" "-Q" "--batch"
10710 "-L" "."
10711 "-l" "test/test.el"
10712 "-f" "ert-run-tests-batch-and-exit")))
10713 (home-page "https://github.com/abicky/nodejs-repl.el")
10714 (synopsis "Node.js REPL inside Emacs")
10715 (description
10716 "This program is derived from comint-mode and provides the following
10717 features:
10718
10719 @itemize
10720 @item TAB completion same as Node.js REPL
10721 @item file name completion in string
10722 @item incremental history search
10723 @end itemize")
10724 (license license:gpl3+)))
10725
10726 (define-public emacs-typescript-mode
10727 (package
10728 (name "emacs-typescript-mode")
10729 (version "0.4")
10730 (source (origin
10731 (method git-fetch)
10732 (uri (git-reference
10733 (url "https://github.com/ananthakumaran/typescript.el")
10734 (commit (string-append "v" version))))
10735 (file-name (git-file-name name version))
10736 (sha256
10737 (base32
10738 "186bpvqxx87kp3857mq0mzn1ddsvzmpijix810k6bdz8522x7zdw"))))
10739 (build-system emacs-build-system)
10740 (home-page "https://github.com/ananthakumaran/typescript.el")
10741 (synopsis "Emacs major mode for editing Typescript code")
10742 (description
10743 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
10744 This is much more robust and works with @code{cc-mode}'s comment
10745 filling (mostly). The modifications to the original @code{javascript.el} mode
10746 mainly consisted in replacing \"javascript\" with \"typescript\"
10747
10748 The main features of this Typescript mode are syntactic highlighting (enabled
10749 with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
10750 indentation and filling of comments and C preprocessor fontification.")
10751 (license license:gpl3+)))
10752
10753 (define-public emacs-tide
10754 (package
10755 (name "emacs-tide")
10756 (version "4.5.4")
10757 (source (origin
10758 (method git-fetch)
10759 (uri (git-reference
10760 (url "https://github.com/ananthakumaran/tide")
10761 (commit (string-append "v" version))))
10762 (file-name (git-file-name name version))
10763 (sha256
10764 (base32
10765 "0zrapfxdarakp3kwp73c2ymjx51fsnfk6azi2y1wb2kgsdxl2yim"))))
10766 (build-system emacs-build-system)
10767 (propagated-inputs
10768 (list emacs-dash emacs-flycheck emacs-s emacs-typescript-mode))
10769 (home-page "https://github.com/ananthakumaran/tide")
10770 (synopsis "Typescript IDE for Emacs")
10771 (description
10772 "Tide is an Interactive Development Environment (IDE) for Emacs which
10773 provides the following features:
10774
10775 @itemize
10776 @item ElDoc
10777 @item Auto complete
10778 @item Flycheck
10779 @item Jump to definition, Jump to type definition
10780 @item Find occurrences
10781 @item Rename symbol
10782 @item Imenu
10783 @item Compile On Save
10784 @item Highlight Identifiers
10785 @item Code Fixes
10786 @item Code Refactor
10787 @item Organize Imports
10788 @end itemize")
10789 (license license:gpl3+)))
10790
10791 (define-public emacs-markdown-mode
10792 (package
10793 (name "emacs-markdown-mode")
10794 (version "2.5")
10795 (source
10796 (origin
10797 (method git-fetch)
10798 (uri (git-reference
10799 (url "https://github.com/jrblevin/markdown-mode")
10800 (commit (string-append "v" version))))
10801 (file-name (git-file-name name version))
10802 (sha256
10803 (base32 "02vw1zsbwa2hc3sxvbpvbldi5cf1xgd5b9l6fwg24d24j6b2af0j"))))
10804 (build-system emacs-build-system)
10805 (home-page "https://jblevins.org/projects/markdown-mode/")
10806 (synopsis "Emacs Major mode for Markdown files")
10807 (description
10808 "Markdown-mode is a major mode for editing Markdown-formatted text files
10809 in Emacs.")
10810 (license license:gpl3+)))
10811
10812 (define-public emacs-evil-markdown
10813 (let ((commit "685d7fbb81bc02fa32779d2a127b99a0c8c7436b")
10814 (revision "2"))
10815 (package
10816 (name "emacs-evil-markdown")
10817 (version (git-version "0.0.2" revision commit))
10818 (source
10819 (origin
10820 (method git-fetch)
10821 (uri (git-reference
10822 (url "https://github.com/Somelauw/evil-markdown")
10823 (commit commit)))
10824 (file-name (git-file-name name version))
10825 (sha256
10826 (base32 "1z1sjn6dcqv8mmkh6nfcwhnql2z6xr9yx3hs77bfxj79pf3c466p"))))
10827 (build-system emacs-build-system)
10828 (propagated-inputs
10829 (list emacs-evil emacs-markdown-mode))
10830 (home-page "https://github.com/Somelauw/evil-markdown/")
10831 (synopsis "Evil keybindings for @code{markdown-mode}")
10832 (description
10833 "This package provides custom text objects and bindings for
10834 @code{markdown-mode}.")
10835 (license license:gpl3+))))
10836
10837 (define-public emacs-edit-indirect
10838 (package
10839 (name "emacs-edit-indirect")
10840 (version "0.1.10")
10841 (source
10842 (origin
10843 (method git-fetch)
10844 (uri (git-reference
10845 (url "https://github.com/Fanael/edit-indirect")
10846 (commit version)))
10847 (file-name (git-file-name name version))
10848 (sha256
10849 (base32 "13v0fvzh3nv3bm4c3ld7pknw2g76cjkx81hsrmbrd1irlv4s4b00"))))
10850 (build-system emacs-build-system)
10851 (home-page "https://github.com/Fanael/edit-indirect")
10852 (synopsis "Edit regions in separate buffers")
10853 (description "This package allows you to edit regions in separate buffers,
10854 like @code{org-edit-src-code} but for arbitrary regions.")
10855 (license license:bsd-2)))
10856
10857 (define-public emacs-projectile
10858 (package
10859 (name "emacs-projectile")
10860 (version "2.5.0")
10861 (source (origin
10862 (method url-fetch)
10863 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
10864 "/projectile/v" version "/projectile.el"))
10865 (file-name (string-append "projectile-" version ".el"))
10866 (sha256
10867 (base32
10868 "1wy2kpli90z7p4dqr4b7f1fv99g6lfxi1kzy2bfl0p8qi40rpmyv"))))
10869 (build-system emacs-build-system)
10870 (propagated-inputs
10871 (list emacs-dash emacs-pkg-info))
10872 (home-page "https://github.com/bbatsov/projectile")
10873 (synopsis "Manage and navigate projects in Emacs easily")
10874 (description
10875 "This library provides easy project management and navigation. The
10876 concept of a project is pretty basic - just a folder containing special file.
10877 Currently git, mercurial and bazaar repos are considered projects by default.
10878 If you want to mark a folder manually as a project just create an empty
10879 .projectile file in it.")
10880 (license license:gpl3+)))
10881
10882 (define-public emacs-skeletor
10883 (let ((commit "47c5b761aee8452716c97a69949ac2f675affe13")
10884 (revision "1"))
10885 (package
10886 (name "emacs-skeletor")
10887 (version (git-version "1.6.1" revision commit))
10888 (source (origin
10889 (method git-fetch)
10890 (uri (git-reference
10891 (url "https://github.com/chrisbarrett/skeletor.el")
10892 (commit commit)))
10893 (file-name (git-file-name name version))
10894 (sha256
10895 (base32
10896 "12bdgykfh4mwsqdazxjdvha62h3q3v33159ypy91f6x59y01fi0n"))))
10897 (build-system emacs-build-system)
10898 (propagated-inputs
10899 (list emacs-s emacs-f emacs-dash emacs-let-alist))
10900 (native-inputs
10901 (list emacs-ert-runner))
10902 (arguments
10903 `(#:include (cons "^project-skeletons\\/" %default-include)
10904 ;; XXX: one failing test involving initializing a git repo
10905 #:phases
10906 (modify-phases %standard-phases
10907 (add-before 'check 'make-test-writable
10908 (lambda _
10909 (make-file-writable "test/skeletor-test.el")
10910 #t))
10911 (add-before 'check 'remove-git-test
10912 (lambda _
10913 (emacs-batch-edit-file "test/skeletor-test.el"
10914 `(progn
10915 (progn
10916 (goto-char (point-min))
10917 (re-search-forward
10918 "ert-deftest initialises-git-repo")
10919 (beginning-of-line)
10920 (kill-sexp))
10921 (basic-save-buffer)))
10922 #t)))
10923 #:tests? #t
10924 #:test-command '("ert-runner")))
10925 (home-page "https://github.com/chrisbarrett/skeletor.el")
10926 (synopsis "Project skeletons for Emacs")
10927 (description "This package provides project templates and automates the
10928 mundane parts of setting up a new project, such as version control, licenses,
10929 and tooling.")
10930 (license license:gpl3+))))
10931
10932 (define-public emacs-elfeed
10933 (package
10934 (name "emacs-elfeed")
10935 (version "3.4.1")
10936 (source
10937 (origin
10938 (method git-fetch)
10939 (uri (git-reference
10940 (url "https://github.com/skeeto/elfeed")
10941 (commit version)))
10942 (file-name (git-file-name name version))
10943 (sha256
10944 (base32 "1ghdvfn4f9y69r59i1ga9b3ib1r8sbqg6q1v5rz3f9paagfavrd1"))))
10945 (build-system emacs-build-system)
10946 (arguments
10947 `(#:tests? #t
10948 #:test-command '("make" "test")))
10949 (home-page "https://github.com/skeeto/elfeed")
10950 (synopsis "Atom/RSS feed reader for Emacs")
10951 (description
10952 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
10953 and RSS, with a user interface inspired by notmuch.")
10954 (license license:gpl3+)))
10955
10956 (define-public emacs-elfeed-org
10957 (let ((commit "77b6bbf222487809813de260447d31c4c59902c9"))
10958 (package
10959 (name "emacs-elfeed-org")
10960 (version (git-version "0.1" "1" commit))
10961 (source
10962 (origin
10963 (method git-fetch)
10964 (uri (git-reference
10965 (url "https://github.com/remyhonig/elfeed-org")
10966 (commit commit)))
10967 (file-name (git-file-name name version))
10968 (sha256
10969 (base32 "0a2ibka82xq1dhy2z7rd2y9zhcj8rna8357881yz49wf55ccgm53"))))
10970 (build-system emacs-build-system)
10971 (arguments
10972 `(#:tests? #t
10973 #:test-command '("ert-runner" "-L" "org-mode/lisp")
10974 #:phases
10975 (modify-phases %standard-phases
10976 (add-before 'check 'chmod
10977 (lambda _
10978 (chmod "test/fixture-mark-feed-ignore.org" #o644))))))
10979 (propagated-inputs
10980 (list emacs-elfeed emacs-org emacs-dash emacs-s))
10981 (native-inputs
10982 (list emacs-ert-runner emacs-xtest))
10983 (home-page "https://github.com/remyhonig/elfeed-org")
10984 (synopsis "Configure Elfeed with an Org-mode file")
10985 (description
10986 "@code{elfeed-org} lets you manage your Elfeed subscriptions
10987 in Org-mode. Maintaining tags for all RSS feeds is cumbersome using
10988 the regular flat list, where there is no hierarchy and tag names are
10989 duplicated a lot. Org-mode makes the book keeping of tags and feeds
10990 much easier.")
10991 (license license:gpl3+))))
10992
10993 (define-public emacs-elfeed-protocol
10994 (package
10995 (name "emacs-elfeed-protocol")
10996 (version "0.8.0")
10997 (source
10998 (origin
10999 (method git-fetch)
11000 (uri (git-reference
11001 (url "https://github.com/fasheng/elfeed-protocol")
11002 (commit version)))
11003 (file-name (git-file-name name version))
11004 (sha256
11005 (base32 "07r1qlldgd0kfikd0y737y5n42ab3nkw2s5jx7frimj41yandbdp"))))
11006 (build-system emacs-build-system)
11007 (propagated-inputs
11008 (list emacs-elfeed))
11009 (home-page "https://github.com/fasheng/elfeed-protocol")
11010 (synopsis "Fever/NewsBlur/ownCloud/tt-RSS protocols for Elfeed")
11011 (description
11012 "Elfeed-protocol provides extra protocols to make self-hosting RSS
11013 readers like Fever, NewsBlur, ownCloud News and Tiny TIny RSS work
11014 with Elfeed.")
11015 (license license:gpl3+)))
11016
11017 (define-public emacs-elfeed-score
11018 (package
11019 (name "emacs-elfeed-score")
11020 (version "1.2.4")
11021 (source
11022 (origin
11023 (method git-fetch)
11024 (uri (git-reference
11025 (url "https://github.com/sp1ff/elfeed-score")
11026 (commit version)))
11027 (file-name (git-file-name name version))
11028 (sha256
11029 (base32 "0d1yh4wv81n5mnrzdi88z0vbs94m7j3q20r5fc1wk35r4hrl3xqw"))))
11030 (build-system emacs-build-system)
11031 (propagated-inputs
11032 (list emacs-elfeed))
11033 (home-page "https://github.com/sp1ff/elfeed-score")
11034 (synopsis "Gnus-style scoring for Elfeed")
11035 (description
11036 "Elfeed-score is an add-on for Elfeed, an RSS reader for Emacs. It
11037 brings Gnus-style scoring to your RSS feeds. Elfeed, by default, displays
11038 feed entries by date. This package allows you to setup rules for assigning
11039 numeric scores to entries, and sorting entries with higher scores ahead of
11040 those with lower, regardless of date. The idea is to prioritize content
11041 important to you.")
11042 (license license:gpl3+)))
11043
11044 (define-public emacs-el-x
11045 (package
11046 (name "emacs-el-x")
11047 (version "0.3.1")
11048 (source (origin
11049 (method git-fetch)
11050 (uri (git-reference
11051 (url "https://github.com/sigma/el-x")
11052 (commit (string-append "v" version))))
11053 (file-name (git-file-name name version))
11054 (sha256
11055 (base32
11056 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
11057 (build-system emacs-build-system)
11058 (arguments
11059 `(#:phases
11060 (modify-phases %standard-phases
11061 ;; Move the source files to the top level, which is included in
11062 ;; the EMACSLOADPATH.
11063 (add-after 'unpack 'move-source-files
11064 (lambda _
11065 (let ((el-files (find-files "./lisp" ".*\\.el$")))
11066 (for-each (lambda (f)
11067 (rename-file f (basename f)))
11068 el-files))
11069 #t)))))
11070 (home-page "https://github.com/sigma/el-x")
11071 (synopsis "Emacs Lisp extensions")
11072 (description "command@{emacs-el-x} defines the @code{dflet} macro to
11073 provide the historic behavior of @code{flet}, as well as
11074 @code{declare-function} stub for older Emacs.")
11075 (license license:gpl2+)))
11076
11077 (define-public emacs-epithet
11078 ;; No tags.
11079 (let ((commit "cc42338376c2c58da561214c554be8e8856f6a2b"))
11080 (package
11081 (name "emacs-epithet")
11082 (version "0.1")
11083 (source (origin
11084 (method git-fetch)
11085 (uri (git-reference
11086 (url "https://github.com/oantolin/epithet")
11087 (commit commit)))
11088 (file-name (git-file-name name version))
11089 (sha256
11090 (base32
11091 "06irgshgcgmm09nswrny8mam6l660ai71rgn0l3rmyp9li8n97j0"))))
11092 (build-system emacs-build-system)
11093 (home-page "https://github.com/oantolin/epithet")
11094 (synopsis "Rename Emacs buffers with descriptive names")
11095 (description
11096 "This package provides a function---@code{epithet-rename-buffer}---to rename
11097 the current buffer with a descriptive name. The name suggestion is governed by
11098 the @code{epithet-suggesters} hook variable: each hook should return either a
11099 name suggestion or @code{nil}, they are called in turn and the first non-nil
11100 suggestion is taken.")
11101 (license license:gpl3+))))
11102
11103 (define-public emacs-eterm-256color
11104 (package
11105 (name "emacs-eterm-256color")
11106 (version "0.3.13")
11107 (source (origin
11108 (method git-fetch)
11109 (uri (git-reference
11110 (url "https://github.com/dieggsy/eterm-256color")
11111 (commit version)))
11112 (file-name (git-file-name name version))
11113 (sha256
11114 (base32
11115 "0ysxblc90kjcz84siprnyxwh94scflivqbxylzkvjm7hbx93rsh1"))))
11116 (build-system emacs-build-system)
11117 (propagated-inputs
11118 (list emacs-f emacs-xterm-color))
11119 (home-page "https://github.com/dieggsy/eterm-256color")
11120 (synopsis
11121 "Customizable 256 colors for Emacs @code{term} and @code{ansi-term}")
11122 (description "This package uses @code{emacs-xterm-color} to add
11123 customizable 256 color support to @code{term} and @code{ansi-term}.")
11124 (license license:gpl3+)))
11125
11126 (define-public emacs-mocker
11127 (package
11128 (name "emacs-mocker")
11129 (version "0.5.0")
11130 (source
11131 (origin
11132 (method git-fetch)
11133 (uri (git-reference
11134 (url "https://github.com/sigma/mocker.el")
11135 (commit (string-append "v" version))))
11136 (file-name (git-file-name name version))
11137 (sha256
11138 (base32 "1dc514cqbfmg33sb3j90s5jmw6jnm3wzvs0zhw3maz13bp7w6z48"))))
11139 (build-system emacs-build-system)
11140 (arguments
11141 `(#:tests? #t
11142 #:test-command '("ert-runner")))
11143 (native-inputs
11144 (list emacs-ert-runner))
11145 (propagated-inputs
11146 (list emacs-el-x))
11147 (home-page "https://github.com/sigma/mocker.el")
11148 (synopsis "Mocking framework for Emacs Lisp")
11149 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
11150 It uses regular Lisp rather than a domain specific language (DSL), which
11151 maximizes flexibility (at the expense of conciseness).")
11152 (license license:gpl2+)))
11153
11154 (define-public emacs-find-file-in-project
11155 (package
11156 (name "emacs-find-file-in-project")
11157 (version "6.2.0")
11158 (source
11159 (origin
11160 (method git-fetch)
11161 (uri (git-reference
11162 (url "https://github.com/technomancy/find-file-in-project")
11163 (commit version)))
11164 (file-name (git-file-name name version))
11165 (sha256
11166 (base32 "0sq8fyq19jw1hm0m6hiqnvzzvx0c3xigfx7x6i40ib5hnfjlqs0a"))))
11167 (build-system emacs-build-system)
11168 (arguments
11169 `(#:tests? #t
11170 #:test-command '("ert-runner" "tests")))
11171 (native-inputs
11172 (list emacs-ert-runner))
11173 (home-page "https://github.com/technomancy/find-file-in-project")
11174 (synopsis "File/directory finder for Emacs")
11175 (description "@code{find-file-in-project} finds files or
11176 directories quickly in the current project. The project root is detected
11177 automatically when Git, Subversion or Mercurial are used. It also provides
11178 functions to assist in reviewing changes on files.")
11179 (license license:gpl3+)))
11180
11181 (define-public emacs-pyvenv
11182 (package
11183 (name "emacs-pyvenv")
11184 (version "1.21")
11185 (source
11186 (origin
11187 (method git-fetch)
11188 (uri (git-reference
11189 (url "https://github.com/jorgenschaefer/pyvenv")
11190 (commit (string-append "v" version))))
11191 (file-name (git-file-name name version))
11192 (sha256
11193 (base32 "055sgk8zf4wb5nqsf3qasf5gg861zlb1831733f1qcrd2ij5gzxx"))))
11194 (build-system emacs-build-system)
11195 (arguments
11196 `(#:phases
11197 (modify-phases %standard-phases
11198 ;; This phase incorrectly attempts to substitute "activate" and fails
11199 ;; doing so.
11200 (delete 'patch-el-files))
11201 #:tests? #t
11202 #:test-command '("ert-runner")))
11203 (native-inputs
11204 (list emacs-ert-runner emacs-mocker))
11205 (home-page "https://github.com/jorgenschaefer/pyvenv")
11206 (synopsis "Python virtual environment interface for Emacs")
11207 (description "pyvenv.el is a minor mode to support using Python virtual
11208 environments (virtualenv) inside Emacs.")
11209 (license license:gpl3+)))
11210
11211 (define-public emacs-highlight-indent-guides
11212 (let ((version "0.8.5") ; from package metadata
11213 (revision "0")
11214 (commit "c2c9de4d01edfb89609c91d4d7f1d81312015a2c"))
11215 (package
11216 (name "emacs-highlight-indent-guides")
11217 (version (git-version version revision commit))
11218 (source
11219 (origin
11220 (method git-fetch)
11221 (uri (git-reference
11222 (url "https://github.com/DarthFennec/highlight-indent-guides")
11223 (commit commit)))
11224 (file-name (git-file-name name version))
11225 (sha256
11226 (base32 "10chvqnmdmkx6i9sigqframr85ziyafiz44glwhvhjajfkv42ad2"))))
11227 (build-system emacs-build-system)
11228 (home-page
11229 "https://github.com/DarthFennec/highlight-indent-guides")
11230 (synopsis "Minor mode to highlight indentation")
11231 (description
11232 "This package provides a minor mode to highlight indentation levels via
11233 font-lock. Indent widths are dynamically discovered, which means this
11234 correctly highlights in any mode, regardless of indent width, even in
11235 languages with non-uniform indentation such as Haskell. This mode works
11236 properly around hard tabs and mixed indentation and behaves well in large
11237 buffers.")
11238 (license license:expat))))
11239
11240 (define-public emacs-highlight-indentation
11241 ;; Last release version is from 2015.
11242 (let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f")
11243 (revision "1"))
11244 (package
11245 (name "emacs-highlight-indentation")
11246 (version (git-version "0.7.0" revision commit))
11247 (source
11248 (origin
11249 (method git-fetch)
11250 (uri (git-reference
11251 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs")
11252 (commit commit)))
11253 (file-name (git-file-name name version))
11254 (sha256
11255 (base32
11256 "1jq0gf4kcx9hvrw40rnw5c2qynjpjw1vsjbi2i4lqjbsnfnxn4wz"))))
11257 (build-system emacs-build-system)
11258 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
11259 (synopsis "Highlighting indentation for Emacs")
11260 (description "This package provides two minor modes to highlight
11261 indentation guides in Emacs:
11262
11263 @enumerate
11264 @item @code{highlight-indentation-mode}, which displays guidelines
11265 indentation (space indentation only).
11266 @item @code{highlight-indentation-current-column-mode}, which displays
11267 guidelines for the current-point indentation (space indentation only).
11268 @end enumerate")
11269 (license license:gpl2+))))
11270
11271 (define-public emacs-elpy
11272 ;; Using the latest commit fixes outstanding bugs such as the following:
11273 ;; https://github.com/jorgenschaefer/elpy/issues/1824
11274 ;; https://github.com/jorgenschaefer/elpy/pull/1951
11275 ;; https://github.com/jorgenschaefer/elpy/issues/1940.
11276 (let ((commit "1746e7009000b7635c0ea6f1559018143aa61642")
11277 (revision "1"))
11278 (package
11279 (name "emacs-elpy")
11280 (version (git-version "1.35.0" revision commit))
11281 (source (origin
11282 (method git-fetch)
11283 (uri (git-reference
11284 (url "https://github.com/jorgenschaefer/elpy")
11285 (commit commit)))
11286 (file-name (git-file-name name version))
11287 (sha256
11288 (base32
11289 "120xzzaa8jxls3lri6d53zq6gafnkc6d9mlg09an334kkmh8k2fc"))))
11290 (build-system emacs-build-system)
11291 (arguments
11292 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
11293 #:phases
11294 (modify-phases %standard-phases
11295 (add-after 'unpack 'disable-broken-tests
11296 ;; Some tests are known to have problems with Python 3.9; disable
11297 ;; them (see:
11298 ;; https://github.com/jorgenschaefer/elpy/issues/1856).
11299 ;; Aggressively remove the modules where failing tests were
11300 ;; discovered, as they are similar and fail in a nondeterministic
11301 ;; way.
11302 (lambda _
11303 (with-directory-excursion "test"
11304 (for-each delete-file
11305 (append (find-files "." "elpy-refactor")
11306 (find-files "." "elpy-multiedit")
11307 (find-files "." "elpy-pdb")
11308 (find-files "." "elpy-promise")))
11309 ;; These test fail since upgrading Emacs from version 27 to
11310 ;; 28.1 (see:
11311 ;; https://github.com/jorgenschaefer/elpy/issues/1982).
11312 (delete-file "elpy-project-find-git-root-test.el")
11313 (substitute* "elpy-company-backend-test.el"
11314 (("elpy-company-backend-should-add-shell-candidates.*" all)
11315 (string-append all " :expected-result :failed\n")))
11316 (substitute* "elpy-eldoc-documentation-test.el"
11317 (("elpy-eldoc-documentation-should-show-object-onelinedoc.*" all)
11318 (string-append all " :expected-result :failed\n")))
11319 (substitute* "elpy-shell-send-file-test.el"
11320 (("elpy-shell-send-file-should-accept-large-strings.*" all)
11321 (string-append all " :expected-result :failed\n")))
11322 (substitute* "elpy-shell-echo-inputs-and-outputs-test.el"
11323 (("elpy-shell-should-echo-outputs.*" all)
11324 (string-append all " :expected-result :failed\n"))))))
11325 ;; The default environment of the RPC uses Virtualenv to install
11326 ;; Python dependencies from PyPI. We don't want/need this in Guix.
11327 (add-before 'check 'do-not-use-virtualenv
11328 (lambda _
11329 (setenv "ELPY_TEST_DONT_USE_VIRTUALENV" "1")
11330 (substitute* "elpy-rpc.el"
11331 (("defcustom elpy-rpc-virtualenv-path 'default")
11332 "defcustom elpy-rpc-virtualenv-path 'system"))))
11333 (add-before 'check 'build-doc
11334 (lambda _
11335 (with-directory-excursion "docs"
11336 (invoke "make" "info" "man"))
11337 ;; Move .info file at the root so that it can installed by the
11338 ;; 'move-doc phase.
11339 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")))
11340 (add-after 'build-doc 'install-manpage
11341 (lambda* (#:key outputs #:allow-other-keys)
11342 (let* ((out (assoc-ref outputs "out"))
11343 (man1 (string-append out "/share/man/man1")))
11344 (mkdir-p man1)
11345 (copy-file "docs/_build/man/elpy.1"
11346 (string-append man1 "/elpy.1"))))))
11347 #:tests? #t
11348 #:test-command '("ert-runner")))
11349 (propagated-inputs
11350 (list emacs-company
11351 emacs-find-file-in-project
11352 emacs-highlight-indentation
11353 emacs-yasnippet
11354 emacs-pyvenv
11355 emacs-s
11356 ;; The following are recommended Python dependencies that make
11357 ;; Elpy much more useful. Installing these avoids Elpy prompting
11358 ;; to install them from PyPI using pip.
11359 python-autopep8
11360 python-black
11361 python-flake8
11362 python-jedi
11363 python-yapf))
11364 (native-inputs
11365 (list emacs-ert-runner
11366 emacs-f
11367 python-wrapper
11368 ;; For documentation.
11369 python-sphinx
11370 texinfo))
11371 (home-page "https://github.com/jorgenschaefer/elpy")
11372 (synopsis "Python development environment for Emacs")
11373 (description "Elpy brings powerful Python editing to Emacs. It combines
11374 and configures a number of other packages written in Emacs Lisp as well as
11375 Python, together offering features such as navigation, documentation,
11376 completion, interactive development and more.")
11377 (license license:gpl3+))))
11378
11379 (define-public emacs-rainbow-delimiters
11380 (package
11381 (name "emacs-rainbow-delimiters")
11382 (version "2.1.5")
11383 (source (origin
11384 (method git-fetch)
11385 (uri (git-reference
11386 (url "https://github.com/Fanael/rainbow-delimiters")
11387 (commit version)))
11388 (file-name (git-file-name name version))
11389 (sha256
11390 (base32
11391 "179mzsd8nvlr0ym9zf9fgdngsgxj3kdgbjblynliirsyk05ssrwc"))))
11392 (build-system emacs-build-system)
11393 (home-page "https://github.com/Fanael/rainbow-delimiters")
11394 (arguments
11395 `(#:tests? #t
11396 #:test-command '("emacs" "-Q" "-batch"
11397 "-l" "rainbow-delimiters-test.el"
11398 "-f" "ert-run-tests-batch-and-exit")))
11399 (synopsis "Highlight brackets according to their depth")
11400 (description
11401 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
11402 highlights parentheses, brackets, and braces according to their depth. Each
11403 successive level is highlighted in a different color, making it easy to spot
11404 matching delimiters, orient yourself in the code, and tell which statements
11405 are at a given level.")
11406 (license license:gpl3+)))
11407
11408 (define-public emacs-rainbow-identifiers
11409 (package
11410 (name "emacs-rainbow-identifiers")
11411 (version "0.2.2")
11412 (source (origin
11413 (method url-fetch)
11414 (uri (string-append "https://raw.githubusercontent.com/Fanael"
11415 "/rainbow-identifiers/" version
11416 "/rainbow-identifiers.el"))
11417 (file-name (string-append "rainbow-identifiers-" version ".el"))
11418 (sha256
11419 (base32
11420 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
11421 (build-system emacs-build-system)
11422 (home-page "https://github.com/Fanael/rainbow-identifiers")
11423 (synopsis "Highlight identifiers in source code")
11424 (description
11425 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
11426 identifiers based on their names. Each identifier gets a color based on a hash
11427 of its name.")
11428 (license license:bsd-2)))
11429
11430 (define-public emacs-rainbow-mode
11431 (package
11432 (name "emacs-rainbow-mode")
11433 (version "1.0.6")
11434 (source
11435 (origin
11436 (method url-fetch)
11437 (uri (string-append "https://elpa.gnu.org/packages/"
11438 "rainbow-mode-" version ".tar"))
11439 (sha256
11440 (base32 "04v73cm1cap19vwc8lqsw0rmfr9v7r3swc4wgxnk9dnzxi9j2527"))))
11441 (build-system emacs-build-system)
11442 (home-page "https://elpa.gnu.org/packages/rainbow-mode.html")
11443 (synopsis "Colorize color names in buffers")
11444 (description
11445 "This minor mode sets background color to strings that match color
11446 names, e.g., @samp{#0000ff} is displayed in white with a blue background.")
11447 (license license:gpl3+)))
11448
11449 (define-public emacs-ryo-modal
11450 ;; Package has no release. Version is extracted from "Version:" keyword in
11451 ;; main file.
11452 (let ((commit "a10f564474cc8fa28a74b04e3b15375315223c44")
11453 (revision "0"))
11454 (package
11455 (name "emacs-ryo-modal")
11456 (version (git-version "0.45" revision commit))
11457 (source
11458 (origin
11459 (method git-fetch)
11460 (uri (git-reference
11461 (url "https://github.com/Kungsgeten/ryo-modal")
11462 (commit commit)))
11463 (file-name (git-file-name name version))
11464 (sha256
11465 (base32 "0ypm1rnyry6hb4znb8sgwfi0la6q46ihm8k99kisk0mkgz7im93d"))))
11466 (build-system emacs-build-system)
11467 (home-page "https://github.com/Kungsgeten/ryo-modal")
11468 (synopsis "Emacs minor mode for defining modal editing environments")
11469 (description "RYO modal provides a convenient way of defining modal
11470 keybindings in Emacs, and does not come with any predefined bindings.")
11471 (license license:expat))))
11472
11473 (define-public emacs-valign
11474 (package
11475 (name "emacs-valign")
11476 (version "3.1.1")
11477 (source
11478 (origin
11479 (method git-fetch)
11480 (uri (git-reference
11481 (url "https://github.com/casouri/valign")
11482 (commit (string-append "v" version))))
11483 (file-name (git-file-name name version))
11484 (sha256
11485 (base32 "11ks6z532i7vxi6f9g32zhimvikhsqywa2bd5fnnj2ahfx3msa95"))))
11486 (build-system emacs-build-system)
11487 (home-page "https://github.com/casouri/valign")
11488 (synopsis "Pixel-perfect visual alignment for Org and Markdown tables")
11489 (description
11490 "Valign provides visual alignment for Org mode, Markdown and Table.el
11491 tables on GUI Emacs. It can properly align tables containing variable-pitch
11492 font, CJK characters and images. Meanwhile, the text-based alignment
11493 generated by Org mode (or Markdown mode) is left untouched.")
11494 (license license:gpl3+)))
11495
11496 (define-public emacs-visual-fill-column
11497 (package
11498 (name "emacs-visual-fill-column")
11499 (version "2.5")
11500 (source
11501 (origin
11502 (method git-fetch)
11503 (uri (git-reference
11504 (url "https://codeberg.org/joostkremers/visual-fill-column")
11505 (commit version)))
11506 (file-name (git-file-name name version))
11507 (sha256
11508 (base32 "168wiywaffhhn7j4nfbnq4lfxpxl0x17z9ckk3nwkpaz45d9a2q6"))))
11509 (build-system emacs-build-system)
11510 (home-page "https://codeberg.org/joostkremers/visual-fill-column")
11511 (synopsis "Fill-column for visual-line-mode")
11512 (description
11513 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
11514 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
11515 wrapping lines at the window edge, which is the standard behaviour of
11516 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
11517 @code{fill-column} is too large for the window, the text is wrapped at the
11518 window edge.")
11519 (license license:gpl3+)))
11520
11521 (define-public emacs-writeroom
11522 (package
11523 (name "emacs-writeroom")
11524 (version "3.11")
11525 (source
11526 (origin
11527 (method git-fetch)
11528 (uri (git-reference
11529 (url "https://github.com/joostkremers/writeroom-mode")
11530 (commit version)))
11531 (file-name (git-file-name name version))
11532 (sha256
11533 (base32
11534 "0y4jcja9kml1lq88r8b9myk39dgaggh7q7f3a43sj828hvzlccb7"))))
11535 (build-system emacs-build-system)
11536 (propagated-inputs
11537 (list emacs-visual-fill-column))
11538 (home-page "https://github.com/joostkremers/writeroom-mode")
11539 (synopsis "Distraction-free writing for Emacs")
11540 (description
11541 "This package defines a minor mode for distraction-free writing. Some of
11542 the default effects include entering fullscreen, deleting other windows of the
11543 current frame, disabling the mode line, and adding margins to the buffer that
11544 restrict the text width to 80 characters.")
11545 (license license:bsd-3)))
11546
11547 (define-public emacs-wucuo
11548 (package
11549 (name "emacs-wucuo")
11550 (version "0.2.9")
11551 (source
11552 (origin
11553 (method git-fetch)
11554 (uri (git-reference
11555 (url "https://github.com/redguardtoo/wucuo")
11556 (commit "89b99166768afb811c48a7db7c93c02d51a32b09")))
11557 (file-name (git-file-name name version))
11558 (sha256
11559 (base32 "03a6jlbv9axrd9yr0xscq3ni7fipm20ppc51kxy0sn241rplv0pg"))))
11560 (build-system emacs-build-system)
11561 (arguments
11562 `(#:tests? #t
11563 #:test-command '("make" "test")
11564 #:phases (modify-phases %standard-phases
11565 ;; Set HOME, otherwise tests fail on loading aspell dict.
11566 (add-before 'check 'set-home
11567 (lambda _ (setenv "HOME" (getcwd)))))))
11568 (native-inputs
11569 ;; For tests.
11570 (list aspell aspell-dict-en))
11571 (home-page "https://github.com/redguardtoo/wucuo")
11572 (synopsis "Fast spell checker for camel case code or plain text")
11573 (description
11574 "Wucuo provides a spell checker on top of either Aspell or Hunspell, and
11575 relies on Flyspell internally. It operates on the current region or buffer,
11576 a file, or a complete directory.")
11577 (license license:gpl3+)))
11578
11579 (define-public emacs-ido-completing-read+
11580 (package
11581 (name "emacs-ido-completing-read+")
11582 (version "4.14")
11583 (source (origin
11584 (method url-fetch)
11585 (uri (string-append "https://raw.githubusercontent.com"
11586 "/DarwinAwardWinner/ido-ubiquitous/v"
11587 version "/ido-completing-read+.el"))
11588 (file-name (string-append "ido-completing-read+-" version ".el"))
11589 (sha256
11590 (base32
11591 "1wn94nkfv6qyyj6clvms7m7ncqf09bgszv67may530y75kylivav"))))
11592 (build-system emacs-build-system)
11593 (propagated-inputs
11594 (list emacs-s))
11595 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
11596 (synopsis "Replacement for completing-read using ido")
11597 (description
11598 "The ido-completing-read+ function is a wrapper for ido-completing-read.
11599 Importantly, it detects edge cases that ordinary ido cannot handle and either
11600 adjusts them so ido can handle them, or else simply falls back to the standard
11601 Emacs completion function instead.")
11602 (license license:gpl3+)))
11603
11604 (define-public emacs-ido-ubiquitous
11605 (package
11606 (name "emacs-ido-ubiquitous")
11607 (version "4.13")
11608 (source (origin
11609 (method url-fetch)
11610 (uri (string-append "https://raw.githubusercontent.com"
11611 "/DarwinAwardWinner/ido-ubiquitous/v"
11612 version "/ido-ubiquitous.el"))
11613 (file-name (string-append "ido-ubiquitous-" version ".el"))
11614 (sha256
11615 (base32
11616 "08iwvqknicqlffda7ixwgzw7q9g2g4j4nsxdw6544r85vaysi4cc"))))
11617 (build-system emacs-build-system)
11618 (propagated-inputs
11619 (list emacs-ido-completing-read+))
11620 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
11621 (synopsis "Use ido (nearly) everywhere")
11622 (description
11623 "Ido-ubiquitous enables ido-style completion for almost every function
11624 that uses the standard completion function completing-read.")
11625 (license license:gpl3+)))
11626
11627 (define-public emacs-yaml
11628 (package
11629 (name "emacs-yaml")
11630 (version "0.3.4")
11631 (source
11632 (origin
11633 (method git-fetch)
11634 (uri (git-reference
11635 (url "https://github.com/zkry/yaml.el")
11636 (commit (string-append "v" version))))
11637 (file-name (git-file-name name version))
11638 (sha256
11639 (base32 "13fjxrr7iyfagbm21p5is5jw1zv56ns2mnac145v8lqli6mrr5gx"))))
11640 (build-system emacs-build-system)
11641 (home-page "https://github.com/zkry/yaml.el")
11642 (synopsis "YAML parser in Elisp")
11643 (description
11644 "@code{yaml.el} is a YAML parser written in Emacs Lisp without any
11645 external dependencies. It provides an interface similar to the Emacs JSON
11646 parsing utility.")
11647 (license license:gpl3+)))
11648
11649 (define-public emacs-yaml-mode
11650 (package
11651 (name "emacs-yaml-mode")
11652 (version "0.0.15")
11653 (source
11654 (origin
11655 (method git-fetch)
11656 (uri (git-reference
11657 (url "https://github.com/yoshiki/yaml-mode")
11658 (commit version)))
11659 (file-name (git-file-name name version))
11660 (sha256
11661 (base32 "0gsa153yp8lmwrvcc3nzpw5lj037y7q2nm23k5k404r5as4k355l"))))
11662 (build-system emacs-build-system)
11663 (home-page "https://github.com/yoshiki/yaml-mode")
11664 (synopsis "Major mode for editing YAML files")
11665 (description
11666 "Yaml mode is an Emacs major mode for editing files in the YAML data
11667 serialization format. As YAML and Python share the fact that indentation
11668 determines structure, this mode provides indentation and indentation command
11669 behavior very similar to that of Python mode.")
11670 (license license:gpl3+)))
11671
11672 (define-public emacs-gitlab-ci-mode
11673 (package
11674 (name "emacs-gitlab-ci-mode")
11675 (version "20190824.12.2")
11676 (source (origin
11677 (method git-fetch)
11678 (uri (git-reference
11679 (url "https://gitlab.com/joewreschnig/gitlab-ci-mode")
11680 (commit (string-append "v" version))))
11681 (file-name (git-file-name name version))
11682 (sha256
11683 (base32
11684 "16fb4r3vq8xkzl911v7gaky95w1agfxjlpaxpjmidwx48rbcar59"))))
11685 (build-system emacs-build-system)
11686 (propagated-inputs
11687 (list emacs-yaml-mode))
11688 (home-page "https://gitlab.com/joewreschnig/gitlab-ci-mode/")
11689 (synopsis "Emacs mode for editing GitLab CI files")
11690 (description
11691 "@code{gitlab-ci-mode} is an Emacs major mode for editing GitLab CI
11692 files. It provides syntax highlighting and completion for keywords and
11693 special variables. An interface to GitLab’s CI file linter is also provided
11694 via @code{gitlab-ci-lint}.")
11695 (license license:gpl3+)))
11696
11697 (define-public emacs-gitlab-snip-helm
11698 (package
11699 (name "emacs-gitlab-snip-helm")
11700 (version "0.0.2")
11701 (source (origin
11702 (method git-fetch)
11703 (uri (git-reference
11704 (url "https://gitlab.com/sasanidas/gitlab-snip-helm.git")
11705 (commit version)))
11706 (file-name (git-file-name name version))
11707 (sha256
11708 (base32
11709 "1c5js19zyb1z61hapvbfcl5jhrjqij46cxldgqij6al0scw44dga"))))
11710 (build-system emacs-build-system)
11711 (propagated-inputs
11712 (list emacs-dash emacs-helm))
11713 (home-page "https://gitlab.com/sasanidas/gitlab-snip-helm/")
11714 (synopsis "GitLab snippet API interaction for Emacs")
11715 (description "This package provides GitLab snippet API interaction for
11716 Emacs.")
11717 (license license:gpl3+)))
11718
11719 (define-public emacs-web-mode
11720 (package
11721 (name "emacs-web-mode")
11722 (version "17.2.1")
11723 (source
11724 (origin
11725 (method git-fetch)
11726 (uri (git-reference
11727 (url "https://github.com/fxbois/web-mode")
11728 (commit (string-append "v" version))))
11729 (file-name (git-file-name name version))
11730 (sha256
11731 (base32 "0sd2ysysn8x4iwz2fhnvh8knr3pdqgkvhkhsl948smmfl0dwj42f"))))
11732 (build-system emacs-build-system)
11733 (synopsis "Major mode for editing web templates")
11734 (description "Web mode is an Emacs major mode for editing web templates
11735 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
11736 client/server side engines). Web mode is compatible with many template
11737 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
11738 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
11739 Dust.js, React/JSX, Angularjs, ejs, etc.")
11740 (home-page "https://web-mode.org/")
11741 (license license:gpl3+)))
11742
11743 (define-public emacs-templatel
11744 (package
11745 (name "emacs-templatel")
11746 (version "0.1.6")
11747 (source
11748 (origin
11749 (method git-fetch)
11750 (uri (git-reference
11751 (url "https://github.com/clarete/templatel")
11752 (commit version)))
11753 (file-name (git-file-name name version))
11754 (sha256
11755 (base32 "03n7amd2mfr4jmc4s1ar5ckm86knr7qarxxlkdhbnw3svy5kbc57"))))
11756 (build-system emacs-build-system)
11757 (home-page "https://clarete.li/templatel")
11758 (synopsis "Jinja inspired template language for Emacs Lisp")
11759 (description
11760 "templatel is the modern templating language. It provides variable
11761 substitution and control flow through a clean and powerful language inspired
11762 by Python's Jinja.")
11763 (license license:gpl3+)))
11764
11765 (define-public emacs-wgrep
11766 (package
11767 (name "emacs-wgrep")
11768 (version "2.3.2")
11769 (source (origin
11770 (method git-fetch)
11771 (uri (git-reference
11772 (url "https://github.com/mhayashi1120/Emacs-wgrep")
11773 (commit version)))
11774 (file-name (git-file-name name version))
11775 (sha256
11776 (base32
11777 "00cwqzb94jlq4mwgv8z7r3mn0a6mhq95z6j189kacq9g4473zh8d"))))
11778 (build-system emacs-build-system)
11779 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
11780 (synopsis "Edit a grep buffer and apply those changes to the files")
11781 (description
11782 "Emacs wgrep allows you to edit a grep buffer and apply those changes
11783 to the file buffer. Several backends are supported beside the classic grep:
11784 ack, ag, helm and pt.")
11785 (license license:gpl3+)))
11786
11787 (define-public emacs-helm
11788 (package
11789 (name "emacs-helm")
11790 (version "3.8.5")
11791 (source
11792 (origin
11793 (method git-fetch)
11794 (uri (git-reference
11795 (url "https://github.com/emacs-helm/helm")
11796 (commit (string-append "v" version))))
11797 (file-name (git-file-name name version))
11798 (sha256
11799 (base32 "1my6c87ia7h99dbbbw1yxcmgacwss1j36rf3swn3k2ab6k34hsf4"))))
11800 (build-system emacs-build-system)
11801 (propagated-inputs
11802 (list emacs-async emacs-popup))
11803 (home-page "https://emacs-helm.github.io/helm/")
11804 (synopsis
11805 "Incremental completion and selection narrowing framework for Emacs")
11806 (description
11807 "Helm is an incremental completion and selection narrowing framework for
11808 Emacs. It will help steer you in the right direction when you're looking for
11809 stuff in Emacs (like buffers, files, etc).")
11810 (license license:gpl3+)))
11811
11812 (define-public emacs-helm-org
11813 (let ((commit "8457e1e46227bf87726e05c42cec5a4b51c2ef7b")
11814 (revision "3"))
11815 (package
11816 (name "emacs-helm-org")
11817 (version (git-version "1.0" revision commit))
11818 (source
11819 (origin
11820 (method git-fetch)
11821 (uri (git-reference
11822 (url "https://github.com/emacs-helm/helm-org")
11823 (commit commit)))
11824 (file-name (git-file-name name version))
11825 (sha256
11826 (base32 "0kcjhwwi492n9m2w894hvdavfvhj45zygy7bwvx103wvpay5h6h6"))))
11827 (build-system emacs-build-system)
11828 (propagated-inputs
11829 (list emacs-helm))
11830 (home-page "https://github.com/emacs-helm/helm-org")
11831 (synopsis "Helm interface to the Silver Searcher")
11832 (description
11833 "This package provides a frontend for grepping tools like ag and ack,
11834 as well as features for editing search results.")
11835 (license license:gpl3+))))
11836
11837 (define-public emacs-helm-swoop
11838 (package
11839 (name "emacs-helm-swoop")
11840 (version "3.0.0")
11841 (source
11842 (origin
11843 (method git-fetch)
11844 (uri (git-reference
11845 (url "https://github.com/emacsorphanage/helm-swoop")
11846 (commit version)))
11847 (file-name (git-file-name name version))
11848 (sha256
11849 (base32 "1qjay0fvryxa8n1ws6r1by512p2fylb2nj7ycm1497fcalb0d706"))))
11850 (build-system emacs-build-system)
11851 (propagated-inputs
11852 (list emacs-helm))
11853 (home-page "https://github.com/emacsorphanage/helm-swoop")
11854 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
11855 (description
11856 "This package builds on the Helm interface to provide several commands
11857 for search-based navigation of buffers.")
11858 (license license:gpl2+)))
11859
11860 (define-public emacs-helm-ag
11861 (package
11862 (name "emacs-helm-ag")
11863 (version "0.64")
11864 (source
11865 (origin
11866 (method git-fetch)
11867 (uri (git-reference
11868 (url "https://github.com/syohex/emacs-helm-ag")
11869 (commit version)))
11870 (file-name (git-file-name name version))
11871 (sha256
11872 (base32 "0ml9yp3qaiwn7iixyxvsj3fxn7gw913qxisr47df57q4ka912law"))))
11873 (build-system emacs-build-system)
11874 (propagated-inputs
11875 (list emacs-helm))
11876 (home-page "https://github.com/syohex/emacs-helm-ag")
11877 (synopsis "Helm interface to the Silver Searcher")
11878 (description
11879 "This package provides a frontend for grepping tools like ag and ack,
11880 as well as features for editing search results.")
11881 (license license:gpl3+)))
11882
11883 (define-public emacs-helm-projectile
11884 (package
11885 (name "emacs-helm-projectile")
11886 (version "1.0.0")
11887 (source
11888 (origin
11889 (method git-fetch)
11890 (uri (git-reference
11891 (url "https://github.com/bbatsov/helm-projectile")
11892 (commit (string-append "v" version))))
11893 (file-name (git-file-name name version))
11894 (sha256
11895 (base32 "05gpg90gg03yalmv9fw1y9k21i2l617iipvs0p9n80aln8nrzs8g"))))
11896 (build-system emacs-build-system)
11897 (propagated-inputs
11898 (list emacs-helm emacs-projectile))
11899 (home-page "https://github.com/bbatsov/helm-projectile")
11900 (synopsis "Helm integration for Projectile")
11901 (description
11902 "This Emacs library provides a Helm interface for Projectile.")
11903 (license license:gpl3+)))
11904
11905 (define-public emacs-taskrunner
11906 (let ((commit "3afd4a546d42339543d3d4e51b175fc3e82b3358")
11907 (revision "1"))
11908 (package
11909 (name "emacs-taskrunner")
11910 (version (git-version "0.6" revision commit))
11911 (source
11912 (origin
11913 (method git-fetch)
11914 (uri (git-reference
11915 (url "https://github.com/emacs-taskrunner/emacs-taskrunner")
11916 (commit commit)))
11917 (file-name (git-file-name name version))
11918 (sha256
11919 (base32
11920 "1lkdvmjn3alhqxq2i64sdr977sbw3g0b2670d9bwyzi67qh0jxrv"))))
11921 (build-system emacs-build-system)
11922 (propagated-inputs
11923 (list emacs-async emacs-projectile))
11924 (home-page "https://github.com/emacs-taskrunner/emacs-taskrunner")
11925 (synopsis "Retrieve tasks from various build systems and task-runners")
11926 (description "This package parses Makefiles and build-system files for
11927 multiple project types.")
11928 (license license:gpl3+))))
11929
11930 (define-public emacs-ivy-taskrunner
11931 (let ((commit "75d8d67cfe3c29663fe0f5508a887adf40ed5162")
11932 (revision "1"))
11933 (package
11934 (name "emacs-ivy-taskrunner")
11935 (version (git-version "0.9" revision commit))
11936 (source
11937 (origin
11938 (method git-fetch)
11939 (uri (git-reference
11940 (url "https://github.com/emacs-taskrunner/ivy-taskrunner")
11941 (commit commit)))
11942 (file-name (git-file-name name version))
11943 (sha256
11944 (base32
11945 "1wf4s4k0ap21f7g5w6128an8nsvbja7f5n889vcml5b6gjz058db"))))
11946 (build-system emacs-build-system)
11947 (propagated-inputs
11948 (list emacs-ivy emacs-taskrunner emacs-projectile))
11949 (home-page "https://github.com/emacs-taskrunner/ivy-taskrunner")
11950 (synopsis "Retrieve build-system tasks using Ivy")
11951 (description "This package provides an Ivy interface for selecting
11952 Makefile targets.")
11953 (license license:gpl3+))))
11954
11955 (define-public emacs-helm-taskrunner
11956 (let ((commit "1910dac19cbc7bd4fd08b0faf9affd455339fbea")
11957 (revision "1"))
11958 (package
11959 (name "emacs-helm-taskrunner")
11960 (version (git-version "0.9" revision commit))
11961 (source
11962 (origin
11963 (method git-fetch)
11964 (uri (git-reference
11965 (url "https://github.com/emacs-taskrunner/helm-taskrunner")
11966 (commit commit)))
11967 (file-name (git-file-name name version))
11968 (sha256
11969 (base32
11970 "182lmr858fx6rdhp1fy7kv8dvrhzcnxzwfck1q22s6xs8x85d5q7"))))
11971 (build-system emacs-build-system)
11972 (propagated-inputs
11973 (list emacs-helm emacs-taskrunner emacs-projectile))
11974 (home-page "https://github.com/emacs-taskrunner/helm-taskrunner")
11975 (synopsis "Retrieve build-system tasks using Helm")
11976 (description "This package provides a Helm interface for selecting
11977 Makefile targets.")
11978 (license license:gpl3+))))
11979
11980 (define-public emacs-helm-make
11981 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
11982 (revision "1"))
11983 (package
11984 (name "emacs-helm-make")
11985 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
11986 (source
11987 (origin
11988 (method git-fetch)
11989 (uri (git-reference
11990 (url "https://github.com/abo-abo/helm-make")
11991 (commit commit)))
11992 (file-name (git-file-name name version))
11993 (sha256
11994 (base32
11995 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
11996 (build-system emacs-build-system)
11997 (propagated-inputs
11998 (list emacs-helm emacs-projectile))
11999 (home-page "https://github.com/abo-abo/helm-make")
12000 (synopsis "Select a Makefile target with helm")
12001 (description "@code{helm-make} or @code{helm-make-projectile} will give
12002 you a @code{helm} selection of directory Makefile's targets. Selecting a
12003 target will call @code{compile} on it.")
12004 (license license:gpl3+))))
12005
12006 (define-public emacs-cider
12007 (package
12008 (name "emacs-cider")
12009 (version "1.4.1")
12010 (source
12011 (origin
12012 (method git-fetch)
12013 (uri (git-reference
12014 (url "https://github.com/clojure-emacs/cider")
12015 (commit (string-append "v" version))))
12016 (file-name (git-file-name name version))
12017 (sha256
12018 (base32 "08635ln514nrglx6qyhaq1x7y7lw4mcd659ba8zs071yjiariarm"))))
12019 (build-system emacs-build-system)
12020 (arguments
12021 '(#:exclude ;don't exclude 'cider-test.el'
12022 '("^\\.dir-locals\\.el$" "^test/")))
12023 (propagated-inputs
12024 (list emacs-clojure-mode
12025 emacs-parseedn
12026 emacs-pkg-info
12027 emacs-queue
12028 emacs-sesman
12029 emacs-spinner))
12030 (home-page "https://cider.mx/")
12031 (synopsis "Clojure development environment for Emacs")
12032 (description
12033 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
12034 provide an interactive development experience similar to the one you'd get
12035 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
12036 Geiser) and Smalltalk.
12037
12038 CIDER is the successor to the now deprecated combination of using SLIME +
12039 swank-clojure for Clojure development.
12040
12041 There are plenty of differences between CIDER and SLIME, but the core ideas
12042 are pretty much the same (and SLIME served as the principle inspiration for
12043 CIDER).")
12044 (license license:gpl3+)))
12045
12046 (define-public emacs-sly
12047 ;; Update together with sbcl-slynk.
12048 (let ((commit "4513c382f07a2a2cedb3c046231b69eae2f5e6f0")
12049 (revision "6"))
12050 ;; Versions are not always tagged. Besides, latest master contains
12051 ;; important fixes.
12052 (package
12053 (name "emacs-sly")
12054 (version (git-version "1.0.43" revision commit))
12055 (source
12056 (origin
12057 (method git-fetch)
12058 (uri (git-reference
12059 (url "https://github.com/joaotavora/sly")
12060 (commit commit)))
12061 (file-name (git-file-name name version))
12062 (sha256
12063 (base32
12064 "10bzxhi5d7h18hqclxqy2z857d0sfbsnyxvrhmfkdi0h75zz7m4n"))))
12065 (build-system emacs-build-system)
12066 (native-inputs
12067 (list texinfo))
12068 (arguments
12069 `(#:include (cons* "^contrib\\/" "^lib\\/" "^slynk\\/" %default-include)
12070 #:phases
12071 ;; The package provides autoloads.
12072 (modify-phases %standard-phases
12073 (delete 'make-autoloads)
12074 (add-before 'install 'install-doc
12075 (lambda* (#:key outputs #:allow-other-keys)
12076 (let* ((out (assoc-ref outputs "out"))
12077 (info-dir (string-append out "/share/info"))
12078 (doc-dir (string-append out "/share/doc/"
12079 ,name "-" ,version))
12080 (doc-files '( ;; "doc/sly-refcard.pdf" ; See sly-refcard.pdf below.
12081 "README.md" "NEWS.md" "PROBLEMS.md"
12082 "CONTRIBUTING.md")))
12083 (with-directory-excursion "doc"
12084 (substitute* "Makefile"
12085 (("infodir=/usr/local/info")
12086 (string-append "infodir=" info-dir))
12087 ;; Don't rebuild contributors.texi since we are not in
12088 ;; the git repo.
12089 (("contributors.texi: Makefile texinfo-tabulate.awk")
12090 "contributors.texi:"))
12091 (invoke "make" "html/index.html")
12092 (invoke "make" "sly.info")
12093 ;; TODO: We need minimal texlive with "preprint" package
12094 ;; (for fullpage.sty). (invoke "make" "sly-refcard.pdf")
12095 (install-file "sly.info" info-dir)
12096 (copy-recursively "html" (string-append doc-dir "/html")))
12097 (for-each (lambda (f)
12098 (install-file f doc-dir)
12099 (delete-file f))
12100 doc-files)
12101 (delete-file-recursively "doc")
12102 #t))))))
12103 (home-page "https://github.com/joaotavora/sly")
12104 (synopsis "Sylvester the Cat's Common Lisp IDE")
12105 (description
12106 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
12107 contains the following improvements over it:
12108
12109 @enumerate
12110 @item A full-featured REPL based on Emacs's @code{comint.el}. Everything
12111 can be copied to the REPL;
12112 @item Stickers, or live code annotations that record values as code traverses them.
12113 @item Flex-style completion out-of-the-box, using Emacs's completion API.
12114 Company, Helm, and other supported natively, no plugin required;
12115 @item An interactive Trace Dialog;
12116 @item Multiple inspectors and multiple REPLs, with independent history.
12117 @item Regexp-capable @code{M-x sly-apropos}.
12118 @item Cleanly ASDF-loaded by default, including contribs, enabled out-of-the-box;
12119 @item \"Presentations\" replaced by interactive backreferences, which
12120 highlight the object and remain stable throughout the REPL session;
12121 @end enumerate
12122
12123 SLY tracks SLIME's bugfixes and all its familiar features (debugger, inspector,
12124 xref, etc.) are still available, but with better integration.")
12125 (license license:gpl3+))))
12126
12127 (define-public emacs-sly-quicklisp
12128 (let ((commit "01ebe3976a244309f2e277c09206831135a0b66c")
12129 (revision "1"))
12130 (package
12131 (name "emacs-sly-quicklisp")
12132 (version (git-version "0.0.0" revision commit))
12133 (home-page "https://github.com/joaotavora/sly-quicklisp")
12134 (source
12135 (origin
12136 (method git-fetch)
12137 (uri (git-reference
12138 (url home-page)
12139 (commit commit)))
12140 (file-name (git-file-name name version))
12141 (sha256
12142 (base32
12143 "1vfqmvayf35g6y3ljsm3rlzv5jm50qikhh4lv2zkkswj6gkkb1cv"))))
12144 (build-system emacs-build-system)
12145 (propagated-inputs
12146 (list emacs-sly))
12147 (arguments
12148 `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
12149 #:phases
12150 ;; The package provides autoloads.
12151 (modify-phases %standard-phases
12152 (delete 'make-autoloads)
12153 (delete 'enable-autoloads-compilation))))
12154 (synopsis "Quicklisp support for SLY")
12155 (description
12156 "@command{sly-quicklisp} is an external contrib for SLY that provides a
12157 sly-quickload command that prompts the user for a package to install.")
12158 (license license:gpl3+))))
12159
12160 (define-public emacs-sly-asdf
12161 (let ((commit "3180921efdc19a2195960e1d601b2a6f31a6feea")
12162 (revision "5"))
12163 (package
12164 (name "emacs-sly-asdf")
12165 (version (git-version "0.1.0" revision commit))
12166 (home-page "https://github.com/mmgeorge/sly-asdf")
12167 (source
12168 (origin
12169 (method git-fetch)
12170 (uri (git-reference
12171 (url home-page)
12172 (commit commit)))
12173 (file-name (git-file-name name version))
12174 (sha256
12175 (base32
12176 "0gncp8xv33s4wx594bgd35vr1455bcggv1bg28qv75mhv41nzw97"))))
12177 (build-system emacs-build-system)
12178 (propagated-inputs
12179 (list emacs-sly emacs-popup))
12180 (arguments
12181 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)))
12182 (synopsis "ASDF contrib for SLY")
12183 (description
12184 "@command{sly-asdf} is an external contrib for SLY that provides
12185 additional support for working with ASDF projects.")
12186 (license license:gpl3+))))
12187
12188 (define-public emacs-sly-named-readtables
12189 (let ((commit "a5a42674ccffa97ccd5e4e9742beaf3ea719931f")
12190 (revision "1"))
12191 (package
12192 (name "emacs-sly-named-readtables")
12193 (version (git-version "0.1" revision commit))
12194 (home-page "https://github.com/joaotavora/sly-named-readtables")
12195 (source
12196 (origin
12197 (method git-fetch)
12198 (uri (git-reference
12199 (url home-page)
12200 (commit commit)))
12201 (file-name (git-file-name name version))
12202 (sha256
12203 (base32
12204 "16asd119rzqrlclps2q6yrkis8jy5an5xgzzqvb7jdyq39zxg54q"))))
12205 (build-system emacs-build-system)
12206 (propagated-inputs
12207 (list emacs-sly))
12208 (arguments
12209 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
12210 #:phases (modify-phases %standard-phases
12211 ;; Byte compilation of the autoload file fails.
12212 (delete 'enable-autoloads-compilation))))
12213 (synopsis "Named-readtables support for SLY")
12214 (description
12215 "@command{sly-named-readtables} is an external contrib for SLY that
12216 enables different readtables to be active in different parts of the same
12217 file.")
12218 (license license:gpl3+))))
12219
12220 (define-public emacs-sly-macrostep
12221 (let ((commit "5113e4e926cd752b1d0bcc1508b3ebad5def5fad")
12222 (revision "2"))
12223 (package
12224 (name "emacs-sly-macrostep")
12225 (version (git-version "0.1" revision commit))
12226 (home-page "https://github.com/joaotavora/sly-macrostep")
12227 (source
12228 (origin
12229 (method git-fetch)
12230 (uri (git-reference
12231 (url home-page)
12232 (commit commit)))
12233 (file-name (git-file-name name version))
12234 (sha256
12235 (base32
12236 "1nxf28gn4f3n0wnv7nb5sgl36fz175y470zs9hig4kq8cp0yal0r"))))
12237 (build-system emacs-build-system)
12238 (propagated-inputs
12239 (list emacs-sly emacs-macrostep))
12240 (arguments
12241 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
12242 #:phases
12243 ;; The package provides autoloads.
12244 (modify-phases %standard-phases
12245 (delete 'make-autoloads)
12246 (delete 'enable-autoloads-compilation))))
12247 (synopsis "Expand Common Lisp macros inside source files with SLY")
12248 (description
12249 "@command{sly-macrostep} is a SLY contrib for expanding CL macros right
12250 inside the source file.")
12251 (license license:gpl3+))))
12252
12253 (define-public emacs-sly-stepper
12254 (let ((commit "da84e3bba8466c2290c2dc7c27d7f4c48c27b39e"))
12255 (package
12256 (name "emacs-sly-stepper")
12257 (version (git-version "0.0.0" "2" commit))
12258 (home-page "https://github.com/joaotavora/sly-stepper")
12259 (source
12260 (origin
12261 (method git-fetch)
12262 (uri (git-reference
12263 (url home-page)
12264 (commit commit)))
12265 (file-name (git-file-name name version))
12266 (sha256
12267 (base32
12268 "07p0k797fagn1qha191p6g2b55hsqqkcj59mh0ms9id0ildydil0"))
12269 (modules '((guix build utils)))
12270 (snippet
12271 '(begin
12272 (map delete-file (find-files "." ".*-autoloads\\.elc?$"))
12273 #t))))
12274 (build-system emacs-build-system)
12275 (inputs
12276 (list cl-agnostic-lizard))
12277 (propagated-inputs
12278 (list emacs-sly))
12279 (arguments
12280 `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
12281 #:phases
12282 (modify-phases %standard-phases
12283 (add-after 'expand-load-path 'expand-sly-contrib
12284 (lambda* (#:key inputs #:allow-other-keys)
12285 (let* ((sly (assoc-ref inputs "emacs-sly"))
12286 (contrib (find-files sly "^contrib$" #:directories? #t)))
12287 (setenv "EMACSLOADPATH"
12288 (string-append (string-join contrib ":")
12289 ":"
12290 (getenv "EMACSLOADPATH")))
12291 #t)))
12292 (add-after 'install 'find-agnostic-lizard
12293 (lambda* (#:key inputs outputs #:allow-other-keys)
12294 (let* ((out (assoc-ref outputs "out"))
12295 (file (string-append (elpa-directory out)
12296 "/slynk-stepper.lisp"))
12297 (asd (string-append
12298 (assoc-ref inputs "cl-agnostic-lizard")
12299 "/share/common-lisp/systems/agnostic-lizard.asd")))
12300 ;; agnostic-lizard is found at runtime.
12301 (substitute* file
12302 (("\\(require :asdf\\)")
12303 (string-append
12304 "(require :asdf)\n"
12305 " (funcall (read-from-string \"asdf:load-asd\")\n"
12306 " \"" asd "\")\n")))))))))
12307 (synopsis "Portable Common Lisp stepper interface for Emacs")
12308 (description
12309 "This package features a new, portable, visual stepping facility for
12310 Common Lisp, realized as an extension to SLY.")
12311 (license license:gpl3+))))
12312
12313 (define-public emacs-sly-package-inferred
12314 (let ((commit "800e71e2be631422277e2ec77e6d6f6ea20e95ef")
12315 (revision "1"))
12316 (package
12317 (name "emacs-sly-package-inferred")
12318 (version (git-version "0.1" revision commit))
12319 (home-page "https://github.com/40ants/sly-package-inferred")
12320 (source
12321 (origin
12322 (method git-fetch)
12323 (uri (git-reference
12324 (url home-page)
12325 (commit commit)))
12326 (file-name (git-file-name name version))
12327 (sha256
12328 (base32
12329 "1216idyp034nkqddhw4p53jkhhdxa6xnjjmsvijpf4rxqnfqvapg"))))
12330 (build-system emacs-build-system)
12331 (propagated-inputs
12332 (list emacs-sly))
12333 (arguments
12334 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
12335 #:phases
12336 ;; The package provides autoloads.
12337 (modify-phases %standard-phases
12338 (delete 'make-autoloads))))
12339 (synopsis "Improved package inferred systems support for SLY")
12340 (description
12341 "@command{sly-package-inferred} is an external contrib for SLY that
12342 replaces its completion with a function which is better suited for systems
12343 using package inferred style.")
12344 (license license:gpl3+))))
12345
12346 (define-public emacs-lua-mode
12347 (package
12348 (name "emacs-lua-mode")
12349 (version "20210802")
12350 (home-page "https://github.com/immerrr/lua-mode/")
12351 (source
12352 (origin
12353 (method git-fetch)
12354 (uri (git-reference
12355 (url home-page)
12356 (commit (string-append "v" version))))
12357 (file-name (git-file-name name version))
12358 (sha256
12359 (base32 "0r3svhggdml2n256k3b0zmbjnw51p46gan6dg07bhavpfrqs5196"))))
12360 (build-system emacs-build-system)
12361 (arguments
12362 `(#:tests? #t
12363 #:test-command '("buttercup" "-l" "lua-mode.el")))
12364 (native-inputs
12365 (list emacs-buttercup lua))
12366 (synopsis "Major mode for lua")
12367 (description
12368 "This Emacs package provides a mode for @uref{https://www.lua.org/,
12369 Lua programming language}.")
12370 (license license:gpl2+)))
12371
12372 (define-public emacs-ebuild-mode
12373 (package
12374 (name "emacs-ebuild-mode")
12375 (version "1.56")
12376 (source
12377 (origin
12378 (method url-fetch)
12379 (uri (string-append
12380 "https://dev.gentoo.org/~ulm/emacs/"
12381 "ebuild-mode-" version ".tar.xz"))
12382 (file-name (string-append name "-" version ".tar.xz"))
12383 (sha256
12384 (base32 "01q5k7dkyri0s8h7jwng4rw128mx6pdn816zlr0g8rh2798cf91k"))))
12385 (build-system emacs-build-system)
12386 (arguments
12387 (list
12388 #:phases
12389 #~(modify-phases %standard-phases
12390 (add-after 'install 'install-doc
12391 (lambda _
12392 (invoke "make" "ebuild-mode.info")
12393 (install-file "ebuild-mode.info"
12394 (string-append #$output "/share/info")))))))
12395 (native-inputs
12396 (list texinfo))
12397 (home-page "https://devmanual.gentoo.org")
12398 (synopsis "Major modes for Gentoo package files")
12399 (description
12400 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
12401 news items, openrc and runscripts.")
12402 (license license:gpl2+)))
12403
12404 (define-public emacs-evil
12405 ;; Commit message claims this is 1.15.0, but there's no tag for it, so we
12406 ;; use full git-version instead
12407 (let ((commit "008a6cdb12f15e748979a7d1c2f26c34c84dedbf")
12408 (revision "0"))
12409 (package
12410 (name "emacs-evil")
12411 (version (git-version "1.15.0" revision commit))
12412 (source
12413 (origin
12414 (method git-fetch)
12415 (uri (git-reference
12416 (url "https://github.com/emacs-evil/evil")
12417 (commit commit)))
12418 (file-name (git-file-name name version))
12419 (sha256
12420 (base32
12421 "1hxhw1rsm0wbrhz85gfabncanijpxd47g5yrdnl3bbm499z1gsvg"))))
12422 (arguments
12423 `(#:phases
12424 (modify-phases %standard-phases
12425 (add-before 'check 'fix-test-helpers
12426 (lambda _
12427 (substitute* "evil-test-helpers.el"
12428 (("\\(undo-tree-mode 1\\)") ""))
12429 #t))
12430 (add-before 'install 'make-info
12431 (lambda _
12432 (with-directory-excursion "doc/build/texinfo"
12433 (invoke "makeinfo" "--no-split"
12434 "-o" "evil.info" "evil.texi")))))))
12435 (build-system emacs-build-system)
12436 (native-inputs (list texinfo))
12437 (home-page "https://github.com/emacs-evil/evil")
12438 (synopsis "Extensible Vi layer for Emacs")
12439 (description
12440 "Evil is an extensible vi layer for Emacs. It emulates the
12441 main features of Vim, and provides facilities for writing custom
12442 extensions.")
12443 (license license:gpl3+))))
12444
12445 (define-public emacs-evil-collection
12446 (package
12447 (name "emacs-evil-collection")
12448 (version "0.0.8")
12449 (source
12450 (origin
12451 (method git-fetch)
12452 (uri (git-reference
12453 (url "https://github.com/emacs-evil/evil-collection")
12454 (commit version)))
12455 (file-name (git-file-name name version))
12456 (sha256
12457 (base32 "159i3qvjnp7jiffwpr517nnxcy3w3g40302vyzxvz6mb6qay6f2c"))))
12458 (build-system emacs-build-system)
12459 (propagated-inputs
12460 (list emacs-evil emacs-annalist))
12461 (arguments
12462 `(#:include (cons* "^modes\\/" %default-include)))
12463 (home-page "https://github.com/emacs-evil/evil-collection")
12464 (synopsis "Collection of Evil bindings for many major and minor modes")
12465 (description "This is a collection of Evil bindings for the parts of
12466 Emacs that Evil does not cover properly by default, such as @code{help-mode},
12467 @code{M-x calendar}, Eshell and more.")
12468 (license license:gpl3+)))
12469
12470 (define-public emacs-evil-goggles
12471 (let ((commit "08a22058fd6a167f9f1b684c649008caef571459")
12472 (version "0.0.1")
12473 (revision "0"))
12474 (package
12475 (name "emacs-evil-goggles")
12476 (version (git-version version revision commit))
12477 (source
12478 (origin
12479 (method git-fetch)
12480 (uri (git-reference
12481 (url "https://github.com/edkolev/evil-goggles")
12482 (commit commit)))
12483 (file-name (git-file-name name version))
12484 (sha256
12485 (base32 "1p3vjrij63v9nrcyj3b5jsqzv9y7dgv9i1inx1q7x3s90vndavac"))))
12486 (build-system emacs-build-system)
12487 (propagated-inputs
12488 (list emacs-evil))
12489 (home-page "https://github.com/edkolev/evil-goggles")
12490 (synopsis "Displays visual hints when editing with evil")
12491 (description "Creates a visual pulse to indicate the region that is
12492 being deleted, changed, yanked, or pasted when using evil commands")
12493 (license license:gpl3+))))
12494
12495 (define-public emacs-goggles
12496 (package
12497 (name "emacs-goggles")
12498 (version "0.2")
12499 (source
12500 (origin
12501 (method git-fetch)
12502 (uri (git-reference
12503 (url "https://github.com/minad/goggles")
12504 (commit version)))
12505 (file-name (git-file-name name version))
12506 (sha256
12507 (base32 "15bqjmwfdqp2np6fln6xjyw59c5iddvzsyga0lvb8raa753cdh2k"))))
12508 (build-system emacs-build-system)
12509 (home-page "https://github.com/minad/goggles")
12510 (synopsis "Pulse modified region")
12511 (description "Goggles highlights the modified region using pulse.
12512 Currently the commands undo, yank, kill and delete are supported.")
12513 (license license:gpl3+)))
12514
12515 (define-public emacs-goto-chg
12516 (package
12517 (name "emacs-goto-chg")
12518 (version "1.7.5")
12519 (source
12520 (origin
12521 (method git-fetch)
12522 (uri (git-reference
12523 (url "https://github.com/emacs-evil/goto-chg")
12524 (commit version)))
12525 (file-name (git-file-name name version))
12526 (sha256
12527 (base32
12528 "0rgdzhan4n5bd78wvivacqkp0g7jvnwzgh0571p2m4yra09a36mv"))))
12529 (build-system emacs-build-system)
12530 (home-page "https://github.com/emacs-evil/goto-chg")
12531 (synopsis "Go to the last change in the Emacs buffer")
12532 (description
12533 "This package provides @code{M-x goto-last-change} command that goes to
12534 the point of the most recent edit in the current Emacs buffer. When repeated,
12535 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
12536 used for reverse direction.")
12537 (license license:gpl2+)))
12538
12539 (define-public emacs-janpath-evil-numbers
12540 (let ((commit "d988041c1fe6e941dc8d591390750b237f71f524")
12541 (version "0.5")
12542 (revision "1"))
12543 (package
12544 (name "emacs-janpath-evil-numbers")
12545 (version (git-version version revision commit))
12546 (source
12547 (origin
12548 (method git-fetch)
12549 (uri (git-reference
12550 (url "https://github.com/janpath/evil-numbers")
12551 (commit commit)))
12552 (file-name (git-file-name name version))
12553 (sha256
12554 (base32
12555 "16zixhxxcb83m82f2cfiardfn99j3w41v6vh1qk6j9pplrlfw70v"))))
12556 (build-system emacs-build-system)
12557 (propagated-inputs (list emacs-evil))
12558 (home-page "https://github.com/janpath/evil-numbers")
12559 (synopsis "Increment and decrement numeric literals")
12560 (description
12561 "This package provides functionality to search for a number up to the
12562 end of a line and increment or decrement it.")
12563 (license license:gpl3+))))
12564
12565 (define-public emacs-evil-owl
12566 (let ((commit "24c5f43df375194386344e69bc720ea3986c9510")
12567 (revision "3"))
12568 (package
12569 (name "emacs-evil-owl")
12570 (version (git-version "0.0.1" revision commit))
12571 (source
12572 (origin
12573 (method git-fetch)
12574 (uri (git-reference
12575 (url "https://github.com/mamapanda/evil-owl")
12576 (commit commit)))
12577 (file-name (git-file-name name version))
12578 (sha256
12579 (base32
12580 "0bqzch14whlmrcasakah3psrzswvkzd7mmi8hx5s64kfp29wbdhi"))))
12581 (build-system emacs-build-system)
12582 (propagated-inputs
12583 (list emacs-evil))
12584 (arguments
12585 `(#:tests? #t
12586 #:test-command '("make" "test")))
12587 (home-page "https://github.com/mamapanda/evil-owl")
12588 (synopsis "Preview candidates when using Evil registers and marks")
12589 (description
12590 "This package supplements Evil's register- and mark-based commands with
12591 a popup window for previewing candidates.")
12592 (license license:gpl3+))))
12593
12594 (define-public emacs-evil-paredit
12595 (let ((commit "e058fbdcf9dbf7ad6cc77f0172d7517ef233d55f"))
12596 (package
12597 (name "emacs-evil-paredit")
12598 (version "0.0.2") ; says 0.0.2 in evil-paredit.el
12599 (source
12600 (origin
12601 (method git-fetch)
12602 (uri (git-reference
12603 (url "https://github.com/roman/evil-paredit")
12604 (commit commit)))
12605 (file-name (git-file-name name version))
12606 (sha256
12607 (base32 "0b08y4spapl4g2292j3l4cr84gjlvm3rpma3gqld4yb1sxd7v78p"))))
12608 (build-system emacs-build-system)
12609 (propagated-inputs
12610 (list emacs-evil emacs-paredit))
12611 (home-page "https://github.com/roman/evil-paredit")
12612 (synopsis "Evil extension to integrate nicely with Paredit")
12613 (description
12614 "This package helps you to not screw up your Paredit setup when using
12615 Evil mode. Whenever you try to use a modifier command like @kbd{d}, @kbd{c},
12616 @kbd{y} to modify the Paredit buffer, it will stop you to do so in the case
12617 you break the parity of parenthesis.")
12618 (license license:expat))))
12619
12620 (define-public emacs-evil-args
12621 (let ((commit "758ad5ae54ad34202064fec192c88151c08cb387")
12622 (revision "1"))
12623 (package
12624 (name "emacs-evil-args")
12625 (version (git-version "1.0" revision commit))
12626 (source
12627 (origin
12628 (method git-fetch)
12629 (uri (git-reference
12630 (url "https://github.com/wcsmith/evil-args")
12631 (commit commit)))
12632 (file-name (git-file-name name version))
12633 (sha256
12634 (base32
12635 "0k35glgsirc3cph8v5hhjrqfh4ndwh8a28qbr03y3jl8s453xcj7"))))
12636 (build-system emacs-build-system)
12637 (propagated-inputs (list emacs-evil))
12638 (home-page "https://github.com/wcsmith/evil-args")
12639 (synopsis "Motions and text objects for delimited arguments in Evil")
12640 (description
12641 "This package provides motions and text objects for delimited
12642 arguments, such as arguments separated by commas and semicolons.")
12643 (license license:expat))))
12644
12645 (define-public emacs-evil-escape
12646 (package
12647 (name "emacs-evil-escape")
12648 (version "3.14")
12649 (source
12650 (origin
12651 (method git-fetch)
12652 (uri
12653 (git-reference
12654 (url "https://github.com/syl20bnr/evil-escape")
12655 (commit (string-append "v" version))))
12656 (file-name (git-file-name name version))
12657 (sha256
12658 (base32 "0s8lmmm25qabicwaj9jybpbd8mkc62yl7jnhk1lpablydjkv3w2i"))))
12659 (propagated-inputs
12660 (list emacs-evil))
12661 (build-system emacs-build-system)
12662 (home-page "https://github.com/syl20bnr/evil-escape")
12663 (synopsis "Escape from insert state and everything else in Emacs")
12664 (description
12665 "Evil escape provides a customizable key sequence to escape from insert
12666 state and everything else in Emacs.")
12667 (license license:gpl3+)))
12668
12669 (define-public emacs-evil-exchange
12670 (let ((commit "47691537815150715e64e6f6ec79be7746c96120")
12671 (version "0.41")
12672 (revision "1"))
12673 (package
12674 (name "emacs-evil-exchange")
12675 (version (git-version version revision commit))
12676 (source
12677 (origin
12678 (method git-fetch)
12679 (uri (git-reference
12680 (url "https://github.com/Dewdrops/evil-exchange")
12681 (commit commit)))
12682 (file-name (git-file-name name version))
12683 (sha256
12684 (base32
12685 "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa"))))
12686 (build-system emacs-build-system)
12687 (propagated-inputs (list emacs-evil))
12688 (native-inputs (list emacs-ert-runner))
12689 (arguments
12690 `(#:phases
12691 (modify-phases %standard-phases
12692 (add-before 'check 'fix-makefile
12693 (lambda _
12694 (substitute* "Makefile"
12695 (("cask exec ") ""))
12696 #t)))
12697 #:tests? #t
12698 #:test-command '("make" "test")))
12699 (home-page "https://github.com/Dewdrops/evil-exchange")
12700 (synopsis "Exchange text easily within Evil")
12701 (description
12702 "This package, a port of @code{vim-exchange}, provides an Evil operator
12703 for exchanging text.")
12704 (license license:gpl3+))))
12705
12706 (define-public emacs-evil-replace-with-register
12707 (let ((commit "91cc7bf21a94703c441cc9212214075b226b7f67")
12708 (version "0.1")
12709 (revision "1"))
12710 (package
12711 (name "emacs-evil-replace-with-register")
12712 (version (git-version version revision commit))
12713 (source
12714 (origin
12715 (method git-fetch)
12716 (uri (git-reference
12717 (url "https://github.com/Dewdrops/evil-ReplaceWithRegister")
12718 (commit commit)))
12719 (file-name (git-file-name name version))
12720 (sha256
12721 (base32
12722 "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11"))))
12723 (build-system emacs-build-system)
12724 (propagated-inputs (list emacs-evil))
12725 (home-page "https://github.com/Dewdrops/evil-ReplaceWithRegister")
12726 (synopsis "Quickly replace text with the contents of a register")
12727 (description
12728 "This package provides an Evil operator for replacing text with the
12729 contents of a register.")
12730 (license license:gpl3+))))
12731
12732 (define-public emacs-evil-indent-plus
12733 (let ((commit "0c7501e6efed661242c3a20e0a6c79a6455c2c40")
12734 (version "1.0.0")
12735 (revision "1"))
12736 (package
12737 (name "emacs-evil-indent-plus")
12738 (version (git-version version revision commit))
12739 (source
12740 (origin
12741 (method git-fetch)
12742 (uri (git-reference
12743 (url "https://github.com/TheBB/evil-indent-plus")
12744 (commit commit)))
12745 (file-name (git-file-name name version))
12746 (sha256
12747 (base32
12748 "1g6r1ydscwjvmhh1zg4q3nap4avk8lb9msdqrh7dff6pla0r2qs6"))))
12749 (build-system emacs-build-system)
12750 (propagated-inputs (list emacs-evil))
12751 (home-page "https://github.com/TheBB/evil-indent-plus")
12752 (synopsis "Text objects based on indentation")
12753 (description
12754 "This package adds new text objects for @code{evil-mode} based on
12755 blocks having the same or higher indentation, including or excluding
12756 surrounding lines.")
12757 (license license:gpl2+))))
12758
12759 (define-public emacs-evil-text-object-python
12760 (let ((commit "9a064fe6475429145cbcc3b270fcc963b67adb15")
12761 (version "1.0.1")
12762 (revision "1"))
12763 (package
12764 (name "emacs-evil-text-object-python")
12765 (version (git-version version revision commit))
12766 (source
12767 (origin
12768 (method git-fetch)
12769 (uri (git-reference
12770 (url "https://github.com/wbolster/evil-text-object-python")
12771 (commit commit)))
12772 (file-name (git-file-name name version))
12773 (sha256
12774 (base32
12775 "074zpm6mmr1wfl6d5xdf8jk1fs4ccpbzf4ahhkwga9g71xiplszv"))))
12776 (build-system emacs-build-system)
12777 (propagated-inputs (list emacs-evil))
12778 (home-page "https://github.com/wbolster/evil-text-object-python")
12779 (synopsis "Text objects for Python")
12780 (description
12781 "This package provides @code{evil-mode} text objects for Python.")
12782 (license license:gpl3+))))
12783
12784 (define-public emacs-evil-lion
12785 (let ((commit "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab")
12786 (revision "1"))
12787 (package
12788 (name "emacs-evil-lion")
12789 (version (git-version "0.0.2" revision commit))
12790 (source
12791 (origin
12792 (method git-fetch)
12793 (uri (git-reference
12794 (url "https://github.com/edkolev/evil-lion")
12795 (commit commit)))
12796 (file-name (git-file-name name version))
12797 (sha256
12798 (base32
12799 "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q"))))
12800 (build-system emacs-build-system)
12801 (propagated-inputs (list emacs-evil))
12802 (arguments
12803 `(#:tests? #t
12804 #:test-command '("make" "test")))
12805 (home-page "https://github.com/edkolev/evil-lion")
12806 (synopsis "Align operator for @code{evil-mode}")
12807 (description
12808 "This package, a port of @code{vim-lion}, provides an operator for
12809 aligning text objects based on separators.")
12810 (license license:gpl3+))))
12811
12812 (define-public emacs-evil-expat
12813 (let ((commit "f4fcd0aa3edc359adb5c986b5dd9188d220d84e2")
12814 (revision "1"))
12815 (package
12816 (name "emacs-evil-expat")
12817 (version (git-version "0.0.1" revision commit))
12818 (source
12819 (origin
12820 (method git-fetch)
12821 (uri (git-reference
12822 (url "https://github.com/edkolev/evil-expat")
12823 (commit commit)))
12824 (file-name (git-file-name name version))
12825 (sha256
12826 (base32
12827 "0872ix682hkdz0k8pn6sb54rqkx00rz5fxpd5j2snx406yagpaxz"))))
12828 (build-system emacs-build-system)
12829 (propagated-inputs (list emacs-evil))
12830 (arguments
12831 `(#:tests? #t
12832 #:test-command '("make" "test")))
12833 (home-page "https://github.com/edkolev/evil-expat")
12834 (synopsis "Extra @code{ex} commands for @code{evil-mode}")
12835 (description
12836 "This package provides additional commands for the @code{ex} command
12837 line, including functions for version control with Git and for copying and
12838 pasting into and from @code{tmux} paste buffers.")
12839 (license license:gpl3+))))
12840
12841 (define-public emacs-evil-nerd-commenter
12842 (package
12843 (name "emacs-evil-nerd-commenter")
12844 (version "3.5.6")
12845 (source
12846 (origin
12847 (method git-fetch)
12848 (uri (git-reference
12849 (url "https://github.com/redguardtoo/evil-nerd-commenter")
12850 (commit version)))
12851 (file-name (git-file-name name version))
12852 (sha256
12853 (base32
12854 "1y6qy4gv7k8aghi5snvh248nxpgxv0daryd2794n6gfb4ciwycrr"))))
12855 (build-system emacs-build-system)
12856 (propagated-inputs (list emacs-evil))
12857 (home-page "https://github.com/redguardtoo/evil-nerd-commenter")
12858 (synopsis "Comment and uncomment lines efficiently")
12859 (description
12860 "This package provides text objects and operators for comments within
12861 @code{evil-mode}.")
12862 (license license:gpl3+)))
12863
12864 (define-public emacs-evil-visual-replace
12865 (package
12866 (name "emacs-evil-visual-replace")
12867 (version "0.0.5")
12868 (source
12869 (origin
12870 (method git-fetch)
12871 (uri (git-reference
12872 (url "https://github.com/troyp/evil-visual-replace")
12873 (commit version)))
12874 (file-name (git-file-name name version))
12875 (sha256
12876 (base32
12877 "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"))))
12878 (build-system emacs-build-system)
12879 (propagated-inputs (list emacs-evil))
12880 (home-page "https://github.com/troyp/evil-visual-replace")
12881 (synopsis "Replacement commands for @code{evil-mode} visual blocks")
12882 (description
12883 "This package provides versions of @code{query-replace} and
12884 @code{replace-regexp} that work for @code{evil-mode} visual blocks.")
12885 (license license:gpl2+)))
12886
12887 (define-public emacs-evil-visualstar
12888 (let ((commit "06c053d8f7381f91c53311b1234872ca96ced752")
12889 (version "0.2.0")
12890 (revision "1"))
12891 (package
12892 (name "emacs-evil-visualstar")
12893 (version (git-version version revision commit))
12894 (source
12895 (origin
12896 (method git-fetch)
12897 (uri (git-reference
12898 (url "https://github.com/bling/evil-visualstar")
12899 (commit commit)))
12900 (file-name (git-file-name name version))
12901 (sha256
12902 (base32
12903 "0mkbzw12fav945icibc2293m5haxqr3hzkyli2cf4ssk6yvn0x4c"))))
12904 (build-system emacs-build-system)
12905 (propagated-inputs (list emacs-evil))
12906 (home-page "https://github.com/bling/evil-visualstar")
12907 (synopsis "Instantly search using the visual selection")
12908 (description
12909 "This package provides @code{evil-mode} functions for using selected text
12910 to search.")
12911 (license license:gpl3+))))
12912
12913 (define-public emacs-monky
12914 (package
12915 (name "emacs-monky")
12916 (version "0.1")
12917 (source (origin
12918 (method git-fetch)
12919 (uri (git-reference
12920 (url "https://github.com/ananthakumaran/monky")
12921 (commit version)))
12922 (file-name (git-file-name name version))
12923 (sha256
12924 (base32
12925 "1fgn7al4zwz2k5wb5dy3byqg9lsrjk9fra341mxh5ma2pfwxjgps"))))
12926 (build-system emacs-build-system)
12927 (home-page "https://ananthakumaran.in/monky/index.html")
12928 (arguments
12929 `(#:tests? #t
12930 #:test-command '("emacs" "--batch"
12931 "-l" "test/monky-unit-test.el"
12932 "-f" "ert-run-tests-batch-and-exit")))
12933 (synopsis "Interactive interface for the Mercurial version control system")
12934 (description
12935 "Monky provides an Emacs interface for Mercurial (Hg). Using Monky, you
12936 can selectively commit files, view the diffs, and other things.")
12937 (license license:gpl3+)))
12938
12939 (define-public emacs-monroe
12940 (package
12941 (name "emacs-monroe")
12942 (version "0.3.1")
12943 (source
12944 (origin
12945 (method git-fetch)
12946 (uri (git-reference
12947 (url "https://github.com/sanel/monroe")
12948 (commit version)))
12949 (file-name (git-file-name name version))
12950 (sha256
12951 (base32 "101lfrykdbv37spkbw7zihhx26bc1lhjyxbanrcp9880bxj04jiy"))))
12952 (build-system emacs-build-system)
12953 (home-page "https://github.com/sanel/monroe")
12954 (synopsis "Clojure nREPL client for Emacs")
12955 (description
12956 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
12957 distribution, primarily targeting Clojure users")
12958 (license license:gpl3+)))
12959
12960 (define-public emacs-orgalist
12961 (package
12962 (name "emacs-orgalist")
12963 (version "1.13")
12964 (source
12965 (origin
12966 (method url-fetch)
12967 (uri (string-append "https://elpa.gnu.org/packages/"
12968 "orgalist-" version ".el"))
12969 (sha256
12970 (base32 "1wkxc5kcy1g4lx6pd78pa8znncjyl9zyhsvz7wpp56qmhq4hlav3"))))
12971 (build-system emacs-build-system)
12972 (home-page "https://elpa.gnu.org/packages/orgalist.html")
12973 (synopsis "Manage Org-like lists in non-Org buffers")
12974 (description "Orgalist writes and manages Org mode's plain lists in
12975 non-Org buffers. More specifically, it supports the syntax of Org mode for
12976 numbered, unnumbered, description items, checkboxes, and counter cookies.
12977
12978 The library also implements radio lists, i.e., lists written in Org syntax
12979 later translated into the host format, e.g., LaTeX or HTML.")
12980 (license license:gpl3+)))
12981
12982 (define-public emacs-writegood-mode
12983 (package
12984 (name "emacs-writegood-mode")
12985 (version "2.2.0")
12986 (home-page "https://github.com/bnbeckwith/writegood-mode")
12987 (source (origin
12988 (method git-fetch)
12989 (uri (git-reference
12990 (url home-page)
12991 (commit (string-append "v" version))))
12992 (sha256
12993 (base32
12994 "1a3gmaaa344kigr209b6wnjiw9ikkmw1j5jda04h3g8f9817njyv"))
12995 (file-name (string-append name "-checkout"))))
12996 (build-system emacs-build-system)
12997 (synopsis "Polish up poor writing on the fly")
12998 (description
12999 "This minor mode tries to find and highlight problems with your writing
13000 in English as you type. It primarily detects \"weasel words\" and abuse of
13001 passive voice.")
13002 (license license:gpl3+)))
13003
13004 (define-public emacs-neotree
13005 (package
13006 (name "emacs-neotree")
13007 (version "0.5.2")
13008 (home-page "https://github.com/jaypei/emacs-neotree")
13009 (source (origin
13010 (method git-fetch)
13011 (uri (git-reference
13012 (url home-page)
13013 (commit version)))
13014 (sha256
13015 (base32
13016 "0hx72fq10772bbyqrj7mhhp02k26cccjxdadiqm1ykainhfmn1x0"))
13017 (file-name (git-file-name name version))))
13018 (build-system emacs-build-system)
13019 (synopsis "Folder tree view for Emacs")
13020 (description "This Emacs package provides a folder tree view.")
13021 (license license:gpl3+)))
13022
13023 (define-public emacs-org
13024 (package
13025 (name "emacs-org")
13026 (version "9.5.4")
13027 (source
13028 (origin
13029 (method git-fetch)
13030 (uri (git-reference
13031 (url "https://git.savannah.gnu.org/git/emacs/org-mode.git")
13032 (commit (string-append "release_" version))))
13033 (file-name (git-file-name name version))
13034 (sha256
13035 (base32 "1an866kkn5r84933s04agm1c3197kza2pvk8lqp2xzpjd09ba394"))))
13036 (build-system emacs-build-system)
13037 (arguments
13038 `(#:tests? #t
13039 #:test-command '("make" "test-dirty")
13040 #:phases
13041 (modify-phases %standard-phases
13042 (delete 'build)
13043 (add-before 'check 'make
13044 (lambda _
13045 (invoke "make" (string-append "ORGVERSION=" ,version))))
13046 (replace 'install
13047 (lambda* (#:key outputs #:allow-other-keys)
13048 (substitute* "local.mk"
13049 (("^prefix.*")
13050 (string-append "prefix = " (assoc-ref outputs "out")))
13051 (("^lispdir.*")
13052 (string-append "lispdir = "
13053 (elpa-directory (assoc-ref outputs "out")))))
13054 ;; The dependent targets for install perform cleanup that
13055 ;; partially undoes our make phase
13056 (substitute* "lisp/Makefile"
13057 (("^install:.*") "install:\n"))
13058 (invoke "make" "install")))
13059 (add-after 'unpack 'fix-tests
13060 (lambda* (#:key inputs #:allow-other-keys)
13061 ;; These files are modified during testing
13062 (with-directory-excursion "testing/examples"
13063 (for-each make-file-writable
13064 '("babel.org"
13065 "ob-awk-test.org"
13066 "ob-sed-test.org"
13067 "ob-shell-test.org"))
13068 ;; Specify where sh is
13069 (substitute* "babel.org"
13070 (("/bin/sh" sh)
13071 (string-append (assoc-ref inputs "bash") sh)))))))))
13072 (native-inputs
13073 (list texinfo))
13074 (home-page "https://orgmode.org/")
13075 (synopsis "Outline-based notes management and organizer")
13076 (description "Org is an Emacs mode for keeping notes, maintaining TODO
13077 lists, and project planning with a fast and effective lightweight markup
13078 language. It also is an authoring system with unique support for literate
13079 programming and reproducible research.")
13080 (license license:gpl3+)))
13081
13082 (define-public emacs-org-contrib
13083 (package
13084 (name "emacs-org-contrib")
13085 (version "0.3")
13086 (source
13087 (origin
13088 (method git-fetch)
13089 (uri (git-reference
13090 (url "https://git.sr.ht/~bzg/org-contrib")
13091 (commit (string-append "release_" version))))
13092 (file-name (git-file-name name version))
13093 (sha256
13094 (base32 "17aca4mc3gbdh6nhlcaa5ymh1yy76nwysrvy9sfcqkzvd5lgagzc"))
13095 ;; XXX: ob-sclang.el is packaged separately to avoid the dependency on
13096 ;; SuperCollider and qtwebengine. This will be unnecessary in 0.4+
13097 ;; release as the file is going to be removed from the repository.
13098
13099 ;; XXX: org-contacts.el is now maintained in a separate repository and
13100 ;; will soon be removed from org-contrib
13101 (modules '((guix build utils)))
13102 (snippet '(begin (delete-file "lisp/ob-sclang.el")
13103 (delete-file "lisp/org-contacts.el")))))
13104 (build-system emacs-build-system)
13105 (arguments
13106 `(#:phases
13107 (modify-phases %standard-phases
13108 (add-after 'unpack 'enter-source-directory
13109 (lambda _
13110 (chdir "lisp"))))))
13111 (native-inputs
13112 (list emacs-cider))
13113 (propagated-inputs
13114 (list emacs-arduino-mode ;XXX: remove after 0.4+ release.
13115 emacs-org))
13116 (home-page "https://git.sr.ht/~bzg/org-contrib")
13117 (synopsis "Unmaintained add-ons for Org mode")
13118 (description
13119 "This package contains add-ons to Org. Be warned that these libraries
13120 receive little if no maintenance and there is no guaranty that they are
13121 compatible with the Org stable version.")
13122 (license license:gpl3+)))
13123
13124 (define-public emacs-org-contacts
13125 ;;; XXX: Upstream made no release yet.
13126 (let ((commit "3d2f39f62aefb0a32d10607703e8b1d4f43821fa")
13127 (revision "0"))
13128 (package
13129 (name "emacs-org-contacts")
13130 (version (git-version "0" revision commit))
13131 (source
13132 (origin
13133 (method git-fetch)
13134 (uri (git-reference
13135 (url "https://github.com/stardiviner/org-contacts.el")
13136 (commit commit)))
13137 (file-name (git-file-name name version))
13138 (sha256
13139 (base32 "0a654406w8zd1hbp8ckc975jhl9mi14xzqizzwiki625dymiw5g5"))))
13140 (build-system emacs-build-system)
13141 (home-page "https://github.com/stardiviner/org-contacts.el")
13142 (synopsis "Contacts management system for Org mode")
13143 (description "Manage your contacts from Org mode. You can auto
13144 complete email addresses, export contacts to a vCard file, put birthdays
13145 in your Org Agenda, and more.")
13146 (license license:gpl3+))))
13147
13148 (define-public emacs-org-vcard
13149 (package
13150 (name "emacs-org-vcard")
13151 (version "0.2.0")
13152 (source
13153 (origin
13154 (method git-fetch)
13155 (uri (git-reference
13156 (url "https://github.com/flexibeast/org-vcard")
13157 (commit (string-append "v" version))))
13158 (file-name (git-file-name name version))
13159 (sha256
13160 (base32 "14l3xqahqmnfl3sskqcr33xpcsic8dm9cr9wmbv5la3xv14n10k7"))))
13161 (build-system emacs-build-system)
13162 (home-page "https://github.com/flexibeast/org-vcard")
13163 (synopsis "Org mode support for vCard export and import")
13164 (description
13165 "This package exports and imports vCard files from within GNU Emacs' Org
13166 mode.")
13167 (license license:gpl3+)))
13168
13169 (define-public emacs-org-pretty-table
13170 ;; There is no release yet.
13171 (let ((commit "1331c600b83d95b28730b1bfcb48369ac1cf12ef")
13172 (revision "0"))
13173 (package
13174 (name "emacs-org-pretty-table")
13175 (version (git-version "0.0.1" revision commit))
13176 (source
13177 (origin
13178 (method git-fetch)
13179 (uri (git-reference
13180 (url "https://github.com/Fuco1/org-pretty-table")
13181 (commit commit)))
13182 (file-name (git-file-name name version))
13183 (sha256
13184 (base32 "0yvqxh66y400n2n5ykmb1zrzd80bakffpwn6nmf37728x4cj8krh"))))
13185 (build-system emacs-build-system)
13186 (home-page "https://github.com/Fuco1/org-pretty-table")
13187 (synopsis "Make tables in Org mode and OrgTbl mode prettier")
13188 (description
13189 "This package displays tables in Org mode and OrgTbl mode using Unicode
13190 characters.")
13191 (license license:gpl3+))))
13192
13193 (define-public emacs-ob-sclang
13194 (package
13195 (inherit emacs-org-contrib)
13196 (name "emacs-ob-sclang")
13197 (source
13198 (origin
13199 (inherit (package-source emacs-org-contrib))
13200 (modules '((guix build utils)))
13201 (snippet
13202 '(begin
13203 (with-directory-excursion "lisp"
13204 (for-each (lambda (file)
13205 (unless (equal? file "./ob-sclang.el")
13206 (delete-file file)))
13207 (find-files "." "\\.el$")))))))
13208 (propagated-inputs
13209 (list emacs-org emacs-scel))
13210 (synopsis "Org Babel support for SuperCollider")
13211 (description "This package adds support for evaluating @code{sclang}
13212 Org mode source blocks. It is extracted from the @code{emacs-org-contrib}
13213 package.")))
13214
13215 (define-public emacs-org-edna
13216 (package
13217 (name "emacs-org-edna")
13218 (version "1.1.2")
13219 (source (origin
13220 (method bzr-fetch)
13221 (uri (bzr-reference
13222 (url "bzr://bzr.savannah.nongnu.org/org-edna-el")
13223 (revision version)))
13224 (file-name (string-append name "-" version "-checkout"))
13225 (sha256
13226 (base32
13227 "01dblddgx0yid5hrgl4swbr4grhv057kfbdy122wihzqpsrgq86n"))))
13228 (build-system emacs-build-system)
13229 (home-page "https://savannah.nongnu.org/projects/org-edna-el/")
13230 (synopsis "Manage Org task dependencies")
13231 (description "This package provides an extensible means of specifying
13232 conditions which must be fulfilled before a task can be completed and actions
13233 to take once it is. Org Edna runs when either the BLOCKER or TRIGGER
13234 properties are set on a heading, and when it is changing from a TODO state to
13235 a DONE state.")
13236 (license license:gpl3+)))
13237
13238 (define-public emacs-toodoo
13239 ;; Package has no release. Version is extracted from "Version:" keyword in
13240 ;; main file, and commit below matches version bump.
13241 (package
13242 (name "emacs-toodoo")
13243 (version "0.2")
13244 (source
13245 (origin
13246 (method git-fetch)
13247 (uri (git-reference
13248 (url "https://github.com/ChanderG/toodoo.el")
13249 (commit "149a563863c2f728c5f903475dbce50547c51000")))
13250 (file-name (git-file-name name version))
13251 (sha256
13252 (base32
13253 "00q7aym0kl03j9m66pivgy0snxcjjg402049b2wdy18kgyypfvx8"))))
13254 (build-system emacs-build-system)
13255 (propagated-inputs (list emacs-transient emacs-evil))
13256 (home-page "https://github.com/ChanderG/toodoo.el")
13257 (synopsis "Magit-like interface for a Todo workflow built on top of Org")
13258 (description "This package provides a minor mode for fast and easy management of Todos
13259 using Org mode and transients.")
13260 (license license:asl2.0)))
13261
13262 (define-public emacs-flx
13263 (package
13264 (name "emacs-flx")
13265 (version "0.6.1")
13266 (source
13267 (origin
13268 (method git-fetch)
13269 (uri (git-reference
13270 (url "https://github.com/lewang/flx")
13271 (commit (string-append "v" version))))
13272 (sha256
13273 (base32
13274 "0sjybrcnb2sl33swy3q664vqrparajcl0m455gciiih2j87hwadc"))
13275 (file-name (git-file-name name version))))
13276 (build-system emacs-build-system)
13277 (home-page "https://github.com/lewang/flx")
13278 (synopsis "Fuzzy matching for Emacs")
13279 (description
13280 "Flx provides fuzzy matching for emacs a la sublime text.
13281 The sorting algorithm is a balance between word beginnings (abbreviation)
13282 and contiguous matches (substring). The longer the substring match,
13283 the higher it scores. This maps well to how we think about matching.
13284 Flx has support for ido (interactively do things) through flx-ido.")
13285 (license license:gpl3+)))
13286
13287 (define-public emacs-cyberpunk-theme
13288 (package
13289 (name "emacs-cyberpunk-theme")
13290 (version "1.22")
13291 (source
13292 (origin
13293 (method git-fetch)
13294 (uri (git-reference
13295 (url "https://github.com/n3mo/cyberpunk-theme.el/")
13296 (commit version)))
13297 (sha256
13298 (base32
13299 "06nff38pcy5rgz13svkajsg0jjk73qy4a8m7p9f76yxcywxlgxlc"))
13300 (file-name (git-file-name name version))))
13301 (build-system emacs-build-system)
13302 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
13303 (synopsis "Cyberpunk theme for Emacs built-in color theme support")
13304 (description
13305 "Cyberpunk color theme for the Emacs 24+ built-in color theme support
13306 known loosely as deftheme. Many mode-specific customizations are included.")
13307 (license license:gpl3+)))
13308
13309 (define-public emacs-dart-mode
13310 (package
13311 (name "emacs-dart-mode")
13312 (version "1.0.7")
13313 (source
13314 (origin
13315 (method git-fetch)
13316 (uri (git-reference
13317 (url "https://github.com/bradyt/dart-mode")
13318 (commit version)))
13319 (file-name (git-file-name name version))
13320 (sha256
13321 (base32 "1vql8m4nj0brmv58b6lkbhykik8n6j4i7d3nylcls78y7ihc2cz8"))))
13322 (build-system emacs-build-system)
13323 (propagated-inputs
13324 (list emacs-dash emacs-flycheck emacs-s))
13325 (home-page "https://github.com/bradyt/dart-mode")
13326 (synopsis "Emacs mode for the Dart programming language")
13327 (description
13328 "Dart mode is an Emacs major mode for editing Dart files. It provides
13329 basic syntax highlighting and indentation.")
13330 (license license:gpl3+)))
13331
13332 (define-public emacs-danneskjold-theme
13333 (let* ((commit "e4d1f2c76245fe9d0d07133a841e789d139df28d")
13334 (revision "2"))
13335 (package
13336 (name "emacs-danneskjold-theme")
13337 (version (git-version "0.0.0" revision commit))
13338 (source
13339 (origin
13340 (method git-fetch)
13341 (uri (git-reference
13342 (url "https://github.com/rails-to-cosmos/danneskjold-theme")
13343 (commit commit)))
13344 (file-name (git-file-name name version))
13345 (sha256
13346 (base32 "1ii3cgf4hlclwaraisxksv98mmhajx517i60p1cgd7vapznn2b6v"))))
13347 (build-system emacs-build-system)
13348 (arguments
13349 `(#:phases
13350 (modify-phases %standard-phases
13351 (add-after 'unpack 'delete-screenshots
13352 (lambda _
13353 (delete-file-recursively "screenshots"))))))
13354 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
13355 (synopsis "High-contrast Emacs theme")
13356 (description
13357 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
13358 (license license:gpl3+))))
13359
13360 (define-public emacs-dream-theme
13361 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
13362 (revision "1"))
13363 (package
13364 (name "emacs-dream-theme")
13365 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
13366 (source
13367 (origin
13368 (method git-fetch)
13369 (uri (git-reference
13370 (url "https://github.com/djcb/dream-theme")
13371 (commit commit)))
13372 (file-name (git-file-name name version))
13373 (sha256
13374 (base32
13375 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
13376 (build-system emacs-build-system)
13377 (home-page "https://github.com/djcb/dream-theme")
13378 (synopsis "High-contrast Emacs theme")
13379 (description
13380 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
13381 by zenburn, sinburn and similar themes, but slowly diverging from them.")
13382 (license license:gpl3+))))
13383
13384 (define-public emacs-dracula-theme
13385 (package
13386 (name "emacs-dracula-theme")
13387 (version "1.7.0")
13388 (source
13389 (origin
13390 (method git-fetch)
13391 (uri (git-reference
13392 (url "https://github.com/dracula/emacs")
13393 (commit (string-append "v" version))))
13394 (file-name (git-file-name name version))
13395 (sha256
13396 (base32 "15y2djc5jljlvls1x9kp50m1kp0dcksmyixafsyimj66xpq9ngh0"))))
13397 (build-system emacs-build-system)
13398 (home-page "https://draculatheme.com/")
13399 (synopsis "Dark theme for Emacs")
13400 (description
13401 "Dracula is a dark color theme for many editors, shells and more. This
13402 package provides the Emacs theme.")
13403 (license license:expat)))
13404
13405 (define-public emacs-auto-complete
13406 (package
13407 (name "emacs-auto-complete")
13408 (version "1.5.1")
13409 (source
13410 (origin
13411 (method git-fetch)
13412 (uri (git-reference
13413 (url "https://github.com/auto-complete/auto-complete")
13414 (commit (string-append "v" version))))
13415 (sha256
13416 (base32
13417 "04i9b11iksg6acn885wl3qgi5xpsm3yszlqmd2x21yhprndlz7gb"))
13418 (file-name (git-file-name name version))))
13419 (build-system emacs-build-system)
13420 (propagated-inputs
13421 (list emacs-popup))
13422 (home-page "https://github.com/auto-complete/auto-complete")
13423 (synopsis "Intelligent auto-completion extension for Emacs")
13424 (description
13425 "Auto-Complete is an intelligent auto-completion extension for Emacs.
13426 It extends the standard Emacs completion interface and provides an environment
13427 that allows users to concentrate more on their own work. Its features are:
13428 a visual interface, reduce overhead of completion by using statistic method,
13429 extensibility.")
13430 (license license:gpl3+)))
13431
13432 (define-public emacs-autocrypt
13433 (let ((commit "5b55f8d37545e9c441788627c17e350d7edf4055")
13434 (revision "0"))
13435 (package
13436 (name "emacs-autocrypt")
13437 (version (git-version "0.4.0" revision commit))
13438 (source (origin
13439 (method git-fetch)
13440 (uri (git-reference
13441 (url "https://git.sr.ht/~pkal/autocrypt")
13442 (commit commit)))
13443 (file-name (git-file-name name version))
13444 (sha256
13445 (base32
13446 "0b06xnjkgwjpxl96mdi674pmvdaiwncifi1a30wxhl1dwr7kr084"))))
13447 (build-system emacs-build-system)
13448 (home-page "https://git.sr.ht/~pkal/autocrypt")
13449 (synopsis "Autocrypt implementation for Emacs")
13450 (description "@code{emacs-autocrypt} is an implementation of
13451 Autocrypt (@url{https://autocrypt.org/}) for various Emacs MUAs. Autocrypt is
13452 a cryptographic protocol for email clients aiming to simplify key exchange and
13453 encryption.
13454
13455 Run @code{M-x autocrypt-create-account} to initialize an autocrypt key, and
13456 add @code{autocrypt-mode} to your MUA's hooks (@code{gnus-mode-hook},
13457 @code{message-mode-hook}, ...) to activate its usage.")
13458 (license license:cc0))))
13459
13460 (define-public emacs-nginx-mode
13461 (package
13462 (name "emacs-nginx-mode")
13463 (version "1.1.9")
13464 (source
13465 (origin
13466 (method git-fetch)
13467 (uri (git-reference
13468 (url "https://github.com/ajc/nginx-mode")
13469 (commit (string-append "v" version))))
13470 (file-name (git-file-name name version))
13471 (sha256
13472 (base32 "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"))))
13473 (build-system emacs-build-system)
13474 (home-page "https://github.com/ajc/nginx-mode")
13475 (synopsis "Emacs major mode for editing nginx config files")
13476 (description "This package provides an Emacs major mode for
13477 editing nginx config files.")
13478 (license license:gpl2+)))
13479
13480 (define-public emacs-stream
13481 (package
13482 (name "emacs-stream")
13483 (version "2.2.5")
13484 (source
13485 (origin
13486 (method url-fetch)
13487 (uri (string-append "https://elpa.gnu.org/packages/"
13488 "stream-" version ".tar"))
13489 (sha256
13490 (base32 "00c3n4gyxzv7vczqms0d62kl8zsmjfyxa92mwxn2snyx857a9jfw"))))
13491 (build-system emacs-build-system)
13492 (home-page "http://elpa.gnu.org/packages/stream.html")
13493 (synopsis "Implementation of streams for Emacs")
13494 (description "This library provides an implementation of streams for Emacs.
13495 Streams are implemented as delayed evaluation of cons cells.")
13496 (license license:gpl3+)))
13497
13498 (define-public emacs-cl-print
13499 (let ((commit "1a70c553dfb04352afb5b8696fe0cef8acc8f991")
13500 (revision "1"))
13501 (package
13502 (name "emacs-cl-print")
13503 (version (git-version "1.0" revision commit))
13504 (source
13505 (origin
13506 (method git-fetch)
13507 (uri (git-reference
13508 (url "https://github.com/emacsmirror/cl-print")
13509 (commit commit)))
13510 (file-name (git-file-name name version))
13511 (sha256
13512 (base32 "164zbnsi5mssvcpy0158fm7fw5cmd1r5nkpn29fmd2b2scy3gm79"))))
13513 (build-system emacs-build-system)
13514 (home-page "https://github.com/emacsmirror/cl-print")
13515 (synopsis "CL-style generic printing")
13516 (description "This package provides a generic function,
13517 @code{cl-print-object}, to which the programmer can add any method they
13518 please.")
13519 (license license:gpl3+))))
13520
13521 (define-public emacs-el-search
13522 (let ((commit "07bed84dd8ae9e4c6c648834224b1d33fdbd51e0")
13523 (revision "2"))
13524 (package
13525 (name "emacs-el-search")
13526 (version (git-version "1.12.6.1" revision commit))
13527 (source
13528 (origin
13529 (method git-fetch)
13530 (uri (git-reference
13531 (url "https://github.com/emacsmirror/el-search")
13532 (commit commit)))
13533 (file-name (git-file-name name version))
13534 (sha256
13535 (base32 "10w1ldgijdhfsrazp0y3bm76jv5wvdn94k1yp0pmc2m1896b58ak"))))
13536 (build-system emacs-build-system)
13537 (inputs
13538 (list emacs-stream emacs-cl-print))
13539 (home-page "https://github.com/emacsmirror/el-search")
13540 (synopsis "Expression based interactive search for emacs-lisp-mode")
13541 (description "This package provides expression based interactive search
13542 procedures for emacs-lisp-mode.")
13543 (license license:gpl3+))))
13544
13545 (define-public emacs-ht
13546 (package
13547 (name "emacs-ht")
13548 (version "2.3")
13549 (source
13550 (origin
13551 (method git-fetch)
13552 (uri (git-reference
13553 (url "https://github.com/Wilfred/ht.el")
13554 (commit version)))
13555 (file-name (git-file-name name version))
13556 (sha256
13557 (base32 "0can9v336lgnq0q2ha3js0565jzp3dlwwqxhcbx5swk5kp148f07"))))
13558 (build-system emacs-build-system)
13559 (propagated-inputs (list emacs-dash))
13560 (native-inputs
13561 (list emacs-ert-runner))
13562 (arguments
13563 `(#:tests? #t
13564 #:test-command '("ert-runner")))
13565 (home-page "https://github.com/Wilfred/ht.el")
13566 (synopsis "Hash table library for Emacs")
13567 (description
13568 "This package simplifies the use of hash tables in elisp. It also
13569 provides functions to convert hash tables from and to alists and plists.")
13570 (license license:gpl3+)))
13571
13572 (define-public emacs-log4e
13573 (package
13574 (name "emacs-log4e")
13575 (version "0.3.3")
13576 (source
13577 (origin
13578 (method git-fetch)
13579 (uri (git-reference
13580 (url "https://github.com/aki2o/log4e")
13581 (commit (string-append "v" version))))
13582 (file-name (git-file-name name version))
13583 (sha256
13584 (base32 "0dbnks76v05allzkhx9zmyqpn6sk5376n8k2rbpnaw6gmz1ib2fv"))))
13585 (build-system emacs-build-system)
13586 (arguments
13587 `(#:phases
13588 (modify-phases %standard-phases
13589 (add-after 'unpack 'remove-tests
13590 ;; Guile builder complains about null characters in some
13591 ;; strings of test files. Remove "test" directory (it is not
13592 ;; needed anyway).
13593 (lambda _
13594 (delete-file-recursively "test"))))))
13595 (home-page "https://github.com/aki2o/log4e")
13596 (synopsis "Logging framework for elisp")
13597 (description
13598 "This package provides a logging framework for elisp. It allows
13599 you to deal with multiple log levels.")
13600 (license license:gpl3+)))
13601
13602 (define-public emacs-logos
13603 (package
13604 (name "emacs-logos")
13605 (version "0.3.1")
13606 (source (origin
13607 (method git-fetch)
13608 (uri (git-reference
13609 (url "https://git.sr.ht/~protesilaos/logos")
13610 (commit version)))
13611 (file-name (git-file-name name version))
13612 (sha256
13613 (base32
13614 "1xhnhaxmjqdv0bbh22gj9ak83hha8d59q64b6aa4rynrgcyajk45"))))
13615 (native-inputs (list texinfo))
13616 (build-system emacs-build-system)
13617 (arguments
13618 (list
13619 #:phases
13620 #~(modify-phases %standard-phases
13621 (add-after 'install 'makeinfo
13622 (lambda* (#:key outputs #:allow-other-keys)
13623 (invoke "emacs"
13624 "--batch"
13625 "--eval=(require 'ox-texinfo)"
13626 "--eval=(find-file \"README.org\")"
13627 "--eval=(org-texinfo-export-to-info)")
13628 (install-file "logos.info" (string-append #$output "/share/info")))))))
13629 (home-page "https://protesilaos.com/emacs/logos")
13630 (synopsis "Simple focus mode for Emacs")
13631 (description "This package provides a simple focus mode which can be
13632 applied to any buffer for reading, writing, or even doing a presentation. The
13633 buffer can be divided in pages using the @code{page-delimiter}, outline
13634 structure, or any other pattern.")
13635 (license (list license:gpl3+
13636 license:fdl1.3+)))) ; GFDLv1.3+ for the manual
13637
13638 (define-public emacs-gn-mode
13639 (package
13640 (name "emacs-gn-mode")
13641 (version "0.4.1")
13642 (source
13643 (origin
13644 (method git-fetch)
13645 (uri (git-reference
13646 (url "https://github.com/lashtear/gn-mode")
13647 (commit version)))
13648 (file-name (git-file-name name version))
13649 (sha256
13650 (base32 "0dz5kgzbgsssr38z2kg6m915cvfys42ag1k42bsra3la2pixywfx"))))
13651 (build-system emacs-build-system)
13652 (home-page "https://github.com/lashtear/gn-mode")
13653 (synopsis "Emacs major mode for editing GN (ninja generator) config files")
13654 (description
13655 "GN mode is a major mode for editing @acronym{GN,Ninja Generator} config
13656 files in Emacs. Files of this type (e.g., @file{BUILD.gn} or @file{*.gni})
13657 are common in Chromium-derived projects.")
13658 (license license:bsd-3)))
13659
13660 (define-public emacs-bazel
13661 ;; From 2021-11-21.
13662 ;; No releases available.
13663 (let ((commit "cdb2643dba39fe2bd64ba3b190b94d1ef1d83b18")
13664 (revision "0"))
13665 (package
13666 (name "emacs-bazel")
13667 (version (git-version "0" revision commit))
13668 (source (origin
13669 (method git-fetch)
13670 (uri (git-reference
13671 (url "https://github.com/bazelbuild/emacs-bazel-mode")
13672 (commit commit)))
13673 (file-name (git-file-name name version))
13674 (sha256
13675 (base32 "0ln06dprnivx9zxm6n23ppyx7x4kbn0f85pxwvkq32aq7wnqz82m"))))
13676 (build-system emacs-build-system)
13677 (home-page "https://github.com/bazelbuild/emacs-bazel-mode")
13678 (synopsis "Bazel support for Emacs")
13679 (description
13680 "This package provides support for the Bazel build system. See
13681 @uref{https://bazel.build/} for background on Bazel.")
13682 (license license:asl2.0))))
13683
13684 (define-public emacs-gntp
13685 (package
13686 (name "emacs-gntp")
13687 (version "0.1")
13688 (source
13689 (origin
13690 (method git-fetch)
13691 (uri (git-reference
13692 (url "https://github.com/tekai/gntp.el")
13693 (commit (string-append "v" version))))
13694 (file-name (git-file-name name version))
13695 (sha256
13696 (base32 "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a"))))
13697 (build-system emacs-build-system)
13698 (home-page "https://github.com/tekai/gntp.el")
13699 (synopsis "Growl Notification Protocol for Emacs")
13700 (description
13701 "This package implements the Growl Notification Protocol GNTP
13702 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
13703 It is incomplete as it only lets you send but not receive
13704 notifications.")
13705 (license license:bsd-3)))
13706
13707 (define-public emacs-alert
13708 (package
13709 (name "emacs-alert")
13710 (version "1.3")
13711 (source
13712 (origin
13713 (method git-fetch)
13714 (uri (git-reference
13715 (url "https://github.com/jwiegley/alert")
13716 (commit (string-append "v" version))))
13717 (file-name (git-file-name name version))
13718 (sha256
13719 (base32 "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r"))))
13720 (build-system emacs-build-system)
13721 (propagated-inputs
13722 (list emacs-gntp emacs-log4e))
13723 (home-page "https://github.com/jwiegley/alert")
13724 (synopsis "Growl-style notification system for Emacs")
13725 (description
13726 "Alert is a Growl-workalike for Emacs which uses a common notification
13727 interface and multiple, selectable \"styles\", whose use is fully
13728 customizable by the user.")
13729 (license license:gpl2+)))
13730
13731 (define-public emacs-zones
13732 (package
13733 (name "emacs-zones")
13734 (version "2019.7.13")
13735 (source
13736 (origin
13737 (method url-fetch)
13738 (uri (string-append "https://elpa.gnu.org/packages/"
13739 "zones-" version ".el"))
13740 (sha256
13741 (base32 "0qp1ba2pkqx9d35g7z8hf8qs2k455krf2a92l4rka3ipsbnmq5k1"))))
13742 (build-system emacs-build-system)
13743 (home-page "https://www.emacswiki.org/emacs/Zones")
13744 (synopsis "Define and act on multiple zones of buffer text")
13745 (description
13746 "Library @file{zones.el} lets you easily define and subsequently act on
13747 multiple zones of buffer text. You can think of this as enlarging the notion
13748 of region. In effect, it can remove the requirement of target text being
13749 a contiguous sequence of characters. A set of buffer zones is, in effect,
13750 a (typically) noncontiguous set of text.")
13751 (license license:gpl3+)))
13752
13753 (define-public emacs-mu4e-alert
13754 (package
13755 (name "emacs-mu4e-alert")
13756 (version "1.0")
13757 (source
13758 (origin
13759 (method git-fetch)
13760 (uri (git-reference
13761 (url "https://github.com/iqbalansari/mu4e-alert")
13762 (commit (string-append "v" version))))
13763 (file-name (git-file-name name version))
13764 (sha256
13765 (base32 "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg"))))
13766 (build-system emacs-build-system)
13767 (propagated-inputs
13768 (list emacs-alert emacs-s emacs-ht mu))
13769 (home-page "https://github.com/iqbalansari/mu4e-alert")
13770 (synopsis "Desktop notification for mu4e")
13771 (description
13772 "This package provides desktop notifications for mu4e.
13773 Additionally it can display the number of unread emails in the
13774 mode-line.")
13775 (license license:gpl3+)))
13776
13777 (define-public emacs-mu4e-jump-to-list
13778 (let ((commit "358bba003543b49ffa266e503e54aebd0ebe614b")
13779 (revision "1"))
13780 (package
13781 (name "emacs-mu4e-jump-to-list")
13782 (version (git-version "1.0" revision commit))
13783 (source
13784 (origin
13785 (method git-fetch)
13786 (uri (git-reference
13787 (url "https://gitlab.com/wavexx/mu4e-jump-to-list.el.git")
13788 (commit commit)))
13789 (file-name (git-file-name name version))
13790 (sha256
13791 (base32
13792 "00y9nap61q1z2cdql4k9g7fgi2gdgd9iy5s5lzrd9a4agbx6r7sv"))))
13793 (build-system emacs-build-system)
13794 (propagated-inputs
13795 (list mu))
13796 (home-page "https://gitlab.com/wavexx/mu4e-jump-to-list.el")
13797 (synopsis "Select and view mailing lists in mu4e")
13798 (description
13799 "@code{mu4e-jump-to-list} allows you to select and view mailing lists
13800 automatically using existing List-ID headers in your mu database. Just press
13801 \"l\" in the headers view and any mailing list you've subscribed to will be
13802 automatically discovered and presented in recency order.")
13803 (license license:gpl3+))))
13804
13805 (define-public emacs-message-view-patch
13806 (let ((commit "40bc2e554fc1d0b6f0c403192c0a3ceaa019a78d")
13807 (revision "2"))
13808 (package
13809 (name "emacs-message-view-patch")
13810 (version (git-version "0.2.0" revision commit))
13811 (source (origin
13812 (method git-fetch)
13813 (uri (git-reference
13814 (url "https://github.com/seanfarley/message-view-patch")
13815 (commit commit)))
13816 (file-name (git-file-name name version))
13817 (sha256
13818 (base32
13819 "0cmkiggrl42sjx31dwnzac32bs3q2ksmamkq1pjjl8fwshp4g8sv"))))
13820 (build-system emacs-build-system)
13821 (inputs (list emacs-magit))
13822 (home-page "https://github.com/seanfarley/message-view-patch")
13823 (synopsis "Colorize patch-like emails in mu4e or gnus")
13824 (description
13825 "Extension for mu4e or gnus to colorize patch-like emails with diff-mode.
13826 This is based on Frank Terbeck's @code{gnus-article-treat-patch.el} but has
13827 been adapted to also work with mu4e.")
13828 (license license:gpl3+))))
13829
13830 (define-public emacs-mu4e-patch
13831 (deprecated-package "emacs-mu4e-patch" emacs-message-view-patch))
13832
13833 (define-public emacs-pretty-mode
13834 (package
13835 (name "emacs-pretty-mode")
13836 (version "2.0.3")
13837 (source
13838 (origin
13839 (method git-fetch)
13840 (uri (git-reference
13841 (url "https://github.com/akatov/pretty-mode/")
13842 (commit version)))
13843 (file-name (git-file-name name version))
13844 (sha256
13845 (base32
13846 "013fig9i4fyx16krp2vfv953p3rwdzr38zs6i50af4pqz4vrcfvh"))))
13847 (build-system emacs-build-system)
13848 (home-page "https://github.com/akatov/pretty-mode")
13849 (synopsis "Redisplay parts of the buffer as Unicode symbols")
13850 (description
13851 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
13852 (license license:gpl3+)))
13853
13854 (define-public emacs-tempel
13855 (package
13856 (name "emacs-tempel")
13857 (version "0.4")
13858 (source (origin
13859 (method git-fetch)
13860 (uri (git-reference
13861 (url "https://github.com/minad/tempel")
13862 (commit version)))
13863 (file-name (git-file-name name version))
13864 (sha256
13865 (base32
13866 "0iyh6wxchqg83gpwvg6lz4qy4c2qh25iqjpjm56kif52346a99d2"))))
13867 (build-system emacs-build-system)
13868 (home-page "https://github.com/minad/tempel")
13869 (synopsis "Simple templates for Emacs")
13870 (description
13871 "Tempel is a tiny template package for Emacs, which uses the syntax of
13872 the Emacs Tempo library. You may also write your templates in Lisp.")
13873 (license license:gpl3+)))
13874
13875 (define-public emacs-yasnippet
13876 (package
13877 (name "emacs-yasnippet")
13878 (version "0.14.0")
13879 (source
13880 (origin
13881 (method git-fetch)
13882 (uri (git-reference
13883 (url "https://github.com/joaotavora/yasnippet")
13884 (commit version)))
13885 (file-name (git-file-name name version))
13886 (sha256
13887 (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))
13888 (patches
13889 (search-patches "emacs-yasnippet-fix-tests.patch"))))
13890 (build-system emacs-build-system)
13891 (arguments
13892 `(#:tests? #t
13893 #:test-command '("emacs" "--batch"
13894 "-l" "yasnippet-tests.el"
13895 "-f" "ert-run-tests-batch-and-exit")
13896 #:phases
13897 (modify-phases %standard-phases
13898 ;; Set HOME, otherwise test-rebindings fails.
13899 (add-before 'check 'set-home
13900 (lambda _
13901 (setenv "HOME" (getcwd))
13902 #t)))))
13903 (home-page "https://github.com/joaotavora/yasnippet")
13904 (synopsis "Yet another snippet extension for Emacs")
13905 (description "YASnippet is a template system for Emacs. It allows you to
13906 type an abbreviation and automatically expand it into function templates.")
13907 (license license:gpl3+)))
13908
13909 (define-public emacs-yasnippet-snippets
13910 (package
13911 (name "emacs-yasnippet-snippets")
13912 (version "1.0")
13913 (source
13914 (origin
13915 (method git-fetch)
13916 (uri (git-reference
13917 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
13918 (commit version)))
13919 (file-name (git-file-name name version))
13920 (sha256
13921 (base32 "0m78jxhjyf4212ig2ncxr6bhhd6yx4c3nc8x4ylamzq21x4fl21r"))))
13922 (build-system emacs-build-system)
13923 (arguments
13924 `(#:include (cons* "^snippets\\/" %default-include)))
13925 (propagated-inputs
13926 (list emacs-yasnippet))
13927 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
13928 (synopsis "Collection of YASnippet snippets for many languages")
13929 (description "This package provides an extensive collection of YASnippet
13930 snippets. When this package is installed, the extra snippets it provides are
13931 automatically made available to YASnippet.")
13932 (license license:gpl3+)))
13933
13934 (define-public emacs-doom-snippets
13935 ;; Use the latest commit, as there are no tagged releases. Version is
13936 ;; extracted from main file.
13937 (let ((release "1.1.0")
13938 (revision "0")
13939 (commit "bc613f448eed1bd363e61c41691a61e9fd139534"))
13940 (package
13941 (name "emacs-doom-snippets")
13942 (version (git-version release revision commit))
13943 (source
13944 (origin
13945 (method git-fetch)
13946 (uri (git-reference
13947 (url "https://github.com/hlissner/doom-snippets")
13948 (commit commit)))
13949 (file-name (git-file-name name version))
13950 (sha256
13951 (base32 "0n4b2pr0gpn8vb2n1rckdq4jk9sj995a62yxk6z2ygw5ad7pkj8f"))))
13952 (build-system emacs-build-system)
13953 (arguments
13954 `(#:include (cons* "^.*\\/" %default-include)))
13955 (propagated-inputs
13956 (list emacs-yasnippet))
13957 (home-page "https://github.com/hlissner/doom-snippets")
13958 (synopsis "Doom Emacs' snippet library")
13959 (description
13960 "This package provides Yasnippets snippets for Doom Emacs. It also
13961 exposes a small API to assist in writing your own snippets.")
13962 (license license:expat))))
13963
13964 (define-public emacs-helm-c-yasnippet
13965 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
13966 (revision "1"))
13967 (package
13968 (name "emacs-helm-c-yasnippet")
13969 (version (string-append "0.6.7" "-" revision "."
13970 (string-take commit 7)))
13971 (source (origin
13972 (method git-fetch)
13973 (uri (git-reference
13974 (url "https://github.com/emacs-jp/helm-c-yasnippet")
13975 (commit commit)))
13976 (file-name (git-file-name name version))
13977 (sha256
13978 (base32
13979 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
13980 (build-system emacs-build-system)
13981 (propagated-inputs
13982 (list emacs-helm emacs-yasnippet))
13983 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
13984 (synopsis "Helm integration for Yasnippet")
13985 (description "This Emacs library provides Helm interface for
13986 Yasnippet.")
13987 (license license:gpl2+))))
13988
13989 (define-public emacs-helm-system-packages
13990 (package
13991 (name "emacs-helm-system-packages")
13992 (version "1.10.2")
13993 (source (origin
13994 (method git-fetch)
13995 (uri (git-reference
13996 (url "https://github.com/emacs-helm/helm-system-packages")
13997 (commit (string-append "v" version))))
13998 (file-name (git-file-name name version))
13999 (sha256
14000 (base32
14001 "13a8jpj4wwm0yjv8hnsizgjf8wi3r2ap87lyvw7g4c7snp2dydwa"))))
14002 (build-system emacs-build-system)
14003 (inputs
14004 (list recutils))
14005 (propagated-inputs
14006 (list emacs-helm))
14007 (arguments
14008 `(#:phases
14009 (modify-phases %standard-phases
14010 (add-after 'unpack 'configure
14011 (lambda* (#:key inputs outputs #:allow-other-keys)
14012 (let ((recutils (assoc-ref inputs "recutils")))
14013 ;; Specify the absolute file names of the various
14014 ;; programs so that everything works out-of-the-box.
14015 (substitute* "helm-system-packages-guix.el"
14016 (("recsel") (string-append recutils "/bin/recsel")))))))))
14017 (home-page "https://github.com/emacs-helm/helm-system-packages")
14018 (synopsis "Helm System Packages is an interface to your package manager")
14019 (description "List all available packages in Helm (with installed
14020 packages displayed in their own respective face). Fuzzy-search, mark and
14021 execute the desired action over any selections of packages: Install,
14022 uninstall, display packages details (in Org Mode) or insert details at point,
14023 find files owned by packages... And much more, including performing all the
14024 above over the network.")
14025 (license license:gpl3+)))
14026
14027 (define-public emacs-helm-org-rifle
14028 (package
14029 (name "emacs-helm-org-rifle")
14030 (version "1.7.1")
14031 (source
14032 (origin
14033 (method git-fetch)
14034 (uri (git-reference
14035 (url "https://github.com/alphapapa/helm-org-rifle")
14036 (commit version)))
14037 (file-name (git-file-name name version))
14038 (sha256
14039 (base32
14040 "0pm6va26kadjvbai4qsnjc2bk379w2nk6h3b5f0c2yv3q5na0p49"))))
14041 (build-system emacs-build-system)
14042 (propagated-inputs
14043 (list emacs-dash emacs-f emacs-helm emacs-org emacs-s))
14044 (home-page "https://github.com/alphapapa/helm-org-rifle")
14045 (synopsis "Rifle through Org files")
14046 (description "This package searches both headings and contents of entries
14047 in Org buffers and displays matching entries.")
14048 (license license:gpl3+)))
14049
14050 (define-public emacs-dired-git-info
14051 ;; Upstream has no proper release. The base version is extracted from the
14052 ;; "Version" keyword in the main file.
14053 (let ((commit "91d57e3a4c5104c66a3abc18e281ee55e8979176")
14054 (revision "0"))
14055 (package
14056 (name "emacs-dired-git-info")
14057 (version (git-version "0.3.1" revision commit))
14058 (source
14059 (origin
14060 (method git-fetch)
14061 (uri
14062 (git-reference
14063 (url "https://github.com/clemera/dired-git-info")
14064 (commit commit)))
14065 (file-name (git-file-name name version))
14066 (sha256
14067 (base32 "1dr4iv95s4barxxj56znqkl9z0lg5jw731jmjr01s6vn8ar69gik"))))
14068 (build-system emacs-build-system)
14069 (home-page "https://github.com/clemera/dired-git-info/")
14070 (synopsis "Show git info in Emacs Dired")
14071 (description "This Emacs package provides a minor mode which shows git
14072 information inside the Dired buffer.")
14073 (license license:gpl3+))))
14074
14075 (define-public emacs-dired-toggle-sudo
14076 (let ((commit "13bbe52c54893f5aa3e56228450ffdd0c9e1d169")
14077 (revision "0"))
14078 (package
14079 (name "emacs-dired-toggle-sudo")
14080 (version (git-version "1.0" revision commit))
14081 (source
14082 (origin
14083 (method git-fetch)
14084 (uri (git-reference
14085 (url "https://github.com/renard/dired-toggle-sudo")
14086 (commit commit)))
14087 (file-name (git-file-name name version))
14088 (sha256
14089 (base32
14090 "1fw1pb1z6krqd1pfxxhr6rrfr9ckkcb0zsjzbjk0i2i1q5cg6car"))))
14091 (build-system emacs-build-system)
14092 (home-page "https://github.com/renard/dired-toggle-sudo")
14093 (synopsis "Browse directory with @code{sudo} privileges")
14094 (description "This package allows for the use of @code{dired} with
14095 @code{sudo} privileges.")
14096 (license license:wtfpl2))))
14097
14098 (define-public emacs-diredfl
14099 (package
14100 (name "emacs-diredfl")
14101 (version "0.4")
14102 (source
14103 (origin
14104 (method git-fetch)
14105 (uri
14106 (git-reference
14107 (url "https://github.com/purcell/diredfl")
14108 (commit version)))
14109 (file-name (git-file-name name version))
14110 (sha256
14111 (base32 "1zb2lz7rp58zqvpniqcsmqabi7nqg2d8bfd0hgmq68bn2hd25b5z"))))
14112 (build-system emacs-build-system)
14113 (home-page "https://github.com/purcell/diredfl/")
14114 (synopsis "Extra Emacs font lock rules for a more colourful Dired")
14115 (description "This library enables additional font locking in Dired mode.
14116 This is adapted from the extra font lock rules provided by Drew Adams' Dired+
14117 package.")
14118 (license license:gpl3+)))
14119
14120 (define-public emacs-memoize
14121 (package
14122 (name "emacs-memoize")
14123 (version "1.1")
14124 (source
14125 (origin
14126 (method git-fetch)
14127 (uri (git-reference
14128 (url "https://github.com/skeeto/emacs-memoize")
14129 (commit version)))
14130 (file-name (git-file-name name version))
14131 (sha256
14132 (base32 "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk"))))
14133 (build-system emacs-build-system)
14134 (arguments
14135 `(#:tests? #t
14136 #:test-command '("emacs" "--batch"
14137 "-l" "memoize-test.el"
14138 "-f" "ert-run-tests-batch-and-exit")))
14139 (home-page "https://github.com/skeeto/emacs-memoize")
14140 (synopsis "Emacs lisp memoization library")
14141 (description "@code{emacs-memoize} is an Emacs library for
14142 memoizing functions.")
14143 (license license:unlicense)))
14144
14145 (define-public emacs-linum-relative
14146 (package
14147 (name "emacs-linum-relative")
14148 (version "0.6")
14149 (source
14150 (origin
14151 (method git-fetch)
14152 (uri (git-reference
14153 (url "https://github.com/coldnew/linum-relative")
14154 (commit version)))
14155 (file-name (git-file-name name version))
14156 (sha256
14157 (base32 "0b3n1gk2w1p72x0zfdz9l70winq2fnjpjrgq0awxx730xk7ypp5n"))))
14158 (build-system emacs-build-system)
14159 (home-page "https://github.com/coldnew/linum-relative")
14160 (synopsis "Relative line numbering for Emacs")
14161 (description "@code{emacs-linum-relative} displays the relative line
14162 number on the left margin in Emacs.")
14163 (license license:gpl2+)))
14164
14165 (define-public emacs-lin
14166 (package
14167 (name "emacs-lin")
14168 (version "0.3.0")
14169 (source (origin
14170 (method git-fetch)
14171 (uri (git-reference
14172 (url "https://git.sr.ht/~protesilaos/lin")
14173 (commit version)))
14174 (file-name (git-file-name name version))
14175 (sha256
14176 (base32
14177 "1w1mli2wrxbnwagn3rx5ygslmzlri3drm74nqgwpl4pwh66xi98a"))))
14178 (native-inputs (list texinfo))
14179 (build-system emacs-build-system)
14180 (arguments
14181 (list
14182 #:phases
14183 #~(modify-phases %standard-phases
14184 (add-after 'install 'makeinfo
14185 (lambda _
14186 (invoke "emacs"
14187 "--batch"
14188 "--eval=(require 'ox-texinfo)"
14189 "--eval=(find-file \"README.org\")"
14190 "--eval=(org-texinfo-export-to-info)")
14191 (install-file "lin.info" (string-append #$output "/share/info")))))))
14192 (home-page "https://protesilaos.com/emacs/lin")
14193 (synopsis "Make @command{hl-line-mode} more suitable for selection UIs")
14194 (description "Lin is a stylistic enhancement for Emacs’ built-in
14195 @command{hl-line-mode}. It remaps the hl-line face (or equivalent)
14196 buffer-locally to a style that is optimal for major modes where line selection
14197 is the primary mode of interaction.")
14198 (license (list license:gpl3+
14199 license:fdl1.3+)))) ; GFDLv1.3+ for the manual
14200
14201 (define-public emacs-idle-highlight
14202 (package
14203 (name "emacs-idle-highlight")
14204 (version "1.1.3")
14205 (source
14206 (origin
14207 (method git-fetch)
14208 (uri (git-reference
14209 (url "https://github.com/nonsequitur/idle-highlight-mode")
14210 (commit version)))
14211 (file-name (git-file-name name version))
14212 (sha256
14213 (base32 "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv"))))
14214 (build-system emacs-build-system)
14215 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
14216 (synopsis "Highlights all occurrences of the word the point is on")
14217 (description
14218 "This Emacs package provides @code{idle-highlight-mode} that sets
14219 an idle timer to highlight all occurrences in the buffer of the word under
14220 the point.")
14221 (license license:gpl3+)))
14222
14223 (define-public emacs-ox-twbs
14224 (package
14225 (name "emacs-ox-twbs")
14226 (version "1.1.4")
14227 (source
14228 (origin
14229 (method git-fetch)
14230 (uri (git-reference
14231 (url "https://github.com/marsmining/ox-twbs")
14232 (commit (string-append "v" version))))
14233 (file-name (git-file-name name version))
14234 (sha256
14235 (base32 "0nffy7ivs8fw0dj3s66hbsby0riz5wrv7xzm8g9mrfvhki938pqa"))))
14236 (build-system emacs-build-system)
14237 (home-page "https://github.com/marsmining/ox-twbs")
14238 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
14239 (description
14240 "This Emacs package outputs your org-mode docs with a simple, clean and
14241 modern look. It implements a new HTML back-end for exporting org-mode docs as
14242 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
14243 jQuery and Bootstrap resources included via osscdn.")
14244 (license license:gpl3+)))
14245
14246 (define-public emacs-highlight-sexp
14247 (package
14248 (name "emacs-highlight-sexp")
14249 (version "1.0")
14250 (source
14251 (origin
14252 (method git-fetch)
14253 (uri (git-reference
14254 (url "https://github.com/daimrod/highlight-sexp")
14255 (commit (string-append "v" version))))
14256 (file-name (git-file-name name version))
14257 (sha256
14258 (base32 "12cyk2q5g6p4ac2hykw1cag7dp1prjjnck5f7nalwwaklmy62y79"))))
14259 (build-system emacs-build-system)
14260 (home-page "https://github.com/daimrod/highlight-sexp")
14261 (synopsis "Minor mode that highlights the s-exp at the current position")
14262 (description
14263 "This Emacs package highlights the s-exp at the current position.")
14264 (license license:gpl3+)))
14265
14266 (define-public emacs-highlight-stages
14267 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
14268 (revision "1"))
14269 (package
14270 (name "emacs-highlight-stages")
14271 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
14272 (source
14273 (origin
14274 (method git-fetch)
14275 (uri (git-reference
14276 (url "https://github.com/zk-phi/highlight-stages")
14277 (commit commit)))
14278 (file-name (git-file-name name version))
14279 (sha256
14280 (base32
14281 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
14282 (patches
14283 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
14284 (build-system emacs-build-system)
14285 (home-page "https://github.com/wigust/highlight-stages")
14286 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
14287 (description "@code{highlight-stages} provides an Emacs minor mode that
14288 highlights quasi-quoted expressions.")
14289 (license license:gpl3+))))
14290
14291 (define-public emacspeak
14292 (package
14293 (name "emacspeak")
14294 (version "53.0")
14295 (source
14296 (origin
14297 (method url-fetch)
14298 (uri (string-append
14299 "https://github.com/tvraman/emacspeak/releases/download/"
14300 version "/emacspeak-" version ".tar.bz2"))
14301 (sha256
14302 (base32 "0lasj4ggsh93ingf46n16wxfx5zzxvr1igikbmdqlz3i99j331gs"))))
14303 (build-system gnu-build-system)
14304 (arguments
14305 (list
14306 #:make-flags #~(list (string-append "prefix=" #$output))
14307 #:phases
14308 #~(modify-phases %standard-phases
14309 (replace 'configure
14310 (lambda* (#:key inputs outputs #:allow-other-keys)
14311 (setenv "SHELL" (which "sh"))
14312 ;; Ensure the tclespeak.so binary is found in the correct location
14313 ;; by adding the path to the Tclx library to the Tcl $auto_path
14314 ;; variable.
14315 (with-fluids ((%default-port-encoding "ISO-8859-1"))
14316 (substitute* "servers/espeak"
14317 (("package require Tclx")
14318 (string-append "set auto_path [linsert $auto_path 0 "
14319 #$tclx
14320 "/lib]\n"
14321 "package require Tclx"))))
14322 ;; Configure Emacspeak according to etc/install.org.
14323 (invoke "make" "config")))
14324 (add-after 'build 'build-espeak
14325 (lambda _
14326 (invoke "make" "espeak")))
14327 (replace 'install
14328 (lambda* (#:key inputs outputs #:allow-other-keys)
14329 (let* ((out (assoc-ref outputs "out"))
14330 (bin (string-append out "/bin"))
14331 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
14332 (info (string-append out "/share/info"))
14333 (emacs (search-input-file inputs "/bin/emacs")))
14334 ;; According to etc/install.org, the Emacspeak directory should
14335 ;; be copied to its installation destination.
14336 (for-each
14337 (lambda (file)
14338 (copy-recursively file (string-append lisp "/" file)))
14339 '("etc" "info" "js" "lisp" "media" "servers" "sounds"
14340 "stumpwm" "xsl"))
14341 ;; Make sure emacspeak is loaded from the correct directory.
14342 (substitute* "run"
14343 (("\\./lisp/emacspeak-setup.el")
14344 (string-append lisp "/lisp/emacspeak-setup.el")))
14345 ;; Install the convenient startup script.
14346 (mkdir-p bin)
14347 (copy-file "run" (string-append bin "/emacspeak"))))))
14348 #:tests? #f)) ; no check target
14349 (inputs
14350 (list emacs espeak-ng perl tcl tclx))
14351 (home-page "http://emacspeak.sourceforge.net")
14352 (synopsis "Audio desktop interface for Emacs")
14353 (description
14354 "Emacspeak is a speech interface that allows visually impaired users to
14355 interact independently and efficiently with the computer. Audio
14356 formatting---a technique pioneered by AsTeR---and full support for W3C's Aural
14357 CSS (ACSS) allows Emacspeak to produce rich aural presentations of electronic
14358 information. By seamlessly blending all aspects of the Internet such as
14359 Web-surfing and messaging, Emacspeak speech-enables local and remote
14360 information via a consistent and well-integrated user interface.")
14361 (license license:gpl2+)))
14362
14363 (define-public emacs-adaptive-wrap
14364 (package
14365 (name "emacs-adaptive-wrap")
14366 (version "0.8")
14367 (source
14368 (origin
14369 (method url-fetch)
14370 (uri (string-append "https://elpa.gnu.org/packages/"
14371 "adaptive-wrap-" version ".tar"))
14372 (sha256
14373 (base32 "1gs1pqzywvvw4prj63vpj8abh8h14pjky11xfl23pgpk9l3ldrb0"))))
14374 (build-system emacs-build-system)
14375 (home-page "https://elpa.gnu.org/packages/adaptive-wrap.html")
14376 (synopsis "Smart line-wrapping with wrap-prefix")
14377 (description
14378 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
14379 minor mode which sets the wrap-prefix property on the fly so that
14380 single-long-line paragraphs get word-wrapped in a way similar to what
14381 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
14382 actually changing the buffer's text.")
14383 (license license:gpl3+)))
14384
14385 (define-public emacs-diff-hl
14386 (package
14387 (name "emacs-diff-hl")
14388 (version "1.8.8")
14389 (source
14390 (origin
14391 (method git-fetch)
14392 (uri (git-reference
14393 (url "https://github.com/dgutov/diff-hl")
14394 (commit version)))
14395 (file-name (git-file-name name version))
14396 (sha256
14397 (base32 "075klzf66z1rvhpxv4j694pdkmi7f4fpw6c8q4ncz0h4y5wdbl8w"))))
14398 (build-system emacs-build-system)
14399 (home-page "https://github.com/dgutov/diff-hl")
14400 (synopsis
14401 "Highlight uncommitted changes using VC")
14402 (description
14403 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
14404 window (using the fringe, by default), allows you to jump between
14405 the hunks and revert them selectively.")
14406 (license license:gpl3+)))
14407
14408 (define-public emacs-diminish
14409 ;; XXX: Upstream did not tag last release.
14410 (let ((commit "fd486ef76e4c1d8211ae337a43b8bba106d4bca7")
14411 (revision "1"))
14412 (package
14413 (name "emacs-diminish")
14414 (version (git-version "0.46" revision commit))
14415 (source
14416 (origin
14417 (method git-fetch)
14418 (uri (git-reference
14419 (url "https://github.com/myrjola/diminish.el")
14420 (commit commit)))
14421 (file-name (git-file-name name version))
14422 (sha256
14423 (base32 "1vlgn7swwfzy6yr880698h3qsmfcqprcb1jvffkzmbvhvf458szf"))))
14424 (build-system emacs-build-system)
14425 (home-page "https://github.com/myrjola/diminish.el")
14426 (synopsis "Diminish minor modes with no modeline display")
14427 (description "@code{emacs-diminish} implements hiding or
14428 abbreviation of the mode line displays (lighters) of minor modes.")
14429 (license license:gpl3+))))
14430
14431 (define-public emacs-use-package
14432 (package
14433 (name "emacs-use-package")
14434 (version "2.4.1")
14435 (source (origin
14436 (method git-fetch)
14437 (uri (git-reference
14438 (url "https://github.com/jwiegley/use-package")
14439 (commit version)))
14440 (file-name (git-file-name name version))
14441 (sha256
14442 (base32
14443 "088kl3bml0rs5bkfymgzr15ram9qvy66h1kaisrbkynh0yxvf8g9"))))
14444 (build-system emacs-build-system)
14445 (native-inputs
14446 (list texinfo))
14447 (propagated-inputs
14448 (list emacs-diminish))
14449 (arguments
14450 `(#:tests? #t
14451 #:test-command '("emacs" "--batch"
14452 "-l" "use-package-tests.el"
14453 "-f" "ert-run-tests-batch-and-exit")
14454 #:phases
14455 (modify-phases %standard-phases
14456 (add-before 'install 'install-manual
14457 (lambda* (#:key outputs #:allow-other-keys)
14458 (let* ((out (assoc-ref outputs "out"))
14459 (info-dir (string-append out "/share/info")))
14460 (mkdir-p info-dir)
14461 (install-file "use-package.info" info-dir)
14462 #t)))
14463 (add-before 'install-manual 'build-manual
14464 (lambda _
14465 (invoke "makeinfo" "use-package.texi")
14466 #t)))))
14467 (home-page "https://github.com/jwiegley/use-package")
14468 (synopsis "Declaration for simplifying your .emacs")
14469 (description "The use-package macro allows you to isolate package
14470 configuration in your @file{.emacs} file in a way that is both
14471 performance-oriented and tidy.")
14472 (license license:gpl2+)))
14473
14474 (define-public emacs-leaf
14475 (package
14476 (name "emacs-leaf")
14477 (version "4.5.5")
14478 (source
14479 (origin
14480 (method url-fetch)
14481 (uri (string-append "https://elpa.gnu.org/packages/"
14482 "leaf-" version ".tar"))
14483 (sha256
14484 (base32 "1rdbrf84ijapiqhq72gy8r5xgk54sf0jy31pgd3w4rl1wywh5cas"))))
14485 (build-system emacs-build-system)
14486 (home-page "https://github.com/conao3/leaf.el")
14487 (synopsis "Simplify your init.el configuration, extended use-package")
14488 (description
14489 "This package provides macros that allows you to declaratively configure
14490 settings typical of an Elisp package with various keywords. The syntax is
14491 similar, but not identical to use-package -- overall, leaf aims at a cleaner
14492 and more predictable implementation.")
14493 (license license:agpl3+)))
14494
14495 (define-public emacs-strace-mode
14496 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
14497 (revision "1"))
14498 (package
14499 (name "emacs-strace-mode")
14500 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
14501 (source (origin
14502 (method git-fetch)
14503 (uri (git-reference
14504 (url "https://github.com/pkmoore/strace-mode")
14505 (commit commit)))
14506 (file-name (git-file-name name version))
14507 (sha256
14508 (base32
14509 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
14510 (build-system emacs-build-system)
14511 (home-page "https://github.com/pkmoore/strace-mode")
14512 (synopsis "Emacs major mode to highlight strace outputs")
14513 (description "@code{emacs-strace-mode} provides an Emacs major mode
14514 highlighting strace outputs.")
14515 (license license:gpl3+))))
14516
14517 (define-public emacs-default-encrypt
14518 (package
14519 (name "emacs-default-encrypt")
14520 (version "4.4")
14521 (source
14522 (origin
14523 (method url-fetch)
14524 (uri (string-append
14525 "https://informationelle-selbstbestimmung-im-internet.de"
14526 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
14527 (file-name (string-append "jl-encrypt-" version ".el"))
14528 (sha256
14529 (base32
14530 "0w9ggz075j1zwg7d0rv9k8238g600p7czfnnsnawswi7yps2xk78"))))
14531 (build-system emacs-build-system)
14532 (home-page
14533 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
14534 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
14535 (description
14536 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
14537 automatically encrypts messages that you send (e.g., email) when public keys
14538 for all recipients are available, and it protects you from accidentally
14539 sending un-encrypted messages. It can also be configured to automatically
14540 sign messages that you send. For details and instructions on how to use
14541 DefaultEncrypt, please refer to the home page or read the comments in the
14542 source file, @file{jl-encrypt.el}.")
14543 (license license:gpl3+)))
14544
14545 (define-public emacs-extend-smime
14546 (package
14547 (name "emacs-extend-smime")
14548 (version "3.3")
14549 (source
14550 (origin
14551 (method url-fetch)
14552 (uri (string-append
14553 "https://informationelle-selbstbestimmung-im-internet.de"
14554 "/emacs/jl-smime" version "/jl-smime.el"))
14555 (file-name (string-append "jl-smime-" version ".el"))
14556 (sha256
14557 (base32
14558 "1iv8s2wjmv3v5qfwlcy9hvvrmxxvp3f8m1krlr789q7bbh35jynh"))))
14559 (build-system emacs-build-system)
14560 (home-page
14561 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
14562 (synopsis "Improved S/MIME support for Gnus in Emacs")
14563 (propagated-inputs
14564 (list emacs-default-encrypt))
14565 (description
14566 ;; TRANSLATORS: ExtendSMIME, DefaultEncrypt, and emacs-default-encrypt
14567 ;; should not be translated. The name "emacs-default-encrypt" refers to
14568 ;; the Guix package that provides DefaultEncrypt.
14569 "ExtendSMIME is designed to be used with Gnus in Emacs. It enhances
14570 DefaultEncrypt (emacs-default-encrypt) to support S/MIME (Secure/Multipurpose
14571 Internet Mail Extensions) via LDAP (Lightweight Directory Access Protocol).
14572 Before a message (e.g., email) is sent, ExtendSMIME searches for missing
14573 certificates via LDAP and imports them into @code{gpgsm}. When certificates
14574 for all recipients are available, DefaultEncrypt automatically encrypts the
14575 message. For details and instructions on how to use ExtendSMIME, please refer
14576 to the home page or read the comments in the source file,
14577 @file{jl-smime.el}.")
14578 (license license:gpl3+)))
14579
14580 (define-public emacs-htmlize
14581 (package
14582 (name "emacs-htmlize")
14583 (version "1.56")
14584 (source
14585 (origin
14586 (method git-fetch)
14587 (uri (git-reference
14588 (url "https://github.com/hniksic/emacs-htmlize")
14589 (commit (string-append "release/" version))))
14590 (file-name (git-file-name name version))
14591 (sha256
14592 (base32 "14m8si49br62lgx7asdyp9jysq0v6midrfk32sxy521ydqmqr3c1"))))
14593 (build-system emacs-build-system)
14594 (home-page "https://github.com/hniksic/emacs-htmlize")
14595 (synopsis "Convert buffer text and decorations to HTML")
14596 (description "@code{emacs-htmlize} converts the buffer text and
14597 the associated decorations to HTML. Output to CSS, inline CSS and
14598 fonts is supported.")
14599 (license license:gpl2+)))
14600
14601 (define-public emacs-xmlgen
14602 (package
14603 (name "emacs-xmlgen")
14604 (version "0.5")
14605 (source
14606 (origin
14607 (method git-fetch)
14608 (uri (git-reference
14609 (url "https://github.com/philjackson/xmlgen")
14610 (commit version)))
14611 (file-name (git-file-name name version))
14612 (sha256
14613 (base32 "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s"))))
14614 (build-system emacs-build-system)
14615 (arguments
14616 `(#:tests? #t
14617 #:test-command '("emacs" "--batch"
14618 "-l" "xmlgen-test.el"
14619 "-f" "ert-run-tests-batch-and-exit")))
14620 (home-page "https://github.com/philjackson/xmlgen")
14621 (synopsis "S-expression to XML domain specific language (DSL) in
14622 Emacs Lisp")
14623 (description "@code{emacs-xmlgen} provides S-expression to XML
14624 conversion for Emacs Lisp.")
14625 (license license:gpl2+)))
14626
14627 (define-public emacs-cdlatex
14628 (package
14629 (name "emacs-cdlatex")
14630 (version "4.7")
14631 (source
14632 (origin
14633 (method git-fetch)
14634 (uri (git-reference
14635 (url "https://github.com/cdominik/cdlatex")
14636 (commit version)))
14637 (file-name (git-file-name name version))
14638 (sha256
14639 (base32 "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d"))))
14640 (build-system emacs-build-system)
14641 (propagated-inputs
14642 (list emacs-auctex))
14643 (home-page "https://github.com/cdominik/cdlatex")
14644 (synopsis "Fast Emacs input methods for LaTeX environments and
14645 math")
14646 (description "CDLaTeX is an Emacs minor mode supporting fast
14647 insertion of environment templates and math in LaTeX. Similar
14648 commands are also offered as part of the AUCTeX package, but it is not
14649 the same - CDLaTeX focuses on speediness for inserting LaTeX
14650 constructs.")
14651 (license license:gpl3+)))
14652
14653 (define-public emacs-cnfonts
14654 (package
14655 (name "emacs-cnfonts")
14656 (version "0.9.1")
14657 (source
14658 (origin
14659 (method git-fetch)
14660 (uri (git-reference
14661 (url "https://github.com/tumashu/cnfonts")
14662 (commit (string-append "v" version))))
14663 (file-name (git-file-name name version))
14664 (sha256
14665 (base32 "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx"))))
14666 (build-system emacs-build-system)
14667 (home-page "https://github.com/tumashu/cnfonts")
14668 (synopsis "Emacs Chinese fonts setup tool")
14669 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
14670 configuration of Chinese fonts.")
14671 (license license:gpl2+)))
14672
14673 (define-public emacs-boon
14674 (package
14675 (name "emacs-boon")
14676 (version "1.2")
14677 (source
14678 (origin
14679 (method git-fetch)
14680 (uri (git-reference
14681 (url "https://github.com/jyp/boon")
14682 (commit version)))
14683 (file-name (git-file-name name version))
14684 (sha256
14685 (base32 "18il2licf8pgfcrpx2bk55gpf8f537kb9cxqz83jldkhiyry74il"))))
14686 (build-system emacs-build-system)
14687 (propagated-inputs
14688 (list emacs-dash emacs-expand-region emacs-multiple-cursors
14689 emacs-powerline emacs-spaceline))
14690 (home-page "https://github.com/jyp/boon")
14691 (synopsis "Ergonomic command mode for Emacs")
14692 (description "Boon is a complete package for modal editing with a focus on
14693 ergonomics and modularity. Spacial allocation of keys comes first, mnemonics
14694 second. Most common operations are mapped to the home row, common editing
14695 commands are bound to keys reachable with the left hand and movement keys are
14696 reached with the right hand.")
14697 (license license:gpl3+)))
14698
14699 (define-public emacs-cc-mode
14700 (package
14701 (name "emacs-cc-mode")
14702 (version "5.35")
14703 (source
14704 (origin
14705 (method hg-fetch)
14706 (uri (hg-reference
14707 (url "http://hg.code.sf.net/p/cc-mode/cc-mode")
14708 (changeset
14709 (string-append "Release_"
14710 (string-replace-substring version "." "_")))))
14711 (file-name (hg-file-name name version))
14712 (sha256
14713 (base32 "03cvl61baccx57zd62nz2wy4hvij5hl2syg7byaxgrs4c7grr414"))))
14714 (build-system emacs-build-system)
14715 (arguments
14716 '(#:tests? #t
14717 #:test-command '("make" "test")
14718 #:phases
14719 (modify-phases %standard-phases
14720 (add-before 'install 'make-info
14721 (lambda _
14722 (invoke "make" "info"))))))
14723 (native-inputs
14724 (list texinfo))
14725 (home-page "http://cc-mode.sourceforge.net/")
14726 (synopsis "Framework for creating major modes for C-style languages")
14727 (description
14728 "CC Mode is an Emacs and XEmacs mode for editing C and other languages with
14729 similar syntax; currently C++, Objective-C, Java, CORBA's IDL, Pike, and AWK.")
14730 (license license:gpl3+)))
14731
14732 (define-public emacs-csharp-mode
14733 (package
14734 (name "emacs-csharp-mode")
14735 (version "1.1.1")
14736 (source
14737 (origin
14738 (method git-fetch)
14739 (uri (git-reference
14740 (url "https://github.com/josteink/csharp-mode")
14741 (commit version)))
14742 (file-name (git-file-name name version))
14743 (sha256
14744 (base32 "0wfd4jdjsq8qp6pavf25y87dxvlnsqapfi4c4m3xj24baalr2dpq"))))
14745 (build-system emacs-build-system)
14746 (home-page "https://github.com/josteink/csharp-mode")
14747 (synopsis "Major mode for C# code")
14748 (description
14749 "This is a C# editing mode for Emacs, based on CC mode. It handles
14750 syntax coloring, indentation, insertion of matched pairs of curly braces and
14751 documentation generation. In addition, it provides menu-based navigation
14752 using Imenu, and Compilation mode support for MSBuild, devenv and xbuild.")
14753 (license license:gpl3+)))
14754
14755 (define-public emacs-vala-mode
14756 ;; Upstream has no tagged release.
14757 (let ((commit "d696a8177e94c81ea557ad364a3b3dcc3abbc50f")
14758 (revision "0"))
14759 (package
14760 (name "emacs-vala-mode")
14761 (version (git-version "0.1" revision commit))
14762 (source
14763 (origin
14764 (method git-fetch)
14765 (uri (git-reference
14766 (url "https://github.com/rrthomas/vala-mode")
14767 (commit commit)))
14768 (file-name (git-file-name name version))
14769 (sha256
14770 (base32 "0g5pdq757z9d8rk489n5ilhqipdc4i4sfkjwwrxyvgjlapjc04c0"))))
14771 (build-system emacs-build-system)
14772 (arguments
14773 '(#:phases
14774 (modify-phases %standard-phases
14775 (add-after 'unpack 'disable-multiline-support
14776 (lambda* (#:key inputs #:allow-other-keys)
14777 (make-file-writable "vala-mode.el")
14778 (emacs-batch-edit-file "vala-mode.el"
14779 '(progn
14780 (require 'thingatpt) ;; beginning-of-thing, end-of-thing
14781 (goto-char (point-min))
14782 (save-excursion
14783 (re-search-forward ";; Support multiline strings")
14784 (goto-char (match-beginning 0))
14785 (kill-sexp)
14786 (insert ";; FIXME: Support multiline strings
14787 (c-lang-defconst c-multiline-string-start-char vala nil)"))
14788 (save-excursion
14789 (re-search-forward "(defcustom vala-multiline-strings")
14790 (goto-char (match-beginning 0))
14791 (insert ";; FIXME: Support multiline strings\n")
14792 (comment-region (beginning-of-thing 'sexp)
14793 (end-of-thing 'sexp)))
14794 (basic-save-buffer))))))))
14795 (home-page "https://github.com/rrthomas/vala-mode")
14796 (synopsis "Vala mode for Emacs")
14797 (description
14798 "This package provides a major mode for editing .vala and .vapi files
14799 in Emacs.")
14800 (license license:gpl2+))))
14801
14802 (define-public emacs-php-mode
14803 (package
14804 (name "emacs-php-mode")
14805 (version "1.24.0")
14806 (source
14807 (origin
14808 (method git-fetch)
14809 (uri (git-reference
14810 (url "https://github.com/ejmr/php-mode")
14811 (commit (string-append "v" version))))
14812 (file-name (git-file-name name version))
14813 (sha256
14814 (base32 "0bs9q62bd7885c39v7x1qz3w1fhpmpdgm72xwsk2yygw0ii425nn"))))
14815 (build-system emacs-build-system)
14816 (arguments
14817 `(#:phases
14818 (modify-phases %standard-phases
14819 (add-after 'unpack 'enter-source-directory
14820 (lambda _
14821 (chdir "lisp"))))))
14822 (propagated-inputs (list emacs-projectile))
14823 (home-page "https://github.com/ejmr/php-mode")
14824 (synopsis "Major mode for editing PHP code")
14825 (description
14826 "PHP mode is a major mode for editing PHP source code. It's an extension
14827 of C mode; thus it inherits all C mode's navigation functionality. But it
14828 colors according to the PHP grammar and indents according to the PEAR coding
14829 guidelines. It also includes a couple handy IDE-type features such as
14830 documentation search and a source and class browser.")
14831 (license license:gpl3+)))
14832
14833 (define-public emacs-pos-tip
14834 (package
14835 (name "emacs-pos-tip")
14836 (version "0.4.6")
14837 (source
14838 (origin
14839 (method git-fetch)
14840 (uri (git-reference
14841 (url "https://github.com/pitkali/pos-tip")
14842 (commit version)))
14843 (file-name (git-file-name name version))
14844 (sha256
14845 (base32 "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33"))))
14846 (build-system emacs-build-system)
14847 ;; The following functions and variables needed by emacs-pos-tip are
14848 ;; not included in emacs-minimal:
14849 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
14850 (arguments `(#:emacs ,emacs))
14851 (home-page "https://github.com/pitkali/pos-tip")
14852 (synopsis "Show tooltip at point")
14853 (description "The standard library tooltip.el provides a function for
14854 displaying a tooltip at the mouse position. However, locating a tooltip at an
14855 arbitrary buffer position in a window is not easy. Pos-tip provides such a
14856 function to be used by other frontend programs.")
14857 (license license:gpl2+)))
14858
14859 (define-public emacs-pyim-basedict
14860 ;; XXX: The commit below points to the un-tagged 0.5.0 release.
14861 (let ((commit "7495c974ada99f9fed96d8e85d8b97dabce9532c"))
14862 (package
14863 (name "emacs-pyim-basedict")
14864 (version "0.5.0")
14865 (source
14866 (origin
14867 (method git-fetch)
14868 (uri (git-reference
14869 (url "https://github.com/tumashu/pyim-basedict")
14870 (commit commit)))
14871 (file-name (git-file-name name version))
14872 (sha256
14873 (base32 "02asrh0adgjc5nn1ps7dq5zr38hkscnzc04sdpyjzvnmfcqsw7qb"))))
14874 (build-system emacs-build-system)
14875 (home-page "https://github.com/tumashu/pyim-basedict")
14876 (synopsis "Input method dictionary of pyim")
14877 (description "Pyim-basedict is the default pinyin input method dictionary,
14878 containing words from the Rime project.")
14879 (license license:gpl2+))))
14880
14881 (define-public emacs-pyim
14882 (package
14883 (name "emacs-pyim")
14884 (version "4.1.0")
14885 (source
14886 (origin
14887 (method url-fetch)
14888 (uri (string-append "https://elpa.gnu.org/packages/pyim-" version ".tar"))
14889 (sha256
14890 (base32 "1q4b3y72gbkl5z31brlnjqjl30lgqm2d1zlqrbkqnnfy5hjgazk9"))))
14891 (build-system emacs-build-system)
14892 (propagated-inputs
14893 (list emacs-async emacs-pyim-basedict emacs-popup emacs-posframe
14894 emacs-xr))
14895 (home-page "https://github.com/tumashu/pyim")
14896 (synopsis "Chinese input method")
14897 (description
14898 "This package provides a Chinese input method which supports quanpin,
14899 shuangpin, wubi and cangjie.")
14900 (license license:gpl2+)))
14901
14902 (define-public emacs-pinyinlib
14903 (package
14904 (name "emacs-pinyinlib")
14905 (version "0.1.1")
14906 (source
14907 (origin
14908 (method git-fetch)
14909 (uri (git-reference
14910 (url "https://github.com/cute-jumper/pinyinlib.el")
14911 (commit version)))
14912 (file-name (git-file-name name version))
14913 (sha256
14914 (base32
14915 "1nwj4c3y0kdlkf3jqd2dnibaiazrq6qcj533xk2qw4wmx072yij0"))))
14916 (build-system emacs-build-system)
14917 (home-page "https://github.com/cute-jumper/pinyinlib.el")
14918 (synopsis "Convert first letter of Pinyin to Chinese characters")
14919 (description
14920 "This Emacs library provides functionality for converting the first
14921 letter of Pinyin to Simplified/Traditional Chinese characters.")
14922 (license license:gpl3+)))
14923
14924 (define-public emacs-reverse-im
14925 (package
14926 (name "emacs-reverse-im")
14927 (version "0.0.7")
14928 (source
14929 (origin
14930 (method git-fetch)
14931 (uri (git-reference
14932 (url "https://github.com/a13/reverse-im.el")
14933 (commit (string-append "v" version))))
14934 (file-name (git-file-name name version))
14935 (sha256
14936 (base32 "05k2zp2hldzq5h6nl8gx79dd8lvfn507ad4x3naichdqgn2013nn"))))
14937 (build-system emacs-build-system)
14938 (home-page "https://github.com/a13/reverse-im.el")
14939 (synopsis "Reverse mapping for non-default system layouts")
14940 (description
14941 "Reverse IM provides a minor mode that toggles translations for all input
14942 methods from a given list.")
14943 (license license:gpl3+)))
14944
14945 (define-public emacs-posframe
14946 (package
14947 (name "emacs-posframe")
14948 (version "1.1.7")
14949 (source
14950 (origin
14951 (method url-fetch)
14952 (uri (string-append "https://elpa.gnu.org/packages/"
14953 "posframe-" version ".tar"))
14954 (sha256
14955 (base32 "13i2wxx079gfq0vbq0iwmsig5b7x4aspd1q02yqc79846f1dsx4w"))))
14956 (build-system emacs-build-system)
14957 ;; emacs-minimal does not include the function font-info.
14958 (arguments
14959 `(#:emacs ,emacs))
14960 (home-page "https://github.com/tumashu/posframe")
14961 (synopsis "Pop a posframe (a child frame) at point")
14962 (description
14963 "Posframe can pop a posframe at point. A posframe is a child frame
14964 displayed within its root window's buffer. Posframe is fast and works well
14965 with CJK languages.")
14966 (license license:gpl3+)))
14967
14968 (define-public emacs-el2org
14969 (package
14970 (name "emacs-el2org")
14971 (version "0.6.0")
14972 (source
14973 (origin
14974 (method git-fetch)
14975 (uri (git-reference
14976 (url "https://github.com/tumashu/el2org")
14977 (commit (string-append "v" version))))
14978 (file-name (git-file-name name version))
14979 (sha256
14980 (base32 "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b"))))
14981 (build-system emacs-build-system)
14982 (home-page "https://github.com/tumashu/el2org")
14983 (synopsis "Convert Emacs-lisp file to org file")
14984 (description "El2org is a simple tool, which can convert Emacs-lisp file
14985 to org file, you can use this tool to write orgify commentary.")
14986 (license license:gpl2+)))
14987
14988 (define-public emacs-muse
14989 (package
14990 (name "emacs-muse")
14991 (version "3.20.2")
14992 (source
14993 (origin
14994 (method url-fetch)
14995 (uri (string-append "https://elpa.gnu.org/packages/"
14996 "muse-" version ".tar"))
14997 (sha256
14998 (base32 "0g2ff6x45x2k5dnkp31sk3bjj92jyhhnar7l5hzn8vp22l0rv8wn"))))
14999 (build-system emacs-build-system)
15000 (home-page "https://www.gnu.org/software/emacs-muse")
15001 (synopsis "Authoring and publishing environment for Emacs")
15002 (description
15003 "Emacs Muse (also known as Muse) is an authoring and publishing
15004 environment for Emacs. It simplifies the process of writing documents and
15005 publishing them to various output formats such as HTML, LaTeX, or PDF.")
15006 (license license:gpl3+)))
15007
15008 (define-public emacs-mustache
15009 (package
15010 (name "emacs-mustache")
15011 (version "0.23")
15012 (source
15013 (origin
15014 (method git-fetch)
15015 (uri (git-reference
15016 (url "https://github.com/Wilfred/mustache.el")
15017 (commit version)))
15018 (file-name (git-file-name name version))
15019 (sha256
15020 (base32 "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"))))
15021 (build-system emacs-build-system)
15022 (propagated-inputs
15023 (list emacs-dash emacs-ht emacs-s))
15024 (home-page "https://github.com/Wilfred/mustache.el")
15025 (synopsis "Mustache templating library for Emacs")
15026 (description "Mustache templating library for Emacs, mustache is
15027 a simple web template system, which is described as a logic-less system
15028 because it lacks any explicit control flow statements, both looping and
15029 conditional evaluation can be achieved using section tags processing lists
15030 and lambdas.")
15031 (license license:gpl3+)))
15032
15033 (define-public emacs-org2web
15034 (package
15035 (name "emacs-org2web")
15036 (version "0.9.1")
15037 (source
15038 (origin
15039 (method git-fetch)
15040 (uri (git-reference
15041 (url "https://github.com/tumashu/org2web")
15042 (commit (string-append "v" version))))
15043 (file-name (git-file-name name version))
15044 (sha256
15045 (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"))))
15046 (build-system emacs-build-system)
15047 (propagated-inputs
15048 (list emacs-dash emacs-el2org emacs-ht emacs-mustache
15049 emacs-simple-httpd))
15050 (home-page "https://github.com/tumashu/org2web")
15051 (synopsis "Static site generator based on org-mode")
15052 (description "Org2web is a static site generator based on org-mode,
15053 which code derived from Kelvin H's org-page.")
15054 (license license:gpl2+)))
15055
15056 (define-public emacs-meow
15057 (package
15058 (name "emacs-meow")
15059 (version "1.4.1")
15060 (source
15061 (origin
15062 (method git-fetch)
15063 (uri (git-reference
15064 (url "https://github.com/meow-edit/meow")
15065 (commit (string-append "v" version))))
15066 (file-name (git-file-name name version))
15067 (sha256
15068 (base32 "1w6586q237c5li8c0rrivissvhn2hic6l199yr9qx92mm9cvic0q"))))
15069 (build-system emacs-build-system)
15070 (home-page "https://github.com/meow-edit/meow")
15071 (synopsis "Yet another modal editing on Emacs")
15072 (description "Meow is yet another modal editing mode for Emacs. It aims
15073 to blend modal editing into Emacs with minimum interface with its original
15074 key-bindings, avoiding most if not all the hassle introduced by key-binding
15075 conflicts.")
15076 (license license:gpl3+)))
15077
15078 (define-public emacs-xelb
15079 (package
15080 (name "emacs-xelb")
15081 (version "0.18")
15082 (source (origin
15083 (method url-fetch)
15084 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
15085 version ".tar"))
15086 (sha256
15087 (base32
15088 "1fp5mzl63sh0h3ws4l5p4qgvi7ny8a3fj6k4dhqa98xgw2bx03v7"))))
15089 (build-system emacs-build-system)
15090 ;; The following functions and variables needed by emacs-xelb are
15091 ;; not included in emacs-minimal:
15092 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
15093 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
15094 ;; x-display-pixel-width, x-display-pixel-height
15095 (arguments
15096 `(#:emacs ,emacs
15097 #:phases
15098 (modify-phases %standard-phases
15099 (add-after 'unpack 'regenerate-el-files
15100 (lambda* (#:key inputs #:allow-other-keys)
15101 (invoke "make"
15102 (string-append "PROTO_PATH="
15103 (assoc-ref inputs "xcb-proto")
15104 "/share/xcb")
15105 (string-append "EMACS_BIN="
15106 (assoc-ref inputs "emacs")
15107 "/bin/emacs -Q")))))))
15108 (native-inputs (list xcb-proto))
15109 (home-page "https://github.com/ch11ng/xelb")
15110 (synopsis "X protocol Emacs Lisp binding")
15111 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
15112 X11 protocol based on the XML description files from the XCB project. It
15113 features an object-oriented API and permits a certain degree of concurrency.
15114 It should enable you to implement low-level X11 applications.")
15115 (license license:gpl3+)))
15116
15117 (define-public emacs-exwm
15118 (package
15119 (name "emacs-exwm")
15120 (version "0.26")
15121 (synopsis "Emacs X window manager")
15122 (source
15123 (origin
15124 (method url-fetch)
15125 (uri (string-append "https://elpa.gnu.org/packages/"
15126 "exwm-" version ".tar"))
15127 (sha256
15128 (base32 "03pg0r8a5vb1wc5grmjgzql74p47fniv47x39gdll5s3cq0haf6q"))))
15129 (build-system emacs-build-system)
15130 (propagated-inputs
15131 (list emacs-xelb))
15132 (inputs
15133 (list xhost dbus))
15134 ;; The following functions and variables needed by emacs-exwm are
15135 ;; not included in emacs-minimal:
15136 ;; scroll-bar-mode, fringe-mode
15137 ;; x-display-pixel-width, x-display-pixel-height
15138 (arguments
15139 `(#:emacs ,emacs
15140 #:phases
15141 (modify-phases %standard-phases
15142 (add-after 'build 'install-xsession
15143 (lambda* (#:key inputs outputs #:allow-other-keys)
15144 (let* ((out (assoc-ref outputs "out"))
15145 (xsessions (string-append out "/share/xsessions"))
15146 (bin (string-append out "/bin"))
15147 (exwm-executable (string-append bin "/exwm")))
15148 ;; Add a .desktop file to xsessions
15149 (mkdir-p xsessions)
15150 (mkdir-p bin)
15151 (make-desktop-entry-file
15152 (string-append xsessions "/exwm.desktop")
15153 #:name ,name
15154 #:comment ,synopsis
15155 #:exec exwm-executable
15156 #:try-exec exwm-executable)
15157 ;; Add a shell wrapper to bin
15158 (with-output-to-file exwm-executable
15159 (lambda _
15160 (format #t "#!~a ~@
15161 ~a +SI:localuser:$USER ~@
15162 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
15163 (search-input-file inputs "/bin/sh")
15164 (search-input-file inputs "/bin/xhost")
15165 (search-input-file inputs "/bin/dbus-launch")
15166 (search-input-file inputs "/bin/emacs")
15167 '(cond
15168 ((file-exists-p "~/.exwm")
15169 (load-file "~/.exwm"))
15170 ((not (featurep 'exwm))
15171 (require 'exwm)
15172 (require 'exwm-config)
15173 (exwm-config-default)
15174 (message (concat "exwm configuration not found. "
15175 "Falling back to default configuration...")))))))
15176 (chmod exwm-executable #o555)
15177 #t))))))
15178 (home-page "https://github.com/ch11ng/exwm")
15179 (description
15180 "EXWM is a full-featured tiling X window manager for Emacs built on top
15181 of XELB.")
15182 (license license:gpl3+)))
15183
15184 (define-public emacs-xelb-no-x-toolkit
15185 (package
15186 (inherit emacs-xelb)
15187 (name "emacs-xelb-no-x-toolkit")
15188 (arguments
15189 (substitute-keyword-arguments (package-arguments emacs-xelb)
15190 ((#:emacs emacs) `,emacs-no-x-toolkit)))))
15191
15192 (define-public emacs-exwm-no-x-toolkit
15193 (package
15194 (inherit emacs-exwm)
15195 (name "emacs-exwm-no-x-toolkit")
15196 (synopsis "Emacs X window manager (without an X toolkit)")
15197 (propagated-inputs
15198 (list emacs-xelb-no-x-toolkit))
15199 (arguments
15200 (substitute-keyword-arguments (package-arguments emacs-exwm)
15201 ((#:emacs emacs) `,emacs-no-x-toolkit)))))
15202
15203 (define-public emacs-switch-window
15204 (package
15205 (name "emacs-switch-window")
15206 (version "1.6.2")
15207 (source
15208 (origin
15209 (method git-fetch)
15210 (uri (git-reference
15211 (url "https://github.com/dimitri/switch-window")
15212 (commit (string-append "v" version))))
15213 (file-name (git-file-name name version))
15214 (sha256
15215 (base32
15216 "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
15217 (build-system emacs-build-system)
15218 (home-page "https://github.com/dimitri/switch-window")
15219 (synopsis "Emacs window switch tool")
15220 (description "Switch-window is an emacs window switch tool, which
15221 offer a visual way to choose a window to switch to, delete, split or
15222 other operations.")
15223 (license license:wtfpl2)))
15224
15225 (define-public emacs-exwm-x
15226 (package
15227 (name "emacs-exwm-x")
15228 (version "2.0.2")
15229 (synopsis "Derivative window manager based on EXWM")
15230 (source
15231 (origin
15232 (method git-fetch)
15233 (uri (git-reference
15234 (url "https://github.com/tumashu/exwm-x")
15235 (commit (string-append "v" version))))
15236 (file-name (git-file-name name version))
15237 (sha256
15238 (base32
15239 "0h248mma7kky30jr9bbhmp95wchl2cx5p6kh0gxmzpbc247dn2cc"))))
15240 (build-system emacs-build-system)
15241 (propagated-inputs
15242 (list emacs-counsel emacs-exwm emacs-switch-window emacs-use-package))
15243 (inputs
15244 (list xhost dbus))
15245 ;; Need emacs instead of emacs-minimal,
15246 ;; for emacs's bin path will be inserted into bin/exwm-x file.
15247 (arguments
15248 `(#:emacs ,emacs
15249 #:phases
15250 (modify-phases %standard-phases
15251 (add-after 'build 'install-xsession
15252 (lambda* (#:key inputs outputs #:allow-other-keys)
15253 (let* ((out (assoc-ref outputs "out"))
15254 (xsessions (string-append out "/share/xsessions"))
15255 (bin (string-append out "/bin"))
15256 (exwm-executable (string-append bin "/exwm-x")))
15257 ;; Add a .desktop file to xsessions
15258 (mkdir-p xsessions)
15259 (mkdir-p bin)
15260 (with-output-to-file
15261 (string-append xsessions "/exwm-x.desktop")
15262 (lambda _
15263 (format #t "[Desktop Entry]~@
15264 Name=~a~@
15265 Comment=~a~@
15266 Exec=~a~@
15267 TryExec=~@*~a~@
15268 Type=Application~%" ,name ,synopsis exwm-executable)))
15269 ;; Add a shell wrapper to bin
15270 (with-output-to-file exwm-executable
15271 (lambda _
15272 (format #t "#!~a ~@
15273 ~a +SI:localuser:$USER ~@
15274 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
15275 (search-input-file inputs "/bin/sh")
15276 (search-input-file inputs "/bin/xhost")
15277 (search-input-file inputs "/bin/dbus-launch")
15278 (search-input-file inputs "/bin/emacs")
15279 '(require 'exwmx-loader))))
15280 (chmod exwm-executable #o555)
15281 #t))))))
15282 (home-page "https://github.com/tumashu/exwm-x")
15283 (description "EXWM-X is a derivative window manager based on EXWM, with focus
15284 on mouse-control.")
15285 (license license:gpl3+)))
15286
15287 (define-public emacs-gnugo
15288 (package
15289 (name "emacs-gnugo")
15290 (version "3.1.2")
15291 (source
15292 (origin
15293 (method url-fetch)
15294 (uri (string-append "https://elpa.gnu.org/packages/gnugo-"
15295 version ".tar"))
15296 (sha256
15297 (base32
15298 "138gzdyi8scqimvs49da66j8f5a43bhgpasn1bxzdj2zffwlwp6g"))))
15299 (build-system emacs-build-system)
15300 (arguments
15301 `(#:phases
15302 (modify-phases %standard-phases
15303 (add-after 'unpack 'configure
15304 (lambda* (#:key inputs #:allow-other-keys)
15305 (emacs-substitute-variables "gnugo.el"
15306 ("gnugo-xpms" "#'gnugo-imgen-create-xpms" (as-display))
15307 ("gnugo-program" (search-input-file inputs "/bin/gnugo"))))))))
15308 (inputs (list gnugo))
15309 (propagated-inputs
15310 (list emacs-ascii-art-to-unicode emacs-xpm))
15311 (home-page "https://elpa.gnu.org/packages/gnugo.html")
15312 (synopsis "Emacs major mode for playing GNU Go")
15313 (description "This package provides an Emacs based interface for GNU Go,
15314 which can be started via @samp{M-x gnugo}. It has a graphical mode where the
15315 board and stones are drawn using XPM images and supports the use of a mouse.
15316 You can switch to the graphical mode by running @samp{M-x
15317 gnugo-image-display-mode}.")
15318 (license license:gpl3+)))
15319
15320 (define-public emacs-gnuplot
15321 (package
15322 (name "emacs-gnuplot")
15323 (version "0.8.0")
15324 (source
15325 (origin
15326 (method git-fetch)
15327 (uri (git-reference
15328 (url "https://github.com/emacsorphanage/gnuplot-mode")
15329 (commit version)))
15330 (file-name (git-file-name name version))
15331 (sha256
15332 (base32 "09y177sq24gs7wwjihw59g0m4n1rv2ws9890ynxjxawv823r0fxm"))))
15333 (build-system emacs-build-system)
15334 (home-page "https://github.com/emacsorphanage/gnuplot-mode")
15335 (synopsis "Emacs major mode for interacting with Gnuplot")
15336 (description
15337 "Emacs Gnuplot is an Emacs major mode for interacting with Gnuplot.")
15338 (license license:gpl2+)))
15339
15340 (define-public emacs-transpose-frame
15341 (package
15342 (name "emacs-transpose-frame")
15343 (version "0.2.0")
15344 (source
15345 (origin
15346 (method git-fetch)
15347 (uri (git-reference
15348 (url "https://github.com/emacsorphanage/transpose-frame")
15349 (commit (string-append "v" version))))
15350 (file-name (git-file-name name version))
15351 (sha256
15352 (base32 "01j4ci0c52r2c31hc9r4p7nsb6s8blmvg50g9n5v5h3afjl1c35v"))))
15353 (build-system emacs-build-system)
15354 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
15355 (synopsis "Transpose window arrangement in current frame")
15356 (description "@code{emacs-transpose-frame} provides some interactive
15357 functions which allows users to transpose windows arrangement in currently
15358 selected frame.")
15359 (license license:bsd-2)))
15360
15361 (define-public emacs-key-chord
15362 (package
15363 (name "emacs-key-chord")
15364 (version "0.6")
15365 (source
15366 (origin
15367 (method url-fetch)
15368 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
15369 (file-name (string-append "key-chord-" version ".el"))
15370 (sha256
15371 (base32
15372 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
15373 (build-system emacs-build-system)
15374 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
15375 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
15376 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
15377 mode for binding key chords to commands. A key chord is defined as two keys
15378 pressed simultaneously or a single key quickly pressed twice.")
15379 (license license:gpl2+)))
15380
15381 (define-public emacs-evil-surround
15382 (package
15383 (name "emacs-evil-surround")
15384 (version "1.1.1")
15385 (source
15386 (origin
15387 (method git-fetch)
15388 (uri (git-reference
15389 (url "https://github.com/emacs-evil/evil-surround")
15390 (commit version)))
15391 (file-name (git-file-name name version))
15392 (sha256
15393 (base32 "1gfgmr4909m36gknprcam6q4rkcqfbi6w43ky7x6jnlmgb6mxggg"))))
15394 (build-system emacs-build-system)
15395 (propagated-inputs
15396 (list emacs-evil))
15397 (arguments
15398 `(#:tests? #t
15399 #:test-command '("make" "test")))
15400 (home-page "https://github.com/emacs-evil/evil-surround")
15401 (synopsis "Easily modify surrounding parentheses and quotes")
15402 (description "@code{emacs-evil-surround} allows easy deletion, change and
15403 addition of surrounding pairs, such as parentheses and quotes, in evil mode.")
15404 (license license:gpl3+)))
15405
15406 (define-public emacs-evil-commentary
15407 (package
15408 (name "emacs-evil-commentary")
15409 (version "2.2.0")
15410 (source
15411 (origin
15412 (method git-fetch)
15413 (uri (git-reference
15414 (url "https://github.com/linktohack/evil-commentary")
15415 (commit (string-append "v" version))))
15416 (file-name (git-file-name name version))
15417 (sha256
15418 (base32 "1l8zi9wlg1f7ffm8gh92qwk3q7h6cdl8b8zkd9hcda53mq6klpjr"))))
15419 (build-system emacs-build-system)
15420 (propagated-inputs
15421 (list emacs-evil))
15422 (home-page "https://github.com/linktohack/evil-commentary")
15423 (synopsis "Comment out code in evil mode")
15424 (description "@code{emacs-evil-commentary} adds keybindings to easily
15425 comment out lines of code in evil mode. It provides @code{gcc} to comment out
15426 lines, and @code{gc} to comment out the target of a motion.")
15427 (license license:gpl3+)))
15428
15429 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
15430 ;; therefore cannot be run
15431 (define-public emacs-ansi
15432 (let ((commit "a41d5cc719297515d85bb5256980cd1204a71b88")
15433 (revision "1"))
15434 (package
15435 (name "emacs-ansi")
15436 (version (git-version "0.4.1" revision commit))
15437 (source
15438 (origin
15439 (method git-fetch)
15440 (uri (git-reference
15441 (url "https://github.com/rejeep/ansi.el")
15442 (commit commit)))
15443 (file-name (git-file-name name version))
15444 (sha256
15445 (base32 "051v8dmji90chwbsyqsqry7h35mksal2j6rgw1kpmjsni86d79y1"))))
15446 (build-system emacs-build-system)
15447 (propagated-inputs
15448 (list emacs-dash emacs-s))
15449 (home-page "https://github.com/rejeep/ansi.el")
15450 (synopsis "Convert strings to ANSI")
15451 (description "@code{emacs-ansi} defines functions that turns simple
15452 strings to ANSI strings. Turning a string into an ANSI string can be to add
15453 color to a text, add color in the background of a text or adding a style, such
15454 as bold, underscore or italic.")
15455 (license license:gpl3+))))
15456
15457 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
15458 ;; therefore cannot be run
15459 (define-public emacs-commander
15460 (package
15461 (name "emacs-commander")
15462 (version "0.7.0")
15463 (source
15464 (origin
15465 (method git-fetch)
15466 (uri (git-reference
15467 (url "https://github.com/rejeep/commander.el")
15468 (commit (string-append "v" version))))
15469 (file-name (git-file-name name version))
15470 (sha256
15471 (base32 "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45"))))
15472 (build-system emacs-build-system)
15473 (propagated-inputs
15474 (list emacs-dash emacs-f emacs-s))
15475 (home-page "https://github.com/rejeep/commander.el")
15476 (synopsis "Emacs command line parser")
15477 (description "@code{emacs-commander} provides command line parsing for
15478 Emacs.")
15479 (license license:gpl3+)))
15480
15481 (define-public emacs-eglot
15482 (package
15483 (name "emacs-eglot")
15484 (version "1.8")
15485 (source
15486 (origin
15487 (method url-fetch)
15488 (uri (string-append "https://elpa.gnu.org/packages/"
15489 "eglot-" version ".tar"))
15490 (sha256
15491 (base32 "1n04jnf3wwpxafrzfd02l53wf90brjc8p835f84k0n0rjxin99k5"))))
15492 (build-system emacs-build-system)
15493 (propagated-inputs
15494 (list emacs-eldoc emacs-jsonrpc emacs-project))
15495 (home-page "https://github.com/joaotavora/eglot")
15496 (synopsis "Client for Language Server Protocol (LSP) servers")
15497 (description
15498 "Emacs Polyglot, or Eglot, is an Emacs @acronym{Language Server Protocol,
15499 LSP} client that stays out of the way. It guesses the LSP program to start
15500 for the current file, using the major mode as a hint. It prompts you to enter
15501 one if it fails.")
15502 (license license:gpl3+)))
15503
15504 (define-public emacs-eldoc
15505 (package
15506 (name "emacs-eldoc")
15507 (version "1.12.0")
15508 (source
15509 (origin
15510 (method url-fetch)
15511 (uri (string-append
15512 "https://elpa.gnu.org/packages/eldoc-" version ".tar"))
15513 (sha256
15514 (base32 "1npggpisqnfkc3gx7dr3pjnif7gf571z7s9g7n6vnb213353qskk"))))
15515 (build-system emacs-build-system)
15516 (home-page "http://elpa.gnu.org/packages/eldoc.html")
15517 (synopsis "Show function arglist or variable docstring in echo area")
15518 (description
15519 "This program was inspired by the behavior of the ``mouse documentation
15520 window'' on many Lisp Machine systems; as you type a function's symbol name as
15521 part of a sexp, it will print the argument list for that function. Behavior
15522 is not identical; for example, you need not actually type the function name,
15523 you need only move point around in a sexp that calls it. Also, if point is
15524 over a documented variable, it will print the one-line documentation for that
15525 variable instead, to remind you of that variable's meaning.")
15526 (license license:gpl3+)))
15527
15528 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
15529 ;; cannot be run
15530 (define-public emacs-ert-runner
15531 (package
15532 (name "emacs-ert-runner")
15533 (version "0.8.0")
15534 (source
15535 (origin
15536 (method git-fetch)
15537 (uri (git-reference
15538 (url "https://github.com/rejeep/ert-runner.el")
15539 (commit (string-append "v" version))))
15540 (file-name (git-file-name name version))
15541 (sha256
15542 (base32
15543 "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98"))))
15544 (build-system emacs-build-system)
15545 (inputs
15546 (list emacs-ansi
15547 emacs-commander
15548 emacs-dash
15549 emacs-f
15550 emacs-s
15551 emacs-shut-up))
15552 (arguments
15553 `(#:phases
15554 (modify-phases %standard-phases
15555 (add-after 'install 'install-executable
15556 (lambda* (#:key inputs outputs #:allow-other-keys)
15557 (let ((out (assoc-ref outputs "out"))
15558 (source-directory (string-append
15559 (getenv "TMPDIR") "/source")))
15560 (substitute* "bin/ert-runner"
15561 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
15562 (string-append "ERT_RUNNER=\"" (elpa-directory out))))
15563 (install-file "bin/ert-runner" (string-append out "/bin"))
15564 (wrap-program (string-append out "/bin/ert-runner")
15565 (list "EMACSLOADPATH" ":" 'prefix
15566 ;; Do not capture the transient source directory in
15567 ;; the wrapper.
15568 (delete source-directory
15569 (string-split (getenv "EMACSLOADPATH") #\:))))
15570 #t))))
15571 #:include (cons* "^reporters/.*\\.el$" %default-include)))
15572 (home-page "https://github.com/rejeep/ert-runner.el")
15573 (synopsis "Opinionated Ert testing workflow")
15574 (description "@code{ert-runner} is a tool for Emacs projects tested
15575 using ERT. It assumes a certain test structure setup and can therefore make
15576 running tests easier.")
15577 (license license:gpl3+)))
15578
15579 (define-public emacs-xtest
15580 (package
15581 (name "emacs-xtest")
15582 (version "1.1.0")
15583 (source (origin
15584 (method git-fetch)
15585 (uri (git-reference
15586 (url "https://github.com/promethial/xtest")
15587 (commit (string-append "v" version))))
15588 (file-name (git-file-name name version))
15589 (sha256
15590 (base32
15591 "1wqx6hlqcmqiljydih5fx89dw06g8w728pyn4iqsap8jwgjngb09"))))
15592 (arguments
15593 `(#:exclude '()))
15594 (build-system emacs-build-system)
15595 (home-page "https://github.com/promethial/xtest/")
15596 (synopsis "Simple testing with Emacs")
15597 (description "This package provides a simple testing library for Emacs.")
15598 (license license:gpl3+)))
15599
15600 (define-public emacs-org-transclusion
15601 (package
15602 (name "emacs-org-transclusion")
15603 (version "1.3.0")
15604 (source
15605 (origin
15606 (method git-fetch)
15607 (uri (git-reference
15608 (url "https://github.com/nobiot/org-transclusion")
15609 (commit (string-append "v" version))))
15610 (file-name (git-file-name name version))
15611 (sha256
15612 (base32 "0pjk6686ss50s9ws014if9mnixsf9m53z1d7bvkbx09lq3jqa7ry"))))
15613 (build-system emacs-build-system)
15614 (home-page "https://nobiot.github.io/org-transclusion/")
15615 (synopsis "Enable transclusion with Org Mode")
15616 (description "Org-transclusion lets you insert a copy of text content via
15617 a file link or ID link within an Org file. It lets you have the same content
15618 present in different buffers at the same time without copy-and-pasting it.
15619 Edit the source of the content, and you can refresh the transcluded copies to
15620 the up-to-date state. Org-transclusion keeps your files clear of the
15621 transcluded copies, leaving only the links to the original content.")
15622 (license license:gpl3+)))
15623
15624 (define-public emacs-disable-mouse
15625 (package
15626 (name "emacs-disable-mouse")
15627 (version "0.3")
15628 (source
15629 (origin
15630 (method git-fetch)
15631 (uri (git-reference
15632 (url "https://github.com/purcell/disable-mouse")
15633 (commit version)))
15634 (file-name (git-file-name name version))
15635 (sha256
15636 (base32 "0l6mai68ns3qw3rlvjvzsnqwdy7bxqiy0vdwflq0l1plxb1vazyc"))))
15637 (build-system emacs-build-system)
15638 (home-page "https://github.com/purcell/disable-mouse")
15639 (synopsis "Disable mouse commands globally")
15640 (description
15641 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
15642 pair of minor modes which suppress all mouse events by intercepting them and
15643 running a customisable handler command (@code{ignore} by default).")
15644 (license license:gpl3+)))
15645
15646 (define-public emacs-json-reformat
15647 (package
15648 (name "emacs-json-reformat")
15649 (version "0.0.6")
15650 (source
15651 (origin
15652 (method git-fetch)
15653 (uri (git-reference
15654 (url "https://github.com/gongo/json-reformat")
15655 (commit version)))
15656 (file-name (git-file-name name version))
15657 (sha256
15658 (base32 "0qp4n2k6s69jj4gwwimkpadjv245y54wk3bxb1x96f034gkp81vs"))
15659 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
15660 (build-system emacs-build-system)
15661 (arguments
15662 `(#:tests? #t
15663 #:test-command '("ert-runner")
15664 #:phases
15665 (modify-phases %standard-phases
15666 (add-before 'check 'make-tests-writable
15667 (lambda _
15668 (for-each make-file-writable (find-files "test"))))
15669 (add-before 'check 'delete-json-objects-order-test
15670 (lambda _
15671 (emacs-batch-edit-file "test/json-reformat-test.el"
15672 `(progn (progn (goto-char (point-min))
15673 (re-search-forward
15674 "ert-deftest json-reformat-test:json-reformat-region")
15675 (beginning-of-line)
15676 (kill-sexp))
15677 (basic-save-buffer))))))))
15678 (native-inputs
15679 (list emacs-dash emacs-ert-runner emacs-shut-up))
15680 (propagated-inputs
15681 (list emacs-undercover))
15682 (home-page "https://github.com/gongo/json-reformat")
15683 (synopsis "Reformatting tool for JSON")
15684 (description "@code{json-reformat} provides a reformatting tool for
15685 @url{http://json.org/, JSON}.")
15686 (license license:gpl3+)))
15687
15688 (define-public emacs-json-snatcher
15689 (package
15690 (name "emacs-json-snatcher")
15691 (version "1.0.0")
15692 (source
15693 (origin
15694 (method git-fetch)
15695 (uri (git-reference
15696 (url "https://github.com/Sterlingg/json-snatcher")
15697 (commit version)))
15698 (file-name (git-file-name name version))
15699 (sha256
15700 (base32 "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw"))))
15701 (build-system emacs-build-system)
15702 (home-page "https://github.com/sterlingg/json-snatcher")
15703 (synopsis "Grabs the path to JSON values in a JSON file")
15704 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
15705 a @url{http://json.org/, JSON} file.")
15706 (license license:gpl3+)))
15707
15708 (define-public emacs-json-mode
15709 (package
15710 (name "emacs-json-mode")
15711 (version "1.8.0")
15712 (source
15713 (origin
15714 (method git-fetch)
15715 (uri (git-reference
15716 (url "https://github.com/joshwnj/json-mode")
15717 (commit (string-append "v" version))))
15718 (file-name (git-file-name name version))
15719 (sha256
15720 (base32 "0r0k56q58kb133l9x9nbisz9p2kbphfgw1l4g2xp0pjqsc9wvq8z"))))
15721 (build-system emacs-build-system)
15722 (propagated-inputs
15723 (list emacs-json-snatcher))
15724 (home-page "https://github.com/joshwnj/json-mode")
15725 (synopsis "Major mode for editing JSON files")
15726 (description "@code{json-mode} extends the builtin js-mode syntax
15727 highlighting.")
15728 (license license:gpl3+)))
15729
15730 (define-public emacs-jsonrpc
15731 (package
15732 (name "emacs-jsonrpc")
15733 (version "1.0.15")
15734 (source
15735 (origin
15736 (method url-fetch)
15737 (uri (string-append "https://elpa.gnu.org/packages/"
15738 "jsonrpc-" version ".tar"))
15739 (sha256
15740 (base32 "1hx378rg12jz2zm105cvrqk0nqyzsn04l59d903l98d6lbd96rsw"))))
15741 (build-system emacs-build-system)
15742 (home-page "http://elpa.gnu.org/packages/jsonrpc.html")
15743 (synopsis "JSON-RPC library")
15744 (description
15745 "This library implements the JSONRPC 2.0 specification as
15746 described in @url{http://www.jsonrpc.org/}. As the name suggests,
15747 JSONRPC is a generic Remote Procedure Call protocol designed around
15748 JSON objects.")
15749 (license license:gpl3+)))
15750
15751 (define-public emacs-jsonnet-mode
15752 (package
15753 (name "emacs-jsonnet-mode")
15754 (version "0.1.3")
15755 (source
15756 (origin
15757 (method git-fetch)
15758 (uri (git-reference
15759 (url "https://github.com/tminor/jsonnet-mode")
15760 (commit (string-append "v" version))))
15761 (file-name (git-file-name name version))
15762 (sha256
15763 (base32
15764 "14nxfa91yg2243v4d5kvynp2645x3811ispmhmpgil3x9qbl9jg9"))))
15765 (build-system emacs-build-system)
15766 (propagated-inputs
15767 (list emacs-dash))
15768 (home-page "https://github.com/tminor/jsonnet-mode")
15769 (synopsis "Major mode for editing jsonnet files")
15770 (description "This package provides syntax highlighting, indenting,
15771 formatting, and utility methods for jsonnet files.")
15772 (license license:gpl3+)))
15773
15774 (define-public emacs-restclient
15775 (let ((commit "ac8aad6c6b9e9d918062fa3c89c22c2f4ec48bc3")
15776 (version "0")
15777 (revision "3")) ;Guix package revision,
15778 ;upstream doesn't have official releases
15779 (package
15780 (name "emacs-restclient")
15781 (version (git-version version revision commit))
15782 (source (origin
15783 (method git-fetch)
15784 (uri (git-reference
15785 (url "https://github.com/pashky/restclient.el")
15786 (commit commit)))
15787 (sha256
15788 (base32
15789 "1a2c7xzy7rsan1zcdskia6m7n6j29xacfkqjlfdhzk6rr1bpzkwk"))
15790 (file-name (git-file-name name version))))
15791 (build-system emacs-build-system)
15792 (propagated-inputs
15793 (list emacs-helm emacs-jq-mode))
15794 (home-page "https://github.com/pashky/restclient.el")
15795 (synopsis "Explore and test HTTP REST webservices")
15796 (description
15797 "This tool allows for testing and exploration of HTTP REST Web services
15798 from within Emacs. Restclient runs queries from a plan-text query sheet,
15799 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
15800 (license license:public-domain))))
15801
15802 (define-public emacs-jq-mode
15803 (package
15804 (name "emacs-jq-mode")
15805 (version "0.5.0")
15806 (source
15807 (origin
15808 (method git-fetch)
15809 (uri (git-reference
15810 (url "https://github.com/ljos/jq-mode")
15811 (commit (string-append "v" version))))
15812 (file-name (git-file-name name version))
15813 (sha256
15814 (base32 "0xk0if5i9cz4w06lx8v1vdm112pn1ybqgfw048sx15yyvfzgril1"))))
15815 (build-system emacs-build-system)
15816 (home-page "https://github.com/ljos/jq-mode")
15817 (synopsis "Major mode for editing jq queries")
15818 (description
15819 "Jq mode is an Emacs major mode for editing jq-scripts.")
15820 (license license:gpl3+)))
15821
15822 (define-public emacs-whitespace-cleanup-mode
15823 (let ((commit "72427144b054b0238a86e1348c45d986b8830d9d")
15824 (revision "1"))
15825 (package
15826 (name "emacs-whitespace-cleanup-mode")
15827 (version (git-version "0.10" revision commit))
15828 (source (origin
15829 (method git-fetch)
15830 (uri (git-reference
15831 (url "https://github.com/purcell/whitespace-cleanup-mode")
15832 (commit commit)))
15833 (sha256
15834 (base32
15835 "1zlk534jbwrsabcg3kqlzk4h4hwya60lh6q2n1v4yn4rpf5ghsag"))
15836 (file-name (git-file-name name version))))
15837 (build-system emacs-build-system)
15838 (home-page "https://github.com/purcell/whitespace-cleanup-mode")
15839 (synopsis "Intelligently call @code{whitespace-cleanup} on save")
15840 (description
15841 "This package provides a minor mode that calls
15842 @code{whitespace-cleanup} before saving the current buffer only if the
15843 whitespace in the buffer was initially clean.")
15844 (license license:gpl3+))))
15845
15846 (define-public emacs-eimp
15847 (let ((version "1.4.0")
15848 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
15849 (revision "1"))
15850 (package
15851 (name "emacs-eimp")
15852 (version (git-version version revision commit))
15853 (source
15854 (origin
15855 (method git-fetch)
15856 (uri (git-reference
15857 (url "https://github.com/nicferrier/eimp")
15858 (commit commit)))
15859 (file-name (git-file-name name version))
15860 (sha256
15861 (base32
15862 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
15863 (build-system emacs-build-system)
15864 (arguments
15865 `(#:phases
15866 (modify-phases %standard-phases
15867 (add-after 'unpack 'configure
15868 (lambda* (#:key inputs #:allow-other-keys)
15869 (let ((imagemagick (assoc-ref inputs "imagemagick")))
15870 ;; eimp.el is read-only in git.
15871 (chmod "eimp.el" #o644)
15872 (emacs-substitute-variables "eimp.el"
15873 ("eimp-mogrify-program"
15874 (string-append imagemagick "/bin/mogrify"))))
15875 #t)))))
15876 (inputs
15877 (list imagemagick))
15878 (home-page "https://github.com/nicferrier/eimp")
15879 (synopsis "Interactive image manipulation utility for Emacs")
15880 (description "@code{emacs-eimp} allows interactive image manipulation
15881 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
15882 the actual transformations.")
15883 (license license:gpl2+))))
15884
15885 (define-public emacs-dired-hacks
15886 (let ((commit "d1a2bda6aa8f890cb367297ed93aee6d3b5ba388")
15887 (revision "3"))
15888 (package
15889 (name "emacs-dired-hacks")
15890 (version (git-version "0.0.1" revision commit))
15891 (source (origin
15892 (method git-fetch)
15893 (uri (git-reference
15894 (url "https://github.com/Fuco1/dired-hacks")
15895 (commit commit)))
15896 (file-name (git-file-name name version))
15897 (sha256
15898 (base32
15899 "12m81a9kjhs4cyq3lym0vp5nx6z3sfnypyzrnia76x6rjvixjf6y"))))
15900 (build-system emacs-build-system)
15901 (propagated-inputs
15902 (list emacs-dash emacs-eimp emacs-f emacs-s))
15903 (home-page "https://github.com/Fuco1/dired-hacks")
15904 (synopsis
15905 "Collection of useful dired additions")
15906 (description
15907 "This package provides the following collection of Emacs dired mode
15908 additions:
15909
15910 @itemize
15911 @item dired-avfs
15912 @item dired-columns
15913 @item dired-filter
15914 @item dired-hacks-utils
15915 @item dired-images
15916 @item dired-list
15917 @item dired-narrow
15918 @item dired-open
15919 @item dired-rainbow
15920 @item dired-ranger
15921 @item dired-subtree
15922 @item dired-tagsistant
15923 @end itemize\n")
15924 (license license:gpl3+))))
15925
15926 (define-public emacs-dired-sidebar
15927 (package
15928 (name "emacs-dired-sidebar")
15929 (home-page "https://github.com/jojojames/dired-sidebar")
15930 (version "0.2.0")
15931 (source
15932 (origin
15933 (method git-fetch)
15934 (uri (git-reference
15935 (url home-page)
15936 (commit version)))
15937 (file-name (git-file-name name version))
15938 (sha256
15939 (base32 "090dqaqyjmkzrz4szjpk1iip0bdvb0frp4l79393f8ki8w7c16c1"))))
15940 (build-system emacs-build-system)
15941 (propagated-inputs
15942 (list emacs-dired-hacks))
15943 (synopsis "Sidebar for Emacs using Dired")
15944 (description
15945 "This package provides a sidebar for Emacs similar to @code{NeoTree}
15946 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
15947 (license license:gpl3+)))
15948
15949 (define-public emacs-which-key
15950 (package
15951 (name "emacs-which-key")
15952 (version "3.6.0")
15953 (source
15954 (origin
15955 (method git-fetch)
15956 (uri (git-reference
15957 (url "https://github.com/justbur/emacs-which-key")
15958 (commit (string-append "v" version))))
15959 (file-name (git-file-name name version))
15960 (sha256
15961 (base32 "0ph5mrzz3r7x4dmy93v6affl4jznvic97a30mrs3kvhwyr2v4mby"))))
15962 (build-system emacs-build-system)
15963 (arguments
15964 `(#:tests? #t
15965 #:test-command '("emacs" "--batch"
15966 "-l" "which-key-tests.el"
15967 "-f" "ert-run-tests-batch-and-exit")))
15968 (home-page "https://github.com/justbur/emacs-which-key")
15969 (synopsis "Display available key bindings in popup")
15970 (description
15971 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
15972 bindings following your currently entered incomplete command (a prefix) in a
15973 popup. For example, after enabling the minor mode if you enter C-x and wait
15974 for the default of 1 second, the minibuffer will expand with all of the
15975 available key bindings that follow C-x (or as many as space allows given your
15976 settings).")
15977 (license license:gpl3+)))
15978
15979 (define-public emacs-hercules
15980 (package
15981 (name "emacs-hercules")
15982 (version "0.3.1")
15983 (source
15984 (origin
15985 (method git-fetch)
15986 (uri (git-reference
15987 (url "https://gitlab.com/jjzmajic/hercules.el")
15988 (commit (string-append "v" version))))
15989 (file-name (git-file-name name version))
15990 (sha256
15991 (base32 "1rp37rhkj8jm07dwr74vc68dhrbvyvrxjdavpb0h073ps9vl9dsc"))))
15992 (build-system emacs-build-system)
15993 (propagated-inputs
15994 (list emacs-which-key))
15995 (home-page "https://gitlab.com/jjzmajic/hercules.el")
15996 (synopsis "Call a chain of related commands without repeated prefix keys")
15997 (description
15998 "This package provides sticky-key-like functionality to obviate the need
15999 for repeated prefix-key sequences, and can reuse existing keymaps. The list
16000 of commands is displayed in a handy popup.")
16001 (license license:gpl3+)))
16002
16003 (define-public emacs-ws-butler
16004 (package
16005 (name "emacs-ws-butler")
16006 (version "0.6")
16007 (source
16008 (origin
16009 (method git-fetch)
16010 (uri (git-reference
16011 (url "https://github.com/lewang/ws-butler")
16012 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
16013 (file-name (git-file-name name version))
16014 (sha256
16015 (base32 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
16016 (build-system emacs-build-system)
16017 (arguments
16018 `(#:tests? #t
16019 #:test-command '("ert-runner" "tests")))
16020 (native-inputs
16021 (list emacs-ert-runner))
16022 (home-page "https://github.com/lewang/ws-butler")
16023 (synopsis "Trim spaces from end of lines")
16024 (description
16025 "This Emacs package automatically and unobtrusively trims whitespace
16026 characters from end of lines.")
16027 (license license:gpl3+)))
16028
16029 (define-public emacs-opencl-mode
16030 ;; Upstream never makes any formal releases, there is only v1.0.
16031 ;; Use the latest commit instead.
16032 (let ((commit "15091eff92c33ee0d1ece40eb99299ef79fee92d")
16033 (revision "1"))
16034 (package
16035 (name "emacs-opencl-mode")
16036 (version (git-version "1.0" revision commit))
16037 (source (origin
16038 (method git-fetch)
16039 (uri (git-reference
16040 (url "https://github.com/salmanebah/opencl-mode")
16041 (commit commit)))
16042 (file-name (git-file-name name version))
16043 (sha256
16044 (base32 "1zn6rr48w0ai0sn51zzyp546va6flfgf9lm12vfrdb6kkiiiq403"))))
16045 (build-system emacs-build-system)
16046 (synopsis "Emacs major mode for editing OpenCL kernels")
16047 (description "This Emacs package provides the @code{opencl-mode} major
16048 mode for editing OpenCL kernels. It supports syntax highlighting and online
16049 access to the OpenCL documentation through the @code{opencl-lookup} function.")
16050 (home-page "https://github.com/salmanebah/opencl-mode")
16051 (license license:gpl3+))))
16052
16053 (define-public emacs-openwith
16054 ;; There is no release tag. Version is extracted from main file.
16055 (let ((version "20120531")
16056 (revision "0")
16057 (commit "5fe01dee520d24c839ad5ee18822667457d9f352"))
16058 (package
16059 (name "emacs-openwith")
16060 (version (git-version version revision commit))
16061 (source
16062 (origin
16063 (method git-fetch)
16064 (uri (git-reference
16065 (url "https://github.com/garberw/openwith")
16066 (commit commit)))
16067 (file-name (git-file-name name version))
16068 (sha256
16069 (base32 "1scbawhlzmj5nhix779rlqf462g37q84vpq205qhg4qyscvfx6bi"))))
16070 (build-system emacs-build-system)
16071 (home-page "https://github.com/garberw/openwith")
16072 (synopsis "Open external applications for files with Emacs")
16073 (description
16074 "This package enables you to associate file name patterns with external
16075 applications that are automatically invoked when you use commands like
16076 @code{find-file}. For example, you can have it open @code{png} files with
16077 @code{feh} and @code{mp4} files with @code{mpv}. This is especially useful
16078 when browsing files with Dired.")
16079 (license license:gpl2+))))
16080
16081 (define-public emacs-org-edit-latex
16082 (package
16083 (name "emacs-org-edit-latex")
16084 (version "0.8.3")
16085 (source
16086 (origin
16087 (method git-fetch)
16088 (uri (git-reference
16089 (url "https://github.com/et2010/org-edit-latex")
16090 (commit (string-append "v" version))))
16091 (file-name (git-file-name name version))
16092 (sha256
16093 (base32 "1w0lyz71dq8x28ira4hig1b70bqn1dr53w3k5dgch9szcf6xa86y"))))
16094 (build-system emacs-build-system)
16095 (arguments
16096 `(#:phases
16097 (modify-phases %standard-phases
16098 (add-before 'build 'set-home
16099 (lambda _ (setenv "HOME" "/tmp"))))))
16100 (propagated-inputs
16101 (list emacs-auctex emacs-org))
16102 (home-page "https://github.com/et2010/org-edit-latex")
16103 (synopsis "Edit a LaTeX fragment just like editing a source block")
16104 (description
16105 "Org Edit LaTeX is an extension for Org mode. It lets you edit a LaTeX
16106 fragment in a dedicated buffer just like editing a source block.")
16107 (license license:gpl3+)))
16108
16109 (define-public emacs-emamux
16110 (package
16111 (name "emacs-emamux")
16112 (version "0.14")
16113 (source
16114 (origin
16115 (method git-fetch)
16116 (uri (git-reference
16117 (url "https://github.com/syohex/emacs-emamux")
16118 (commit version)))
16119 (file-name (git-file-name name version))
16120 (sha256
16121 (base32 "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b"))))
16122 (build-system emacs-build-system)
16123 (home-page "https://github.com/syohex/emacs-emamux")
16124 (synopsis "Manipulate Tmux from Emacs")
16125 (description
16126 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
16127 multiplexer.")
16128 (license license:gpl3+)))
16129
16130 (define-public emacs-plz
16131 (package
16132 (name "emacs-plz")
16133 (version "0.1")
16134 (source
16135 (origin
16136 (method git-fetch)
16137 (uri (git-reference
16138 (url "https://github.com/alphapapa/plz.el")
16139 (commit version)))
16140 (file-name (git-file-name name version))
16141 (sha256
16142 (base32 "0psdjmj1r4g57vhm6c4hajmma72jk893fk820fbjgjwqihr1bxx9"))))
16143 (build-system emacs-build-system)
16144 (inputs (list curl))
16145 (home-page "https://github.com/alphapapa/plz.el")
16146 (synopsis "HTTP library for Emacs")
16147 (description
16148 "This package provides HTTP library for Emacs. It uses Curl as a backend,
16149 which avoids some of the issues with using Emacs’s built-in Url library.")
16150 (license license:gpl3+)))
16151
16152 (define-public emacs-ement
16153 (let ((commit "45b7882c8a8f28eb59113f78db0e79918f2c58ee")
16154 (revision "2"))
16155 (package
16156 (name "emacs-ement")
16157 (version (git-version "0.1-pre" revision commit))
16158 (source
16159 (origin
16160 (method git-fetch)
16161 (uri (git-reference
16162 (url "https://github.com/alphapapa/ement.el")
16163 (commit commit)))
16164 (file-name (git-file-name name version))
16165 (sha256
16166 (base32 "1f79h9l7chazan7kh2g73banqim5p4gz2nyx3cvp9jjfz32c4k46"))))
16167 (build-system emacs-build-system)
16168 (arguments
16169 `(#:emacs ,emacs)) ;need libxml support
16170 (propagated-inputs
16171 (list emacs-plz
16172 emacs-svg-lib
16173 emacs-taxy
16174 emacs-ts))
16175 (home-page "https://github.com/alphapapa/ement.el")
16176 (synopsis "Matrix client for Emacs")
16177 (description "Ement.el is a Matrix client for Emacs.")
16178 (license license:gpl3+))))
16179
16180 (define-public emacs-rpm-spec-mode
16181 (let ((commit "c1c38050c48ea330c7cea632b8785d66daeefb2b")
16182 (revision "0"))
16183 (package
16184 (name "emacs-rpm-spec-mode")
16185 (version (git-version "0.16" revision commit))
16186 (source (origin
16187 (method git-fetch)
16188 (uri (git-reference
16189 (url "https://github.com/stigbjorlykke/rpm-spec-mode")
16190 (commit commit)))
16191 (file-name (git-file-name name version))
16192 (sha256
16193 (base32
16194 "0427kcvf2ljhzwxskn3jzk0ncrl3f9zcz2sm83d9pmhh5jax2gch"))))
16195 (build-system emacs-build-system)
16196 (arguments
16197 (list
16198 #:phases
16199 #~(modify-phases %standard-phases
16200 (add-after 'unpack 'adjust-for-emacs-28
16201 (lambda _
16202 ;; Since Emacs 28, define-obsolete-variable-alias require a
16203 ;; 3rd argument to specify when the deprecation was
16204 ;; introduced.
16205 ;; The rpm-spec-mode.el file is encoded in ISO-8859-1 (iso-latin-1).
16206 (with-fluids ((%default-port-encoding "ISO-8859-1"))
16207 (substitute* "rpm-spec-mode.el"
16208 (("'rpm-spec-completion-ignore-case" all)
16209 (string-append all " \"0.12\""))
16210 (("'rpm-spec-nobuild" all)
16211 (string-append all " \"0.12\""))
16212 (("'rpm-spec-initialize-sections" all)
16213 (string-append all " \"0.12\""))
16214 (("'rpm-spec-insert-changelog-version" all)
16215 (string-append all " \"0.12\"")))))))))
16216 (home-page "https://github.com/stigbjorlykke/rpm-spec-mode")
16217 (synopsis "Emacs major mode for editing RPM spec files")
16218 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
16219 editing RPM spec files.")
16220 (license license:gpl2+))))
16221
16222 (define-public emacs-lcr
16223 (package
16224 (name "emacs-lcr")
16225 (version "1.1")
16226 (source
16227 (origin
16228 (method git-fetch)
16229 (uri (git-reference
16230 (url "https://github.com/jyp/lcr")
16231 (commit version)))
16232 (file-name (git-file-name name version))
16233 (sha256
16234 (base32 "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8"))))
16235 (build-system emacs-build-system)
16236 (propagated-inputs
16237 (list emacs-dash))
16238 (home-page "https://github.com/jyp/lcr")
16239 (synopsis "Lightweight coroutines in Emacs Lisp")
16240 (description "This package provides macros that can translate code into
16241 equivalent continuation-passing code, as well as miscellaneous utility
16242 functions written in continuation-passing style.")
16243 (license license:gpl3+)))
16244
16245 (define-public emacs-attrap
16246 (package
16247 (name "emacs-attrap")
16248 (version "1.1")
16249 (source
16250 (origin
16251 (method git-fetch)
16252 (uri (git-reference
16253 (url "https://github.com/jyp/attrap")
16254 (commit version)))
16255 (sha256
16256 (base32 "0wqc7bqx9rvk8r7fd3x84h8p01v97s6w2jf29nnjb59xakwp22i7"))
16257 (file-name (git-file-name name version))))
16258 (build-system emacs-build-system)
16259 (propagated-inputs
16260 (list emacs-dash emacs-f emacs-flycheck emacs-s))
16261 (home-page "https://github.com/jyp/attrap")
16262 (synopsis "Fix coding error at point")
16263 (description "This package provides a command to fix the Flycheck error
16264 at point.")
16265 (license license:gpl3+)))
16266
16267 (define-public emacs-git-messenger
16268 (package
16269 (name "emacs-git-messenger")
16270 (version "0.18")
16271 (source
16272 (origin
16273 (method git-fetch)
16274 (uri (git-reference
16275 (url "https://github.com/syohex/emacs-git-messenger")
16276 (commit version)))
16277 (file-name (git-file-name name version))
16278 (sha256
16279 (base32 "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"))))
16280 (build-system emacs-build-system)
16281 (propagated-inputs
16282 (list emacs-popup))
16283 (arguments
16284 `(#:tests? #t
16285 #:test-command '("emacs" "--batch" "-l" "test/test.el"
16286 "-f" "ert-run-tests-batch-and-exit")))
16287 (home-page "https://github.com/syohex/emacs-git-messenger")
16288 (synopsis "Popup commit message at current line")
16289 (description "@code{emacs-git-messenger} provides
16290 @code{git-messenger:popup-message}, a function that when called, will popup
16291 the last git commit message for the current line. This uses git-blame
16292 internally.")
16293 (license license:gpl3+)))
16294
16295 (define-public emacs-gitpatch
16296 (package
16297 (name "emacs-gitpatch")
16298 (version "0.5.1")
16299 (source
16300 (origin
16301 (method git-fetch)
16302 (uri (git-reference
16303 (url "https://github.com/tumashu/gitpatch")
16304 (commit (string-append "v" version))))
16305 (file-name (git-file-name name version))
16306 (sha256
16307 (base32 "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig"))))
16308 (build-system emacs-build-system)
16309 (home-page "https://github.com/tumashu/gitpatch")
16310 (synopsis "Mail git patch from Emacs")
16311 (description "@code{emacs-gitpatch} lets users easily send git patches,
16312 created by @code{git format-patch}, from @code{magit}, @code{dired} and
16313 @code{ibuffer} buffers.")
16314 (license license:gpl3+)))
16315
16316 (define-public emacs-git-email
16317 ;; Use latest commit since latest tagged release is missing important
16318 ;; changes.
16319 (let ((commit "b5ebade3a48dc0ce0c85699f25800808233c73be")
16320 (revision "0"))
16321 (package
16322 (name "emacs-git-email")
16323 (version (git-version "0.2.0" revision commit))
16324 (source
16325 (origin
16326 (method git-fetch)
16327 (uri (git-reference
16328 (url "https://git.sr.ht/~yoctocell/git-email")
16329 (commit commit)))
16330 (patches
16331 (search-patches "emacs-git-email-missing-parens.patch"))
16332 (file-name (git-file-name name version))
16333 (sha256
16334 (base32 "1lk1yds7idgawnair8l3s72rgjmh80qmy4kl5wrnqvpmjrmdgvnx"))))
16335 (build-system emacs-build-system)
16336 (arguments
16337 `(#:phases
16338 (modify-phases %standard-phases
16339 ;; piem is not yet packaged in Guix.
16340 (add-after 'unpack 'remove-piem
16341 (lambda _
16342 (delete-file "git-email-piem.el")))
16343 (add-before 'install 'makeinfo
16344 (lambda _
16345 (invoke "makeinfo" "doc/git-email.texi"))))))
16346 (native-inputs
16347 (list texinfo))
16348 (propagated-inputs
16349 (list mu emacs-magit emacs-notmuch))
16350 (license license:gpl3+)
16351 (home-page "https://sr.ht/~yoctocell/git-email")
16352 (synopsis "Format and send Git patches in Emacs")
16353 (description "This package provides utilities for formatting and
16354 sending Git patches via Email, without leaving Emacs."))))
16355
16356 (define-public emacs-erc-hl-nicks
16357 (package
16358 (name "emacs-erc-hl-nicks")
16359 (version "1.3.4")
16360 (source
16361 (origin
16362 (method git-fetch)
16363 (uri (git-reference
16364 (url "https://github.com/leathekd/erc-hl-nicks")
16365 (commit version)))
16366 (file-name (git-file-name name version))
16367 (sha256
16368 (base32 "0k57scxa8rm859fqsm8srhps7rlq06jzazhjbwnadzrh8i5fyvra"))))
16369 (build-system emacs-build-system)
16370 (synopsis "Nickname highlighting for Emacs ERC")
16371 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
16372 client for Emacs. The main features are:
16373 @itemize
16374 @item Auto-colorizes nicknames without having to specify colors
16375 @item Ignores certain characters that IRC clients add to nicknames to avoid
16376 duplicates (nickname, nickname’, nickname\", etc.)
16377 @item Attempts to produce colors with a sufficient amount of contrast between
16378 the nick color and the background color
16379 @end itemize\n")
16380 (home-page "https://github.com/leathekd/erc-hl-nicks")
16381 (license license:gpl3+)))
16382
16383 (define-public emacs-engine-mode
16384 (package
16385 (name "emacs-engine-mode")
16386 (version "2.1.1")
16387 (source
16388 (origin
16389 (method git-fetch)
16390 (uri (git-reference
16391 (url "https://github.com/hrs/engine-mode")
16392 (commit (string-append "v" version))))
16393 (file-name (git-file-name name version))
16394 (sha256
16395 (base32 "1xka8i4cdvp5r2v2mkli1zz17x1sdsnmszbhqav2rf94v656d91i"))))
16396 (build-system emacs-build-system)
16397 (synopsis "Minor mode for defining and querying search engines")
16398 (description "@code{engine-mode} is a global minor mode for Emacs. It
16399 enables you to easily define search engines, bind them to keybindings, and
16400 query them from the comfort of your editor.")
16401 (home-page "https://github.com/hrs/engine-mode")
16402 (license license:gpl3+)))
16403
16404 (define-public emacs-inheritenv
16405 (package
16406 (name "emacs-inheritenv")
16407 (version "0.1")
16408 (source
16409 (origin
16410 (method git-fetch)
16411 (uri (git-reference
16412 (url "https://github.com/purcell/inheritenv")
16413 (commit version)))
16414 (file-name (git-file-name name version))
16415 (sha256
16416 (base32 "0ygzf70vfb7qwpsllcq5i3brprsnx3sxy2zng02mzwrr5jkx4ypc"))))
16417 (build-system emacs-build-system)
16418 (home-page "https://github.com/purcell/inheritenv/releases")
16419 (synopsis "Emacs temp buffers inherit buffer-local environment variables")
16420 (description
16421 "Inheritenv provides tools to execute processes inheriting the calling
16422 buffer's environment.")
16423 (license license:gpl3+)))
16424
16425 (define-public emacs-enlive
16426 (package
16427 (name "emacs-enlive")
16428 (version "0.0.1")
16429 (source
16430 (origin
16431 (method git-fetch)
16432 (uri (git-reference
16433 (url "https://github.com/zweifisch/enlive")
16434 (commit (string-append "v" version))))
16435 (file-name (git-file-name name version))
16436 (sha256
16437 (base32
16438 "08j6b79vy8ry4ad1abk3hvxjbb4ylrhkvrbrnq1gcikl4h1p2v63"))))
16439 (build-system emacs-build-system)
16440 (home-page "http://github.com/zweifisch/enlive")
16441 (synopsis "Query HTML document with CSS selectors in Emacs")
16442 (description
16443 "Enlive is an Emacs library that allows the user to query HTML documents
16444 from within Elisp using a DSL similar to CSS selectors.")
16445 (license license:gpl3+)))
16446
16447 (define-public emacs-envrc
16448 (package
16449 (name "emacs-envrc")
16450 (version "0.4")
16451 (source
16452 (origin
16453 (method git-fetch)
16454 (uri (git-reference
16455 (url "https://github.com/purcell/envrc")
16456 (commit version)))
16457 (file-name (git-file-name name version))
16458 (sha256
16459 (base32
16460 "0nqqx4qlw75lmbn0v927sg3xyjkk86ihw1q3rdbbn59va41grds4"))))
16461 (build-system emacs-build-system)
16462 (propagated-inputs
16463 (list emacs-inheritenv))
16464 (home-page "https://github.com/purcell/envrc")
16465 (synopsis "Support for Direnv which operates buffer-locally")
16466 (description
16467 "This is library which uses Direnv to set environment variables on
16468 a per-buffer basis. This means that when you work across multiple projects
16469 which have @file{.envrc} files, all processes launched from the buffers ``in''
16470 those projects will be executed with the environment variables specified in
16471 those files. This allows different versions of linters and other tools to be
16472 used in each project if desired.")
16473 (license license:gpl3+)))
16474
16475 (define-public emacs-prop-menu
16476 (package
16477 (name "emacs-prop-menu")
16478 (version "0.1.2")
16479 (source
16480 (origin
16481 (method git-fetch)
16482 (uri (git-reference
16483 (url "https://github.com/david-christiansen/prop-menu-el")
16484 (commit version)))
16485 (file-name (git-file-name name version))
16486 (sha256
16487 (base32
16488 "18ap2liz5r5a8ja2zz9182fnfm47jnsbyblpq859zks356k37iwc"))))
16489 (build-system emacs-build-system)
16490 (home-page
16491 "https://github.com/david-christiansen/prop-menu-el")
16492 (synopsis
16493 "Create and display a context menu based on text and overlay properties")
16494 (description
16495 "This is a library for computing context menus based on text
16496 properties and overlays. The intended use is to have tools that
16497 annotate source code and others that use these annotations, without
16498 requiring a direct coupling between them, but maintaining
16499 discoverability.
16500
16501 Major modes that wish to use this library should first define an
16502 appropriate value for @code{prop-menu-item-functions}. Then, they should
16503 bind @code{prop-menu-by-completing-read} to an appropriate
16504 key. Optionally, a mouse pop-up can be added by binding
16505 @code{prop-menu-show-menu} to a mouse event.")
16506 (license license:gpl3+)))
16507
16508 (define-public emacs-idris-mode
16509 (let ((commit "9bc7697406f719258d93835df3c1761efbfecaa7")
16510 (revision "1"))
16511 (package
16512 (name "emacs-idris-mode")
16513 (version (git-version "1.0" revision commit))
16514 (source
16515 (origin
16516 (method git-fetch)
16517 (uri (git-reference
16518 (url "https://github.com/idris-hackers/idris-mode")
16519 (commit commit)))
16520 (file-name (git-file-name name commit))
16521 (sha256
16522 (base32
16523 "1d1f7kx0fw632js7qd1sra5wbpwyamcqs5wpzhyynmr5ybb0vyl7"))))
16524 (build-system emacs-build-system)
16525 (propagated-inputs
16526 (list emacs-prop-menu))
16527 (home-page
16528 "https://github.com/idris-hackers/idris-mode")
16529 (synopsis "Major mode for editing Idris code")
16530 (description
16531 "This is an Emacs mode for editing Idris code. It is compatible with
16532 the latest versions of Idris 1.")
16533 (license license:gpl3+))))
16534
16535 (define-public emacs-browse-at-remote
16536 (package
16537 (name "emacs-browse-at-remote")
16538 (version "0.14.0")
16539 (source
16540 (origin
16541 (method git-fetch)
16542 (uri (git-reference
16543 (url "https://github.com/rmuslimov/browse-at-remote")
16544 (commit version)))
16545 (file-name (git-file-name name version))
16546 (sha256
16547 (base32 "0bx4ns0jb0sqrjk1nsspvl3mhz3n12925azf7brlwb1vcgnji09v"))))
16548 (build-system emacs-build-system)
16549 (arguments
16550 `(#:tests? #t
16551 #:test-command '("ert-runner")))
16552 (native-inputs
16553 (list emacs-ert-runner))
16554 (propagated-inputs
16555 (list emacs-f emacs-s))
16556 (home-page "https://github.com/rmuslimov/browse-at-remote")
16557 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
16558 (description
16559 "This Emacs package allows you to open a target page on
16560 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
16561 It supports dired buffers and opens them in tree mode at destination.")
16562 (license license:gpl3+)))
16563
16564 (define-public emacs-tiny
16565 (let ((commit "fd8a6b0b0c564d8242259e20e557ee6041f40908")
16566 (revision "1"))
16567 (package
16568 (name "emacs-tiny")
16569 (version (git-version "0.2.1" revision commit))
16570 (source
16571 (origin
16572 (method git-fetch)
16573 (uri (git-reference
16574 (url "https://github.com/abo-abo/tiny")
16575 (commit commit)))
16576 (file-name (git-file-name name version))
16577 (sha256
16578 (base32
16579 "1498j392ap2mk4zmsm2id16pfgvj78r428da9vw7hdrzzibai2cx"))))
16580 (build-system emacs-build-system)
16581 (arguments
16582 `(#:tests? #t
16583 #:test-command '("make" "test")))
16584 (home-page "https://github.com/abo-abo/tiny")
16585 (synopsis "Quickly generate linear ranges in Emacs")
16586 (description
16587 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
16588 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
16589 proficiency is an advantage, since you can transform your numeric range with
16590 an elisp expression.")
16591 (license license:gpl3+))))
16592
16593 (define-public emacs-taxy
16594 (package
16595 (name "emacs-taxy")
16596 (version "0.9")
16597 (source
16598 (origin
16599 (method url-fetch)
16600 (uri (string-append
16601 "https://elpa.gnu.org/packages/taxy-" version ".tar"))
16602 (sha256
16603 (base32
16604 "1nzafs3yvcnmg07zi345n2yvjsw9wixlybzibnhf5k6jnd0vvpjh"))))
16605 (build-system emacs-build-system)
16606 (propagated-inputs
16607 (list emacs-magit))
16608 (home-page "https://github.com/alphapapa/taxy.el")
16609 (synopsis "Programmable taxonomical grouping for arbitrary objects")
16610 (description
16611 "Taxy provides a programmable way to classify arbitrary objects into
16612 a hierarchical taxonomy. Allows you to automatically put things in nested
16613 groups.")
16614 (license license:gpl3+)))
16615
16616 (define-public emacs-emojify
16617 (package
16618 (name "emacs-emojify")
16619 (version "1.2")
16620 (source
16621 (origin
16622 (method git-fetch)
16623 (uri (git-reference
16624 (url "https://github.com/iqbalansari/emacs-emojify")
16625 (commit (string-append "v" version))))
16626 (file-name (git-file-name name version))
16627 (sha256
16628 (base32
16629 "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm"))))
16630 (build-system emacs-build-system)
16631 (arguments
16632 `(#:include (cons "^data/" %default-include)))
16633 (propagated-inputs
16634 (list emacs-ht))
16635 (home-page "https://github.com/iqbalansari/emacs-emojify")
16636 (synopsis "Display emojis in Emacs")
16637 (description "This package displays emojis in Emacs similar to how Github,
16638 Slack, and other websites do. It can display plain ASCII like @code{:)} as
16639 well as Github-style emojis like @code{:smile:}. It provides a minor mode
16640 @code{emojify-mode} to enable the display of emojis in a buffer.")
16641 (license license:gpl3+)))
16642
16643 (define-public emacs-make-it-so
16644 (let ((commit "b73dfb640588123c9eece230ad72b37604f5c126")
16645 (revision "2"))
16646 (package
16647 (name "emacs-make-it-so")
16648 (version (git-version "0.1.0" revision commit))
16649 (source
16650 (origin
16651 (method git-fetch)
16652 (uri (git-reference
16653 (url "https://github.com/abo-abo/make-it-so")
16654 (commit commit)))
16655 (file-name (git-file-name name version))
16656 (sha256
16657 (base32
16658 "0p6xhyinzzkrwzbpxqfm8hlii0ikvmmylya240bwsa77w0g1k6xq"))))
16659 (build-system emacs-build-system)
16660 (arguments
16661 `(#:include (cons "^recipes/" %default-include)))
16662 (propagated-inputs
16663 (list emacs-ivy))
16664 (home-page "https://github.com/abo-abo/make-it-so")
16665 (synopsis "Transform files with Makefile recipes")
16666 (description "This package provides an interface for selecting from
16667 different conversion recipes, often including tools like @code{ffmpeg} or
16668 @code{convert}. The conversion command need only be written once, and
16669 subsequent invocations can be readily customized. Several recipes are
16670 included by default, and more can be readily added.")
16671 (license license:gpl3+))))
16672
16673 (define-public emacs-unidecode
16674 (let ((commit "5502ada9287b4012eabb879f12f5b0a9df52c5b7")
16675 (revision "1"))
16676 (package
16677 (name "emacs-unidecode")
16678 (version (git-version "0.2" revision commit))
16679 (source
16680 (origin
16681 (method git-fetch)
16682 (uri (git-reference
16683 (url "https://github.com/sindikat/unidecode")
16684 (commit commit)))
16685 (file-name (git-file-name name version))
16686 (sha256
16687 (base32
16688 "03x3nakbhmakwm977mwrf8jifvjnfwzpjv6wrwpizbqjnkgfchmn"))))
16689 (build-system emacs-build-system)
16690 (arguments
16691 `(#:include (cons* "^tools/" "^data/" %default-include)
16692 #:tests? #t
16693 #:test-command '("emacs" "--batch"
16694 "-l" "unidecode-test.el"
16695 "-f" "ert-run-tests-batch-and-exit")
16696 #:phases
16697 (modify-phases %standard-phases
16698 (add-before 'check 'make-tests-writable
16699 (lambda _
16700 (make-file-writable "unidecode-test.el")
16701 #t))
16702 (add-before 'check 'add-require
16703 (lambda _
16704 (emacs-batch-edit-file "unidecode-test.el"
16705 `(progn (progn (goto-char (point-min))
16706 (re-search-forward
16707 "ert-deftest")
16708 (forward-line -1)
16709 (insert "(require 'unidecode)"))
16710 (basic-save-buffer)))
16711 #t)))))
16712 (home-page "https://github.com/sindikat/unidecode")
16713 (synopsis "Transliterate Unicode text to ASCII")
16714 (description "This package provides functions for converting Unicode to ASCII.")
16715 (license license:gpl2+))))
16716
16717 (define-public emacs-pubmed
16718 (package
16719 (name "emacs-pubmed")
16720 (version "0.6.1")
16721 (source
16722 (origin
16723 (method git-fetch)
16724 (uri (git-reference
16725 (url "https://gitlab.com/fvdbeek/emacs-pubmed")
16726 (commit (string-append "v" version))))
16727 (file-name (git-file-name name version))
16728 (sha256
16729 (base32
16730 "1f884r3fs9nybf5y9dwp8f9m8azssxjy55z7bd0nl9pjll9rhsz2"))))
16731 (build-system emacs-build-system)
16732 (propagated-inputs
16733 (list emacs-deferred emacs-esxml emacs-s emacs-unidecode))
16734 (home-page "https://gitlab.com/fvdbeek/emacs-pubmed")
16735 (synopsis "Interface to PubMed")
16736 (description "This package provides an Emacs interface to the PubMed
16737 database of references on life sciences.")
16738 (license license:gpl3+)))
16739
16740 (define-public emacs-websocket
16741 (package
16742 (name "emacs-websocket")
16743 (version "1.13.1")
16744 (source
16745 (origin
16746 (method url-fetch)
16747 (uri (string-append "https://elpa.gnu.org/packages/"
16748 "websocket-" version ".tar"))
16749 (sha256
16750 (base32 "1x664zswas0fpml7zaj59zy97avrm49zb80zd69rlkqzz1m45psc"))))
16751 (build-system emacs-build-system)
16752 (home-page "https://elpa.gnu.org/packages/websocket.html")
16753 (synopsis "Emacs WebSocket client and server")
16754 (description
16755 "This is an Elisp library for WebSocket clients to talk to WebSocket
16756 servers, and for WebSocket servers to accept connections from WebSocket
16757 clients. This library is designed to be used by other library writers, to
16758 write applications that use WebSockets, and is not useful by itself.")
16759 (license license:gpl3+)))
16760
16761 (define-public emacs-oauth2
16762 (package
16763 (name "emacs-oauth2")
16764 (version "0.16")
16765 (source
16766 (origin
16767 (method url-fetch)
16768 (uri (string-append "https://elpa.gnu.org/packages/"
16769 "oauth2-" version ".tar"))
16770 (sha256
16771 (base32 "1rzly2nwjywrfgcmp8zidbmjl2ahyd8l8507lb1mxm4xqryvf316"))))
16772 (build-system emacs-build-system)
16773 (home-page "https://elpa.gnu.org/packages/oauth2.html")
16774 (synopsis "OAuth 2.0 authorization protocol implementation")
16775 (description
16776 "This package provides an Elisp implementation of the OAuth 2.0 draft.
16777 The main entry point is @code{oauth2-auth-and-store} which will return a token
16778 structure. This token structure can be then used with
16779 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
16780 retrieve any data that need OAuth authentication to be accessed. If the token
16781 needs to be refreshed, the code handles it automatically and stores the new
16782 value of the access token.")
16783 (license license:gpl3+)))
16784
16785 (define-public emacs-auth-source-xoauth2
16786 (package
16787 (name "emacs-auth-source-xoauth2")
16788 (version "1.0")
16789 (source
16790 (origin
16791 (method git-fetch)
16792 (uri (git-reference
16793 (url "https://github.com/ccrusius/auth-source-xoauth2")
16794 (commit (string-append "v" version))))
16795 (file-name (git-file-name name version))
16796 (sha256
16797 (base32 "0nl859csl8xcd6ybpjj15ph8l8fxwkwf45kbylss68alkyf1rl3v"))))
16798 (build-system emacs-build-system)
16799 (home-page "https://github.com/ccrusius/auth-source-xoauth2")
16800 (synopsis "XOAuth2 authentication capabilities for Emacs auth-source")
16801 (description
16802 "This package adds XOAuth2 authentication capabilities to Emacs
16803 auth-source. This integration requires some preliminary work on the users’
16804 part, which includes creating tokens.")
16805 (license license:asl2.0)))
16806
16807 (define-public emacs-circe
16808 (package
16809 (name "emacs-circe")
16810 (version "2.12")
16811 (source
16812 (origin
16813 (method git-fetch)
16814 (uri (git-reference
16815 (url "https://github.com/jorgenschaefer/circe")
16816 (commit (string-append "v" version))))
16817 (file-name (git-file-name name version))
16818 (sha256
16819 (base32 "0lrxd4hanaxj85nafsc0wss677slmyaks3qb7a95mj7vic3ib937"))))
16820 (build-system emacs-build-system)
16821 (arguments
16822 `(#:tests? #t
16823 #:test-command '("buttercup" "-L" ".")
16824 #:emacs ,emacs ;requires gnutls
16825 #:phases
16826 (modify-phases %standard-phases
16827 ;; The HOME environment variable should be set to an existing
16828 ;; directory for the tests to succeed.
16829 (add-before 'check 'set-home
16830 (lambda _
16831 (setenv "HOME" "/tmp")))
16832 (add-before 'check 'remove-failing-tests
16833 (lambda _
16834 (make-file-writable "tests/test-circe.el")
16835 (emacs-batch-edit-file "tests/test-circe.el"
16836 `(progn
16837 (dolist (test
16838 '("should have circe-server-buffer set in the mode hook"
16839 "should complete nicks with colon at the beginning of the input"
16840 "should complete nicks without colon later in the input"))
16841 (goto-char (point-min))
16842 (search-forward (format "(it %S" test))
16843 (beginning-of-line)
16844 (kill-sexp))
16845 (basic-save-buffer))))))))
16846 (native-inputs
16847 (list emacs-buttercup))
16848 ;; In order to securely connect to an IRC server using TLS, Circe requires
16849 ;; the GnuTLS binary.
16850 (propagated-inputs
16851 (list gnutls))
16852 (home-page "https://github.com/jorgenschaefer/circe")
16853 (synopsis "Client for IRC in Emacs")
16854 (description "Circe is a Client for IRC in Emacs. It integrates well with
16855 the rest of the editor, using standard Emacs key bindings and indicating
16856 activity in channels in the status bar so it stays out of your way unless you
16857 want to use it.")
16858 (license license:gpl3+)))
16859
16860 (define-public emacs-tracking
16861 (package
16862 (inherit emacs-circe)
16863 (name "emacs-tracking")
16864 (arguments
16865 ;; "tracking.el" is a library extracted from Circe package. It requires
16866 ;; "shorten.el".
16867 `(#:include '("^shorten.el$" "^tracking.el$")
16868 ,@(package-arguments emacs-circe)))
16869 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
16870 (synopsis "Buffer tracking library")
16871 (description "@code{tracking.el} provides a way for different modes to
16872 notify the user that a buffer needs attention. The user then can cycle
16873 through them using @key{C-c C-SPC}.")
16874 (license license:gpl3+)))
16875
16876 (define-public emacs-slack
16877 (let ((commit "1f6a40faec0d8d9c9de51c444508d05a3e995ccd")
16878 (revision "9"))
16879 (package
16880 (name "emacs-slack")
16881 (version (git-version "0.0.2" revision commit))
16882 (source (origin
16883 (method git-fetch)
16884 (uri (git-reference
16885 (url "https://github.com/yuya373/emacs-slack")
16886 (commit commit)))
16887 (file-name (git-file-name name commit))
16888 (sha256
16889 (base32
16890 "19lan9nd8qfw2ws7mx814vrin04c892yn5c8g3nad7lpnzszgr1r"))))
16891 (build-system emacs-build-system)
16892 (arguments
16893 `(#:phases
16894 (modify-phases %standard-phases
16895 ;; HOME needs to exist for source compilation.
16896 (add-before 'build 'set-HOME
16897 (lambda _ (setenv "HOME" "/tmp") #t)))))
16898 (propagated-inputs
16899 (list emacs-alert
16900 emacs-emojify
16901 emacs-helm
16902 emacs-request
16903 emacs-websocket
16904 emacs-oauth2
16905 emacs-circe))
16906 (home-page "https://github.com/yuya373/emacs-slack")
16907 (synopsis "Slack client for Emacs")
16908 (description "This package provides an Emacs client for the Slack
16909 messaging service.")
16910 (license license:gpl3+))))
16911
16912 (define-public emacs-helm-slack
16913 (let ((commit "465f6220f3f5bee4d95492991fca1290c89534eb")
16914 (revision "1"))
16915 (package
16916 (name "emacs-helm-slack")
16917 (version (git-version "0" revision commit))
16918 (source (origin
16919 (method git-fetch)
16920 (uri (git-reference
16921 (url "https://github.com/yuya373/helm-slack")
16922 (commit commit)))
16923 (file-name (git-file-name name commit))
16924 (sha256
16925 (base32
16926 "0p1s1kl8v68qjprqkf034cz911qzbqxbscqgpn0c3mbm3yfx81f7"))))
16927 (build-system emacs-build-system)
16928 (arguments
16929 `(#:phases
16930 (modify-phases %standard-phases
16931 ;; HOME needs to exist for source compilation.
16932 (add-before 'build 'set-HOME
16933 (lambda _ (setenv "HOME" "/tmp") #t)))))
16934 (propagated-inputs (list emacs-slack))
16935 (home-page "https://github.com/yuya373/helm-slack")
16936 (synopsis "Helm extension for emacs-slack")
16937 (description "This package provides an helm extension for emacs-slack
16938 Slack client.")
16939 (license license:gpl3+))))
16940
16941 (define-public emacs-bash-completion
16942 ;; Need to use a newer commit than the latest version in order to support
16943 ;; completion interfaces that alters the candidate list provided by the
16944 ;; package
16945 (let ((commit "c5eaeed156ab906190c662d491269230967104b1")
16946 (revision "0"))
16947 (package
16948 (name "emacs-bash-completion")
16949 (version (git-version "3.1.0" revision commit))
16950 (source
16951 (origin
16952 (method git-fetch)
16953 (uri (git-reference
16954 (url "https://github.com/szermatt/emacs-bash-completion")
16955 (commit commit)))
16956 (file-name (git-file-name name version))
16957 (sha256
16958 (base32 "0r221iirqsbz13s76r68i496izbirrvcw8ql3wsh205zmxa3jqg1"))))
16959 (inputs (list bash))
16960 (build-system emacs-build-system)
16961 (arguments
16962 (list
16963 #:phases
16964 #~(modify-phases %standard-phases
16965 (add-after 'unpack 'make-git-checkout-writable
16966 (λ _
16967 (for-each make-file-writable (find-files "."))))
16968 (add-before 'install 'configure
16969 (lambda* (#:key inputs #:allow-other-keys)
16970 (emacs-substitute-variables "bash-completion.el"
16971 ("bash-completion-prog"
16972 (search-input-file inputs "/bin/bash"))))))))
16973 (home-page "https://github.com/szermatt/emacs-bash-completion")
16974 (synopsis "Bash completion for the shell buffer")
16975 (description
16976 "@code{bash-completion} defines dynamic completion hooks for shell-mode
16977 and shell-command prompts that are based on Bash completion.")
16978 (license license:gpl2+))))
16979
16980 (define-public emacs-easy-kill
16981 (package
16982 (name "emacs-easy-kill")
16983 (version "0.9.4")
16984 (source (origin
16985 (method url-fetch)
16986 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
16987 version ".tar"))
16988 (sha256
16989 (base32
16990 "1pqqv4dhfm00wqch4wy3n2illsvxlz9r6r64925cvq3i7wq4la1x"))))
16991 (build-system emacs-build-system)
16992 (home-page "https://github.com/leoliu/easy-kill")
16993 (synopsis "Kill and mark things easily in Emacs")
16994 (description
16995 "This package provides commands @code{easy-kill} and @code{easy-mark} to
16996 let users kill or mark things easily.")
16997 (license license:gpl3+)))
16998
16999 (define-public emacs-csv-mode
17000 (package
17001 (name "emacs-csv-mode")
17002 (version "1.18")
17003 (source
17004 (origin
17005 (method url-fetch)
17006 (uri (string-append "https://elpa.gnu.org/packages/"
17007 "csv-mode-" version ".tar"))
17008 (sha256
17009 (base32 "0fv7hvsfbc9n4hsgg3ywk8qf4ig5a986zfq0lwnjj8pcz1bpmrxj"))))
17010 (build-system emacs-build-system)
17011 (home-page "https://elpa.gnu.org/packages/csv-mode.html")
17012 (synopsis "Major mode for editing comma/char separated values")
17013 (description
17014 "This Emacs package implements CSV mode, a major mode for editing records
17015 in a generalized CSV (character-separated values) format.")
17016 (license license:gpl3+)))
17017
17018 (define-public emacs-transmission
17019 (package
17020 (name "emacs-transmission")
17021 (version "0.12.2")
17022 (source
17023 (origin
17024 (method git-fetch)
17025 (uri (git-reference
17026 (url "https://github.com/holomorph/transmission")
17027 (commit version)))
17028 (file-name (git-file-name name version))
17029 (sha256
17030 (base32 "16bn8y2sd7kzihp8bxh4vyay16y91q3yc0gcd0bzywcx3hijqlfc"))))
17031 (build-system emacs-build-system)
17032 (home-page "https://github.com/holomorph/transmission")
17033 (synopsis "Emacs interface to a Transmission session")
17034 (description "This package provides an Emacs interface to interact with a
17035 running session of the Transmission Bittorrent client.
17036
17037 Features:
17038
17039 @itemize
17040 @item List, add, start/stop, verify, remove torrents.
17041 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
17042 @item Navigate to the corresponding file list, torrent info, peer info
17043 contexts.
17044 @item Toggle downloading and set priorities for individual files.
17045 @end itemize\n")
17046 (license license:gpl3+)))
17047
17048 (define-public emacs-polymode
17049 (package
17050 (name "emacs-polymode")
17051 (version "0.2.2")
17052 (source
17053 (origin
17054 (method git-fetch)
17055 (uri (git-reference
17056 (url "https://github.com/polymode/polymode")
17057 (commit (string-append "v" version))))
17058 (file-name (git-file-name name version))
17059 (sha256
17060 (base32 "18ssl2h861dm2jkd3df6wkfr48p8zk337dbvpq5522kia7fq1lbn"))))
17061 (build-system emacs-build-system)
17062 (home-page "https://github.com/polymode/polymode")
17063 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
17064 (description
17065 "Polymode is an Emacs package that offers generic support for multiple
17066 major modes inside a single Emacs buffer. It is lightweight, object oriented
17067 and highly extensible. Creating a new polymode typically takes only a few
17068 lines of code. Polymode also provides extensible facilities for external
17069 literate programming tools for exporting, weaving and tangling.")
17070 (license license:gpl3+)))
17071
17072 (define-public emacs-polymode-ansible
17073 (package
17074 (name "emacs-polymode-ansible")
17075 (version "0.3.0")
17076 (source
17077 (origin
17078 (method git-fetch)
17079 (uri (git-reference
17080 (url "https://gitlab.com/mavit/poly-ansible")
17081 (commit version)))
17082 (file-name (git-file-name name version))
17083 (sha256
17084 (base32 "0f0yq6gmkp194nxk90ipprglf1xkmxrgz1rkgrhfslvxq4q2l81h"))))
17085 (build-system emacs-build-system)
17086 (propagated-inputs
17087 (list emacs-ansible-doc emacs-jinja2-mode emacs-polymode
17088 emacs-yaml-mode))
17089 (properties '((upstream-name . "poly-ansible")))
17090 (home-page "https://gitlab.com/mavit/poly-ansible/")
17091 (synopsis "Polymode for Ansible - Jinja2 in YAML")
17092 (description
17093 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
17094 (license license:gpl3+)))
17095
17096 (define-public emacs-polymode-markdown
17097 (package
17098 (name "emacs-polymode-markdown")
17099 (version "0.2.2")
17100 (home-page "https://github.com/polymode/poly-markdown")
17101 (source
17102 (origin
17103 (method git-fetch)
17104 (uri (git-reference
17105 (url home-page)
17106 (commit (string-append "v" version))))
17107 (file-name (git-file-name name version))
17108 (sha256
17109 (base32 "1q4qq0ql08hxkdrd2aal03560k612my7bvnfpfij3g432hn0p7v6"))))
17110 (build-system emacs-build-system)
17111 (propagated-inputs
17112 (list emacs-markdown-mode emacs-polymode))
17113 (properties '((upstream-name . "poly-markdown")))
17114 (synopsis "Polymode for Markdown mode")
17115 (description
17116 "This package allows editing source code blocks embedded in Markdown
17117 files using the major mode corresponding to each block.")
17118 (license license:gpl3+)))
17119
17120 (define-public emacs-poly-noweb
17121 (package
17122 (name "emacs-poly-noweb")
17123 (version "0.2.2")
17124 (source
17125 (origin
17126 (method git-fetch)
17127 (uri (git-reference
17128 (url "https://github.com/polymode/poly-noweb")
17129 (commit (string-append "v" version))))
17130 (file-name (git-file-name name version))
17131 (sha256
17132 (base32 "1jl5h4nf10xd2gdlsxi6h2n3z5zh26ffcixn68xfp5q4zl34zk8p"))))
17133 (build-system emacs-build-system)
17134 (propagated-inputs
17135 (list emacs-polymode))
17136 (home-page "https://github.com/polymode/poly-noweb")
17137 (synopsis "Polymode for noweb")
17138 (description
17139 "This package provides @code{poly-noweb-mode}, a polymode for noweb
17140 files.")
17141 (license license:gpl3+)))
17142
17143 (define-public emacs-powershell
17144 ;; Tagged branch 0.1 is outdated (2015).
17145 (let ((revision "0")
17146 (commit "d1b3f95669343399f199f291ef76c09a0ede5e60"))
17147 (package
17148 (name "emacs-powershell")
17149 (build-system emacs-build-system)
17150 (version (git-version "0.3" revision commit))
17151 (source
17152 (origin
17153 (method git-fetch)
17154 (uri (git-reference
17155 (url "https://github.com/jschaf/powershell.el")
17156 (commit commit)))
17157 (file-name (git-file-name name version))
17158 (sha256
17159 (base32 "1cxhzaaig88zhylyycvb3849r85j1ijqklnh9zbqsfl2zhpb0g5c"))))
17160 (home-page "https://github.com/jschaf/powershell.el")
17161 (synopsis "Emacs mode for editing PowerShell scripts")
17162 (description
17163 "Powershell is an Emacs major mode for editing and running
17164 Microsoft PowerShell files.")
17165 (license license:gpl3+))))
17166
17167 (define-public emacs-polymode-org
17168 (package
17169 (name "emacs-polymode-org")
17170 (version "0.2.2")
17171 (source
17172 (origin
17173 (method git-fetch)
17174 (uri (git-reference
17175 (url "https://github.com/polymode/poly-org")
17176 (commit (string-append "v" version))))
17177 (file-name (git-file-name name version))
17178 (sha256
17179 (base32 "1srnwcsn2bh8gqzxixkhffk7gbnk66kd4dgvxbnps5nxqc6v0qhc"))))
17180 (build-system emacs-build-system)
17181 (propagated-inputs
17182 (list emacs-polymode))
17183 (properties '((upstream-name . "poly-org")))
17184 (home-page "https://github.com/polymode/poly-org")
17185 (synopsis "Polymode definitions for Org mode buffers")
17186 (description
17187 "This package provides definitions for Polymode to support Org buffers.
17188 It edits source blocks in an Org buffer using the native modes of the blocks'
17189 languages while remaining inside the primary Org buffer.")
17190 (license license:gpl3+)))
17191
17192 (define-public eless
17193 (package
17194 (name "eless")
17195 (version "0.6")
17196 (source
17197 (origin
17198 (method git-fetch)
17199 (uri (git-reference
17200 (url "https://github.com/kaushalmodi/eless")
17201 (commit (string-append "v" version))))
17202 (file-name (git-file-name name version))
17203 (sha256
17204 (base32 "1xif339wsc79hsab3l1nnwvy20jg7s1r4akfj4qqi6qxizfhmb52"))))
17205 (build-system copy-build-system)
17206 (inputs
17207 (list bash emacs))
17208 (arguments
17209 `(#:install-plan
17210 '(("eless" "bin/")
17211 ("docs/eless.info" "share/info/")
17212 ("eless.org" ,(string-append "share/doc/eless-" version "/")))))
17213 (home-page "https://github.com/kaushalmodi/eless")
17214 (synopsis "Use Emacs as a paginator")
17215 (description "@code{eless} provides a combination of Bash script
17216 and a minimal Emacs view-mode.
17217
17218 Features:
17219
17220 @itemize
17221 @item Independent of a user’s Emacs config.
17222 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
17223 @item Not require an Emacs server to be already running.
17224 @item Syntax highlighting.
17225 @item Org-mode file rendering.
17226 @item @code{man} page viewer.
17227 @item Info viewer.
17228 @item Dired, wdired, (batch edit symbolic links).
17229 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
17230 @item Filter log files lines matching a regexp.
17231 @item Auto-revert log files similar to @code{tail -f}.
17232 @item Quickly change frame and font sizes.
17233 @end itemize\n")
17234 (license license:expat)))
17235
17236 (define-public emacs-evil-matchit
17237 (package
17238 (name "emacs-evil-matchit")
17239 (version "2.4.1")
17240 (source
17241 (origin
17242 (method git-fetch)
17243 (uri (git-reference
17244 (url "https://github.com/redguardtoo/evil-matchit")
17245 (commit version)))
17246 (file-name (git-file-name name version))
17247 (sha256
17248 (base32 "0cxv1bmbnir59k778dip5mkjyqhbh10pk9b4ayvwpgiz25dlp4ss"))))
17249 (build-system emacs-build-system)
17250 (propagated-inputs
17251 (list emacs-evil))
17252 (home-page "https://github.com/redguardtoo/evil-matchit")
17253 (synopsis "Vim matchit ported into Emacs")
17254 (description
17255 "@code{evil-matchit} is a minor mode for jumping between matching tags in
17256 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
17257 (license license:gpl3+)))
17258
17259 (define-public emacs-evil-smartparens
17260 (package
17261 (name "emacs-evil-smartparens")
17262 (version "0.4.0")
17263 (source
17264 (origin
17265 (method git-fetch)
17266 (uri (git-reference
17267 (url "https://github.com/expez/evil-smartparens")
17268 (commit version)))
17269 (file-name (git-file-name name version))
17270 (sha256
17271 (base32 "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl"))))
17272 (build-system emacs-build-system)
17273 (propagated-inputs
17274 (list emacs-evil emacs-smartparens))
17275 (home-page "https://github.com/expez/evil-smartparens")
17276 (synopsis "Emacs Evil integration for Smartparens")
17277 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
17278 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
17279 emulates Vim features and provides Vim-like key bindings.")
17280 (license license:gpl3+)))
17281
17282 (define-public emacs-evil-quickscope
17283 (package
17284 (name "emacs-evil-quickscope")
17285 (version "0.1.4")
17286 (source
17287 (origin
17288 (method git-fetch)
17289 (uri (git-reference
17290 (url "https://github.com/blorbx/evil-quickscope")
17291 (commit (string-append "v" version))))
17292 (file-name (git-file-name name version))
17293 (sha256
17294 (base32 "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"))))
17295 (build-system emacs-build-system)
17296 (propagated-inputs
17297 (list emacs-evil))
17298 (arguments
17299 `(#:tests? #t
17300 #:test-command '("emacs" "--batch"
17301 "-l" "evil-quickscope-tests.el"
17302 "-f" "ert-run-tests-batch-and-exit")))
17303 (home-page "https://github.com/blorbx/evil-quickscope")
17304 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
17305 (description "@code{emacs-evil-quickscope} highlights targets for Evil
17306 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
17307 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
17308 features and provides Vim-like key bindings.")
17309 (license license:gpl3+)))
17310
17311 (define-public emacs-bongo
17312 (package
17313 (name "emacs-bongo")
17314 (version "1.1")
17315 (source
17316 (origin
17317 (method git-fetch)
17318 (uri (git-reference
17319 (url "https://github.com/dbrock/bongo")
17320 (commit version)))
17321 (file-name (git-file-name name version))
17322 (sha256
17323 (base32 "1nszph9mn98flyhn1jq3y6mdh6jymjkvj5ng36ql016dj92apvhv"))))
17324 (build-system emacs-build-system)
17325 (home-page "https://github.com/dbrock/bongo")
17326 (synopsis "Media player for Emacs")
17327 (description
17328 "This package provides a flexible media player for Emacs. @code{Bongo}
17329 supports multiple backends such as @code{vlc}, @code{mpg123},
17330 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
17331 @code{afplay}.")
17332 (license license:gpl2+)))
17333
17334 (define-public emacs-groovy-modes
17335 (package
17336 (name "emacs-groovy-modes")
17337 (version "2.1")
17338 (source (origin
17339 (method git-fetch)
17340 (uri (git-reference
17341 (url "https://github.com/Groovy-Emacs-Modes\
17342 /groovy-emacs-modes")
17343 (commit version)))
17344 (file-name (git-file-name name version))
17345 (sha256
17346 (base32
17347 "1jpfyqnqd8nj0g8xbiw4ar2qzxx3pvhwibr6hdzhyy9mmc4yzdgk"))))
17348 (build-system emacs-build-system)
17349 (arguments
17350 `(#:tests? #t
17351 #:test-command '("ert-runner")))
17352 (native-inputs
17353 (list emacs-ert-runner emacs-undercover emacs-shut-up emacs-f))
17354 (propagated-inputs
17355 (list emacs-dash emacs-s))
17356 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
17357 (synopsis "Groovy related modes for Emacs")
17358 (description "This package provides @code{groovy-mode} for syntax
17359 highlighting in Groovy source files, REPL integration with run-groovy and
17360 Grails project navigation with the grails mode.")
17361 (license license:gpl3+)))
17362
17363 (define-public emacs-jenkinsfile-mode
17364 (let ((commit "65bf3925852c35c6bd499978f08f83c1193f4347")
17365 (revision "1"))
17366 (package
17367 (name "emacs-jenkinsfile-mode")
17368 (version (git-version "0.0.1" revision commit))
17369 (source (origin
17370 (method git-fetch)
17371 (uri (git-reference
17372 (url "https://github.com/john2x/jenkinsfile-mode")
17373 (commit commit)))
17374 (file-name (git-file-name name version))
17375 (sha256
17376 (base32
17377 "0w38g88yykslg71xr99ff4vx1ffgy90b7xqvvdflr189gwk3avx1"))))
17378 (propagated-inputs
17379 (list emacs-groovy-modes))
17380 (build-system emacs-build-system)
17381 (home-page "https://github.com/john2x/jenkinsfile-mode/")
17382 (synopsis "Emacs major-mode for editing Jenkinsfile")
17383 (description "This package provides a @code{jenkinsfile-mode} derived
17384 from @code{groovy-mode} for editing Jenkins declarative pipeline files.")
17385 (license license:gpl3+))))
17386
17387 (define-public emacs-kotlin-mode
17388 (let ((commit "0e4bafb31d1fc2a0a420a521c2723d5526646c0b")
17389 (revision "1"))
17390 (package
17391 (name "emacs-kotlin-mode")
17392 (version (git-version "0.0.1" revision commit))
17393 (source
17394 (origin
17395 (method git-fetch)
17396 (uri (git-reference
17397 (url "https://github.com/Emacs-Kotlin-Mode-Maintainers/kotlin-mode")
17398 (commit commit)))
17399 (file-name (git-file-name name version))
17400 (sha256
17401 (base32 "09inpgwmnnqaakyn4r4xs8kax8b89dw94kvl521x6d43h9zl5i70"))))
17402 (build-system emacs-build-system)
17403 (arguments
17404 `(#:tests? #t
17405 #:test-command '("ert-runner" "-L" "." "-L" "test")))
17406 (native-inputs (list emacs-ert-runner))
17407 (home-page "https://github.com/Emacs-Kotlin-Mode-Maintainers/kotlin-mode")
17408 (synopsis "Major major-mode for editing Kotlin files")
17409 (description
17410 "This package provides a @code{kotlin-mode} for editing Kotlin files.")
17411 (license license:gpl3+))))
17412
17413 (define-public emacs-org-tree-slide
17414 (let ((commit "036a36eec1cf712d3db155572aed325daa372eb5")
17415 (revision "2"))
17416 (package
17417 (name "emacs-org-tree-slide")
17418 (version (git-version "2.8.4" revision commit))
17419 (source (origin
17420 (method git-fetch)
17421 (uri (git-reference
17422 (url "https://github.com/takaxp/org-tree-slide")
17423 (commit commit)))
17424 (sha256
17425 (base32
17426 "1r8ncx25xmxicgciyv5przp68y8qgy40fm10ba55awvql4xcm0yk"))
17427 (file-name (git-file-name name version))))
17428 (build-system emacs-build-system)
17429 (home-page "https://github.com/takaxp/org-tree-slide")
17430 (synopsis "Presentation tool for org-mode")
17431 (description
17432 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
17433 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
17434 @kbd{C-<} to jump to the next and previous slide.")
17435 (license license:gpl3+))))
17436
17437 (define-public emacs-scratch-el
17438 (package
17439 (name "emacs-scratch-el")
17440 (version "1.4")
17441 (source
17442 (origin
17443 (method git-fetch)
17444 (uri (git-reference
17445 (url "https://github.com/ieure/scratch-el")
17446 (commit (string-append "v" version))))
17447 (file-name (git-file-name name version))
17448 (sha256
17449 (base32 "174d8ancnkgb7q62196kd6nrfib6rnwxw4visgbk1c6yd1w8kray"))))
17450 (build-system emacs-build-system)
17451 (native-inputs
17452 (list texinfo))
17453 (arguments
17454 '(#:phases
17455 (modify-phases %standard-phases
17456 (add-after 'install 'install-doc
17457 (lambda* (#:key outputs #:allow-other-keys)
17458 (unless (invoke "makeinfo" "scratch.texi")
17459 (error "makeinfo failed"))
17460 (install-file "scratch.info"
17461 (string-append (assoc-ref outputs "out")
17462 "/share/info"))
17463 #t)))))
17464 (home-page "https://github.com/ieure/scratch-el/")
17465 (synopsis "Create scratch buffers with the same mode as current buffer")
17466 (description "Scratch is an extension to Emacs that enables one to create
17467 scratch buffers that are in the same mode as the current buffer. This is
17468 notably useful when working on code in some language; you may grab code into a
17469 scratch buffer, and, by virtue of this extension, do so using the Emacs
17470 formatting rules for that language.")
17471 (license license:bsd-2)))
17472
17473 (define-public emacs-kv
17474 (package
17475 (name "emacs-kv")
17476 (version "0.0.19")
17477 (source
17478 (origin
17479 (method git-fetch)
17480 (uri (git-reference
17481 (url "https://github.com/nicferrier/emacs-kv")
17482 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
17483 (file-name (git-file-name name version))
17484 (sha256
17485 (base32
17486 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
17487 (build-system emacs-build-system)
17488 (arguments
17489 `(#:tests? #t
17490 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
17491 "-f" "ert-run-tests-batch-and-exit")))
17492 (home-page "https://github.com/nicferrier/emacs-kv")
17493 (synopsis "Key/Value data structures library for Emacs Lisp")
17494 (description "@code{emacs-kv} is a collection of tools for dealing with
17495 key/value data structures such as plists, alists and hash-tables in Emacs
17496 Lisp.")
17497 (license license:gpl3+)))
17498
17499 (define-public emacs-esxml
17500 (package
17501 (name "emacs-esxml")
17502 (version "0.3.7")
17503 (source (origin
17504 (method git-fetch)
17505 (uri (git-reference
17506 (url "https://github.com/tali713/esxml")
17507 (commit version)))
17508 (file-name (git-file-name name version))
17509 (sha256
17510 (base32
17511 "1xzxmgsg0j72sf1vjh9gjswz3c29js0kqhm7r3jrqrh3a5agdnml"))))
17512 (build-system emacs-build-system)
17513 (arguments
17514 `(#:emacs ,emacs ;need libxml
17515 ;; XXX: Only the two following files are meant to be packaged.
17516 ;; Byte-compiling the others Elisp files leads to build errors anyway.
17517 #:include (list "esxml.el" "esxml-query.el")))
17518 (propagated-inputs
17519 (list emacs-kv))
17520 (home-page "https://github.com/tali713/esxml/")
17521 (synopsis "SXML for EmacsLisp")
17522 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
17523 Simply, this is the easiest way to write HTML or XML in Lisp. This library
17524 uses the native form of XML representation as used by many libraries already
17525 included within Emacs. See @code{esxml-to-xml} for a concise description of
17526 the format.")
17527 (license license:gpl3+)))
17528
17529 (define-public emacs-nov-el
17530 (package
17531 (name "emacs-nov-el")
17532 (version "0.3.4")
17533 (source
17534 (origin
17535 (method git-fetch)
17536 (uri (git-reference
17537 (url "https://depp.brause.cc/nov.el.git")
17538 (commit version)))
17539 (file-name (git-file-name name version))
17540 (sha256
17541 (base32
17542 "0va9xjrq30cv5kb59a4rq5mcm83ggnv774r8spmskff3hj8012wf"))))
17543 (build-system emacs-build-system)
17544 (arguments
17545 `(#:emacs ,emacs ;need libxml
17546 #:phases
17547 (modify-phases %standard-phases
17548 (add-after 'unpack 'embed-path-to-unzip
17549 (lambda _
17550 (substitute* "nov.el"
17551 (("\\(executable-find \"unzip\"\\)")
17552 (string-append "\"" (which "unzip") "\"")))
17553 #t)))))
17554 (propagated-inputs
17555 (list emacs-dash emacs-esxml))
17556 (inputs
17557 (list unzip))
17558 (home-page "https://depp.brause.cc/nov.el/")
17559 (synopsis "Major mode for reading EPUBs in Emacs")
17560 (description "@code{nov.el} provides a major mode for reading EPUB
17561 documents.
17562
17563 Features:
17564
17565 @itemize
17566 @item Basic navigation (jump to TOC, previous/next chapter)
17567 @item Remembering and restoring the last read position
17568 @item Jump to next chapter when scrolling beyond end
17569 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
17570 @item Hyperlinks to internal and external targets
17571 @item Supports textual and image documents
17572 @item View source of document files
17573 @item Metadata display
17574 @item Image rescaling
17575 @end itemize
17576 ")
17577 (license license:gpl3+)))
17578
17579 (define-public epipe
17580 (package
17581 (name "epipe")
17582 (version "0.1.0")
17583 (source
17584 (origin
17585 (method git-fetch)
17586 (uri (git-reference
17587 (url "https://github.com/cute-jumper/epipe")
17588 (commit version)))
17589 (file-name (git-file-name name version))
17590 (sha256
17591 (base32 "0lkisi1s7sn12nx8zh58qmsxwnk1rjwryj18wcbr148xqz3swg57"))))
17592 (build-system trivial-build-system)
17593 (arguments
17594 `(#:modules
17595 ((guix build utils))
17596 #:builder
17597 (begin
17598 (use-modules (guix build utils))
17599 ;; Extract source.
17600 (copy-recursively (assoc-ref %build-inputs "source") "source")
17601 (chdir "source")
17602 ;; Patch shebangs.
17603 (substitute* "epipe"
17604 (("/usr/bin/env bash")
17605 (search-input-file %build-inputs "/bin/bash")))
17606 (patch-shebang "epipe.pl"
17607 (list (string-append (assoc-ref %build-inputs "perl")
17608 "/bin")))
17609 ;; Install.
17610 (for-each (lambda (file)
17611 (install-file file (string-append %output "/bin")))
17612 '("epipe" "epipe.pl")))))
17613 (inputs
17614 (list bash perl))
17615 (home-page "https://github.com/cute-jumper/epipe")
17616 (synopsis "Pipe to the @code{emacsclient}")
17617 (description "@code{epipe} provides an utility to use your editor in
17618 the pipeline, featuring the support for running @code{emacsclient}.")
17619 (license license:gpl3+)))
17620
17621 (define-public emacs-jupyter
17622 (package
17623 (name "emacs-jupyter")
17624 (version "0.8.2")
17625 (source
17626 (origin
17627 (method git-fetch)
17628 (uri (git-reference
17629 (url "https://github.com/nnicandro/emacs-jupyter")
17630 (commit (string-append "v" version))))
17631 (file-name (git-file-name name version))
17632 (sha256
17633 (base32 "1sr007wsl2y6wqpzkmv3inbpwhvgdcb2nmqzgfg7w1awapi2r13p"))))
17634 (build-system emacs-build-system)
17635 (propagated-inputs
17636 (list emacs-company ;optional
17637 emacs-markdown-mode ;optional
17638 emacs-simple-httpd
17639 emacs-websocket
17640 emacs-zmq))
17641 (home-page "https://github.com/nnicandro/emacs-jupyter")
17642 (synopsis "Emacs interface to communicate with Jupyter kernels")
17643 (description "This package provides an Emacs interface to communicate with
17644 Jupyter kernels. It provides REPL and @code{org-mode} source code block
17645 frontends to Jupyter kernels and kernel interactions integrated with Emacs'
17646 built-in features.")
17647 (license license:gpl3+)))
17648
17649 (define-public emacs-hcl-mode
17650 (package
17651 (name "emacs-hcl-mode")
17652 (version "0.03")
17653 (source
17654 (origin
17655 (method git-fetch)
17656 (uri (git-reference
17657 (url "https://github.com/syohex/emacs-hcl-mode")
17658 (commit version)))
17659 (file-name (git-file-name name version))
17660 (sha256
17661 (base32 "0jqrgq15jz6pvx38pnwkizzfiih0d3nxqphyrc92nqpcyimg8b6g"))))
17662 (build-system emacs-build-system)
17663 (home-page "https://github.com/syohex/emacs-hcl-mode")
17664 (synopsis "Major mode for the Hashicorp Configuration Language")
17665 (description
17666 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
17667 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
17668 highlighting and indentation support.")
17669 (license license:gpl3+)))
17670
17671 (define-public emacs-terraform-mode
17672 (package
17673 (name "emacs-terraform-mode")
17674 (version "0.06")
17675 (source
17676 (origin
17677 (method git-fetch)
17678 (uri (git-reference
17679 (url "https://github.com/syohex/emacs-terraform-mode")
17680 (commit version)))
17681 (file-name (git-file-name name version))
17682 (sha256
17683 (base32 "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx"))))
17684 (build-system emacs-build-system)
17685 (propagated-inputs
17686 (list emacs-hcl-mode))
17687 (home-page "https://github.com/syohex/emacs-terraform-mode")
17688 (synopsis "Major mode for Terraform")
17689 (description
17690 "@code{emacs-terraform-mode} provides a major mode for working with
17691 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
17692 functionality is inherited from @code{hcl-mode}.")
17693 (license license:gpl3+)))
17694
17695 (define-public emacs-exec-path-from-shell
17696 (package
17697 (name "emacs-exec-path-from-shell")
17698 (version "1.12")
17699 (source
17700 (origin
17701 (method git-fetch)
17702 (uri (git-reference
17703 (url "https://github.com/purcell/exec-path-from-shell")
17704 (commit version)))
17705 (file-name (git-file-name name version))
17706 (sha256
17707 (base32
17708 "1ga8bpxngd3ph2hdiik92c612ki71qxw818i6rgx6f6a5r0sbf3p"))))
17709 (build-system emacs-build-system)
17710 (home-page "https://github.com/purcell/exec-path-from-shell")
17711 (synopsis "Get environment variables such as @env{PATH} from the shell")
17712 (description
17713 "This library allows the user to set Emacs @code{exec-path} and @env{PATH}
17714 from the shell's @env{PATH}, so that @code{shell-command}, @code{compile} and
17715 the like work as expected on systems on which Emacs is not guaranteed to
17716 inherit a login shell's environment variables. It also allows other
17717 environment variables to be retrieved from the shell, so that Emacs will see
17718 the same values you get in a terminal.")
17719 (license license:gpl3+)))
17720
17721 (define-public emacs-frog-menu
17722 (package
17723 (name "emacs-frog-menu")
17724 (version "0.2.11")
17725 (source
17726 (origin
17727 (method url-fetch)
17728 (uri (string-append "https://elpa.gnu.org/packages/"
17729 "frog-menu-" version ".el"))
17730 (sha256
17731 (base32 "06iw11z61fd0g4w3562k3smcmzaq3nivvvc6gzm8y8k5pcrqzdff"))))
17732 (build-system emacs-build-system)
17733 (propagated-inputs
17734 (list emacs-avy emacs-posframe))
17735 (home-page "https://github.com/clemera/frog-menu")
17736 (synopsis "Quickly pick items from ad hoc menus")
17737 (description
17738 "This package provides a popup offering a preview of a list of candidates
17739 on which user-defined dispatch actions can act.")
17740 (license license:gpl3+)))
17741
17742 (define-public emacs-frog-jump-buffer
17743 (let ((commit "2d7b342785ae27d45f5d252272df6eb773c78e20")
17744 (revision "1"))
17745 (package
17746 (name "emacs-frog-jump-buffer")
17747 (version (git-version "0.1.4" revision commit))
17748 (source
17749 (origin
17750 (method git-fetch)
17751 (uri (git-reference
17752 (url "https://github.com/waymondo/frog-jump-buffer")
17753 (commit commit)))
17754 (file-name (git-file-name name version))
17755 (sha256
17756 (base32
17757 "1z00by8hiss1r2lwmzrl8pnz6jykia2849dqqm4l3z5rf6lwvc0f"))))
17758 (build-system emacs-build-system)
17759 (propagated-inputs
17760 (list emacs-dash emacs-frog-menu emacs-avy))
17761 (home-page "https://github.com/waymondo/frog-jump-buffer")
17762 (synopsis "Jump to any Emacs buffer with minimal keystrokes")
17763 (description
17764 "This package provides a preview window of buffers that can be switched
17765 to with quicklink-style selections.")
17766 (license license:gpl3+))))
17767
17768 (define-public emacs-deft
17769 (package
17770 (name "emacs-deft")
17771 (version "0.8")
17772 (source
17773 (origin
17774 (method git-fetch)
17775 (uri (git-reference
17776 (url "https://github.com/jrblevin/deft")
17777 (commit (string-append "v" version))))
17778 (file-name (git-file-name name version))
17779 (sha256
17780 (base32
17781 "0z7cilgiz6krvl5h2z72hkch43qxmypb0k6p5vxn5lx1p6v0mrf2"))))
17782 (build-system emacs-build-system)
17783 (home-page "https://jblevins.org/projects/deft/")
17784 (synopsis "Quickly browse, filter, and edit plain text notes")
17785 (description
17786 "Deft is an Emacs mode for quickly browsing, filtering, and editing
17787 directories of plain text notes, inspired by Notational Velocity.")
17788 (license license:bsd-3)))
17789
17790 (define-public emacs-anzu
17791 (package
17792 (name "emacs-anzu")
17793 (version "0.64")
17794 (source
17795 (origin
17796 (method git-fetch)
17797 (uri (git-reference
17798 (url "https://github.com/syohex/emacs-anzu")
17799 (commit version)))
17800 (file-name (git-file-name name version))
17801 (sha256
17802 (base32 "1jfn5nm6r68wa0gn2k2zy6sdq6c8shw8x04ylzzm5cw7zm60jw0n"))))
17803 (build-system emacs-build-system)
17804 (home-page "https://github.com/syohex/emacs-anzu")
17805 (synopsis "Show number of matches in mode-line while searching")
17806 (description
17807 "Anzu provides a minor mode which displays \"current match/total
17808 matches\" in the mode line in various search modes. This is an Emacs port of
17809 Anzu.zim.")
17810 (license license:gpl3+)))
17811
17812 (define-public emacs-ascii-art-to-unicode
17813 (package
17814 (name "emacs-ascii-art-to-unicode")
17815 (version "1.13")
17816 (source
17817 (origin
17818 (method url-fetch)
17819 (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-"
17820 version ".el"))
17821 (sha256
17822 (base32 "1c0jva3amhl9c5xc5yzdpi58c8m1djym4ccj31z6wmakq7npy07p"))))
17823 (build-system emacs-build-system)
17824 (home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html")
17825 (synopsis "ASCII to Unicode art converter for Emacs")
17826 (description "This Emacs package provides the commands @command{aa2u} and
17827 @command{aa2u-rectangle}. Both of these commands can be used to convert
17828 simple ASCII art line drawings to Unicode; the former works on the active
17829 region of the buffer, while the latter works on rectangular selections.")
17830 (license license:gpl3+)))
17831
17832 (define-public emacs-emmet-mode
17833 (let ((commit "1acb821e0142136344ccf40c1e5fb664d7db2e70")
17834 (revision "1"))
17835 (package
17836 (name "emacs-emmet-mode")
17837 (version (git-version "1.0.8" revision commit))
17838 (source (origin
17839 (method git-fetch)
17840 (uri (git-reference
17841 (url "https://github.com/smihica/emmet-mode")
17842 (commit commit)))
17843 (file-name (git-file-name name version))
17844 (sha256
17845 (base32
17846 "1p25h191bm0h5b3w5apg7wks51k7pb7h4dlww4jbl9ri4d33fzcl"))))
17847 (build-system emacs-build-system)
17848 (home-page "https://github.com/smihica/emmet-mode")
17849 (synopsis "Unofficial Emmet's support for Emacs")
17850 (description
17851 "Unfold CSS-selector-like expressions to markup. It is intended to be
17852 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
17853 (license license:gpl3+))))
17854
17855 (define-public emacs-ergoemacs-mode
17856 (package
17857 (name "emacs-ergoemacs-mode")
17858 (version "5.22.2.23")
17859 (source
17860 (origin
17861 (method git-fetch)
17862 (uri (git-reference
17863 (url "https://github.com/ergoemacs/ergoemacs-mode")
17864 (commit (string-append "v" version))))
17865 (file-name (git-file-name name version))
17866 (sha256
17867 (base32
17868 "1ipwzl0l26g5qvc1sgmz2ra5vn1j3hl0mnkgzpa3j4p8gsmxdiqr"))))
17869 (build-system emacs-build-system)
17870 (propagated-inputs
17871 (list emacs-undo-tree))
17872 (home-page "https://ergoemacs.github.io/")
17873 (synopsis "Emacs mode based on common modern interface and ergonomics")
17874 (description
17875 "This package provides an efficient Emacs keybinding set based on
17876 statistics of command frequency, and supports common shortcuts for open,
17877 close, copy, cut, paste, undo, redo.")
17878 (license license:gpl3+)))
17879
17880 (define-public emacs-password-store
17881 (let ((commit "918992c19231b33b3d4a3288a7288a620e608cb4")
17882 (revision "1"))
17883 (package
17884 (name "emacs-password-store")
17885 ;; The emacs package version does not match the password-store version,
17886 ;; even though it is part of the same repository. When updating, look
17887 ;; at the version declared in password-store.el.
17888 (version (git-version "2.1.4" revision commit))
17889 (source (origin
17890 (method git-fetch)
17891 (uri (git-reference
17892 (url "git://git.zx2c4.com/password-store")
17893 (commit commit)))
17894 (sha256
17895 (base32
17896 "0ni62f4pq96g0i0q66bch1dl9k4zqwhg7xaf746k3gbbqxcdh3vi"))
17897 (file-name (git-file-name name version))))
17898 (build-system emacs-build-system)
17899 (arguments
17900 `(#:phases
17901 (modify-phases %standard-phases
17902 (add-after 'unpack 'extract-el-file
17903 (lambda _
17904 (copy-file "contrib/emacs/password-store.el" "password-store.el")
17905 (delete-file-recursively "contrib")
17906 (delete-file-recursively "man")
17907 (delete-file-recursively "src")
17908 (delete-file-recursively "tests"))))))
17909 (propagated-inputs
17910 (list emacs-auth-source-pass emacs-s emacs-with-editor
17911 password-store))
17912 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
17913 (synopsis "Password store (pass) support for Emacs")
17914 (description
17915 "This package provides functions for working with pass (\"the
17916 standard Unix password manager\").")
17917 (license license:gpl2+))))
17918
17919 (define-public emacs-password-store-otp
17920 (package
17921 (name "emacs-password-store-otp")
17922 (version "0.1.5")
17923 (source
17924 (origin
17925 (method git-fetch)
17926 (uri (git-reference
17927 (url "https://github.com/volrath/password-store-otp.el")
17928 (commit version)))
17929 (sha256
17930 (base32 "0gb48blvnn6ci2wl45z81p41ny7vbgl610hqy6b2hyr2171qjd60"))
17931 (file-name (git-file-name name version))))
17932 (build-system emacs-build-system)
17933 (propagated-inputs
17934 (list emacs-password-store emacs-s))
17935 (home-page "https://github.com/volrath/password-store-otp.el")
17936 (synopsis
17937 "Interact with the @code{pass-otp} extension for @code{pass} from Emacs")
17938 (description "This package provides Emacs functions to interact with the
17939 @code{pass-otp} extension for @code{pass}. It includes functions to import
17940 OTP URIs from screenshots of QR codes, and to export them back to QR codes if
17941 needed.")
17942 (license license:gpl3+)))
17943
17944 (define-public emacs-auth-source-pass
17945 (let ((commit "847a1f54ed48856b4dfaaa184583ef2c84173edf")
17946 (revision "2"))
17947 (package
17948 (name "emacs-auth-source-pass")
17949 (version (git-version "5.0.0" revision commit))
17950 (source
17951 (origin
17952 (method git-fetch)
17953 (uri (git-reference
17954 (url "https://github.com/DamienCassou/auth-password-store")
17955 (commit commit)))
17956 (file-name (git-file-name name version))
17957 (sha256
17958 (base32 "0g48z5w6n3c54zqfpx65dfyl9jqbl15idvbb1hhw2pd9f9r8fykk"))))
17959 (build-system emacs-build-system)
17960 (arguments
17961 `(#:tests? #t
17962 #:test-command '("emacs" "--batch"
17963 "-L" "."
17964 "-l" "test/auth-source-pass-tests.el"
17965 "-f" "ert-run-tests-batch-and-exit")))
17966 (home-page "https://github.com/DamienCassou/auth-password-store")
17967 (synopsis "Integrate @code{auth-source} with @code{password-store}")
17968 (description "This package helps Emacs integrate with the Unix
17969 @code{password-store} application.")
17970 (license license:gpl3+))))
17971
17972 (define-public emacs-pass
17973 (package
17974 (name "emacs-pass")
17975 (version "2.0")
17976 (source
17977 (origin
17978 (method git-fetch)
17979 (uri (git-reference
17980 (url "https://github.com/NicolasPetton/pass")
17981 (commit version)))
17982 (file-name (git-file-name name version))
17983 (sha256
17984 (base32 "0jc8j421mlflspg24jvrqc2n3y5n3cpk3hjy560il8g36xi1049p"))))
17985 (build-system emacs-build-system)
17986 (propagated-inputs
17987 (list emacs-password-store emacs-f))
17988 (home-page "https://github.com/NicolasPetton/pass")
17989 (synopsis "Major mode for @file{password-store.el}")
17990 (description "This is a major mode for managing password-store (pass)
17991 keychains. The keychain entries are displayed in a directory-like structure
17992 and can be consulted and modified.")
17993 (license license:gpl3+)))
17994
17995 (define-public emacs-psc-ide
17996 ;; There is no proper release. The base version is extracted from the
17997 ;; "Version" keyword in the main file.
17998 (let ((commit "ce97d719458ea099b40c02f05b6609601c727e66")
17999 (revision "2"))
18000 (package
18001 (name "emacs-psc-ide")
18002 (version (git-version "0.1.0" revision commit))
18003 (source
18004 (origin
18005 (method git-fetch)
18006 (uri
18007 (git-reference
18008 (url "https://github.com/purescript-emacs/psc-ide-emacs")
18009 (commit commit)))
18010 (file-name (git-file-name name version))
18011 (sha256
18012 (base32 "0xfw93pdf744h2yswc53qwyawfzkc31rv8dmha3irq7k1nklhq6y"))))
18013 (build-system emacs-build-system)
18014 (propagated-inputs
18015 (list emacs-company emacs-dash emacs-flycheck emacs-let-alist
18016 emacs-s))
18017 (home-page "https://github.com/purescript-emacs/psc-ide-emacs")
18018 (synopsis "Emacs integration for PureScript's psc-ide tool")
18019 (description
18020 "This package provices Emacs integration for @code{psc-ide}, an IDE
18021 protocol for PureScript programming language. It features:
18022
18023 @itemize
18024 @item Completions
18025 @item Type at point
18026 @item Go to definition
18027 @item Automatic imports
18028 @item Case split
18029 @item Build system integration, and
18030 @item Flycheck support
18031 @end itemize")
18032 (license license:gpl3+))))
18033
18034 (define-public emacs-evil-anzu
18035 (package
18036 (name "emacs-evil-anzu")
18037 (version "0.03")
18038 (source
18039 (origin
18040 (method git-fetch)
18041 (uri (git-reference
18042 (url "https://github.com/syohex/emacs-evil-anzu")
18043 (commit version)))
18044 (file-name (git-file-name name version))
18045 (sha256
18046 (base32 "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr"))))
18047 (build-system emacs-build-system)
18048 (propagated-inputs
18049 (list emacs-evil emacs-anzu))
18050 (home-page "https://github.com/syohex/emacs-evil-anzu")
18051 (synopsis "Anzu for evil-mode")
18052 (description "@code{anzu} provides a minor mode that displays the current
18053 match and total match information in the mode-line in various search modes.")
18054 (license license:gpl3+)))
18055
18056 (define-public emacs-pg
18057 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
18058 (package
18059 (name "emacs-pg")
18060 (version (git-version "0.1" "1" commit))
18061 (source (origin
18062 (method git-fetch)
18063 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
18064 (commit commit)))
18065 (file-name (git-file-name name version))
18066 (sha256
18067 (base32
18068 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
18069 (build-system emacs-build-system)
18070 (home-page "https://github.com/cbbrowne/pg.el")
18071 (synopsis "Emacs Lisp interface for PostgreSQL")
18072 (description
18073 "This package provides an Emacs Lisp interface for PostgreSQL.")
18074 (license license:gpl3+))))
18075
18076 (define-public emacs-finalize
18077 (package
18078 (name "emacs-finalize")
18079 (version "2.0.0")
18080 (source
18081 (origin
18082 (method git-fetch)
18083 (uri (git-reference
18084 (url "https://github.com/skeeto/elisp-finalize")
18085 (commit version)))
18086 (file-name (git-file-name name version))
18087 (sha256
18088 (base32 "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"))))
18089 (build-system emacs-build-system)
18090 (home-page "https://github.com/skeeto/elisp-finalize")
18091 (synopsis "Finalizers for Emacs Lisp")
18092 (description
18093 "This package runs a callback (a finalizer)
18094 after its registered lisp object has been garbage collected. This allows
18095 extra resources, such as buffers and processes, to be cleaned up after the
18096 object has been freed.")
18097 (license license:unlicense)))
18098
18099 (define-public emacs-emacsql
18100 (package
18101 (name "emacs-emacsql")
18102 (version "3.0.0")
18103 (source
18104 (origin
18105 (method git-fetch)
18106 (uri (git-reference
18107 (url "https://github.com/skeeto/emacsql")
18108 (commit (string-append version))))
18109 (file-name (git-file-name name version))
18110 (sha256
18111 (base32 "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
18112 (build-system emacs-build-system)
18113 (arguments
18114 `(#:modules ((guix build emacs-build-system)
18115 (guix build utils)
18116 (guix build emacs-utils)
18117 (srfi srfi-26))
18118 #:phases
18119 (modify-phases %standard-phases
18120 (add-before 'install 'patch-elisp-shell-shebangs
18121 (lambda _
18122 (substitute* (find-files "." "\\.el")
18123 (("/bin/sh") (which "sh")))))
18124 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
18125 (lambda _
18126 (setenv "SHELL" "sh")))
18127 (add-after 'setenv-shell 'build-emacsql-sqlite
18128 (lambda _
18129 (invoke "make" "binary" (string-append "CC=" ,(cc-for-target)))))
18130 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
18131 ;; This build phase installs emacs-emacsql binary.
18132 (lambda* (#:key outputs #:allow-other-keys)
18133 (install-file "sqlite/emacsql-sqlite"
18134 (string-append (assoc-ref outputs "out") "/bin"))))
18135 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
18136 ;; This build phase removes interactive prompts
18137 ;; and makes sure Emacs look for binaries in the right places.
18138 (lambda* (#:key outputs #:allow-other-keys)
18139 (let ((file "emacsql-sqlite.el"))
18140 (chmod file #o644)
18141 (emacs-substitute-sexps file
18142 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
18143 ("(executable-find" (which "gcc"))
18144 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
18145 ;; in the right place.
18146 ("(defvar emacsql-sqlite-executable"
18147 (string-append (assoc-ref outputs "out")
18148 "/bin/emacsql-sqlite")))))))))
18149 (inputs
18150 (list emacs-minimal `(,mariadb "dev") `(,mariadb "lib") postgresql))
18151 (propagated-inputs
18152 (list emacs-finalize emacs-pg))
18153 (home-page "https://github.com/skeeto/emacsql")
18154 (synopsis "Emacs high-level SQL database front-end")
18155 (description "Any readable Lisp value can be stored as a value in EmacSQL,
18156 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
18157 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
18158 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
18159 (license license:gpl3+)))
18160
18161 (define-public emacs-emacsql-sqlite3
18162 (package
18163 (name "emacs-emacsql-sqlite3")
18164 (version "1.0.2")
18165 (source
18166 (origin
18167 (method git-fetch)
18168 (uri (git-reference
18169 (url "https://github.com/cireu/emacsql-sqlite3")
18170 (commit version)))
18171 (file-name (git-file-name name version))
18172 (sha256
18173 (base32 "1jzvvsvi8jm2ws3y49nmpmwd3zlvf8j83rl2vwizd1aplwwdnmd6"))))
18174 (build-system emacs-build-system)
18175 (arguments
18176 `(#:tests? #t
18177 #:test-command '("emacs" "-Q" "--batch" "-L" "."
18178 "--load" "emacsql-sqlite3-test.el"
18179 "-f" "ert-run-tests-batch-and-exit")
18180 #:phases
18181 (modify-phases %standard-phases
18182 (add-after 'unpack 'embed-path-to-sqlite3
18183 (lambda _
18184 (substitute* "emacsql-sqlite3.el"
18185 (("\\(executable-find \"sqlite3\"\\)")
18186 (string-append "\"" (which "sqlite3") "\""))))))))
18187 (native-inputs
18188 (list emacs-ert-runner))
18189 (inputs
18190 (list sqlite))
18191 (propagated-inputs
18192 (list emacs-emacsql))
18193 (home-page "https://github.com/cireu/emacsql-sqlite3")
18194 (synopsis "EmacSQL backend for SQLite")
18195 (description "This is yet another EmacSQL backend for SQLite which uses
18196 official @command{sqlite3} executable to access SQL database.")
18197 (license license:gpl3+)))
18198
18199 (define-public emacs-closql
18200 (package
18201 (name "emacs-closql")
18202 (version "1.2.1")
18203 (source
18204 (origin
18205 (method git-fetch)
18206 (uri (git-reference
18207 (url "https://github.com/emacscollective/closql")
18208 (commit (string-append "v" version))))
18209 (file-name (git-file-name name version))
18210 (sha256
18211 (base32
18212 "1s9riibws28xjn2bjn9qz3m2gvcmrn18b7g5y6am4sy7rgkx3nwx"))))
18213 (build-system emacs-build-system)
18214 (propagated-inputs
18215 (list emacs-emacsql))
18216 (home-page "https://github.com/emacscollective/closql")
18217 (synopsis "Store EIEIO objects using EmacSQL")
18218 (description
18219 "This package stores uniform EIEIO objects in an EmacSQL
18220 database. SQLite is used as backend. This library imposes some restrictions
18221 on what kind of objects can be stored; it isn't intended to store arbitrary
18222 objects. All objects have to share a common superclass and subclasses cannot
18223 add any additional instance slots.")
18224 (license license:gpl3)))
18225
18226 (define-public emacs-epkg
18227 (package
18228 (name "emacs-epkg")
18229 (version "3.3.3")
18230 (source
18231 (origin
18232 (method git-fetch)
18233 (uri (git-reference
18234 (url "https://github.com/emacscollective/epkg")
18235 (commit (string-append "v" version))))
18236 (file-name (git-file-name name version))
18237 (sha256
18238 (base32 "0d09ddlhvgp8rpybqmzvzpzdp1hjaq97wp2br4g90lpx2vclkgn7"))))
18239 (build-system emacs-build-system)
18240 (arguments
18241 `(#:phases
18242 (modify-phases %standard-phases
18243 (add-before 'install 'make-info
18244 ;; Documentation is located in "docs/".
18245 (lambda* (#:key outputs #:allow-other-keys)
18246 (with-directory-excursion "docs"
18247 (invoke "makeinfo" "-o" "epkg.info" "epkg.texi")
18248 (let ((info (string-append (assoc-ref outputs "out")
18249 "/share/info")))
18250 (install-file "epkg.info" info)))))
18251 (add-after 'make-info 'move-to-lisp-directory
18252 ;; Source code is located in "lisp/".
18253 (lambda _
18254 (chdir "lisp")))
18255 (add-after 'expand-load-path 'add-el-dir-to-emacs-load-path
18256 (lambda _
18257 (setenv "EMACSLOADPATH"
18258 (string-append (getcwd)
18259 "/lisp:"
18260 (getenv "EMACSLOADPATH"))))))))
18261 (native-inputs
18262 (list texinfo))
18263 (propagated-inputs
18264 (list emacs-closql emacs-dash))
18265 (home-page "https://emacsmirror.net")
18266 (synopsis "Browse the Emacsmirror package database")
18267 (description "This package provides access to a local copy of the
18268 Emacsmirror package database. It provides low-level functions for querying
18269 the database and a @file{package.el} user interface for browsing the database.
18270 Epkg itself is not a package manager.")
18271 (license license:gpl3+)))
18272
18273 (define-public emacs-elisp-slime-nav
18274 (package
18275 (name "emacs-elisp-slime-nav")
18276 (version "0.10")
18277 (source
18278 (origin
18279 (method git-fetch)
18280 (uri (git-reference
18281 (url "https://github.com/purcell/elisp-slime-nav")
18282 (commit version)))
18283 (file-name (git-file-name name version))
18284 (sha256
18285 (base32 "08k4zlawjkb0ldn4lgrhih8nzln398x7dwzpipqfyrmp0xziywma"))))
18286 (build-system emacs-build-system)
18287 (home-page "https://github.com/purcell/elisp-slime-nav")
18288 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
18289 (description
18290 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
18291 in @code{emacs-lisp-mode}, together with an elisp equivalent of
18292 @code{slime-describe-symbol}.")
18293 (license license:gpl3+)))
18294
18295 (define-public emacs-dedicated
18296 (package
18297 (name "emacs-dedicated")
18298 (version "1.0.0")
18299 (source
18300 (origin
18301 (method git-fetch)
18302 (uri (git-reference
18303 (url "https://github.com/emacsorphanage/dedicated")
18304 (commit version)))
18305 (file-name (git-file-name name version))
18306 (sha256
18307 (base32 "0pba9s0h37sxyqh733vi6k5raa4cs7aradipf3826inw36jcw414"))))
18308 (build-system emacs-build-system)
18309 (home-page "https://github.com/emacsorphanage/dedicated")
18310 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
18311 (description
18312 "This simple Emacs minor mode allows you to toggle a window's
18313 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
18314 files into that window. This can be quite handy since many commands will use
18315 another window to show results (compilation mode, starting info, and so on).
18316 A dedicated window won't be used for such a purpose. For details, please read
18317 the source file.")
18318 (license license:gpl2+)))
18319
18320 (define-public emacs-nnreddit
18321 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
18322 (revision "1"))
18323 (package
18324 (name "emacs-nnreddit")
18325 (version (string-append "0.0.1-" revision "."
18326 (string-take commit 7)))
18327 (source (origin
18328 (method git-fetch)
18329 (uri (git-reference
18330 (url "https://github.com/paul-issartel/nnreddit")
18331 (commit commit)))
18332 (file-name (git-file-name name version))
18333 (sha256
18334 (base32
18335 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
18336 (build-system emacs-build-system)
18337 (home-page "https://github.com/paul-issartel/nnreddit")
18338 (synopsis "Reddit backend for the Gnus newsreader")
18339 (description "@url{https://www.reddit.com} backend for the Gnus
18340 newsreader.")
18341 (license license:gpl3+))))
18342
18343 (define-public emacs-makey
18344 (package
18345 (name "emacs-makey")
18346 (version "0.3")
18347 (source
18348 (origin
18349 (method git-fetch)
18350 (uri (git-reference
18351 (url "https://github.com/mickeynp/makey")
18352 (commit version)))
18353 (file-name (git-file-name name version))
18354 (sha256
18355 (base32 "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"))))
18356 (build-system emacs-build-system)
18357 (home-page "https://github.com/mickeynp/makey")
18358 (synopsis "Emacs interactive command-line mode")
18359 (description
18360 "This package provides an Emacs interactive command-line mode.")
18361 (license license:gpl3+)))
18362
18363 (define-public emacs-outorg
18364 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
18365 (package
18366 (name "emacs-outorg")
18367 (version (git-version "2.0" "1" commit))
18368 (source
18369 (origin
18370 (method git-fetch)
18371 (uri (git-reference
18372 (url "https://github.com/alphapapa/outorg")
18373 (commit commit)))
18374 (file-name (git-file-name name version))
18375 (sha256
18376 (base32
18377 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
18378 (build-system emacs-build-system)
18379 (home-page "https://github.com/alphapapa/outorg")
18380 (synopsis "Org-style comment editing")
18381 (description "Outorg is for editing comment-sections of source-code
18382 files in temporary Org-mode buffers. It turns conventional
18383 literate-programming upside-down in that the default mode is the
18384 programming-mode, and special action has to be taken to switch to the
18385 text-mode (i.e. Org-mode).")
18386 (license license:gpl3+))))
18387
18388 (define-public emacs-outshine
18389 (package
18390 (name "emacs-outshine")
18391 (version "3.0.1")
18392 (source (origin
18393 (method git-fetch)
18394 (uri (git-reference
18395 (url "https://github.com/alphapapa/outshine")
18396 (commit (string-append "v" version))))
18397 (file-name (git-file-name name version))
18398 (sha256
18399 (base32
18400 "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg"))))
18401 (build-system emacs-build-system)
18402 (propagated-inputs
18403 (list emacs-outorg))
18404 (home-page "https://github.com/alphapapa/outshine")
18405 (synopsis "Emacs outline with outshine")
18406 (description "Outshine attempts to bring the look and feel of
18407 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
18408 of @code{outline-minor-mode} (@code{org-mode} itself derives from
18409 outline-mode), so there is no such thing like an outshine mode, only
18410 @code{outline-minor-mode} with outshine extensions loaded.")
18411 (license license:gpl3+)))
18412
18413 (define-public emacs-frecency
18414 (let ((commit "31ef9ff4af1a4fed3dcc24ea74037feea8795c87")
18415 (version "0.1-pre")
18416 (revision "1"))
18417 (package
18418 (name "emacs-frecency")
18419 (version (git-version version revision commit))
18420 (source (origin
18421 (method git-fetch)
18422 (uri (git-reference
18423 (url "https://github.com/alphapapa/frecency.el")
18424 (commit commit)))
18425 (sha256
18426 (base32
18427 "051aihjdg3x22svaxhwylpi8i6s2x9j8syvsj1jgilgjjdy15l6j"))
18428 (file-name (git-file-name name version))))
18429 (build-system emacs-build-system)
18430 (propagated-inputs
18431 (list emacs-a emacs-dash))
18432 (home-page "https://github.com/alphapapa/frecency.el")
18433 (synopsis "Sort items by frequency and recency of access")
18434 (description "This package provides a way of sorting items via
18435 a heuristic based on frequency and recency.")
18436 (license license:gpl3+))))
18437
18438 (define-public emacs-org-recent-headings
18439 (let ((commit "97418d581ea030f0718794e50b005e9bae44582e")
18440 (revision "0"))
18441 (package
18442 (name "emacs-org-recent-headings")
18443 (version (git-version "0.1" revision commit))
18444 (source
18445 (origin
18446 (method git-fetch)
18447 (uri (git-reference
18448 (url "https://github.com/alphapapa/org-recent-headings")
18449 (commit commit)))
18450 (file-name (git-file-name name version))
18451 (sha256
18452 (base32 "1y11rlnhi36lzhc1cagninv6hlcwbvj88xfr0g0xzpbzy7hys021"))))
18453 (build-system emacs-build-system)
18454 (propagated-inputs
18455 (list emacs-dash emacs-frecency emacs-helm emacs-org emacs-s))
18456 (home-page "https://github.com/alphapapa/org-recent-headings")
18457 (synopsis "Navigate to recently used Org headings and lists")
18458 (description
18459 "This package maintains a list of recently used Org headings,
18460 as well as functions for navigating between these headings.")
18461 (license license:gpl3+))))
18462
18463 (define-public emacs-org-super-agenda
18464 (package
18465 (name "emacs-org-super-agenda")
18466 (version "1.2")
18467 (source
18468 (origin
18469 (method git-fetch)
18470 (uri (git-reference
18471 (url "https://github.com/alphapapa/org-super-agenda")
18472 (commit version)))
18473 (file-name (git-file-name name version))
18474 (sha256
18475 (base32 "10l9h2n09cql4ih7nc0ma3ghdsq9l5v9xlj1lg7kq67icdwjlsvy"))))
18476 (build-system emacs-build-system)
18477 (arguments
18478 `(#:tests? #f ;FIXNE: Tests try to read "~/org/test.org"
18479 #:test-command '("test/run" "--debug")
18480 #:phases
18481 (modify-phases %standard-phases
18482 (add-after 'unpack 'prepare-for-tests.el
18483 (lambda _
18484 (make-file-writable "test/test.el")
18485 (emacs-substitute-variables "test/test.el"
18486 ("org-super-agenda-test-results-file"
18487 (string-append (getcwd) "/test/results.el")))
18488 ;; The following tests fail (see:
18489 ;; https://github.com/alphapapa/org-super-agenda/issues/183).
18490 (substitute* "test/test.el"
18491 ((".*org-super-agenda-test--:auto-(map|tags).*" all)
18492 (string-append all " (skip-unless nil)\n"))))))))
18493 (native-inputs
18494 (list emacs-f util-linux))
18495 (propagated-inputs
18496 (list emacs-dash emacs-ht emacs-org emacs-s emacs-ts))
18497 (home-page "https://github.com/alphapapa/org-super-agenda")
18498 (synopsis "Supercharged Org agenda")
18499 (description "This package allows items in the Org agenda to be grouped
18500 into sections while preserving the structure imposed by any timestamps.")
18501 (license license:gpl3+)))
18502
18503 (define-public emacs-elegant-agenda-mode
18504 (let ((commit "c72f42e0f551c3dd81e68262f07a96c0ec90a589")
18505 (revision "1"))
18506 (package
18507 (name "emacs-elegant-agenda-mode")
18508 (version (git-version "0.1.0" revision commit))
18509 (source
18510 (origin
18511 (method git-fetch)
18512 (uri (git-reference
18513 (url "https://github.com/justinbarclay/elegant-agenda-mode")
18514 (commit commit)))
18515 (file-name (git-file-name name version))
18516 (sha256
18517 (base32
18518 "0f8qk3vd41ffbkfqw5nks3bld0qpjrlnk9sb46wcbsyfnrs2v082"))))
18519 (build-system emacs-build-system)
18520 (home-page "https://github.com/justinbarclay/elegant-agenda-mode")
18521 (synopsis "Elegant theme for your org-agenda")
18522 (description
18523 "The elegant-agenda-mode package uses fonts and typography to give your
18524 org-agenda some breathing room and elegance. This package was inspired by the
18525 work Nicolas Rougier.")
18526 (license license:gpl3+))))
18527
18528 (define-public emacs-org-make-toc
18529 (package
18530 (name "emacs-org-make-toc")
18531 (version "0.5")
18532 (source (origin
18533 (method git-fetch)
18534 (uri (git-reference
18535 (url "https://github.com/alphapapa/org-make-toc")
18536 (commit version)))
18537 (file-name (git-file-name name version))
18538 (sha256
18539 (base32
18540 "180ji6nnj6qj0rs1rdp1zlcrfsqf7ikb44ym8icbp5d6al2s4hnr"))))
18541 (build-system emacs-build-system)
18542 (propagated-inputs
18543 (list emacs-org emacs-dash emacs-s))
18544 (home-page "https://github.com/alphapapa/org-make-toc")
18545 (synopsis "Maintain a table of contents for an Org file")
18546 (description "This package facilitates the creation and maintenance of
18547 tables of contents.")
18548 (license license:gpl3+)))
18549
18550 (define-public emacs-ts
18551 (package
18552 (name "emacs-ts")
18553 (version "0.2.2")
18554 (source
18555 (origin
18556 (method git-fetch)
18557 (uri (git-reference
18558 (url "https://github.com/alphapapa/ts.el")
18559 (commit version)))
18560 (sha256
18561 (base32 "0l35gz1hpada2kzascbyqgawa5d3sdyg67gzvak84p9zx62jppn8"))
18562 (file-name (git-file-name name version))))
18563 (build-system emacs-build-system)
18564 (propagated-inputs
18565 (list emacs-s emacs-dash))
18566 (arguments
18567 ;; XXX: Three tests are failing because of a timezone-related issue
18568 ;; with how they're written. On my machine, all the failing test
18569 ;; results are 18000 seconds (5 hours) off.
18570
18571 ;; The ts-parse-org function accepts a string without any timezone
18572 ;; info, not assumed to be in Unix time, and converts it to a so-called
18573 ;; ts struct. The ts-unix function (accessor) accepts a ts struct,
18574 ;; then seems to assume the struct's corresponding time is in terms of
18575 ;; the user's current time zone, before returning a Unix time in
18576 ;; seconds.
18577
18578 ;; The failing tests all have similar problems, but nothing else about
18579 ;; the library seems particularly off.
18580
18581 `(#:tests? #t
18582 #:test-command '("emacs" "--batch"
18583 "-l" "test/test.el"
18584 "-f" "ert-run-tests-batch-and-exit")
18585 #:phases
18586 (modify-phases %standard-phases
18587 (add-before 'check 'make-tests-writable
18588 (lambda _
18589 (make-file-writable "test/test.el")
18590 #t))
18591 (add-before 'check 'delete-failing-tests
18592 (lambda _
18593 (emacs-batch-edit-file "test/test.el"
18594 `(progn (progn
18595 (goto-char (point-min))
18596 (dolist (test-regexp
18597 '("ert-deftest ts-format"
18598 "ert-deftest ts-parse-org\\_>"
18599 "ert-deftest ts-parse-org-element"
18600 "ert-deftest ts-update"))
18601 (re-search-forward test-regexp)
18602 (beginning-of-line)
18603 (kill-sexp)))
18604 (basic-save-buffer)))
18605 #t)))))
18606 (home-page "https://github.com/alphapapa/ts.el")
18607 (synopsis "Timestamp and date/time library")
18608 (description "This package facilitates manipulating dates, times, and
18609 timestamps by providing a @code{ts} struct.")
18610 (license license:gpl3+)))
18611
18612 (define-public emacs-peg
18613 (package
18614 (name "emacs-peg")
18615 (version "1.0")
18616 (source
18617 (origin
18618 (method url-fetch)
18619 (uri (string-append "https://elpa.gnu.org/packages/peg-" version ".tar"))
18620 (sha256
18621 (base32 "0skr5dz9k34r409hisnj37n1b7n62l3md0glnfx578xkbmxlpcxl"))))
18622 (build-system emacs-build-system)
18623 (home-page "https://elpa.gnu.org/packages/peg.html")
18624 (synopsis "Parsing Expression Grammars in Elisp")
18625 (description "This package provides a macro that parses the current buffer
18626 according to a parsing expression grammar.")
18627 (license license:gpl3+)))
18628
18629 (define-public emacs-eldev
18630 (package
18631 (name "emacs-eldev")
18632 (version "1.1.3")
18633 (source
18634 (origin
18635 (method git-fetch)
18636 (uri (git-reference
18637 (url "https://github.com/doublep/eldev")
18638 (commit version)))
18639 (file-name (git-file-name name version))
18640 (sha256
18641 (base32 "1dgbwaar8l8nl79mlzf5g1n49f1j9yj4772yfmim9vv8ppxnzbqk"))))
18642 (build-system emacs-build-system)
18643 (arguments
18644 (list
18645 #:tests? #t
18646 #:test-command #~(list "./bin/eldev" "-p" "-dtTC" "test")
18647 #:phases
18648 #~(modify-phases %standard-phases
18649 (add-after 'unpack 'prepare-for-tests
18650 (lambda _
18651 (setenv "ELDEV_LOCAL" (getcwd))
18652 (make-file-writable "test/project-i/project-i-autoloads.el")))
18653 (add-after 'unpack 'skip-failing-tests
18654 ;; FIXME: 2 tests are failing. Skip them for now.
18655 (lambda _
18656 (delete-file "test/upgrade-self.el")))
18657 (add-after 'install 'install-eldev-executable
18658 ;; This constructs the eldev executable from templates and
18659 ;; installs it in the specified directory.
18660 (lambda _
18661 (let ((bin (string-append #$output "/bin"))
18662 (site-lisp (elpa-directory #$output)))
18663 (mkdir-p bin)
18664 (setenv "HOME" (getcwd))
18665 (invoke "./install.sh" bin)
18666 (substitute* (string-append bin "/eldev")
18667 ;; Point ELDEV_LOCAL to the installation directory so that
18668 ;; eldev doesn't try to bootstrap itself from MELPA when
18669 ;; invoked.
18670 (("export ELDEV_EMACS.*" all)
18671 (string-append "export ELDEV_LOCAL=" site-lisp "\n" all)))))))))
18672 (native-inputs
18673 (list texinfo)) ;for tests
18674 (home-page "https://github.com/doublep/eldev/")
18675 (synopsis "Emacs-based build tool for Elisp")
18676 (description "Eldev (Elisp Development Tool) is an Emacs-based build tool,
18677 targeted solely at Elisp projects. It is an alternative to Cask. Unlike
18678 Cask, Eldev itself is fully written in Elisp and its configuration files are
18679 also Elisp programs. For those familiar with the Java world, Cask can be seen
18680 as a parallel to Maven — it uses project description, while Eldev is sort of a
18681 parallel to Gradle — its configuration is a program on its own.")
18682 (license license:gpl3+)))
18683
18684 (define-public emacs-with-simulated-input
18685 (package
18686 (name "emacs-with-simulated-input")
18687 (version "3.0")
18688 (source
18689 (origin
18690 (method git-fetch)
18691 (uri (git-reference
18692 (url "https://github.com/DarwinAwardWinner/with-simulated-input")
18693 (commit (string-append "v" version))))
18694 (file-name (git-file-name name version))
18695 (sha256
18696 (base32
18697 "0n8h84whsh0aph8xhn9plprix9f6bysgvarz2anz7kwns19js6s4"))))
18698 (build-system emacs-build-system)
18699 (arguments
18700 ;; The test suite fails with error: "Spies can only be created in
18701 ;; ‘before-each’".
18702 `(#:tests? #f
18703 #:test-command '("buttercup" "-L" ".")))
18704 (native-inputs
18705 (list emacs-buttercup emacs-undercover))
18706 (propagated-inputs
18707 (list emacs-s))
18708 (home-page "https://github.com/DarwinAwardWinner/with-simulated-input")
18709 (synopsis "Non-interactive testing Emacs library")
18710 (description "This package provides an Emacs Lisp macro,
18711 @code{with-simulated-input}, which evaluates one or more forms while
18712 simulating a sequence of input events for those forms to read. The result is
18713 the same as if a user had evaluated the forms and then manually typed in the
18714 same input. This macro is useful for non-interactive testing of normally
18715 interactive commands and functions, such as @code{completing-read}.")
18716 (license license:gpl3+)))
18717
18718 (define-public emacs-org-ql
18719 (package
18720 (name "emacs-org-ql")
18721 (version "0.6.2")
18722 (source (origin
18723 (method git-fetch)
18724 (uri (git-reference
18725 (url "https://github.com/alphapapa/org-ql")
18726 (commit version)))
18727 (sha256
18728 (base32
18729 "0iamqv5j43ngj1xdqr36rkgk9lqpk9bg8y531jsldnvwzrp3srpf"))
18730 (file-name (git-file-name name version))))
18731 (build-system emacs-build-system)
18732 (propagated-inputs
18733 (list emacs-dash
18734 emacs-f
18735 emacs-helm
18736 emacs-helm-org
18737 emacs-org
18738 emacs-org-super-agenda
18739 emacs-ov
18740 emacs-peg
18741 emacs-transient
18742 emacs-ts
18743 emacs-s))
18744 (native-inputs
18745 (list emacs-buttercup emacs-with-simulated-input))
18746 (arguments
18747 `(#:tests? #t
18748 #:test-command '("buttercup" "-L" ".")))
18749 (home-page "https://github.com/alphapapa/org-ql/")
18750 (synopsis "Query language for Org buffers")
18751 (description "This package provides a Lispy query language for Org
18752 files, allowing for actions to be performed based on search criteria.")
18753 (license license:gpl3+)))
18754
18755 (define-public emacs-bing-dict
18756 (package
18757 (name "emacs-bing-dict")
18758 (version "0.2.4")
18759 (source (origin
18760 (method git-fetch)
18761 (uri (git-reference
18762 (url "https://github.com/cute-jumper/bing-dict.el")
18763 (commit version)))
18764 (file-name (git-file-name name version))
18765 (sha256
18766 (base32
18767 "1kn8kmljn0pj0hz7dj7r7nxw43xd6acndaqq92d02mla12hiqayz"))))
18768 (build-system emacs-build-system)
18769 (home-page "https://github.com/cute-jumper/bing-dict.el")
18770 (synopsis "Minimalist Bing dictionary interface in Emacs")
18771 (description
18772 "This package provides a minimalist Emacs extension to search
18773 @uref{http://www.bing.com/dict}. It supports English to Chinese, and
18774 Chinese to English.")
18775 (license license:gpl3+)))
18776
18777 (define-public emacs-org-auto-tangle
18778 (package
18779 (name "emacs-org-auto-tangle")
18780 (version "0.4.1")
18781 (source (origin
18782 (method git-fetch)
18783 (uri (git-reference
18784 (url "https://github.com/yilkalargaw/org-auto-tangle")
18785 (commit version)))
18786 (file-name (git-file-name name version))
18787 (sha256
18788 (base32
18789 "1zb7vcmhmjiqpbbhqrqci689rnpn10p985cs5jk9sgg66xsbrgs3"))))
18790 (build-system emacs-build-system)
18791 (propagated-inputs (list emacs-async))
18792 (home-page "https://github.com/yilkalargaw/org-auto-tangle")
18793 (synopsis "Automatically tangle code blocks on save")
18794 (description
18795 "@code{org-auto-tangle} allows you to automatically tangle code blocks
18796 whenever saving an @code{org-mode} file.")
18797 (license license:bsd-2)))
18798
18799 (define-public emacs-org-auto-expand
18800 (let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62")
18801 (revision "1"))
18802 (package
18803 (name "emacs-org-auto-expand")
18804 (version (git-version "0.1" revision commit))
18805 (source (origin
18806 (method git-fetch)
18807 (uri (git-reference
18808 (url "https://github.com/alphapapa/org-auto-expand")
18809 (commit commit)))
18810 (file-name (git-file-name name version))
18811 (sha256
18812 (base32
18813 "1my0c6xmkh37lwi6l472lz9d86lf20h6xcllzlxm1lxa24rhva6v"))))
18814 (build-system emacs-build-system)
18815 (propagated-inputs
18816 (list emacs-org emacs-dash))
18817 (home-page "https://github.com/alphapapa/org-auto-expand")
18818 (synopsis "Automatically expand certain Org headings")
18819 (description "This package allows a customizable set of headings in Org
18820 files to be expanded upon opening them.")
18821 (license license:gpl3+))))
18822
18823 (define-public emacs-parsebib
18824 (package
18825 (name "emacs-parsebib")
18826 (version "4.1")
18827 (source
18828 (origin
18829 (method git-fetch)
18830 (uri (git-reference
18831 (url "https://github.com/joostkremers/parsebib")
18832 (commit version)))
18833 (file-name (git-file-name name version))
18834 (sha256
18835 (base32 "1bsxhizwhri8ayryfq59ghkybrql611q2bnjd45hpj7armwq3s8m"))))
18836 (build-system emacs-build-system)
18837 (home-page "https://github.com/joostkremers/parsebib")
18838 (synopsis "Library for parsing @file{.bib} files")
18839 (description
18840 "This package provides an Emacs library for parsing @file{.bib} files.")
18841 (license license:gpl3+)))
18842
18843 (define-public emacs-ebib
18844 (package
18845 (name "emacs-ebib")
18846 (version "2.38")
18847 (source
18848 (origin
18849 (method git-fetch)
18850 (uri (git-reference
18851 (url "https://github.com/joostkremers/ebib")
18852 (commit version)))
18853 (file-name (git-file-name name version))
18854 (sha256
18855 (base32 "14pk3l0qhk219msxx6wxpf29dyx3kjcj769lcqyb5g05lclw9531"))))
18856 (build-system emacs-build-system)
18857 (propagated-inputs
18858 (list emacs-biblio emacs-ivy emacs-parsebib))
18859 (home-page "https://joostkremers.github.io/ebib/")
18860 (synopsis "BibTeX database manager for Emacs")
18861 (description
18862 "Ebib is a BibTeX database manager that runs in GNU Emacs.
18863 With Ebib you can create, sort and manage your @file{.bib} database files, all
18864 within Emacs. It supports searching, multi-line field values and
18865 @samp{@@String} and @samp{@@Preamble} definitions. Ebib integrates
18866 with (La)TeX mode, Org mode and other Emacs editing modes.")
18867 ;; The Ebib source files are released under a BSD license with
18868 ;; the exception of org-ebib.el, which is released under the GNU
18869 ;; GPL.
18870 (license (list license:bsd-3
18871 license:gpl3+))))
18872
18873 (define-public emacs-biblio
18874 (package
18875 (name "emacs-biblio")
18876 (version "0.2")
18877 (source
18878 (origin
18879 (method git-fetch)
18880 (uri (git-reference
18881 (url "https://github.com/cpitclaudel/biblio.el")
18882 (commit version)))
18883 (file-name (git-file-name name version))
18884 (sha256
18885 (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"))))
18886 (build-system emacs-build-system)
18887 (propagated-inputs
18888 (list emacs-dash emacs-let-alist))
18889 (home-page "https://github.com/cpitclaudel/biblio.el")
18890 (synopsis "Browse and import bibliographic references")
18891 (description "This package provides an extensible Emacs package for
18892 browsing and fetching references.
18893
18894 @file{biblio.el} makes it easy to browse and gather bibliographic references
18895 and publications from various sources, by keywords or by DOI. References are
18896 automatically fetched from well-curated sources, and formatted as BibTeX.")
18897 (license license:gpl3+)))
18898
18899 (define-public emacs-citar
18900 (package
18901 (name "emacs-citar")
18902 (version "0.9.7")
18903 (source (origin
18904 (method git-fetch)
18905 (uri (git-reference
18906 (url "https://github.com/bdarcus/citar")
18907 (commit (string-append "v" version))))
18908 (file-name (git-file-name name version))
18909 (sha256
18910 (base32
18911 "1f49l1zmy4fnz75b0m2rav5jm8yp6hry44bv9xasiszyy3bn0hv8"))))
18912 (build-system emacs-build-system)
18913 (arguments
18914 `(#:phases (modify-phases %standard-phases
18915 (add-before 'build 'set-home
18916 (lambda _
18917 (setenv "HOME" "/tmp"))))))
18918 (propagated-inputs (list emacs-auctex
18919 emacs-citeproc-el
18920 emacs-embark
18921 emacs-org
18922 emacs-parsebib
18923 emacs-s))
18924 (home-page "https://github.com/bdarcus/citar")
18925 (synopsis "Emacs package to quickly find and act on bibliographic entries")
18926 (description
18927 "This package provides a completing-read front-end to browse and
18928 act on BibTeX, BibLaTeX, and CSL JSON bibliographic data, and LaTeX,
18929 markdown, and Org cite editing support.
18930
18931 When used with Vertico (or Selectrum), Embark, and Marginalia, it
18932 provides similar functionality to helm-bibtex and ivy-bibtex: quick
18933 filtering and selecting of bibliographic entries from the minibuffer,
18934 and the option to run different commands against them.
18935
18936 With Embark, it also makes available at-point actions in Org
18937 citations.")
18938 (license license:gpl3+)))
18939
18940 (define-public emacs-helm-bibtex
18941 (let ((commit "aa775340ba691d2322948bfdc6a88158568a1399")
18942 (revision "3"))
18943 (package
18944 (name "emacs-helm-bibtex")
18945 (version (git-version "2.0.0" revision commit))
18946 (source
18947 (origin
18948 (method git-fetch)
18949 (uri (git-reference
18950 (url "https://github.com/tmalsburg/helm-bibtex")
18951 (commit commit)))
18952 (file-name (git-file-name name version))
18953 (sha256
18954 (base32 "1d3mc17ga09m41i06khghlvixr6gsiacifnhdbrfnp0w5592aprk"))))
18955 (build-system emacs-build-system)
18956 (propagated-inputs
18957 (list emacs-helm
18958 emacs-parsebib
18959 emacs-s
18960 emacs-dash
18961 emacs-f
18962 emacs-biblio
18963 emacs-ivy))
18964 (home-page "https://github.com/tmalsburg/helm-bibtex")
18965 (synopsis "Bibliography manager based on Helm")
18966 (description "This package provides bibliography manager for Emacs,
18967 based on Helm and the bibtex-completion backend.
18968
18969 Key features:
18970
18971 @itemize
18972 @item Quick access to your bibliography from within Emacs
18973 @item Powerful search capabilities
18974 @item Provides instant search results as you type
18975 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
18976 @item Open the PDFs, URLs, or DOIs associated with an entry
18977 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
18978 BibTeX entries, or plain text references at point, attach PDFs to emails
18979 @item Support for note taking
18980 @item Quick access to online bibliographic databases such as Pubmed,
18981 arXiv, Google Scholar, Library of Congress, etc.
18982 @item Imports BibTeX entries from CrossRef and other sources.
18983 @end itemize\n")
18984 (license license:gpl3+))))
18985
18986 (define-public emacs-ewmctrl
18987 (package
18988 (name "emacs-ewmctrl")
18989 (version "1.0.0")
18990 (source
18991 (origin
18992 (method git-fetch)
18993 (uri (git-reference
18994 (url "https://github.com/flexibeast/ewmctrl")
18995 (commit (string-append "v" version))))
18996 (file-name (git-file-name name version))
18997 (sha256
18998 (base32
18999 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
19000 (build-system emacs-build-system)
19001 (arguments
19002 '(#:phases
19003 (modify-phases %standard-phases
19004 (add-after 'unpack 'patch-ewmctrl
19005 ;; This build phase makes sure ‘ewmctrl’ looks
19006 ;; for ‘wmctrl’ in the right place.
19007 (lambda _
19008 (let ((file "ewmctrl.el"))
19009 (chmod file #o644)
19010 (emacs-substitute-sexps file
19011 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
19012 (inputs
19013 (list wmctrl))
19014 (home-page "https://github.com/flexibeast/ewmctrl")
19015 (synopsis "Emacs interface to @code{wmctrl}")
19016 (description "@code{ewmctrl} provides an Emacs interface to
19017 @code{wmctrl} command-line window-management program.")
19018 (license license:gpl3+)))
19019
19020 (define-public emacs-erc-image
19021 (let ((commit "82fb3871f02e24b1e880770b9a3d187aab43d0f0")
19022 (revision "3"))
19023 (package
19024 (name "emacs-erc-image")
19025 (version (git-version "0" revision commit))
19026 (source
19027 (origin
19028 (method git-fetch)
19029 (uri (git-reference
19030 (url "https://github.com/kidd/erc-image.el")
19031 (commit commit)))
19032 (file-name (git-file-name name version))
19033 (sha256
19034 (base32
19035 "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i"))))
19036 (build-system emacs-build-system)
19037 (arguments
19038 `(#:phases (modify-phases %standard-phases
19039 ;; The package autoloader fails to provide
19040 ;; the image module when handled by Guix.
19041 ;; Disable this phase, and let the package
19042 ;; handle the `eval-after-load' procedure.
19043 (delete 'make-autoloads))))
19044 (home-page "https://github.com/kidd/erc-image.el")
19045 (synopsis "Show inlined images (png/jpg/gif/svg) in ERC buffers")
19046 (description "This plugin subscribes to hooks @code{erc-insert-modify-hook}
19047 and @code{erc-send-modify-hook} to download and show images.")
19048 (license license:gpl3+))))
19049
19050 (define-public emacs-helm-gtags
19051 (package
19052 (name "emacs-helm-gtags")
19053 (version "1.5.7")
19054 (source
19055 (origin
19056 (method git-fetch)
19057 (uri (git-reference
19058 (url "https://github.com/syohex/emacs-helm-gtags")
19059 (commit version)))
19060 (file-name (git-file-name name version))
19061 (sha256
19062 (base32 "1kc1jzk10nfd2v20g8dwnb6a944afrwdwnkzl06w4ba8k4yim7gi"))))
19063 (build-system emacs-build-system)
19064 (propagated-inputs
19065 (list emacs-helm))
19066 (home-page "https://github.com/syohex/emacs-helm-gtags")
19067 (synopsis "Emacs Helm interface to GNU Global")
19068 (description
19069 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
19070 (license license:gpl3+)))
19071
19072 (define-public emacs-list-utils
19073 ;; Use a git snapshot until upstream fixes the build with emacs 28.1.
19074 ;; See <http://issues.guix.gnu.org/55558>.
19075 (let ((commit "0dec8c02962d2591766739e37c5714ba21133093") (revision "1"))
19076 (package
19077 (name "emacs-list-utils")
19078 (version (git-version "0.4.6" revision commit))
19079 (source (origin
19080 (method git-fetch)
19081 (uri (git-reference
19082 (url "https://github.com/rolandwalker/list-utils")
19083 (commit commit)))
19084 (file-name (git-file-name name version))
19085 (sha256
19086 (base32
19087 "11nm8649a131bn2kwj4fxkiijdx2d4f1byx7a985zlb3bzdwnaw8"))))
19088 (build-system emacs-build-system)
19089 (home-page "https://github.com/rolandwalker/list-utils")
19090 (synopsis "List-manipulation utility functions")
19091 (description
19092 "This package provides a list manipulation library for Emacs.")
19093 (license license:gpl3+))))
19094
19095 (define-public emacs-parsec
19096 (package
19097 (name "emacs-parsec")
19098 (version "0.1.4")
19099 (source
19100 (origin
19101 (method git-fetch)
19102 (uri (git-reference
19103 (url "https://github.com/cute-jumper/parsec.el")
19104 (commit version)))
19105 (file-name (git-file-name name version))
19106 (sha256
19107 (base32 "1g1s8s45g3kkbi3h7w0pmadmzdswb64mkdvdpg2lihg341kx37gm"))))
19108 (build-system emacs-build-system)
19109 (home-page "https://github.com/cute-jumper/parsec.el")
19110 (synopsis "Parser combinator library for Emacs Lisp")
19111 (description
19112 "Parsec is a parser combinator library for Emacs Lisp, similar to
19113 Haskell's Parsec library. It contains most of the parser combinators in
19114 Text.Parsec.Combinator, and more combinators can be added if necessary! Most
19115 of the parser combinators have the same behavior as their Haskell
19116 counterparts. Parsec also comes with a simple error handling mechanism so
19117 that it can display an error message showing how the parser fails.")
19118 (license license:gpl3+)))
19119
19120 (define-public emacs-move-text
19121 (package
19122 (name "emacs-move-text")
19123 (version "2.0.8")
19124 (source
19125 (origin
19126 (method git-fetch)
19127 (uri (git-reference
19128 (url "https://github.com/emacsfodder/move-text")
19129 (commit version)))
19130 (file-name (git-file-name name version))
19131 (sha256
19132 (base32 "06jxk5g23822gfmwrxhc34zand3dr8p2wjh1zs3j61ibz6n0nmz1"))))
19133 (build-system emacs-build-system)
19134 (home-page "https://github.com/emacsfodder/move-text")
19135 (synopsis "Move current line or region with M-up or M-down")
19136 (description "This package provide functions to move the current line
19137 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
19138 region instead.")
19139 (license license:gpl3+)))
19140
19141 (define-public emacs-validate
19142 (package
19143 (name "emacs-validate")
19144 (version "1.0.5")
19145 (source (origin
19146 (method git-fetch)
19147 (uri (git-reference
19148 (url "https://github.com/Malabarba/validate.el")
19149 (commit version)))
19150 (file-name (git-file-name name version))
19151 (sha256
19152 (base32
19153 "1l12ibx6cw4mgicgjpw71fb4fr4sd0k54lvbpq7ngc29br3j6i4v"))))
19154 (build-system emacs-build-system)
19155 (home-page "https://github.com/Malabarba/validate.el")
19156 (synopsis "Emacs library for scheme validation")
19157 (description "This Emacs library provides two functions that perform
19158 schema validation.")
19159 (license license:gpl3+)))
19160
19161 (define-public emacs-rainbow-blocks
19162 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
19163 (package
19164 (name "emacs-rainbow-blocks")
19165 (version (git-version "1.0.0" "1" commit))
19166 (source (origin
19167 (method git-fetch)
19168 (uri (git-reference
19169 (url "https://github.com/istib/rainbow-blocks")
19170 (commit commit)))
19171 (file-name (git-file-name name version))
19172 (sha256
19173 (base32
19174 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
19175 (build-system emacs-build-system)
19176 (home-page "https://github.com/istib/rainbow-blocks")
19177 (synopsis "Highlight sexp blocks")
19178 (description "Rainbow-blocks is an Emacs mode that highlights blocks
19179 made of parentheses, brackets, and braces according to their depth. Each
19180 successive level is highlighted in a different color. This makes it easy to
19181 orient yourself in the code, and tell which statements are at a given level.")
19182 (license license:gpl3+))))
19183
19184 (define-public emacs-hierarchy
19185 (package
19186 (name "emacs-hierarchy")
19187 (version "0.7.0")
19188 (source
19189 (origin
19190 (method git-fetch)
19191 (uri (git-reference
19192 (url "https://github.com/DamienCassou/hierarchy")
19193 (commit (string-append "v" version))))
19194 (file-name (git-file-name name version))
19195 (sha256
19196 (base32 "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r"))))
19197 (build-system emacs-build-system)
19198 (native-inputs
19199 (list emacs-buttercup))
19200 (arguments
19201 `(#:tests? #t
19202 #:test-command '("buttercup" "-L" ".")))
19203 (home-page "https://github.com/DamienCassou/hierarchy")
19204 (synopsis "Library to create and display hierarchy structures")
19205 (description "This package provides an Emacs library to create, query,
19206 navigate and display hierarchy structures.")
19207 (license license:gpl3+)))
19208
19209 (define-public emacs-tree-mode
19210 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
19211 (revision "1"))
19212 (package
19213 (name "emacs-tree-mode")
19214 (version (string-append "0.0.1" "-" revision "."
19215 (string-take commit 7)))
19216 (source
19217 (origin
19218 (method git-fetch)
19219 (uri (git-reference
19220 (url "https://github.com/emacsorphanage/tree-mode")
19221 (commit commit)))
19222 (file-name (git-file-name name version))
19223 (sha256
19224 (base32
19225 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
19226 (build-system emacs-build-system)
19227 (home-page "https://github.com/emacsorphanage/tree-mode")
19228 (synopsis "Emacs mode to manage tree widgets")
19229 (description
19230 "This package provides an Emacs library to manage tree widgets.")
19231 (license license:gpl3+))))
19232
19233 (define-public emacs-md4rd
19234 (package
19235 (name "emacs-md4rd")
19236 (version "0.3.1")
19237 (source (origin
19238 (method git-fetch)
19239 (uri (git-reference
19240 (url "https://github.com/ahungry/md4rd")
19241 (commit version)))
19242 (file-name (git-file-name name version))
19243 (sha256
19244 (base32
19245 "1n6g6k4adzkkn1g7z4j27s35xy12c1fg2r08gv345ddr3wplq4ri"))))
19246 (propagated-inputs
19247 (list emacs-hierarchy emacs-request emacs-dash emacs-s
19248 emacs-tree-mode))
19249 (build-system emacs-build-system)
19250 (home-page "https://github.com/ahungry/md4rd")
19251 (synopsis "Emacs Mode for Reddit")
19252 (description
19253 "This package allows reading Reddit from within Emacs interactively.")
19254 (license license:gpl3+)))
19255
19256 (define-public emacs-pulseaudio-control
19257 (let ((commit "a931533140547510decdc368f39b2d2b97ca725f")
19258 (revision "4"))
19259 (package
19260 (name "emacs-pulseaudio-control")
19261 (version (git-version "0.0.1" revision commit))
19262 (source
19263 (origin
19264 (method git-fetch)
19265 (uri (git-reference
19266 (url "https://github.com/flexibeast/pulseaudio-control")
19267 (commit commit)))
19268 (file-name (git-file-name name version))
19269 (sha256
19270 (base32
19271 "1jvjn9jszjjapi167an49jxcvr88cvgjwykglhp4b8lwhbjfqw76"))))
19272 (build-system emacs-build-system)
19273 (arguments
19274 '(#:phases (modify-phases %standard-phases
19275 (add-after 'unpack 'patch-file-name
19276 (lambda* (#:key inputs #:allow-other-keys)
19277 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
19278 (chmod "pulseaudio-control.el" #o600)
19279 (emacs-substitute-variables "pulseaudio-control.el"
19280 ("pulseaudio-control-pactl-path"
19281 (string-append pulseaudio "/bin/pactl")))
19282 #t))))))
19283 (inputs (list pulseaudio))
19284 (home-page "https://github.com/flexibeast/pulseaudio-control")
19285 (synopsis "Control @code{pulseaudio} from Emacs")
19286 (description
19287 "This package allows controlling @code{pulseaudio} from Emacs.")
19288 (license license:gpl3+))))
19289
19290 (define-public emacs-pulsar
19291 (package
19292 (name "emacs-pulsar")
19293 (version "0.3.0")
19294 (source (origin
19295 (method git-fetch)
19296 (uri (git-reference
19297 (url "https://git.sr.ht/~protesilaos/pulsar")
19298 (commit version)))
19299 (file-name (git-file-name name version))
19300 (sha256
19301 (base32
19302 "09s1r9zqc28g75jjxajdm34ni4m7gynh0xsffy5d60c50igiqa94"))))
19303 (native-inputs (list texinfo))
19304 (build-system emacs-build-system)
19305 (arguments
19306 (list
19307 #:phases
19308 #~(modify-phases %standard-phases
19309 (add-after 'install 'makeinfo
19310 (lambda _
19311 (invoke "emacs"
19312 "--batch"
19313 "--eval=(require 'ox-texinfo)"
19314 "--eval=(find-file \"README.org\")"
19315 "--eval=(org-texinfo-export-to-info)")
19316 (install-file "pulsar.info" (string-append #$output "/share/info")))))))
19317 (home-page "https://protesilaos.com/emacs/pulsar")
19318 (synopsis "Pulse highlight line on demand or after running select functions")
19319 (description "This package temporarily highlights the current line after a
19320 given function is invoked.")
19321 (license (list license:gpl3+
19322 license:fdl1.3+)))) ; GFDLv1.3+ for the manual
19323
19324 (define-public emacs-datetime
19325 (package
19326 (name "emacs-datetime")
19327 (version "0.7.2")
19328 (source
19329 (origin
19330 (method git-fetch)
19331 (uri (git-reference
19332 (url "https://github.com/doublep/datetime")
19333 (commit version)))
19334 (file-name (git-file-name name version))
19335 (sha256
19336 (base32 "10nf3y4abwkwvi4g11mdwi0dydy4kzfyv21y06dsxm1hc1gmq7zx"))))
19337 (build-system emacs-build-system)
19338 (arguments
19339 `(#:include (cons "^[^/]*\\.extmap$" %default-include)))
19340 (inputs
19341 (list emacs-extmap))
19342 (home-page "https://github.com/doublep/datetime/")
19343 (synopsis "Library to work with dates in Emacs")
19344 (description "Parsing, formatting, matching and recoding
19345 timestamps and date-time format strings library for Emacs.")
19346 (license license:gpl3+)))
19347
19348 (define-public emacs-org-mind-map
19349 ;; XXX: Upstream does not provide any tag. The commit below corresponds to
19350 ;; an exact version bump from the main file.
19351 (let ((commit "477701b15cb0c8ed7f021ca76a4cb1a7d9ad6aa5"))
19352 (package
19353 (name "emacs-org-mind-map")
19354 (version "0.4")
19355 (source
19356 (origin
19357 (method git-fetch)
19358 (uri (git-reference
19359 (url "https://github.com/theodorewiles/org-mind-map")
19360 (commit commit)))
19361 (file-name (git-file-name name version))
19362 (sha256
19363 (base32 "08sj43py6aid4vpqgsm0v5n94mcmcil0047qjk033492glz6q55c"))))
19364 (propagated-inputs
19365 (list emacs-dash))
19366 (build-system emacs-build-system)
19367 (home-page "https://github.com/theodorewiles/org-mind-map")
19368 (synopsis "Create Graphviz directed graphs from Org files")
19369 (description
19370 "This package creates Graphviz directed graphs from Org files.")
19371 (license license:gpl3+))))
19372
19373 (define-public emacs-npm-mode
19374 (package
19375 (name "emacs-npm-mode")
19376 (version "0.6.0")
19377 (source
19378 (origin
19379 (method git-fetch)
19380 (uri (git-reference
19381 (url "https://github.com/mojochao/npm-mode")
19382 (commit version)))
19383 (file-name (git-file-name name version))
19384 (sha256
19385 (base32 "1mh6nbffciw4yhv049kdhh796ysj1x21ndm3fwymhskb3dy0w1ss"))))
19386 (build-system emacs-build-system)
19387 (home-page "https://github.com/mojochao/npm-mode")
19388 (synopsis "Minor mode for working with @code{npm} projects")
19389 (description
19390 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
19391 (license license:gpl3+)))
19392
19393 (define-public emacs-itail
19394 ;; XXX: Upstream provides no tags. The commit below corresponds to an exact
19395 ;; version bump from main file.
19396 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888"))
19397 (package
19398 (name "emacs-itail")
19399 (version "0.0.8")
19400 (source
19401 (origin
19402 (method git-fetch)
19403 (uri (git-reference
19404 (url "https://github.com/re5et/itail")
19405 (commit commit)))
19406 (file-name (git-file-name name version))
19407 (sha256
19408 (base32 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
19409 (build-system emacs-build-system)
19410 (home-page "https://github.com/re5et/itail")
19411 (synopsis "Interactive @code{tail} Emacs mode")
19412 (description "@code{itail} provides interactive @code{tail} mode that
19413 allows you to filter the tail with Unix pipes and highlight the contents of
19414 the tailed file. It works locally or on remote files using Tramp.")
19415 (license license:gpl3+))))
19416
19417 (define-public emacs-loop
19418 (package
19419 (name "emacs-loop")
19420 (version "1.3")
19421 (source
19422 (origin
19423 (method git-fetch)
19424 (uri (git-reference
19425 (url "https://github.com/Wilfred/loop.el")
19426 (commit version)))
19427 (file-name (git-file-name name version))
19428 (sha256
19429 (base32 "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x"))))
19430 (build-system emacs-build-system)
19431 (native-inputs
19432 (list emacs-ert-runner emacs-undercover))
19433 (arguments
19434 `(#:tests? #t
19435 #:test-command '("ert-runner")))
19436 (home-page "https://github.com/Wilfred/loop.el")
19437 (synopsis "Imperative loop structures for Emacs")
19438 (description "Loop structures familiar to users of other languages. This
19439 library adds a selection of popular loop structures as well as break and
19440 continue.")
19441 (license license:gpl3+)))
19442
19443 (define-public emacs-elisp-refs
19444 (package
19445 (name "emacs-elisp-refs")
19446 (version "1.4")
19447 (source
19448 (origin
19449 (method git-fetch)
19450 (uri (git-reference
19451 (url "https://github.com/Wilfred/elisp-refs")
19452 (commit version)))
19453 (file-name (git-file-name name version))
19454 (sha256
19455 (base32 "03p95kwvwb3apb3lhhdlaxs952x7sdlxa2qc1c77cjwrm5xzdg9z"))))
19456 (build-system emacs-build-system)
19457 (propagated-inputs
19458 (list emacs-dash
19459 emacs-f
19460 emacs-list-utils
19461 emacs-loop
19462 emacs-s
19463 emacs-shut-up))
19464 (native-inputs
19465 (list emacs-ert-runner emacs-undercover))
19466 (arguments
19467 (list
19468 #:tests? #t
19469 #:test-command #~(list "ert-runner")))
19470 (home-page "https://github.com/Wilfred/elisp-refs")
19471 (synopsis "Find callers of elisp functions or macros")
19472 (description "@code{elisp-refs} finds references to functions, macros or
19473 variables. Unlike a dumb text search, it actually parses the code, so it's
19474 never confused by comments or @code{foo-bar} matching @code{foo}.")
19475 (license license:gpl3+)))
19476
19477 (define-public emacs-crdt
19478 ;; XXX: Upstream does not always tag new releases. The commit below
19479 ;; corresponds exactly to latest version bump.
19480 (let ((commit "77be6cded0e2d24fc9c132032ae3bf7ae8ed2cf9")
19481 (version "0.3.0"))
19482 (package
19483 (name "emacs-crdt")
19484 (version version)
19485 (source
19486 (origin
19487 (method git-fetch)
19488 (uri (git-reference
19489 (url "https://code.librehq.com/qhong/crdt.el")
19490 (commit commit)))
19491 (file-name (git-file-name name version))
19492 (sha256
19493 (base32 "0irf2allz7bp696nqlgg70ma6n336bspz8794bff1s1pramrzlhz"))))
19494 (build-system emacs-build-system)
19495 (home-page "https://code.librehq.com/qhong/crdt.el")
19496 (synopsis "Real-time collaborative editing environment")
19497 (description
19498 "@code{crdt.el} is a real-time collaborative editing environment for
19499 Emacs using Conflict-free Replicated Data Types. With it, you can share
19500 multiple buffer in one session, and see other users’ cursor and region. It
19501 also synchronizes Org mode folding status. It should work with all of Org
19502 mode.")
19503 (license license:gpl3+))))
19504
19505 (define-public emacs-crux
19506 (package
19507 (name "emacs-crux")
19508 (version "0.4.0")
19509 (source
19510 (origin
19511 (method git-fetch)
19512 (uri (git-reference
19513 (url "https://github.com/bbatsov/crux")
19514 (commit (string-append "v" version))))
19515 (file-name (git-file-name name version))
19516 (sha256
19517 (base32
19518 "1h28chpyq61k72qh749r5kqq1y70wx3xw9c3zyfzmy750wlw6nyj"))))
19519 (build-system emacs-build-system)
19520 (home-page "https://github.com/bbatsov/crux")
19521 (synopsis "Collection of useful functions for Emacs")
19522 (description
19523 "@code{crux} provides a collection of useful functions for Emacs.")
19524 (license license:gpl3+)))
19525
19526 (define-public emacs-edit-server
19527 (package
19528 (name "emacs-edit-server")
19529 (version "1.16")
19530 (source
19531 (origin
19532 (method git-fetch)
19533 (uri (git-reference
19534 (url "https://github.com/stsquad/emacs_chrome")
19535 (commit (string-append "v" version))))
19536 (file-name (git-file-name name version))
19537 (sha256
19538 (base32 "0m7gj224sqxjjw5sxky92fnrxg9jy4nf33kwf0aqxnfhqlgh545k"))))
19539 (build-system emacs-build-system)
19540 (arguments
19541 `(#:phases
19542 (modify-phases %standard-phases
19543 (add-after 'unpack 'chdir-elisp
19544 ;; Elisp directory is not in root of the source.
19545 (lambda _
19546 (chdir "servers"))))))
19547 (propagated-inputs (list emacs-ert-async))
19548 (home-page "https://github.com/stsquad/emacs_chrome")
19549 (synopsis "Server that responds to edit requests from Chromium")
19550 (description
19551 "This package provides an edit server to respond to requests from Emacs.")
19552 (license license:gpl3+)))
19553
19554 (define-public emacs-m-buffer-el
19555 (package
19556 (name "emacs-m-buffer-el")
19557 (version "0.15")
19558 (source
19559 (origin
19560 (method git-fetch)
19561 (uri (git-reference
19562 (url "https://github.com/phillord/m-buffer-el")
19563 (commit (string-append "v" version))))
19564 (file-name (git-file-name name version))
19565 (sha256
19566 (base32
19567 "1sx76i59razwccvn6x7rx5a124bfyjw9fcbxf4gj7nsg33qiq809"))))
19568 (arguments
19569 (list
19570 #:phases
19571 #~(modify-phases %standard-phases
19572 (add-before 'install 'check
19573 (lambda* (#:key tests? #:allow-other-keys)
19574 (when tests?
19575 (invoke "emacs" "--batch" "-L" "."
19576 "-l" "test/m-buffer-test.el"
19577 "-l" "test/m-buffer-at-test.el"
19578 "-f" "ert-run-tests-batch-and-exit")))))))
19579 (build-system emacs-build-system)
19580 (home-page "https://github.com/phillord/m-buffer-el")
19581 (synopsis "List oriented buffer operations for Emacs")
19582 (description "@code{m-buffer} provides a set of list-orientated functions
19583 for operating over the contents of Emacs buffers.")
19584 (license license:gpl3+)))
19585
19586 (define-public emacs-let-alist
19587 (package
19588 (name "emacs-let-alist")
19589 (version "1.0.6")
19590 (source
19591 (origin
19592 (method url-fetch)
19593 (uri (string-append
19594 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
19595 (sha256
19596 (base32 "0szj7vnjzz4zci5fvz7xqgcpi4pzdyyf4qi2s8xar2hi7v3yaawr"))))
19597 (build-system emacs-build-system)
19598 (home-page "https://elpa.gnu.org/packages/let-alist.html")
19599 (synopsis "Easily let-bind values of an assoc-list by their names")
19600 (description "This package offers a single macro, @code{let-alist}. This
19601 macro takes a first argument (whose value must be an alist) and a body.")
19602 (license license:gpl3+)))
19603
19604 (define-public emacs-esup
19605 (let ((commit "0de8af8233d9ce1b67f05a50f25c481c4f1118d8")
19606 (revision "1"))
19607 (package
19608 (name "emacs-esup")
19609 (version (git-version "0.7.1" revision commit))
19610 (source
19611 (origin
19612 (method git-fetch)
19613 (uri (git-reference
19614 (url "https://github.com/jschaf/esup")
19615 (commit commit)))
19616 (file-name (git-file-name name version))
19617 (sha256
19618 (base32
19619 "01khb3xyj0ylwib6ryzzvqmkh5wvzxiq2n3l0s3h9zv7wx849bzv"))))
19620 (build-system emacs-build-system)
19621 (native-inputs
19622 (list emacs-noflet emacs-undercover emacs-buttercup))
19623 (propagated-inputs
19624 (list emacs-dash))
19625 (arguments
19626 `(#:tests? #t
19627 #:test-command '("buttercup" "-L" ".")))
19628 (home-page "https://github.com/jschaf/esup")
19629 (synopsis "Emacs start up profiler")
19630 (description "Benchmark Emacs Startup time without ever leaving
19631 your Emacs.")
19632 (license license:gpl2+))))
19633
19634 (define-public emacs-restart-emacs
19635 (let ((commit "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9")
19636 (revision "1"))
19637 (package
19638 (name "emacs-restart-emacs")
19639 (version (git-version "0.1.1" revision commit))
19640 (source
19641 (origin
19642 (method git-fetch)
19643 (uri (git-reference
19644 (url "https://github.com/iqbalansari/restart-emacs")
19645 (commit commit)))
19646 (file-name (git-file-name name version))
19647 (sha256
19648 (base32 "02x1a85k7r95z8091zgjiaj9nf0zvx1jy4xvl3hr12qbnrx1wfav"))))
19649 (build-system emacs-build-system)
19650 (home-page "https://github.com/iqbalansari/restart-emacs")
19651 (synopsis "Restart Emacs from within Emacs")
19652 (description "This package provides a simple command to restart Emacs from
19653 within Emacs.")
19654 (license license:gpl3+))))
19655
19656 (define-public emacs-svg-lib
19657 ;; XXX: Upstream does not tag releases. The commit hash below corresponds
19658 ;; to the version bump.
19659 (let ((commit "0486c9453449771bc3f5872f70bc5cb23580d0f4"))
19660 (package
19661 (name "emacs-svg-lib")
19662 (version "0.2.5")
19663 (source
19664 (origin
19665 (method git-fetch)
19666 (uri (git-reference
19667 (url "https://github.com/rougier/svg-lib")
19668 (commit commit)))
19669 (file-name (git-file-name name version))
19670 (sha256
19671 (base32 "059vd4k7bvskkriwaiz4n2yafc3inndrr018hqfpic4k02cbwzpv"))))
19672 (build-system emacs-build-system)
19673 (home-page "https://github.com/rougier/svg-lib")
19674 (synopsis "Emacs SVG library for creating tags, icons and bars")
19675 (description
19676 "This is a small Emacs library to create and display various
19677 SVG objects, namely tags, progress bars, progress pies and icons.
19678 Each object is guaranteed to fit nicely in a text buffer ensuring
19679 width is an integer multiple of character width.")
19680 (license license:gpl3+))))
19681
19682 (define-public emacs-svg-tag-mode
19683 ;; XXX: Upstream does not tag releases. The commit hash below corresponds
19684 ;; to the version bump.
19685 (let ((commit "3b07983614bee0195534e7a8a6dcfab757da4f0b"))
19686 (package
19687 (name "emacs-svg-tag-mode")
19688 (version "0.3.2")
19689 (source
19690 (origin
19691 (method git-fetch)
19692 (uri (git-reference
19693 (url "https://github.com/rougier/svg-tag-mode")
19694 (commit commit)))
19695 (file-name (git-file-name name version))
19696 (sha256
19697 (base32 "0nc0y2dn67gy9cly3yamskfd9dd028xbask8gjxql934bq0ads2i"))))
19698 (build-system emacs-build-system)
19699 (propagated-inputs
19700 (list emacs-svg-lib))
19701 (home-page "https://github.com/rougier/svg-tag-mode")
19702 (synopsis "Replace keywords with SVG tags")
19703 (description "This package provides a minor mode that replaces keywords
19704 or expressions with SVG rounded box labels that are fully customizable.")
19705 (license license:gpl3+))))
19706
19707 (define-public emacs-kind-icon
19708 (package
19709 (name "emacs-kind-icon")
19710 (version "0.1.5")
19711 (source
19712 (origin
19713 (method url-fetch)
19714 (uri (string-append "https://elpa.gnu.org/packages/kind-icon-"
19715 version ".tar"))
19716 (sha256
19717 (base32 "0qajj89vkgc9gbgff6akzll53jy0kgkv6c9jvwpl32rbg8v0wp63"))))
19718 (build-system emacs-build-system)
19719 (propagated-inputs (list emacs-svg-lib))
19720 (home-page "https://github.com/jdtsmith/kind-icon")
19721 (synopsis "Completion kind icons in Emacs")
19722 (description "Kind-icon mode adds a colorful icon or text prefix based
19723 on :company-kind for compatible completion UIs. The \"kind\" prefix is
19724 typically used for differentiating completion candidates such as variables,
19725 functions, etc.")
19726 (license license:gpl3+)))
19727
19728 (define-public emacs-svg-icon
19729 (let ((commit "ebc2b8d0f6c680fd575a90e683cc7b832acd1eb7")
19730 (revision "1"))
19731 (package
19732 (name "emacs-svg-icon")
19733 (version (git-version "0.1" revision commit))
19734 (source
19735 (origin
19736 (method git-fetch)
19737 (uri (git-reference
19738 (url "https://github.com/rougier/emacs-svg-icon")
19739 (commit commit)))
19740 (file-name (git-file-name name version))
19741 (sha256
19742 (base32 "1qzqfa8xyw1nkb89kbvw9qcgdwr8g017n8gf3yzwn816qhkfkjrj"))))
19743 (build-system emacs-build-system)
19744 (home-page "https://github.com/rougier/emacs-svg-icon")
19745 (synopsis "Emacs library to create SVG icons on the fly")
19746 (description "This library allows creating SVG icons by parsing remote
19747 collections whose license are compatibles with Emacs. The default size of an
19748 icon is exactly 2x1 characters such that it can be inserted inside a text
19749 without disturbing alignment.")
19750 (license (list license:gpl3+)))))
19751
19752 (define-public emacs-sourcemap
19753 (package
19754 (name "emacs-sourcemap")
19755 (version "0.03")
19756 (source
19757 (origin
19758 (method git-fetch)
19759 (uri (git-reference
19760 (url "https://github.com/syohex/emacs-sourcemap")
19761 (commit version)))
19762 (file-name (git-file-name name version))
19763 (sha256
19764 (base32 "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582"))))
19765 (build-system emacs-build-system)
19766 (home-page "https://github.com/syohex/emacs-sourcemap")
19767 (synopsis "Sourcemap parser")
19768 (description "Sourcemap parser")
19769 (license license:gpl3+)))
19770
19771 (define-public emacs-macrostep
19772 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
19773 (package
19774 (name "emacs-macrostep")
19775 (version (git-version "0.9" "1" commit))
19776 (source (origin
19777 (method git-fetch)
19778 (uri (git-reference
19779 (url "https://github.com/joddie/macrostep")
19780 (commit commit)))
19781 (file-name (git-file-name name version))
19782 (sha256
19783 (base32
19784 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
19785 (build-system emacs-build-system)
19786 (arguments
19787 (list
19788 #:tests? #t
19789 #:phases
19790 #~(modify-phases %standard-phases
19791 (add-before 'check 'remove-test
19792 ;; Fails because of requirement ‘/bin/sh’.
19793 (lambda _
19794 (let ((file "macrostep-test.el"))
19795 (make-file-writable file)
19796 (emacs-batch-edit-file file
19797 `(progn (progn (goto-char (point-min))
19798 (re-search-forward
19799 "(ert-deftest macrostep-expand-c-macros")
19800 (beginning-of-line)
19801 (kill-sexp))
19802 (basic-save-buffer))))))
19803 (replace 'check
19804 (lambda* (#:key tests? #:allow-other-keys)
19805 (when tests?
19806 (invoke "emacs" "--batch" "-L" "."
19807 "-l" "macrostep-test.el"
19808 "-f" "ert-run-tests-batch-and-exit")))))))
19809 (home-page "https://github.com/joddie/macrostep")
19810 (synopsis "Interactive macro-expander for Emacs")
19811 (description "@code{macrostep} is an Emacs minor mode for interactively
19812 stepping through the expansion of macros in Emacs Lisp source code. It lets
19813 you see exactly what happens at each step of the expansion process by
19814 pretty-printing the expanded forms inline in the source buffer, which is
19815 temporarily read-only while macro expansions are visible. You can expand and
19816 collapse macro forms one step at a time, and evaluate or instrument the
19817 expansions for debugging with Edebug as normal.")
19818 (license license:gpl3+))))
19819
19820 (define-public emacs-parent-mode
19821 (package
19822 (name "emacs-parent-mode")
19823 (version "2.3")
19824 (source
19825 (origin
19826 (method git-fetch)
19827 (uri (git-reference
19828 (url "https://github.com/Fanael/parent-mode")
19829 (commit version)))
19830 (file-name (git-file-name name version))
19831 (sha256
19832 (base32 "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni"))))
19833 (build-system emacs-build-system)
19834 (home-page "https://github.com/Fanael/parent-mode")
19835 (synopsis "Get major mode's parent modes")
19836 (description "Get major mode's parent modes")
19837 (license license:gpl3+)))
19838
19839 (define-public emacs-lacarte
19840 (package
19841 (name "emacs-lacarte")
19842 (version "0.1")
19843 (source (origin
19844 (method url-fetch)
19845 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
19846 (sha256
19847 (base32
19848 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
19849 (build-system emacs-build-system)
19850 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
19851 (synopsis "Execute menu items as commands, with completion")
19852 (description "Execute menu items as commands, with completion.")
19853 (license license:gpl3)))
19854
19855 (define-public emacs-latex-preview-pane
19856 (let ((commit "5297668a89996b50b2b62f99cba01cc544dbed2e")
19857 (revision "0"))
19858 (package
19859 (name "emacs-latex-preview-pane")
19860 (version (git-version "20151021" revision commit))
19861 (source (origin
19862 (method git-fetch)
19863 (uri (git-reference
19864 (url "https://github.com/jsinglet/latex-preview-pane")
19865 (commit commit)))
19866 (file-name (git-file-name name version))
19867 (sha256
19868 (base32
19869 "1m4f5p53275k8i9p0y105kkrp9nx1bwn6726my9s5dwnjhr5dnp2"))))
19870 (build-system emacs-build-system)
19871 (arguments
19872 (list
19873 ;; The welcome and error message templates are in .txt format.
19874 #:include #~(cons "\\.txt$" %default-include)))
19875 (home-page "https://github.com/jsinglet/latex-preview-pane")
19876 (synopsis "Preview pane to ease LaTeX editing in Emacs")
19877 (description "@code{latex-preview-pane} is a minor mode for previewing
19878 LaTeX files directly in Emacs. It supports PDF previews, with either
19879 @command{pdflatex} or @command{xelatex}, and highlights errors in the LaTeX
19880 buffer.")
19881 (license license:gpl3+))))
19882
19883 (define-public emacs-isearch-prop
19884 (let ((commit "4a2765f835dd115d472142da05215c4c748809f4")
19885 (revision "2"))
19886 (package
19887 (name "emacs-isearch-prop")
19888 (version (git-version "0" revision commit))
19889 (source
19890 (origin
19891 (method git-fetch)
19892 (uri (git-reference
19893 (url "https://github.com/emacsmirror/isearch-prop")
19894 (commit commit)))
19895 (file-name (git-file-name name version))
19896 (sha256
19897 (base32
19898 "06gdk5m84q6pxwng8rjxny1zkll8f3m2x6lw4xyib2dvg7iaslh3"))))
19899 (build-system emacs-build-system)
19900 (home-page "https://www.emacswiki.org/emacs/isearch-prop.el")
19901 (synopsis "Extensions to @code{isearch.el}")
19902 (description "The Emacs library @code{isearch-prop.el} lets you search within
19903 contexts. You can limit incremental search to a set of zones of
19904 buffer text, search contexts that in effect constitute a multi-region.
19905 These zones can be defined in various ways, including some ways
19906 provided specially by this library.")
19907 (license license:gpl3+))))
19908
19909 (define-public emacs-company-lua
19910 (let ((commit "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52")
19911 (revision "2"))
19912 (package
19913 (name "emacs-company-lua")
19914 (version (git-version "0.1" "2" commit))
19915 (source
19916 (origin
19917 (method git-fetch)
19918 (uri (git-reference
19919 (url "https://github.com/ptrv/company-lua")
19920 (commit commit)))
19921 (file-name (git-file-name name version))
19922 (sha256
19923 (base32
19924 "0ny2dcc7c585p7v3j6q0rpkbj1qmf2ismy8a5020jpr585xvz0hh"))))
19925 (build-system emacs-build-system)
19926 (propagated-inputs
19927 (list emacs-company emacs-s emacs-f emacs-lua-mode))
19928 (arguments
19929 `(#:include (cons* "^lua\\/" %default-include)))
19930 (home-page "https://github.com/ptrv/company-lua")
19931 (synopsis "Company backend for Lua")
19932 (description
19933 "This package provides Company backend for Lua programming language.")
19934 (license license:gpl3+))))
19935
19936 (define-public emacs-beginend
19937 (package
19938 (name "emacs-beginend")
19939 (version "2.3.0")
19940 (source
19941 (origin
19942 (method git-fetch)
19943 (uri (git-reference
19944 (url "https://github.com/DamienCassou/beginend")
19945 (commit (string-append "v" version))))
19946 (file-name (git-file-name name version))
19947 (sha256
19948 (base32 "17r8v1sjvgcmprywny9fdg54x4pssp8p7a9ivv5mrygkqjz1vykk"))))
19949 ;; TODO: Run tests.
19950 (build-system emacs-build-system)
19951 (inputs
19952 (list emacs-undercover)) ; For tests.
19953 (home-page "https://github.com/DamienCassou/beginend")
19954 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
19955 (description "@code{beginend} redefines @code{M-<} and @code{M->}
19956 keybindings for Emacs modes so that point moves to meaningful
19957 locations. Redefined keys are still accessible by pressing the same
19958 key again.")
19959 (license license:gpl3+)))
19960
19961 (define-public emacs-mbsync
19962 (let ((commit "b62491c0e0d89eb9c66261a16d7ac81231c9c453")
19963 (revision "4"))
19964 (package
19965 (name "emacs-mbsync")
19966 (version (git-version "0.1.2" revision commit))
19967 (source
19968 (origin
19969 (method git-fetch)
19970 (uri (git-reference
19971 (url "https://github.com/dimitri/mbsync-el")
19972 (commit commit)))
19973 (file-name (git-file-name name version))
19974 (sha256
19975 (base32
19976 "1zlih37mkqjn2czl12zn7lgxxljvrwhqqpbksj9c91zn0f0rm3mz"))))
19977 (build-system emacs-build-system)
19978 (home-page "https://github.com/dimitri/mbsync-el")
19979 (synopsis "Interface to mbsync for Emacs")
19980 (description "This package calls @code{mbsync} from
19981 within Emacs.")
19982 (license license:gpl3+))))
19983
19984 (define-public emacs-ibuffer-projectile
19985 (package
19986 (name "emacs-ibuffer-projectile")
19987 (version "0.3")
19988 (source
19989 (origin
19990 (method git-fetch)
19991 (uri (git-reference
19992 (url "https://github.com/purcell/ibuffer-projectile")
19993 (commit version)))
19994 (file-name (git-file-name name version))
19995 (sha256
19996 (base32
19997 "18cqxnwzzbkcj9jcaw89b210432yzhrl1dwsv48p0jbhfnr17k41"))))
19998 (build-system emacs-build-system)
19999 (propagated-inputs
20000 (list emacs-projectile))
20001 (home-page "https://github.com/purcell/ibuffer-projectile")
20002 (synopsis "Group ibuffer's list by projectile root")
20003 (description "Adds functionality to Emacs @code{ibuffer} for
20004 grouping buffers by their projectile root directory.")
20005 (license license:gpl3+)))
20006
20007 (define-public emacs-ibuffer-vc
20008 (package
20009 (name "emacs-ibuffer-vc")
20010 (version "0.11")
20011 (source
20012 (origin
20013 (method git-fetch)
20014 (uri (git-reference
20015 (url "https://github.com/purcell/ibuffer-vc")
20016 (commit version)))
20017 (file-name (git-file-name name version))
20018 (sha256
20019 (base32 "1mgn7b786j4hwq1ks012hxxgvrfn5rz90adi2j190gmjz60rc5g5"))))
20020 (build-system emacs-build-system)
20021 (home-page "https://github.com/purcell/ibuffer-vc")
20022 (synopsis "Group Ibuffer's list by revision control system indications")
20023 (description
20024 "Ibuffer-VC adds functionality to Ibuffer for grouping buffers by their
20025 parent revision control system root directory, and for displaying, or sorting,
20026 by the status of listed files.")
20027 (license license:gpl3+)))
20028
20029 (define-public emacs-elm-mode
20030 (package
20031 (name "emacs-elm-mode")
20032 (version "0.22.0")
20033 (source
20034 (origin
20035 (method git-fetch)
20036 (uri
20037 (git-reference
20038 (url "https://github.com/jcollard/elm-mode")
20039 (commit (string-append "v" version))))
20040 (file-name (git-file-name name version))
20041 (sha256
20042 (base32 "1gnr61ibzcznfqy5f8capmbz75rcfikwy106rjdmp45qz2jwp4di"))))
20043 (propagated-inputs
20044 (list emacs-dash emacs-f emacs-reformatter emacs-s))
20045 (build-system emacs-build-system)
20046 (home-page "https://github.com/jcollard/elm-mode")
20047 (synopsis "Emacs major mode for editing Elm source code")
20048 (description
20049 "This package provides a major mode for editing Elm source code, and
20050 working with common core and third-party Elm tools. Its features are:
20051
20052 @itemize
20053 @item Syntax highlighting
20054 @item Intelligent indentation
20055 @item Integration with elm-make
20056 @item Integration with elm-repl
20057 @item Integration with elm-reactor
20058 @item Integration with elm-package
20059 @item Integration with elm-oracle
20060 @item Integration with elm-format
20061 @item Integration with elm-test
20062 @end itemize")
20063 (license license:gpl3+)))
20064
20065 (define-public emacs-helm-mode-manager
20066 (package
20067 (name "emacs-helm-mode-manager")
20068 (version "1.0.0")
20069 (source
20070 (origin
20071 (method git-fetch)
20072 (uri (git-reference
20073 (url "https://github.com/istib/helm-mode-manager")
20074 (commit version)))
20075 (file-name (git-file-name name version))
20076 (sha256
20077 (base32
20078 "1srx5f0s9x7zan7ayqd6scxfhcvr3nkd4yzs96hphd87rb18apzk"))))
20079 (build-system emacs-build-system)
20080 (propagated-inputs
20081 (list emacs-helm))
20082 (home-page "https://github.com/istib/helm-mode-manager/")
20083 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
20084 (description "This package provides a Helm interface for toggling Emacs
20085 major or minor mode.
20086
20087 @itemize
20088 @item @code{helm-switch-major-mode} list of all major modes
20089 @item @code{helm-enable-minor-mode} list of all inactive minor modes
20090 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
20091 @end itemize\n
20092
20093 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
20094 documentation.")
20095 (license license:gpl3+)))
20096
20097 (define-public emacs-hy-mode
20098 (package
20099 (name "emacs-hy-mode")
20100 (version "1.0.4")
20101 (source
20102 (origin
20103 (method git-fetch)
20104 (uri (git-reference
20105 (url "https://github.com/hylang/hy-mode")
20106 (commit (string-append "v" version))))
20107 (file-name (git-file-name name version))
20108 (sha256
20109 (base32 "0gihxlmfminadaqdr8d2zccd7wwygl3m0gfzxsk5izi7f8hl4w7f"))))
20110 (build-system emacs-build-system)
20111 (propagated-inputs
20112 (list emacs-dash emacs-s))
20113 (home-page "https://github.com/hylang/hy-mode")
20114 (synopsis "Major mode for Hylang")
20115 (description "This package provides a major mode for Hylang.")
20116 (license license:gpl3+)))
20117
20118 (define-public emacs-web-beautify
20119 (package
20120 (name "emacs-web-beautify")
20121 (version "0.3.2")
20122 (source
20123 (origin
20124 (method git-fetch)
20125 (uri (git-reference
20126 (url "https://github.com/yasuyk/web-beautify")
20127 (commit version)))
20128 (file-name (git-file-name name version))
20129 (sha256
20130 (base32 "0vms7zz3ym53wf1zdrkbf2ky2xjr1v134ngsd0jr8azyi8siw84d"))))
20131 (build-system emacs-build-system)
20132 (home-page "https://github.com/yasuyk/web-beautify")
20133 (synopsis "Format HTML, CSS and JavaScript, JSON")
20134 (description "This package provides an Emacs functions to format HTML,
20135 CSS, JavaScript, JSON.")
20136 (license license:gpl3+)))
20137
20138 (define-public emacs-helm-shell-history
20139 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
20140 (package
20141 (name "emacs-helm-shell-history")
20142 (version (git-version "0.1" "1" commit))
20143 (source
20144 (origin
20145 (method git-fetch)
20146 (uri (git-reference
20147 (url "https://github.com/yuutayamada/helm-shell-history")
20148 (commit commit)))
20149 (file-name (git-file-name name version))
20150 (sha256
20151 (base32
20152 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
20153 (build-system emacs-build-system)
20154 (arguments
20155 '(#:phases
20156 (modify-phases %standard-phases
20157 (add-before 'check 'patch-helm-shell-history-file
20158 (lambda _
20159 (let ((file "helm-shell-history.el"))
20160 (chmod file #o644)
20161 (emacs-substitute-sexps file
20162 ("(defvar helm-shell-history-file"
20163 `(expand-file-name "~/.bash_history"))))
20164 #t)))))
20165 (propagated-inputs
20166 (list emacs-helm))
20167 (home-page "https://github.com/yuutayamada/helm-shell-history")
20168 (synopsis "Find shell history with Emacs Helm")
20169 (description "This package provides an Emacs Helm interface to search
20170 throw a shell history.")
20171 (license license:gpl3+))))
20172
20173 (define-public emacs-discover-my-major
20174 (package
20175 (name "emacs-discover-my-major")
20176 (version "1.0")
20177 (source
20178 (origin
20179 (method git-fetch)
20180 (uri (git-reference
20181 (url "https://framagit.org/steckerhalter/discover-my-major.git/")
20182 (commit version)))
20183 (file-name (git-file-name name version))
20184 (sha256
20185 (base32
20186 "1wlqyl03hhnflbyay3qlvdzqzvv5rbybcjpfddggda7ias9h0pr4"))))
20187 (build-system emacs-build-system)
20188 (propagated-inputs
20189 (list emacs-makey))
20190 (home-page "https://framagit.org/steckerhalter/discover-my-major/")
20191 (synopsis "Discover key bindings for the current Emacs major mode")
20192 (description "This package discovers key bindings and
20193 their meaning for the current Emacs major-mode.")
20194 (license license:gpl3+)))
20195
20196 (define-public emacs-org-ref
20197 (package
20198 (name "emacs-org-ref")
20199 (version "2.0.0")
20200 (source
20201 (origin
20202 (method git-fetch)
20203 (uri (git-reference
20204 (url "https://github.com/jkitchin/org-ref")
20205 (commit (string-append "v" version))))
20206 (file-name (git-file-name name version))
20207 (sha256
20208 (base32 "0xd1qp8dfy8n8b2n3rsdzm8vrfl7dii142kw330s8jp3pavww1f6"))))
20209 (build-system emacs-build-system)
20210 (propagated-inputs
20211 (list emacs-dash
20212 emacs-f
20213 emacs-helm
20214 emacs-helm-bibtex
20215 emacs-htmlize
20216 emacs-hydra
20217 emacs-ivy
20218 emacs-key-chord
20219 emacs-pdf-tools
20220 emacs-s))
20221 (home-page "https://github.com/jkitchin/org-ref")
20222 (synopsis "Citations, cross-references and bibliographies in Org mode")
20223 (description
20224 "Org Ref is an Emacs library that provides rich support for citations,
20225 labels and cross-references in Org mode.
20226
20227 The basic idea of Org Ref is that it defines a convenient interface to insert
20228 citations from a reference database (e.g., from BibTeX files), and a set of
20229 functional Org links for citations, cross-references and labels that export
20230 properly to LaTeX, and that provide clickable functionality to the user. Org
20231 Ref interfaces with Helm BibTeX to facilitate citation entry, and it can also
20232 use RefTeX.
20233
20234 It also provides a fairly large number of utilities for finding bad citations,
20235 extracting BibTeX entries from citations in an Org file, and functions to
20236 create and modify BibTeX entries from a variety of sources, most notably from
20237 a DOI.
20238
20239 Org Ref is especially suitable for Org documents destined for LaTeX export and
20240 scientific publication. Org Ref is also useful for research documents and
20241 notes.")
20242 (license license:gpl3+)))
20243
20244 (define-public emacs-org-reveal
20245 (let ((commit "fe9148b670d144124d9697fcf5d0528f19025104"))
20246 (package
20247 (name "emacs-org-reveal")
20248 (version (git-version "20210902" "1" commit))
20249 (source (origin
20250 (method git-fetch)
20251 (uri (git-reference
20252 (url "https://github.com/yjwen/org-reveal")
20253 (commit commit)))
20254 (file-name (git-file-name name version))
20255 (sha256
20256 (base32
20257 "034gkbc03z9jzj7ad34mmqgmvj4f14ap7iixh3zx4wp2ipw5xb7c"))))
20258 (build-system emacs-build-system)
20259 (home-page "https://github.com/yjwen/org-reveal")
20260 (synopsis "Org and Reveal.js powered HTML presentation tool")
20261 (description "Org-Reveal is a @command{org-mode} extension that allows
20262 to create beautiful presentations (slides) with 3D effects from simple but
20263 powerful Org contents.")
20264 (license license:gpl3+))))
20265
20266 (define-public emacs-org-re-reveal
20267 (package
20268 (name "emacs-org-re-reveal")
20269 (version "3.14.1")
20270 (source
20271 (origin
20272 (method git-fetch)
20273 (uri (git-reference
20274 (url "https://gitlab.com/oer/org-re-reveal")
20275 (commit version)))
20276 (file-name (git-file-name name version))
20277 (sha256
20278 (base32 "180dn5iywarljbmx8lm61y30n2d800kg96psrvc8ghfglnvp6964"))))
20279 (build-system emacs-build-system)
20280 (propagated-inputs
20281 (list emacs-htmlize emacs-org))
20282 (home-page "https://gitlab.com/oer/org-re-reveal")
20283 (synopsis "Build HTML presentations with reveal.js from Org source files")
20284 (description "This project started as fork of org-reveal. It provides an
20285 export back-end for HTML presentations with reveal.js from Org mode source
20286 files.")
20287 (license license:gpl3+)))
20288
20289 (define-public emacs-add-hooks
20290 (package
20291 (name "emacs-add-hooks")
20292 (version "3.1.1")
20293 (source
20294 (origin
20295 (method git-fetch)
20296 (uri (git-reference
20297 (url "https://github.com/nickmccurdy/add-hooks")
20298 (commit version)))
20299 (file-name (git-file-name name version))
20300 (sha256
20301 (base32 "1jv9fpcsm572zg0j1mbpbfkqgdlqapy89xhhj19pswkhjns1y2wl"))))
20302 (build-system emacs-build-system)
20303 (home-page "https://github.com/nickmccurdy/add-hooks/")
20304 (synopsis "Emacs function for setting multiple hooks")
20305 (description "This package provides a @code{add-hooks} function tidies up
20306 duplicate hook and function names further into a single declarative call.")
20307 (license license:gpl3+)))
20308
20309 (define-public emacs-fancy-battery
20310 (package
20311 (name "emacs-fancy-battery")
20312 (version "0.2")
20313 (source
20314 (origin
20315 (method git-fetch)
20316 (uri (git-reference
20317 (url "https://github.com/emacsorphanage/fancy-battery")
20318 (commit version)))
20319 (file-name (git-file-name name version))
20320 (sha256
20321 (base32 "05lwcwf412m717yhwpjrswqkm8c3i7391rmiwv2k8xc1vk6dpp4g"))))
20322 (build-system emacs-build-system)
20323 (home-page "https://github.com/emacsorphanage/fancy-battery")
20324 (synopsis "Display battery status in Emacs mode line")
20325 (description "This package provides @code{fancy-battery-mode} which is
20326 like the built-in @code{display-battery-mode}, but more fancy. It just the
20327 remaining time, uses colours to indicate the status of the battery, and is
20328 more customizable.")
20329 (license license:gpl3)))
20330
20331 (define-public emacs-fancy-narrow
20332 (package
20333 (name "emacs-fancy-narrow")
20334 (version "0.9.5")
20335 (source
20336 (origin
20337 (method git-fetch)
20338 (uri (git-reference
20339 (url "https://github.com/Malabarba/fancy-narrow")
20340 (commit version)))
20341 (file-name (git-file-name name version))
20342 (sha256
20343 (base32 "0vcr1gnqawvc1yclqs23jvxm6bqix8kpflf1c7znb0wzxmz9kx7y"))))
20344 (build-system emacs-build-system)
20345 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
20346 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
20347 (description
20348 "Unlike @code{narrow-to-region}, which completely hides text outside
20349 the narrowed region, this package simply de-emphasizes the text, makes it
20350 read-only, and makes it unreachable. This leads to a much more natural
20351 feeling where the region stays static (instead of being brutally moved to a
20352 blank slate) and is clearly highlighted with respect to the rest of the
20353 buffer.")
20354 (license license:gpl2+)))
20355
20356 (define-public emacs-hideshowvis
20357 (let ((commit "614e856620445166a60c00a1c4653dbd59c871c9")
20358 (revision "1"))
20359 (package
20360 (name "emacs-hideshowvis")
20361 (version (git-version "0.7" revision commit))
20362 (source (origin
20363 (method git-fetch)
20364 (uri (git-reference
20365 (url "https://github.com/sheijk/hideshowvis")
20366 (commit commit)))
20367 (file-name (git-file-name name version))
20368 (sha256
20369 (base32
20370 "0ykj5jwcm03p5h7sd52qndmzihyan09lqg6rzgmyabvw7p56y90m"))))
20371 (build-system emacs-build-system)
20372 (home-page "https://github.com/sheijk/hideshowvis")
20373 (synopsis "Add icons in the Emacs fringe which @code{hideshow} can hide")
20374 (description "Emacs package to add clickable icons in the fringe for
20375 regions which @code{hideshow} can hide.")
20376 (license license:gpl2+))))
20377
20378 (define-public emacs-know-your-http-well
20379 (package
20380 (name "emacs-know-your-http-well")
20381 (version "0.5.0")
20382 (source
20383 (origin
20384 (method git-fetch)
20385 (uri (git-reference
20386 (url "https://github.com/for-GET/know-your-http-well")
20387 (commit (string-append "v" version))))
20388 (file-name (git-file-name name version))
20389 (sha256
20390 (base32 "1lppggnii2r9fvlhh33gbdrwb50za8lnalavlq9s86ngndn4n94k"))))
20391 (arguments
20392 `(#:phases
20393 (modify-phases %standard-phases
20394 (add-after 'unpack 'install-json-files
20395 (lambda* (#:key outputs #:allow-other-keys)
20396 (for-each (lambda (directory)
20397 (copy-recursively directory
20398 (string-append
20399 (assoc-ref outputs "out")
20400 directory)))
20401 '("js" "json"))))
20402 (add-after 'unpack 'chdir-elisp
20403 ;; Elisp directory is not in root of the source.
20404 (lambda _
20405 (chdir "emacs"))))))
20406 (build-system emacs-build-system)
20407 (home-page "https://github.com/for-GET/know-your-http-well")
20408 (synopsis "Meaning of HTTP headers codes")
20409 (description "Meaning of HTTP headers codes.")
20410 (license license:gpl3+)))
20411
20412 (define-public emacs-navi-mode
20413 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
20414 (package
20415 (name "emacs-navi-mode")
20416 (version (git-version "2.0" "1" commit))
20417 (source
20418 (origin
20419 (method git-fetch)
20420 (uri (git-reference
20421 (url "https://github.com/alphapapa/navi")
20422 (commit commit)))
20423 (file-name (git-file-name name version))
20424 (sha256
20425 (base32
20426 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
20427 (build-system emacs-build-system)
20428 (propagated-inputs
20429 (list emacs-outshine emacs-outorg))
20430 (home-page "https://github.com/alphapapa/navi")
20431 (synopsis "Emacs major-mode for easy buffer-navigation")
20432 (description
20433 "This package provides an Emacs major-mode for easy buffer-navigation")
20434 (license license:gpl3+))))
20435
20436 (define-public emacs-download-region
20437 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
20438 (revision "1"))
20439 (package
20440 (name "emacs-download-region")
20441 (version (string-append "0.0.1" "-" revision "."
20442 (string-take commit 7)))
20443 (source
20444 (origin
20445 (method git-fetch)
20446 (uri (git-reference
20447 (url "https://github.com/zk-phi/download-region")
20448 (commit commit)))
20449 (file-name (git-file-name name version))
20450 (sha256
20451 (base32
20452 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
20453 (build-system emacs-build-system)
20454 (home-page "https://github.com/zk-phi/download-region")
20455 (synopsis "In buffer download manager for Emacs")
20456 (description "@code{download-region} provides in buffer
20457 downloading manager for Emacs.")
20458 (license license:gpl3+))))
20459
20460 (define-public emacs-helpful
20461 (package
20462 (name "emacs-helpful")
20463 (version "0.19")
20464 (source
20465 (origin
20466 (method git-fetch)
20467 (uri (git-reference
20468 (url "https://github.com/Wilfred/helpful")
20469 (commit version)))
20470 (file-name (git-file-name name version))
20471 (sha256
20472 (base32 "0qwsifzsjw95l83m7z07fr9h1sqbhggwmcps1qgbddpan2a8ab8a"))
20473 ;; Cherry-picked from upstream, remove when bumping to 0.20.
20474 (patches (search-patches "emacs-helpful-fix-docstring-test.patch"))))
20475 (build-system emacs-build-system)
20476 (propagated-inputs
20477 (list emacs-elisp-refs emacs-dash emacs-s emacs-f emacs-shut-up))
20478 (native-inputs
20479 (list emacs-ert-runner emacs-undercover))
20480 (arguments
20481 `(#:tests? #t
20482 #:test-command '("ert-runner")))
20483 (home-page "https://github.com/Wilfred/helpful")
20484 (synopsis "More contextual information in Emacs help")
20485 (description "@code{helpful} is an alternative to the built-in Emacs help
20486 that provides much more contextual information.
20487
20488 @itemize
20489 @item Show the source code for interactively defined functions (unlike the
20490 built-in Help).
20491 @item Fall back to the raw sexp if no source is available.
20492 @item Show where a function is being called.
20493 @item Docstrings will Highlight the summary (the first sentence), include
20494 cross-references, hide superfluous puncuation.
20495 @item Show you the properties that have been applied to the current
20496 symbol. This provides visibility of features like edebug or byte-code
20497 optimisation.
20498 @item Provide a separate @code{helpful-command} function to view interactive
20499 functions.
20500 @item Display any keybindings that apply to interactive functions.
20501 @item Trace, disassemble functions from inside Helpful. This is discoverable
20502 and doesn't require memorisation of commands.
20503 @end itemize\n")
20504 (license license:gpl3+)))
20505
20506 (define-public emacs-logview
20507 (package
20508 (name "emacs-logview")
20509 (version "0.14")
20510 (source
20511 (origin
20512 (method git-fetch)
20513 (uri (git-reference
20514 (url "https://github.com/doublep/logview")
20515 (commit version)))
20516 (file-name (git-file-name name version))
20517 (sha256
20518 (base32 "1cchmr25z5zj7rgb2fyxkaq8kpw7i5yg1pvn42dvm09c2wrfbj46"))))
20519 (propagated-inputs
20520 (list emacs-datetime emacs-extmap))
20521 (build-system emacs-build-system)
20522 (home-page "https://github.com/doublep/logview/")
20523 (synopsis "Emacs mode for viewing log files")
20524 (description "@code{logview} provides an Emacs mode to view log files.")
20525 (license license:gpl3+)))
20526
20527 (define-public emacs-suggest
20528 (package
20529 (name "emacs-suggest")
20530 (version "0.7")
20531 (home-page "https://github.com/Wilfred/suggest.el")
20532 (source
20533 (origin
20534 (method git-fetch)
20535 (uri (git-reference
20536 (url home-page)
20537 (commit version)))
20538 (file-name (git-file-name name version))
20539 (sha256
20540 (base32
20541 "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"))))
20542 (build-system emacs-build-system)
20543 (propagated-inputs
20544 (list emacs-loop
20545 emacs-dash
20546 emacs-s
20547 emacs-f
20548 emacs-spinner
20549 emacs-shut-up))
20550 (native-inputs
20551 (list emacs-ert-runner emacs-undercover))
20552 (arguments
20553 `(#:tests? #t
20554 #:test-command '("ert-runner")))
20555 (synopsis "Suggest Elisp functions that give the output requested")
20556 (description "Suggest.el will find functions that give the output
20557 requested. It's a great way of exploring list, string and arithmetic
20558 functions.")
20559 (license license:gpl3+)))
20560
20561 (define-public emacs-benchmark-init
20562 (let ((commit "02435560415bbadbcf5051fb7042880549170e7e")
20563 (revision "1"))
20564 (package
20565 (name "emacs-benchmark-init")
20566 (version (git-version "1.0" revision commit))
20567 (source
20568 (origin
20569 (method git-fetch)
20570 (uri (git-reference
20571 (url "https://github.com/dholm/benchmark-init-el")
20572 (commit commit)))
20573 (file-name (git-file-name name version))
20574 (sha256
20575 (base32 "19375vamhld4xm2qrdmhlp2nczfvalmz9x6ahl23zwkilr8n1nbw"))))
20576 (build-system emacs-build-system)
20577 (home-page "https://github.com/dholm/benchmark-init-el")
20578 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
20579 (description "@code{benchmark-init} provides a way to keep track of where
20580 time is being spent during Emacs startup in order to optimize startup time.")
20581 (license license:gpl3+))))
20582
20583 (define-public emacs-magit-gerrit
20584 (package
20585 (name "emacs-magit-gerrit")
20586 (version "0.4")
20587 (source
20588 (origin
20589 (method git-fetch)
20590 (uri (git-reference
20591 (url "https://github.com/terranpro/magit-gerrit")
20592 (commit (string-append "v" version))))
20593 (file-name (git-file-name name version))
20594 (sha256
20595 (base32 "1q4kcr2ha2kir7pj0cshmgllgq51543syxkkk5jk3ksfiaba4crj"))))
20596 (build-system emacs-build-system)
20597 (propagated-inputs
20598 (list emacs-magit))
20599 (home-page "https://github.com/terranpro/magit-gerrit")
20600 (synopsis "Magit extension for Gerrit")
20601 (description "This Magit extension provides integration with Gerrit,
20602 which makes it possible to conduct Gerrit code reviews directly from within
20603 Emacs.")
20604 (license license:gpl3+)))
20605
20606 (define-public emacs-magit-org-todos-el
20607 (package
20608 (name "emacs-magit-org-todos-el")
20609 (version "0.1.2")
20610 (source
20611 (origin
20612 (method git-fetch)
20613 (uri (git-reference
20614 (url "https://github.com/danielma/magit-org-todos.el")
20615 (commit version)))
20616 (file-name (git-file-name name version))
20617 (sha256
20618 (base32
20619 "07r5x256k1fjjxs1yfg41kc94nwvnjlk2vvknkra3j8v9p0j88m7"))))
20620 (propagated-inputs
20621 (list emacs-magit))
20622 (build-system emacs-build-system)
20623 (home-page "https://github.com/danielma/magit-org-todos.el")
20624 (synopsis "Get todo.org into Emacs Magit status")
20625 (description "This package allows you to get @file{todo.org} into your
20626 magit status.
20627
20628 If you have a @file{todo.org} file with @code{TODO} items in the root of your
20629 repository, @code{magit-org-todos} will create a section in your Magit status
20630 buffer with each of your todos.")
20631 (license license:gpl3+)))
20632
20633 (define-public emacs-vcsh
20634 (package
20635 (name "emacs-vcsh")
20636 (version "0.4.4")
20637 (source
20638 (origin
20639 (method git-fetch)
20640 (uri (git-reference
20641 (url "https://gitlab.com/stepnem/vcsh-el.git")
20642 (commit version)))
20643 (file-name (git-file-name name version))
20644 (sha256
20645 (base32 "183pffdiqb7qqmjq31wxl3fpv8qswqgg99gb716rddiyk15ysri7"))))
20646 (build-system emacs-build-system)
20647 (home-page "https://gitlab.com/stepnem/vcsh-el")
20648 (synopsis "Emacs VCSH integration")
20649 (description
20650 "This library provides basic ``enter'' functionality and a few
20651 convenience commands to initialize a @acronym{VCSH, Version Control System for
20652 $HOME} repository and add files to it. It can be used in conjunction with
20653 Magit.")
20654 (license license:public-domain)))
20655
20656 (define-public emacs-f3
20657 (package
20658 (name "emacs-f3")
20659 (version "0.1")
20660 (source
20661 (origin
20662 (method git-fetch)
20663 (uri (git-reference
20664 (url "https://github.com/cosmicexplorer/f3")
20665 (commit version)))
20666 (file-name (git-file-name name version))
20667 (sha256
20668 (base32 "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi"))))
20669 (build-system emacs-build-system)
20670 (propagated-inputs
20671 (list emacs-helm))
20672 (home-page "https://github.com/cosmicexplorer/f3")
20673 (synopsis "Fantastic File Finder for Emacs")
20674 (description
20675 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
20676 (license license:gpl3+)))
20677
20678 (define-public emacs-lice-el
20679 (let ((commit "482e58ab83fff86ed754b00be27b62a219597e7c"))
20680 (package
20681 (name "emacs-lice-el")
20682 (version (git-version "0.2" "2" commit))
20683 (source (origin
20684 (method git-fetch)
20685 (uri (git-reference
20686 (url "https://github.com/buzztaiki/lice-el")
20687 (commit commit)))
20688 (file-name (git-file-name name version))
20689 (sha256
20690 (base32
20691 "0yxkjyhfk8kpr8yqz54gdx6xwkj4s8bnbz60162jh12crj0bs5n7"))))
20692 (build-system emacs-build-system)
20693 (arguments
20694 `(#:phases
20695 (modify-phases %standard-phases
20696 (add-after 'unpack 'patch-template-directory
20697 (lambda* (#:key outputs #:allow-other-keys)
20698 (chmod "lice.el" #o666)
20699 (emacs-substitute-variables "lice.el"
20700 ("lice:system-template-directory"
20701 (string-append (assoc-ref outputs "out")
20702 "/share/emacs-lice-el/template")))
20703 #t))
20704 (add-after 'install 'install-templates
20705 (lambda* (#:key outputs #:allow-other-keys)
20706 (copy-recursively
20707 "template"
20708 (string-append (assoc-ref outputs "out")
20709 "/share/emacs-lice-el/template"))
20710 #t)))))
20711 (home-page "https://github.com/buzztaiki/lice-el")
20712 (synopsis "License and header template for Emacs")
20713 (description "@code{lice.el} provides following features:
20714
20715 @itemize
20716 @item License template management.
20717 @item File header insertion.
20718 @end itemize\n")
20719 (license license:gpl3+))))
20720
20721 (define-public emacs-academic-phrases
20722 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
20723 (package
20724 (name "emacs-academic-phrases")
20725 (version (git-version "0.1" "1" commit))
20726 (source
20727 (origin
20728 (method git-fetch)
20729 (uri (git-reference
20730 (url "https://github.com/nashamri/academic-phrases")
20731 (commit commit)))
20732 (file-name (git-file-name name version))
20733 (sha256
20734 (base32
20735 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
20736 (build-system emacs-build-system)
20737 (propagated-inputs
20738 (list emacs-dash emacs-s emacs-ht))
20739 (home-page "https://github.com/nashamri/academic-phrases")
20740 (synopsis "Bypass that mental block when writing your papers")
20741 (description
20742 "When writing your academic paper, you might get stuck trying to find
20743 the right phrase that captures your intention. This package tries to
20744 alleviate that problem by presenting you with a list of phrases organized by
20745 the topic or by the paper section that you are writing. This package has
20746 around 600 phrases so far.
20747
20748 Using this package is easy, just call @code{academic-phrases} to get a list of
20749 phrases organized by topic, or call @code{academic-phrases-by-section} to
20750 browse the phrases by the paper section and fill-in the blanks if required.")
20751 (license license:gpl3+))))
20752
20753 (define-public emacs-auto-yasnippet
20754 (let ((commit "624b0d9711222073a2a3f2186e2605eb99fc83c9")
20755 (revision "2"))
20756 (package
20757 (name "emacs-auto-yasnippet")
20758 (version (git-version "0.3.0" revision commit))
20759 (source (origin
20760 (method git-fetch)
20761 (uri (git-reference
20762 (url "https://github.com/abo-abo/auto-yasnippet")
20763 (commit commit)))
20764 (file-name (git-file-name name version))
20765 (sha256
20766 (base32
20767 "15g8wi067f345xhpi0c12w0h04p4f4lpccwmdjdfj8hzfl4gyxy9"))))
20768 (build-system emacs-build-system)
20769 (arguments
20770 '(#:tests? #t
20771 #:test-command '("make" "test")))
20772 (propagated-inputs
20773 (list emacs-yasnippet))
20774 (home-page "https://github.com/abo-abo/auto-yasnippet/")
20775 (synopsis "Quickly create disposable yasnippets")
20776 (description "This package provides a hybrid of keyboard macros and
20777 yasnippet. You create the snippet on the go, usually to be used just in the
20778 one place. It's fast, because you're not leaving the current buffer, and all
20779 you do is enter the code you'd enter anyway, just placing ~ where you'd like
20780 yasnippet fields and mirrors to be.")
20781 (license license:gpl3+))))
20782
20783 (define-public emacs-highlight-numbers
20784 (package
20785 (name "emacs-highlight-numbers")
20786 (version "0.2.3")
20787 (source
20788 (origin
20789 (method git-fetch)
20790 (uri (git-reference
20791 (url "https://github.com/Fanael/highlight-numbers")
20792 (commit version)))
20793 (file-name (git-file-name name version))
20794 (sha256
20795 (base32 "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"))))
20796 (build-system emacs-build-system)
20797 (propagated-inputs
20798 (list emacs-parent-mode))
20799 (home-page "https://github.com/Fanael/highlight-numbers")
20800 (synopsis "Highlight numbers in source code")
20801 (description "@code{highlight-numbers-mode} provides a minor mode for
20802 syntax highlighting of numeric literals in source code.
20803
20804 It s customizable: it's easy to add or redefine what exactly constitutes a
20805 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
20806 (license license:gpl3+)))
20807
20808 (define-public emacs-darkroom
20809 (package
20810 (name "emacs-darkroom")
20811 (version "0.3")
20812 (source
20813 (origin
20814 (method url-fetch)
20815 (uri (string-append "https://elpa.gnu.org/packages/"
20816 "darkroom-" version ".el"))
20817 (sha256
20818 (base32 "0l1xg5kqmjw22k78qnsln0ifx2dx74xxqj0qp8xxcpqvzzx0xh86"))))
20819 (build-system emacs-build-system)
20820 (home-page "https://elpa.gnu.org/packages/darkroom.html")
20821 (synopsis "Remove visual distractions and focus on writing")
20822 (description "@code{darkroom-mode} makes visual distractions disappear.
20823 The mode-line is temporarily elided, text is enlarged and margins are adjusted
20824 so that it's centered on the window.
20825
20826 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
20827 @code{darkroom-mode}, unless the current buffer lives in the sole window of
20828 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
20829 split to display more windows and more buffers, the buffer exits
20830 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
20831 @code{darkroom-mode}.")
20832 (license license:gpl3+)))
20833
20834 (define-public emacs-rsw-elisp
20835 (package
20836 (name "emacs-rsw-elisp")
20837 (version "1.0.5")
20838 (source (origin
20839 (method git-fetch)
20840 (uri (git-reference
20841 (url "https://github.com/rswgnu/rsw-elisp")
20842 (commit version)))
20843 (file-name (git-file-name name version))
20844 (sha256
20845 (base32
20846 "0dfq8myg0r91900bk1s70amsmm4mjk2qsg12v5pk7lla5d2vnyaf"))))
20847 (build-system emacs-build-system)
20848 (home-page "https://github.com/rswgnu/rsw-elisp")
20849 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
20850 (description "This package improves and replaces the GNU Emacs commands
20851 that interactively evaluate Emacs Lisp expressions. The new commands replace
20852 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
20853 the same way as the old commands when called non-interactively; only the
20854 interactive behavior should be different.")
20855 (license license:gpl3+)))
20856
20857 (define-public emacs-default-text-scale
20858 (package
20859 (name "emacs-default-text-scale")
20860 (version "0.2")
20861 (source (origin
20862 (method git-fetch)
20863 (uri (git-reference
20864 (url "https://github.com/purcell/default-text-scale")
20865 (commit version)))
20866 (file-name (git-file-name name version))
20867 (sha256
20868 (base32
20869 "0h42jiwxrxjmk7ccwh3h25n7dy2rq61ncm5wx27jhkncc5jdm4h6"))))
20870 (build-system emacs-build-system)
20871 (home-page "https://github.com/purcell/default-text-scale")
20872 (synopsis "Adjust the font size in all Emacs frames")
20873 (description "This package provides commands for increasing or
20874 decreasing the default font size in all GUI Emacs frames.")
20875 (license license:gpl3+)))
20876
20877 (define-public emacs-fixed-pitch
20878 (package
20879 (name "emacs-fixed-pitch")
20880 (version "0.1.0")
20881 (source
20882 (origin
20883 (method git-fetch)
20884 (uri (git-reference
20885 (url "https://github.com/cstby/fixed-pitch-mode")
20886 (commit (string-append "v" version))))
20887 (file-name (git-file-name name version))
20888 (sha256
20889 (base32 "0qlavjvib0r71xdy6y6pan9dhr57lw7jhmqk60mwa8fq6km8kpkj"))))
20890 (build-system emacs-build-system)
20891 (home-page "https://github.com/cstby/fixed-pitch-mode")
20892 (synopsis
20893 "Use a monospaced typeface for code and a proportional one elsewhere")
20894 (description
20895 "Fixed-pitch mode is an Emacs minor mode for setting a monospaced typeface.
20896 This allows you to set a proportional typeface for UI elements while keeping
20897 a monospaced typeface for code.")
20898 (license license:gpl3+)))
20899
20900 (define-public emacs-mixed-pitch
20901 (package
20902 (name "emacs-mixed-pitch")
20903 (version "1.1.1")
20904 (source
20905 (origin
20906 (method git-fetch)
20907 (uri (git-reference
20908 (url "https://gitlab.com/jabranham/mixed-pitch.git")
20909 (commit version)))
20910 (file-name (git-file-name name version))
20911 (sha256
20912 (base32 "1dhljrh44dsnixd8hbb11k6dgap8r8n7jknhfy2afdzq889fih74"))))
20913 (build-system emacs-build-system)
20914 (home-page "https://gitlab.com/jabranham/mixed-pitch")
20915 (synopsis "Mix variable- and fixed-pitch fonts in the same Emacs buffer")
20916 (description
20917 "@code{mixed-pitch-mode} is a minor mode that enables mixing
20918 variable-pitch and fixed-pitch fonts in the same buffer. The list
20919 @code{mixed-pitch-fixed-pitch-faces} defines the faces that are kept
20920 fixed-pitch,everything else becomes variable-pitch.")
20921 (license license:gpl3+)))
20922
20923 (define-public emacs-visual-regexp
20924 (package
20925 (name "emacs-visual-regexp")
20926 (version "1.1.2")
20927 (source
20928 (origin
20929 (method git-fetch)
20930 (uri (git-reference
20931 (url "https://github.com/benma/visual-regexp.el")
20932 (commit (string-append "v" version))))
20933 (file-name (git-file-name name version))
20934 (sha256
20935 (base32 "12p3rlhdphwmx1kxsjzcl2wj3i6qgpvw8iwhg1whs6yqgaxivixd"))))
20936 (build-system emacs-build-system)
20937 (home-page "https://github.com/benma/visual-regexp.el/")
20938 (synopsis "Regexp command with interactive visual feedback")
20939 (description "This package provides an Emacs regexp command with
20940 interactive visual feedback.")
20941 (license license:gpl3+)))
20942
20943 (define-public emacs-faceup
20944 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
20945 (revision "1"))
20946 (package
20947 (name "emacs-faceup")
20948 (version (string-append "0.0.1" "-" revision "."
20949 (string-take commit 7)))
20950 (source
20951 (origin
20952 (method git-fetch)
20953 (uri (git-reference
20954 (url "https://github.com/Lindydancer/faceup")
20955 (commit commit)))
20956 (file-name (git-file-name name version))
20957 (sha256
20958 (base32
20959 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
20960 (build-system emacs-build-system)
20961 (home-page "https://github.com/Lindydancer/faceup")
20962 (synopsis "Markup language for faces and font-lock regression testing")
20963 (description "Emacs is capable of highlighting buffers based on
20964 language-specific @code{font-lock} rules. This package makes it possible to
20965 perform regression test for packages that provide font-lock rules.")
20966 (license license:gpl3+))))
20967
20968 (define-public emacs-racket-mode
20969 ;; XXX: Upstream does not tag releases, nor does it bump versions. The
20970 ;; "0.0.2" version below does not exist. It might change, tho. See
20971 ;; <https://github.com/greghendershott/racket-mode/issues/389>.
20972 (let ((commit "cef5a55d2b766973db92f9d9ab2210c03fa8ba02")
20973 (revision "7"))
20974 (package
20975 (name "emacs-racket-mode")
20976 (version (git-version "0.0.2" revision commit))
20977 (source
20978 (origin
20979 (method git-fetch)
20980 (uri (git-reference
20981 (url "https://github.com/greghendershott/racket-mode")
20982 (commit commit)))
20983 (file-name (git-file-name name version))
20984 (sha256
20985 (base32
20986 "0zzk0s4akx6ffsbhylgfflcypkkg36a3accxhmmdd11yn5rckv7f"))))
20987 (build-system emacs-build-system)
20988 (arguments
20989 (list
20990 #:include #~(list "\\.el$" "\\.rkt$")))
20991 (propagated-inputs
20992 (list emacs-faceup emacs-paredit emacs-pos-tip emacs-s))
20993 (home-page "https://www.racket-mode.com/")
20994 (synopsis "Major mode for the Racket language")
20995 (description "Racket mode provides thorough font-lock and indentation.
20996 It follows DrRacket concepts where applicable.")
20997 (license license:gpl2+))))
20998
20999 (define-public emacs-grep-context
21000 (let ((commit "5a4e3efdf775755c1bbefcfe4b461c1166d81d7d")
21001 (revision "1"))
21002 (package
21003 (name "emacs-grep-context")
21004 (version (git-version "0.1.0" revision commit))
21005 (source
21006 (origin
21007 (method git-fetch)
21008 (uri (git-reference
21009 (url "https://github.com/mkcms/grep-context")
21010 (commit commit)))
21011 (file-name (git-file-name name version))
21012 (sha256
21013 (base32
21014 "00q7l4a3c0ay6g5ff9bfa2qgkiswsyh4s6pqnpg0zpzhvv5710f5"))))
21015 (build-system emacs-build-system)
21016 (propagated-inputs
21017 (list emacs-dash))
21018 (home-page "https://github.com/mkcms/grep-context")
21019 (synopsis "Increase context in compilation and grep buffers")
21020 (description
21021 "This package provides an Emacs package for more context in
21022 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
21023 @code{ivy}.")
21024 (license license:gpl3+))))
21025
21026 (define-public emacs-helm-firefox
21027 (package
21028 (name "emacs-helm-firefox")
21029 (version "1.3")
21030 (source
21031 (origin
21032 (method git-fetch)
21033 (uri (git-reference
21034 (url "https://github.com/emacs-helm/helm-firefox")
21035 (commit (string-append "v" version))))
21036 (file-name (git-file-name name version))
21037 (sha256
21038 (base32
21039 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
21040 (propagated-inputs
21041 (list emacs-helm))
21042 (build-system emacs-build-system)
21043 (home-page "https://github.com/emacs-helm/helm-firefox")
21044 (synopsis "Display firefox bookmarks with Emacs Helm interface")
21045 (description "Display firefox bookmarks with Emacs Helm interface")
21046 (license license:gpl3+)))
21047
21048 (define-public emacs-interactive-align
21049 (package
21050 (name "emacs-interactive-align")
21051 (version "0.4.2")
21052 (source
21053 (origin
21054 (method git-fetch)
21055 (uri (git-reference
21056 (url "https://github.com/mkcms/interactive-align")
21057 (commit (string-append "v" version))))
21058 (file-name (git-file-name name version))
21059 (sha256
21060 (base32
21061 "0bh03w91i622hbar5dcq631ndxx1y8kd3h655pgw1g0lqkv1mlnc"))))
21062 (build-system emacs-build-system)
21063 (home-page "https://github.com/mkcms/interactive-align/")
21064 (synopsis "Interactive align-regexp command in Emacs")
21065 (description "Interactive align-regexp command in Emacs")
21066 (license license:gpl3+)))
21067
21068 (define-public emacs-shift-number
21069 (package
21070 (name "emacs-shift-number")
21071 (version "0.1")
21072 (source
21073 (origin
21074 (method git-fetch)
21075 (uri (git-reference
21076 (url "https://github.com/alezost/shift-number.el")
21077 (commit (string-append "v" version))))
21078 (file-name (git-file-name name version))
21079 (sha256
21080 (base32
21081 "0zlwmzsxkv4mkggylxfx2fkrwgz7dz3zbg2gkn2rxcpy2k2gla64"))))
21082 (build-system emacs-build-system)
21083 (home-page "https://github.com/alezost/shift-number.el")
21084 (synopsis "Increase or decrease the number at point")
21085 (description "@code{emacs-shift-number} provides commands
21086 @code{shift-number-up} to increase and @code{shift-number-down} to
21087 decrease the number at point.")
21088 (license license:gpl3+)))
21089
21090 (define-public emacs-highlight-defined
21091 (package
21092 (name "emacs-highlight-defined")
21093 (version "0.1.6")
21094 (source
21095 (origin
21096 (method git-fetch)
21097 (uri (git-reference
21098 (url "https://github.com/Fanael/highlight-defined")
21099 (commit version)))
21100 (file-name (git-file-name name version))
21101 (sha256
21102 (base32 "0a9nn1jnbgv93kz1iz5iay34d0p7lkpd8ic619ysk8qcksc0yn2i"))))
21103 (build-system emacs-build-system)
21104 (home-page "https://github.com/Fanael/highlight-defined")
21105 (synopsis "Syntax highlighting of known Elisp symbols")
21106 (description "Minor mode providing syntax highlighting of known Emacs Lisp
21107 symbols. Currently the code distinguishes Lisp functions, built-in functions,
21108 macros, faces and variables. To enable call @code{highlight-defined-mode}.")
21109 (license license:gpl3+)))
21110
21111 (define-public emacs-parinfer-mode
21112 (package
21113 (name "emacs-parinfer-mode")
21114 (version "0.4.10")
21115 (source
21116 (origin
21117 (method git-fetch)
21118 (uri (git-reference
21119 (url "https://github.com/DogLooksGood/parinfer-mode")
21120 (commit (string-append "v" version))))
21121 (file-name (git-file-name name version))
21122 (sha256
21123 (base32 "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"))))
21124 (propagated-inputs
21125 (list emacs-dash emacs-rainbow-delimiters emacs-company))
21126 (build-system emacs-build-system)
21127 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
21128 (synopsis "Lisp structure editing mode")
21129 (description "@code{parinfer-mode} is a proof-of-concept editor
21130 mode for Lisp programming languages. It will infer some changes to
21131 keep Parens and Indentation inline with one another.")
21132 (license license:gpl3+)))
21133
21134 (define-public emacs-helm-eww
21135 (package
21136 (name "emacs-helm-eww")
21137 (version "1.2")
21138 (source (origin
21139 (method git-fetch)
21140 (uri (git-reference
21141 (url "https://github.com/emacs-helm/helm-eww")
21142 (commit version)))
21143 (file-name (git-file-name name version))
21144 (sha256
21145 (base32
21146 "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"))))
21147 (propagated-inputs
21148 (list emacs-helm))
21149 (build-system emacs-build-system)
21150 (home-page "https://github.com/emacs-helm/helm-eww/")
21151 (synopsis "Helm interface to EWW")
21152 (description "This package provides a Helm interface for EWW buffers,
21153 bookmarks and history.")
21154 (license license:gpl3+)))
21155
21156 (define-public emacs-stumpwm-mode
21157 (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d6")
21158 (revision "3"))
21159 (package
21160 (name "emacs-stumpwm-mode")
21161 (version (git-version "0.0.1" revision commit))
21162 (source (origin
21163 (method git-fetch)
21164 (uri (git-reference
21165 (url "https://github.com/stumpwm/stumpwm-contrib")
21166 (commit commit)))
21167 (file-name (git-file-name name version))
21168 (sha256
21169 (base32
21170 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
21171 (build-system emacs-build-system)
21172 (arguments
21173 `(#:phases
21174 (modify-phases %standard-phases
21175 (add-after 'unpack 'chdir-elisp
21176 ;; Elisp directory is not in root of the source.
21177 (lambda _
21178 (chdir "util/swm-emacs"))))))
21179 (home-page "https://github.com/stumpwm/stumpwm-contrib")
21180 (synopsis "Emacs minor-mode for Stumpwm")
21181 (description "Emacs minor-mode for Stumpwm")
21182 (license license:gpl3+))))
21183
21184 (define-public emacs-irfc
21185 (package
21186 (name "emacs-irfc")
21187 (version "20130824.507-1")
21188 (source
21189 (origin
21190 (method url-fetch)
21191 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
21192 (file-name (string-append "irfc-" version ".el"))
21193 (sha256
21194 (base32
21195 "0rbfrza56kvspvgrwg0b5bj30d0qncqdsmfxn3y5caq4ifcj77hv"))))
21196 (build-system emacs-build-system)
21197 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
21198 (synopsis "Interface for IETF RFC document")
21199 (description
21200 "This package provides an Emacs interface for IETF RFC document.")
21201 (license license:gpl3+)))
21202
21203 (define-public emacs-ido-at-point
21204 (package
21205 (name "emacs-ido-at-point")
21206 (version "1.0.0")
21207 (source
21208 (origin
21209 (method git-fetch)
21210 (uri (git-reference
21211 (url "https://github.com/katspaugh/ido-at-point")
21212 (commit (string-append "v" version))))
21213 (file-name (git-file-name name version))
21214 (sha256
21215 (base32 "1bii7vj8pmmijcpvq3a1scky4ais7k6d7zympb3m9dmz355m9rpp"))))
21216 (build-system emacs-build-system)
21217 (synopsis "Ido-style completion at point")
21218 (description
21219 "This package is an alternative frontend for @code{completion-at-point}.
21220 It replaces the standard completions buffer with Ido prompt.")
21221 (home-page "https://github.com/katspaugh/ido-at-point")
21222 (license license:gpl3+)))
21223
21224 (define-public emacs-ido-vertical-mode
21225 (package
21226 (name "emacs-ido-vertical-mode")
21227 (version "0.1.6")
21228 (source
21229 (origin
21230 (method git-fetch)
21231 (uri (git-reference
21232 (url "https://github.com/creichert/ido-vertical-mode.el")
21233 (commit (string-append "v" version))))
21234 (file-name (git-file-name name version))
21235 (sha256
21236 (base32 "1lv82q639xjnmvby56nwqn23ijh6f163bk675s33dkingm8csj8k"))))
21237 (build-system emacs-build-system)
21238 (home-page "https://github.com/creichert/ido-vertical-mode.el")
21239 (synopsis "Makes ido-mode display vertically")
21240 (description "Makes ido-mode display prospects vertically.")
21241 (license license:gpl3+)))
21242
21243 (define-public emacs-wordgen
21244 (package
21245 (name "emacs-wordgen")
21246 (version "0.1.4")
21247 (source
21248 (origin
21249 (method git-fetch)
21250 (uri (git-reference
21251 (url "https://github.com/Fanael/wordgen.el")
21252 (commit version)))
21253 (file-name (git-file-name name version))
21254 (sha256
21255 (base32 "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"))))
21256 (build-system emacs-build-system)
21257 (home-page "https://github.com/Fanael/wordgen.el")
21258 (synopsis "Random word generator")
21259 (description "This package provides functions to generate random words
21260 using user-provided rules.")
21261 (license license:gpl3+)))
21262
21263 (define-public emacs-on-screen
21264 (package
21265 (name "emacs-on-screen")
21266 (version "1.3.3")
21267 (source
21268 (origin
21269 (method url-fetch)
21270 (uri (string-append
21271 "https://elpa.gnu.org/packages/on-screen-" version ".el"))
21272 (file-name (string-append name "-" version ".el"))
21273 (sha256
21274 (base32 "0ga4hw23ki583li2z2hr7l6hk1nc2kdg4afndg06cm9jn158wza7"))))
21275 (build-system emacs-build-system)
21276 (home-page "https://github.com/michael-heerdegen/on-screen.el")
21277 (synopsis "Guide your eyes while scrolling")
21278 (description
21279 "Scrolling can be distracting because your eyes may lose
21280 orientation. This library implements a minor mode that highlights
21281 the previously visible buffer part after each scroll.")
21282 (license license:gpl3+)))
21283
21284 (define-public emacs-highlight-escape-sequences
21285 ;; No release upstream. Extract version from main file.
21286 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
21287 (revision "0"))
21288 (package
21289 (name "emacs-highlight-escape-sequences")
21290 (version (git-version "0.4" revision commit))
21291 (source
21292 (origin
21293 (method git-fetch)
21294 (uri (git-reference
21295 (url "https://github.com/dgutov/highlight-escape-sequences")
21296 (commit commit)))
21297 (file-name (git-file-name name version))
21298 (sha256
21299 (base32 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
21300 (build-system emacs-build-system)
21301 (home-page "https://github.com/dgutov/highlight-escape-sequences")
21302 (synopsis "Highlight escape sequences in Emacs")
21303 (description "@code{highlight-escape-sequences} provides an
21304 Emacs minor mode to escape sequences in code.")
21305 (license license:gpl3+))))
21306
21307 (define-public emacs-dashboard
21308 (package
21309 (name "emacs-dashboard")
21310 (version "1.7.0")
21311 (source
21312 (origin
21313 (method git-fetch)
21314 (uri (git-reference
21315 (url "https://github.com/rakanalh/emacs-dashboard")
21316 (commit version)))
21317 (file-name (git-file-name name version))
21318 (sha256
21319 (base32 "1qv4cqjy2s2d2bysbq10vq1axpbd8qc3jn1s1r81lxqkcja8zasa"))))
21320 (build-system emacs-build-system)
21321 (propagated-inputs
21322 (list emacs-page-break-lines))
21323 (arguments
21324 '(#:include '("\\.el$" "\\.txt$" "\\.png$")
21325 #:phases
21326 (modify-phases %standard-phases
21327 (add-after 'unpack 'patch-dashboard-widgets
21328 ;; This phase fixes compilation error.
21329 (lambda _
21330 (chmod "dashboard-widgets.el" #o666)
21331 (emacs-substitute-variables "dashboard-widgets.el"
21332 ("dashboard-init-info"
21333 '(format "Loaded in %s" (emacs-init-time))))
21334 #t)))))
21335 (home-page "https://github.com/rakanalh/emacs-dashboard")
21336 (synopsis "Startup screen extracted from Spacemacs")
21337 (description "This package provides an extensible Emacs dashboard, with
21338 sections for bookmarks, projectil projects, org-agenda and more.")
21339 (license license:gpl3+)))
21340
21341 (define-public emacs-slime-company
21342 (package
21343 (name "emacs-slime-company")
21344 (version "1.6")
21345 (source
21346 (origin
21347 (method git-fetch)
21348 (uri (git-reference
21349 (url "https://github.com/anwyn/slime-company")
21350 (commit (string-append "v" version))))
21351 (file-name (git-file-name name version))
21352 (sha256
21353 (base32 "05dnnc4ms5c9yp9h65k2gbkg3pw9k38nx5wzlwdlfr4shqmw54w0"))))
21354 (build-system emacs-build-system)
21355 (propagated-inputs
21356 (list emacs-slime emacs-company))
21357 (home-page "https://company-mode.github.io")
21358 (synopsis "SLIME completion backend for @code{company-mode}")
21359 (description
21360 "This is a backend implementation for the completion package
21361 @code{company-mode} which supports the normal and the fuzzy completion
21362 modes of SLIME.")
21363 (license license:gpl3+)))
21364
21365 (define-public emacs-sml-mode
21366 (package
21367 (name "emacs-sml-mode")
21368 (version "6.10")
21369 (source
21370 (origin
21371 (method url-fetch)
21372 (uri (string-append "https://elpa.gnu.org/packages/sml-mode-"
21373 version ".el"))
21374 (sha256
21375 (base32 "01yf0s474r9xhj6nbs14ljn9ccxb5yy758i17c8nmgmqvm8fx7sb"))))
21376 (build-system emacs-build-system)
21377 (home-page "https://elpa.gnu.org/packages/sml-mode.html")
21378 (synopsis "Major mode for editing (Standard) ML")
21379 (description "SML-MODE is a major Emacs mode for editing Standard ML.
21380 It provides syntax highlighting and automatic indentation and
21381 comes with sml-proc which allows interaction with an inferior SML
21382 interactive loop.")
21383 (license license:gpl3+)))
21384
21385 (define-public emacs-eros
21386 (let ((commit "dd8910279226259e100dab798b073a52f9b4233a")
21387 (revision "2"))
21388 (package
21389 (name "emacs-eros")
21390 (version (git-version "0.0.1" revision commit))
21391 (source
21392 (origin
21393 (method git-fetch)
21394 (uri (git-reference
21395 (url "https://github.com/xiongtx/eros")
21396 (commit commit)))
21397 (file-name (git-file-name name version))
21398 (sha256
21399 (base32
21400 "08chj3a0lw4ygi2sv7wj0i6ihfbi8jhylr8p92inif8b88r6wg3k"))))
21401 (build-system emacs-build-system)
21402 (home-page "https://github.com/xiongtx/eros")
21403 (synopsis "Evaluation result overlays")
21404 (description "@code{eros} provides evaluation result overlays.")
21405 (license license:gpl3+))))
21406
21407 (define-public emacs-stickyfunc-enhance
21408 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
21409 (revision "1"))
21410 (package
21411 (name "emacs-stickyfunc-enhance")
21412 (version "0.1")
21413 (source
21414 (origin
21415 (method git-fetch)
21416 (uri (git-reference
21417 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance")
21418 (commit commit)))
21419 (file-name (git-file-name name version))
21420 (sha256
21421 (base32
21422 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
21423 (build-system emacs-build-system)
21424 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
21425 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
21426 (description
21427 "@code{semantic-stickyfunc-mode} shows the function point is currently
21428 in at the first line of the current buffer. This is useful when you have a
21429 very long function that spreads more than a screen, and you don't have to
21430 scroll up to read the function name and then scroll down to original position.")
21431 (license license:gpl3+))))
21432
21433 (define-public emacs-git-auto-commit-mode
21434 (package
21435 (name "emacs-git-auto-commit-mode")
21436 (version "4.7.0")
21437 (source
21438 (origin
21439 (method git-fetch)
21440 (uri (git-reference
21441 (url "https://github.com/ryuslash/git-auto-commit-mode")
21442 (commit version)))
21443 (file-name (git-file-name name version))
21444 (sha256
21445 (base32 "0gpib57f7xza04g3iyihw5v15hb7pncqsmvyggib902yvcxlkvqf"))))
21446 (build-system emacs-build-system)
21447 (native-inputs
21448 (list emacs-buttercup git))
21449 (arguments
21450 `(#:tests? #t
21451 #:test-command '("buttercup" "-L" ".")))
21452 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
21453 (synopsis "Emacs Minor mode to automatically commit and push")
21454 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
21455 tries to commit changes to a file after every save.
21456
21457 When @code{gac-automatically-push-p} is non-nil, it also tries to push to the
21458 current upstream.")
21459 (license license:gpl3+)))
21460
21461 (define-public emacs-scroll-on-drag
21462 (let ((commit "888abd04c34753b1fc4b2fe541bc004ebec5c996")
21463 (revision "1"))
21464 (package
21465 (name "emacs-scroll-on-drag")
21466 (version (git-version "0.1" revision commit))
21467 (source
21468 (origin
21469 (method git-fetch)
21470 (uri (git-reference
21471 (url "https://gitlab.com/ideasman42/emacs-scroll-on-drag.git")
21472 (commit commit)))
21473 (file-name (git-file-name name version))
21474 (sha256
21475 (base32
21476 "1si4hdqa3jw1inbyh3wb3i5i9grbms1nwky3vyk9zg7iznwm8a9p"))))
21477 (build-system emacs-build-system)
21478 (home-page "https://gitlab.com/ideasman42/emacs-scroll-on-drag")
21479 (synopsis "Interactive scrolling")
21480 (description "This package permits scrolling at increasing speeds based
21481 on drag distance.")
21482 (license license:gpl3+))))
21483
21484 (define-public emacs-company-restclient
21485 (package
21486 (name "emacs-company-restclient")
21487 (version "0.3.0")
21488 (source
21489 (origin
21490 (method git-fetch)
21491 (uri (git-reference
21492 (url "https://github.com/iquiw/company-restclient")
21493 (commit (string-append "v" version))))
21494 (file-name (git-file-name name version))
21495 (sha256
21496 (base32 "0yp0hlrgcr6yy1xkjvfckys2k24x9xg7y6336ma61bdwn5lpv0x0"))))
21497 (build-system emacs-build-system)
21498 (propagated-inputs
21499 (list emacs-company emacs-know-your-http-well emacs-restclient))
21500 (home-page "https://github.com/iquiw/company-restclient")
21501 (synopsis "Company-mode completion back-end for restclient-mode")
21502 (description "@code{company-mode} back-end for
21503 @code{restclient-mode}.
21504
21505 It provides auto-completion for HTTP methods and headers in
21506 @code{restclient-mode}. Completion source is given by
21507 @code{know-your-http-well}.")
21508 (license license:gpl3+)))
21509
21510 (define-public emacs-noflet
21511 (let ((version "20170629")
21512 (revision "1")
21513 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
21514 (package
21515 (name "emacs-noflet")
21516 (version (git-version version revision commit))
21517 (source
21518 (origin
21519 (method git-fetch)
21520 (uri (git-reference
21521 (url "https://github.com/nicferrier/emacs-noflet")
21522 (commit commit)))
21523 (file-name (git-file-name name version))
21524 (sha256
21525 (base32
21526 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
21527 (build-system emacs-build-system)
21528 (arguments
21529 `(#:phases
21530 (modify-phases %standard-phases
21531 (add-after 'unpack 'require-dash
21532 ;; noflet.el uses -map from dash, but (require 'dash) is
21533 ;; missing. So, add it.
21534 (lambda _
21535 (substitute* "noflet.el"
21536 ((";;; Code:") ";;; Code:\n(require 'dash)"))
21537 #t)))))
21538 (propagated-inputs
21539 (list emacs-dash))
21540 (home-page "https://github.com/nicferrier/emacs-noflet")
21541 (synopsis "Locally override functions")
21542 (description "@code{emacs-noflet} lets you locally override functions,
21543 in the manner of @command{flet}, but with access to the original function
21544 through the symbol: @command{this-fn}.")
21545 (license license:gpl3+))))
21546
21547 (define-public emacs-dumb-jump
21548 (package
21549 (name "emacs-dumb-jump")
21550 (version "0.5.4")
21551 (source
21552 (origin
21553 (method git-fetch)
21554 (uri (git-reference
21555 (url "https://github.com/jacktasia/dumb-jump")
21556 (commit (string-append "v" version))))
21557 (file-name (git-file-name name version))
21558 (sha256
21559 (base32 "18d2ll5wlll6pm909hiw8w9ijdbrjvy86q6ljzx8yyrjphgn0y1y"))))
21560 (build-system emacs-build-system)
21561 (arguments
21562 `(#:tests? #f ; FIXME: Tests freeze when run.
21563 #:test-command '("ert-runner")
21564 #:phases
21565 (modify-phases %standard-phases
21566 (add-after 'unpack 'set-shell
21567 (lambda _
21568 ;; Setting the SHELL environment variable is required for the
21569 ;; tests to find sh.
21570 (setenv "SHELL" (which "sh")))))))
21571 (native-inputs
21572 (list emacs-el-mock emacs-ert-runner emacs-noflet emacs-undercover))
21573 (propagated-inputs
21574 (list emacs-f emacs-popup))
21575 (home-page "https://github.com/jacktasia/dumb-jump")
21576 (synopsis "Jump to definition for multiple languages without configuration")
21577 (description "Dumb Jump is an Emacs \"jump to definition\" package with
21578 support for multiple programming languages that favors \"just working\" over
21579 speed or accuracy. This means minimal --- and ideally zero --- configuration
21580 with absolutely no stored indexes (tags) or persistent background processes.
21581 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
21582 @command{rg} installed.")
21583 (license license:gpl3+)))
21584
21585 (define-public emacs-dts-mode
21586 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
21587 (revision "1"))
21588 (package
21589 (name "emacs-dts-mode")
21590 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
21591 (source
21592 (origin
21593 (method git-fetch)
21594 (uri (git-reference
21595 (url "https://github.com/bgamari/dts-mode")
21596 (commit commit)))
21597 (file-name (git-file-name name version))
21598 (sha256
21599 (base32
21600 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
21601 (build-system emacs-build-system)
21602 (home-page "https://github.com/bgamari/dts-mode")
21603 (synopsis "Emacs minor mode for editing device tree files")
21604 (description
21605 "This package provides an Emacs minor mode for highlighting
21606 device tree files.")
21607 (license license:gpl3+))))
21608
21609 (define-public emacs-daemons
21610 (package
21611 (name "emacs-daemons")
21612 (version "2.0.0")
21613 (source
21614 (origin
21615 (method git-fetch)
21616 (uri (git-reference
21617 (url "https://github.com/cbowdon/daemons.el")
21618 (commit version)))
21619 (file-name (git-file-name name version))
21620 (sha256
21621 (base32
21622 "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
21623 (build-system emacs-build-system)
21624 (home-page "https://github.com/cbowdon/daemons.el")
21625 (synopsis "Emacs UI for managing init system services")
21626 (description
21627 "This is an Emacs mode to give you a UI for managing init system
21628 daemons (services) for those getting tired of typing out @code{sudo service
21629 my_thing reload} all the time. It offers a consistent UI over different init
21630 systems.")
21631 (license license:gpl3+)))
21632
21633 (define-public emacs-isearch+
21634 (let ((commit "7c251b91a67bf914066e23e269ba52fda5b45f5f")
21635 (revision "2"))
21636 (package
21637 (name "emacs-isearch+")
21638 (version (git-version "0" revision commit))
21639 (source
21640 (origin
21641 (method git-fetch)
21642 (uri (git-reference
21643 (url "https://github.com/emacsmirror/isearch-plus")
21644 (commit commit)))
21645 (file-name (git-file-name name version))
21646 (sha256
21647 (base32
21648 "1w2799714jcdycjlxgs8lpmmz6dmzvcvqy8xwxhvmgpb60g4f2yr"))))
21649 (build-system emacs-build-system)
21650 (home-page "https://www.emacswiki.org/emacs/isearch+.el")
21651 (synopsis "Extensions to @code{isearch.el}")
21652 (description "This package extends @code{isearch} with advice, dynamic
21653 filters, highlighting of regexp group levels, and more.")
21654 (license license:gpl2+))))
21655
21656 (define-public emacs-eshell-bookmark
21657 (package
21658 (name "emacs-eshell-bookmark")
21659 (version "2.0.0")
21660 (source
21661 (origin
21662 (method git-fetch)
21663 (uri (git-reference
21664 (url "https://github.com/Fuco1/eshell-bookmark")
21665 (commit version)))
21666 (file-name (git-file-name name version))
21667 (sha256
21668 (base32
21669 "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"))))
21670 (build-system emacs-build-system)
21671 (home-page "https://github.com/Fuco1/eshell-bookmark")
21672 (synopsis "Provide @file{bookmark.el} integration for @code{eshell}")
21673 (description
21674 "This package allows for bookmarking @code{eshell} buffers. Upon
21675 visiting the bookmark, a new @code{eshell} session will be opened in the
21676 appropriate directory if no @code{eshell} session is active.")
21677 (license license:gpl3+)))
21678
21679 (define-public emacs-eshell-syntax-highlighting
21680 (package
21681 (name "emacs-eshell-syntax-highlighting")
21682 (version "0.3")
21683 (source
21684 (origin
21685 (method git-fetch)
21686 (uri (git-reference
21687 (url "https://github.com/akreisher/eshell-syntax-highlighting")
21688 (commit (string-append "v" version))))
21689 (file-name (git-file-name name version))
21690 (sha256
21691 (base32 "1fb9aa85a3hx1rcmv71j6sc3y278452p1y4dabpwy07avb6apd0p"))))
21692 (build-system emacs-build-system)
21693 (home-page "https://github.com/akreisher/eshell-syntax-highlighting")
21694 (synopsis "Add syntax highlighting to Eshell")
21695 (description
21696 "This package highlights user commands at the Eshell interactive prompt
21697 to provide feedback on the validity of commands and syntax.")
21698 (license license:gpl3+)))
21699
21700 (define-public emacs-eshell-z
21701 (package
21702 (name "emacs-eshell-z")
21703 (version "0.4")
21704 (source
21705 (origin
21706 (method git-fetch)
21707 (uri (git-reference
21708 (url "https://github.com/xuchunyang/eshell-z")
21709 (commit (string-append "v" version))))
21710 (file-name (git-file-name name version))
21711 (sha256
21712 (base32
21713 "13dwaq8q23rwmrkpy3gvf7aswrkk6b9ak5221xl7n0bld4wdhq3j"))))
21714 (build-system emacs-build-system)
21715 (home-page "https://github.com/xuchunyang/eshell-z")
21716 (synopsis "Quick navigation to frequently visited directories")
21717 (description
21718 "This package is a port of @code{z}, and keeps track of visited directories
21719 and commands invoked within them in order to enable navigation via input of
21720 matching regexps.")
21721 (license license:gpl3+)))
21722
21723 (define-public emacs-esh-autosuggest
21724 (package
21725 (name "emacs-esh-autosuggest")
21726 (version "2.0.1")
21727 (source
21728 (origin
21729 (method git-fetch)
21730 (uri (git-reference
21731 (url "https://github.com/dieggsy/esh-autosuggest")
21732 (commit version)))
21733 (file-name (git-file-name name version))
21734 (sha256
21735 (base32
21736 "0l2nnlr3b6df1xn0qjf5d5ryy1wcs1jczyfy795vsasd5gm3g0xh"))))
21737 (build-system emacs-build-system)
21738 (propagated-inputs (list emacs-company))
21739 (home-page "https://github.com/dieggsy/esh-autosuggest")
21740 (synopsis "Fish-like autosuggestions in Eshell")
21741 (description
21742 "This package assumes you use something other than company for eshell
21743 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
21744 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
21745 for history autosuggestions.
21746
21747 Unless you're using @code{use-package}'s hook keyword, you can enable the
21748 autosuggestions with:
21749 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
21750 (license license:gpl3+)))
21751
21752 (define-public emacs-desktop-environment
21753 (package
21754 (name "emacs-desktop-environment")
21755 (version "0.5.0")
21756 (source
21757 (origin
21758 (method git-fetch)
21759 (uri (git-reference
21760 (url "https://github.com/DamienCassou/desktop-environment")
21761 (commit (string-append "v" version))))
21762 (file-name (git-file-name name version))
21763 (sha256
21764 (base32
21765 "03rl1z860jmirjrrg0xsjx0bqk73k043c8bz6049zhndh7pidri7"))))
21766 (build-system emacs-build-system)
21767 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
21768 (synopsis "Control your GNU/Linux desktop environment from Emacs")
21769 (description
21770 "This package helps you control your GNU/Linux desktop from Emacs.
21771 With @code{desktop-environment}, you can control the brightness and volume as
21772 well as take screenshots and lock your screen. The package depends on the
21773 availability of shell commands to do the hard work for us. These commands can
21774 be changed by customizing the appropriate variables.")
21775 (license license:gpl3+)))
21776
21777 (define-public emacs-org-caldav
21778 (let ((commit "8569941a0a5a9393ba51afc8923fd7b77b73fa7a")
21779 (revision "2"))
21780 (package
21781 (name "emacs-org-caldav")
21782 (version (git-version "0.0.0" revision commit))
21783 (source
21784 (origin
21785 (method git-fetch)
21786 (uri (git-reference
21787 (url "https://github.com/dengste/org-caldav")
21788 (commit commit)))
21789 (file-name (git-file-name name version))
21790 (sha256
21791 (base32 "05lgxqaffnqaqnzl24frafdkskran88hl2ml05qvyjhs4jjbgw9g"))))
21792 (build-system emacs-build-system)
21793 (arguments
21794 ;; Tests require to have two specific calendars on a test server.
21795 `(#:exclude '("^org-caldav-testsuite\\.el")))
21796 (propagated-inputs
21797 (list emacs-org))
21798 (home-page "https://github.com/dengste/org-caldav")
21799 (synopsis "Sync Org files with external calendars via the CalDAV protocol")
21800 (description
21801 "Org CalDAV synchronizes events between Org files and a CalDAV
21802 calendar.")
21803 (license license:gpl3+))))
21804
21805 (define-public emacs-zotxt
21806 (package
21807 (name "emacs-zotxt")
21808 (version "5.0.5")
21809 (source
21810 (origin
21811 (method git-fetch)
21812 (uri (git-reference
21813 (url "https://github.com/egh/zotxt-emacs")
21814 (commit (string-append "v" version))))
21815 (file-name (git-file-name name version))
21816 (sha256
21817 (base32 "1zr67h0w49rsi84mgf6jdili28h8782q6vjl8za0iq1hcx9zqxyf"))))
21818 (build-system emacs-build-system)
21819 (propagated-inputs
21820 (list emacs-deferred emacs-request))
21821 (home-page "https://github.com/egh/zotxt-emacs")
21822 (synopsis "Integrate Emacs with Zotero")
21823 (description "This package provides two integration features between Emacs
21824 and the Zotero research assistant: Insertion of links to Zotero items into an
21825 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
21826 (license license:gpl3+)))
21827
21828 (define-public emacs-evil-multiedit
21829 (package
21830 (name "emacs-evil-multiedit")
21831 (version "1.4.3")
21832 (source
21833 (origin
21834 (method git-fetch)
21835 (uri (git-reference
21836 (url "https://github.com/hlissner/evil-multiedit")
21837 (commit (string-append "v" version))))
21838 (file-name (git-file-name name version))
21839 (sha256
21840 (base32 "08ycwss58zh2zikk79jfj074q78yjcd7vbjgv5ssqvws09x5rgfq"))))
21841 (build-system emacs-build-system)
21842 (propagated-inputs
21843 (list emacs-evil emacs-iedit))
21844 (native-inputs
21845 (list emacs-ert-runner))
21846 (arguments
21847 `(#:phases
21848 (modify-phases %standard-phases
21849 (add-before 'check 'fix-checks
21850 (lambda _
21851 (substitute* "Makefile"
21852 (("@cask exec ") ""))
21853 (substitute* "test/test-helper.el"
21854 (("'\\(evil iedit\\)") "nil")))))
21855 #:tests? #t
21856 #:test-command '("make" "test")))
21857 (home-page "https://github.com/hlissner/evil-multiedit")
21858 (synopsis "Multiple cursors for Evil mode")
21859 (description
21860 "This plugin was an answer to the lack of proper multiple cursor support
21861 in Emacs+Evil. It allows you to select and edit matches interactively,
21862 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
21863 defaults.")
21864 (license license:gpl3+)))
21865
21866 (define-public emacs-evil-mc
21867 (let ((commit "1cabb869fe70cef49f7dc06f015c3ade1a969c8c")
21868 (revision "2"))
21869 (package
21870 (name "emacs-evil-mc")
21871 (version (git-version "0.0.3" revision commit))
21872 (source
21873 (origin
21874 (method git-fetch)
21875 (uri (git-reference
21876 (url "https://github.com/gabesoft/evil-mc")
21877 (commit commit)))
21878 (file-name (git-file-name name version))
21879 (sha256
21880 (base32 "0p83p90faq1p02lmsfs7zrnky3cyzgy8z4m83a81r9kakjzhkrnb"))))
21881 (build-system emacs-build-system)
21882 (propagated-inputs
21883 (list emacs-evil))
21884 (native-inputs
21885 (list emacs-espuds))
21886 (home-page "https://github.com/gabesoft/evil-mc")
21887 (synopsis "Interactive search compatible with @code{multiple-cursors}")
21888 (description "This package can be used with @code{multiple-cursors} to
21889 provide an incremental search that moves all fake cursors in sync.")
21890 (license license:expat))))
21891
21892 (define-public emacs-evil-org
21893 (let ((commit "0d10ff7bb9a3a93d25cd91018b17f0a052b335f3")
21894 (revision "2"))
21895 (package
21896 (name "emacs-evil-org")
21897 (version (git-version "1.0.3" revision commit))
21898 (source
21899 (origin
21900 (method git-fetch)
21901 (uri (git-reference
21902 (url "https://github.com/Somelauw/evil-org-mode")
21903 (commit commit)))
21904 (file-name (git-file-name name version))
21905 (sha256
21906 (base32
21907 "15g47xgpswzc8lz7qdbbzfcq1n9m4474qa2jkg43l8d5ali8qa7z"))))
21908 (build-system emacs-build-system)
21909 (propagated-inputs (list emacs-evil))
21910 (home-page
21911 "https://github.com/Somelauw/evil-org-mode")
21912 (synopsis "Evil keybindings for Org mode")
21913 (description
21914 "This package adds supplemental Evil mode key-bindings to Emacs
21915 Org-mode. It features:
21916 @itemize
21917 @item normal, visual and insert mode bindings;
21918 @item key bindings organised in key themes;
21919 @item operators like > and < to work on headings;
21920 @item text objects;
21921 @item table support;
21922 @item calendar (date selection) support;
21923 @item agenda support.
21924 @end itemize\n")
21925 (license license:gpl3+))))
21926
21927 (define-public emacs-debpaste
21928 (package
21929 (name "emacs-debpaste")
21930 (version "0.1.5")
21931 (home-page "https://github.com/alezost/debpaste.el")
21932 (source
21933 (origin
21934 (method git-fetch)
21935 (uri (git-reference (url home-page)
21936 (commit (string-append "v" version))))
21937 (file-name (git-file-name name version))
21938 (sha256
21939 (base32
21940 "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
21941 (build-system emacs-build-system)
21942 (propagated-inputs
21943 (list emacs-xml-rpc))
21944 (synopsis "Manipulate pastes from the Debian Pastezone")
21945 (description "Debpaste is an Emacs interface for the Debian Pastezone,
21946 allowing you to receive, post, and delete pastes. It communicates with the
21947 server using XML-RPC.")
21948 (license license:gpl3+)))
21949
21950 (define-public emacs-xml-rpc
21951 (package
21952 (name "emacs-xml-rpc")
21953 (version "1.6.15")
21954 (source
21955 (origin
21956 (method git-fetch)
21957 (uri (git-reference
21958 (url "https://github.com/hexmode/xml-rpc-el")
21959 (commit version)))
21960 (file-name (git-file-name name version))
21961 (sha256
21962 (base32 "07vgwnk96i1vpsv2glg6kbkamjcs72xiznsa6xk7nl0nranzr3hd"))))
21963 (build-system emacs-build-system)
21964 (home-page "https://github.com/hexmode/xml-rpc-el")
21965 (synopsis "XML-RPC client for Emacs")
21966 (description "This package provides an XML-RPC client for Emacs capable
21967 of both synchronous and asynchronous method calls using the @code{url}
21968 package's async retrieval functionality. @file{xml-rpc.el} represents XML-RPC
21969 datatypes as Lisp values, automatically converting to and from the XML
21970 datastructures as needed, both for method parameters and return values, making
21971 using XML-RPC methods fairly transparent to the Lisp code.")
21972 (license license:gpl3+)))
21973
21974 (define-public emacs-xpm
21975 (package
21976 (name "emacs-xpm")
21977 (version "1.0.5")
21978 (source
21979 (origin
21980 (method url-fetch)
21981 (uri (string-append "https://elpa.gnu.org/packages/xpm-"
21982 version ".tar"))
21983 (sha256
21984 (base32 "13p6s6b2v7h4bnwdkkrd1qz84jd7g2s18w0czhpxv6hvj9sqf5hx"))))
21985 (build-system emacs-build-system)
21986 (home-page "https://elpa.gnu.org/packages/xpm.html")
21987 (synopsis "XPM image editing mode for Emacs")
21988 (description "This Emacs package makes editing XPM images easy (and maybe
21989 fun). Editing is done directly on the (textual) image format, for maximal
21990 cohesion with the Emacs Way.")
21991 (license license:gpl3+)))
21992
21993 (define-public emacs-fish-completion
21994 (package
21995 (name "emacs-fish-completion")
21996 (version "1.2")
21997 (source
21998 (origin
21999 (method git-fetch)
22000 (uri (git-reference
22001 (url "https://gitlab.com/Ambrevar/emacs-fish-completion.git")
22002 (commit version)))
22003 (file-name (git-file-name name version))
22004 (sha256
22005 (base32
22006 "17lqip1i1rrsvxzz4bx9rqf1fvwd3hriwg3sj6qxmfc8pylnp37q"))))
22007 (build-system emacs-build-system)
22008 (inputs (list fish))
22009 (arguments
22010 `(#:phases
22011 (modify-phases %standard-phases
22012 (add-after 'unpack 'configure
22013 (lambda* (#:key inputs outputs #:allow-other-keys)
22014 (let ((fish (assoc-ref inputs "fish")))
22015 ;; Specify the absolute file names of the various
22016 ;; programs so that everything works out-of-the-box.
22017 (make-file-writable "fish-completion.el")
22018 (emacs-substitute-variables
22019 "fish-completion.el"
22020 ("fish-completion-command"
22021 (string-append fish "/bin/fish")))))))))
22022 (home-page
22023 "https://gitlab.com/Ambrevar/emacs-fish-completion")
22024 (synopsis "Fish completion for Emacs pcomplete")
22025 (description
22026 "This package provides completion for the Fish shell to pcomplete (used
22027 by shell and Eshell). You can set it up globally with:
22028
22029 @example
22030 (when (and (executable-find \"fish\")
22031 (require 'fish-completion nil t))
22032 (global-fish-completion-mode))
22033 @end example
22034
22035 Alternatively, you can call the @code{fish-completion-mode} manually or in
22036 shell/Eshell mode hook.
22037
22038 The package @code{emacs-bash-completion} is an optional dependency: if available,
22039 @code{fish-completion-complete} can be configured to fall back on bash to further
22040 try completing. See @code{fish-completion-fallback-on-bash-p}.")
22041 (license license:gpl3+)))
22042
22043 (define-public emacs-gif-screencast
22044 (package
22045 (name "emacs-gif-screencast")
22046 (version "1.2")
22047 (source
22048 (origin
22049 (method git-fetch)
22050 (uri (git-reference
22051 (url "https://gitlab.com/Ambrevar/emacs-gif-screencast.git")
22052 (commit version)))
22053 (file-name (git-file-name name version))
22054 (sha256
22055 (base32
22056 "1yf6yipvhhna29mzaan5vb3d5qvbrkp2awr5diyf381mvxgk8akh"))))
22057 (build-system emacs-build-system)
22058 (inputs
22059 (list scrot imagemagick gifsicle))
22060 (arguments
22061 `(#:phases
22062 (modify-phases %standard-phases
22063 (add-after 'unpack 'configure
22064 (lambda* (#:key inputs outputs #:allow-other-keys)
22065 (let ((scrot (assoc-ref inputs "scrot"))
22066 (imagemagick (assoc-ref inputs "imagemagick"))
22067 (gifsicle (assoc-ref inputs "gifsicle")))
22068 (make-file-writable "gif-screencast.el")
22069 ;; Specify the absolute file names of the various
22070 ;; programs so that everything works out-of-the-box.
22071 (emacs-substitute-variables
22072 "gif-screencast.el"
22073 ("gif-screencast-program"
22074 (string-append scrot "/bin/scrot"))
22075 ("gif-screencast-convert-program"
22076 (string-append imagemagick "/bin/convert"))
22077 ("gif-screencast-cropping-program"
22078 (string-append imagemagick "/bin/mogrify"))
22079 ("gif-screencast-optimize-program"
22080 (string-append gifsicle "/bin/gifsicle")))))))))
22081 (home-page
22082 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
22083 (synopsis "One-frame-per-action GIF recording")
22084 (description
22085 "Call @code{gif-screencast} to start a recording.
22086 A screenshot is taken for every user action. Call
22087 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
22088 the GIF result.")
22089 (license license:gpl3+)))
22090
22091 (define-public emacs-google-translate
22092 (package
22093 (name "emacs-google-translate")
22094 (version "0.12.0")
22095 (source
22096 (origin
22097 (method git-fetch)
22098 (uri (git-reference
22099 (url "https://github.com/atykhonov/google-translate/")
22100 (commit (string-append "v" version))))
22101 (file-name (git-file-name name version))
22102 (sha256
22103 (base32
22104 "0rwpij2bm8d4jq2w5snkp88mfryplw8166dsrjm407n2p6xr48zx"))))
22105 (build-system emacs-build-system)
22106 (home-page "https://github.com/atykhonov/google-translate")
22107 (synopsis "Emacs interface to Google Translate")
22108 (description
22109 "This package provides an Emacs interface to the Google Translate
22110 on-line service.")
22111 (license license:gpl3+)))
22112
22113 (define-public emacs-helm-company
22114 (package
22115 (name "emacs-helm-company")
22116 (version "0.2.5")
22117 (source
22118 (origin
22119 (method git-fetch)
22120 (uri (git-reference
22121 (url "https://github.com/Sodel-the-Vociferous/helm-company")
22122 (commit (string-append "v" version))))
22123 (file-name (git-file-name name version))
22124 (sha256
22125 (base32
22126 "1ci37w6ahnqrfpb284gjvxmimlf61sdxb9k192yy9q983cksv2hx"))))
22127 (build-system emacs-build-system)
22128 (propagated-inputs
22129 (list emacs-helm emacs-company))
22130 (native-inputs
22131 (list emacs-ert-runner))
22132 (arguments
22133 `(#:tests? #t
22134 #:test-command '("ert-runner")))
22135 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
22136 (synopsis "Helm interface for company-mode")
22137 (description
22138 "This is a Helm interface to company-mode, a text completion
22139 framework.")
22140 (license license:gpl3+)))
22141
22142 (define-public emacs-helm-descbinds
22143 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
22144 (package
22145 (name "emacs-helm-descbinds")
22146 (version (git-version "1.13" "1" commit))
22147 (source
22148 (origin
22149 (method git-fetch)
22150 (uri (git-reference
22151 (url "https://github.com/emacs-helm/helm-descbinds")
22152 (commit commit)))
22153 (file-name (git-file-name name version))
22154 (sha256
22155 (base32
22156 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
22157 (build-system emacs-build-system)
22158 (propagated-inputs (list emacs-helm))
22159 (home-page "https://github.com/emacs-helm/helm-descbinds")
22160 (synopsis "Convenient @code{describe-bindings} with Helm")
22161 (description
22162 "This package is a replacement of @code{describe-bindings} for Helm.
22163 @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
22164 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
22165 @code{helm-descbinds}. The bindings are presented in a similar way as
22166 @code{describe-bindings} does, but you can use completion to find the command
22167 you searched for and execute it, or view its documentation.")
22168 (license license:gpl3+))))
22169
22170 (define-public emacs-helm-emms
22171 (let ((commit "37e5aa029abfa5a5c48636314de8157142944fa2"))
22172 (package
22173 (name "emacs-helm-emms")
22174 (version (git-version "1.3" "3" commit))
22175 (source
22176 (origin
22177 (method git-fetch)
22178 (uri (git-reference
22179 (url "https://github.com/emacs-helm/helm-emms")
22180 (commit commit)))
22181 (file-name (git-file-name name version))
22182 (sha256
22183 (base32
22184 "0r1ai6xhzayyik30w2sx9n62bxxwm12vfmjspv0daqif9az8y3vg"))))
22185 (build-system emacs-build-system)
22186 (propagated-inputs
22187 (list emacs-helm emacs-emms))
22188 (home-page
22189 "https://github.com/emacs-helm/helm-emms")
22190 (synopsis "Emms for Helm")
22191 (description "Helm interface for Emms to browse all tracks and all folders
22192 from @code{emms-source-file-default-directory}.")
22193 (license license:gpl3+))))
22194
22195 (define-public emacs-helm-exwm
22196 (package
22197 (name "emacs-helm-exwm")
22198 (version "0.0.2")
22199 (source
22200 (origin
22201 (method git-fetch)
22202 (uri (git-reference
22203 (url "https://github.com/emacs-helm/helm-exwm")
22204 (commit version)))
22205 (file-name (git-file-name name version))
22206 (sha256
22207 (base32 "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v"))))
22208 (build-system emacs-build-system)
22209 (propagated-inputs
22210 (list emacs-helm emacs-exwm))
22211 (home-page
22212 "https://github.com/emacs-helm/helm-exwm")
22213 (synopsis "Helm for EXWM buffers")
22214 (description
22215 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
22216 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
22217 switch between the various windows of one or several specific applications.
22218 See @code{helm-exwm-switch-browser} for an example.")
22219 (license license:gpl3+)))
22220
22221 (define-public emacs-helm-flycheck
22222 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
22223 (package
22224 (name "emacs-helm-flycheck")
22225 (version (git-version "0.4" "1" commit))
22226 (source
22227 (origin
22228 (method git-fetch)
22229 (uri (git-reference
22230 (url "https://github.com/yasuyk/helm-flycheck")
22231 (commit commit)))
22232 (file-name (git-file-name name version))
22233 (sha256
22234 (base32
22235 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
22236 (build-system emacs-build-system)
22237 (propagated-inputs
22238 (list emacs-dash emacs-flycheck emacs-helm))
22239 (home-page "https://github.com/yasuyk/helm-flycheck")
22240 (synopsis "Show Flycheck errors with Helm")
22241 (description
22242 "This integrates Flycheck with Helm.")
22243 (license license:gpl3+))))
22244
22245 (define-public emacs-helm-ls-git
22246 (package
22247 (name "emacs-helm-ls-git")
22248 (version "1.9.3")
22249 (source
22250 (origin
22251 (method git-fetch)
22252 (uri (git-reference
22253 (url "https://github.com/emacs-helm/helm-ls-git")
22254 (commit (string-append "v" version))))
22255 (file-name (git-file-name name version))
22256 (sha256
22257 (base32 "1bqk0z6zd3aza7ibb8h0ghya5kid4m6z01gs7jf4sr6p49rzp7hd"))))
22258 (build-system emacs-build-system)
22259 (propagated-inputs (list emacs-helm))
22260 (home-page "https://github.com/emacs-helm/helm-ls-git")
22261 (synopsis "Helm interface for listing the files in a Git repository")
22262 (description
22263 "This package provides a Helm interface for Git files.
22264 @itemize
22265 @item Display the open buffers in project.
22266 @item Display a status source showing state of project (modified files etc.).
22267 @item Display a list of all files in project under git control.
22268 @item Quickly look at diffs of modified files.
22269 @item Allow switching to @code{git status} with your preferred frontend
22270 (vc-dir, Magit,etc.).
22271 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
22272 can use ack-grep instead of grep).
22273 @item Integrate usage of gid from id-utils.
22274 @item Full integration with @code{helm-find-files}, allow you to browse
22275 projects unrelated to current-buffer.
22276 @item In addition, all actions of type files and buffers are provided.
22277 @end itemize\n")
22278 (license license:gpl3+)))
22279
22280 (define-public emacs-helm-mu
22281 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
22282 (package
22283 (name "emacs-helm-mu")
22284 (version (git-version "20180513" "1" commit))
22285 (source
22286 (origin
22287 (method git-fetch)
22288 (uri (git-reference
22289 (url "https://github.com/emacs-helm/helm-mu")
22290 (commit commit)))
22291 (file-name (git-file-name name version))
22292 (sha256
22293 (base32 "1lh0ahxdc5b2z18m9p30gwg8sbg33sjwkjr38p7h5xsm5fm7i0fz"))))
22294 (build-system emacs-build-system)
22295 (propagated-inputs
22296 (list emacs-helm mu))
22297 (home-page
22298 "https://github.com/emacs-helm/helm-mu")
22299 (synopsis
22300 "Helm sources for searching emails and contacts")
22301 (description
22302 "Helm sources for searching emails and contacts using @code{mu} and
22303 @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
22304 Emacs build on top of mu. Mu is highly efficient making it possible to get
22305 instant results even for huge maildirs. It also provides search operators,
22306 e.g: @code{from:Peter to:Anne flag:attach search term}.")
22307 (license license:gpl3+))))
22308
22309 (define-public emacs-helm-pass
22310 (package
22311 (name "emacs-helm-pass")
22312 (version "0.4")
22313 (source
22314 (origin
22315 (method git-fetch)
22316 (uri (git-reference
22317 (url "https://github.com/emacs-helm/helm-pass")
22318 (commit version)))
22319 (file-name (git-file-name name version))
22320 (sha256
22321 (base32
22322 "19w24isddzamkikq17vbv3y7ha22i7wc09d2nqw1j0qwhrrfkng9"))))
22323 (build-system emacs-build-system)
22324 (propagated-inputs
22325 (list emacs-helm emacs-password-store))
22326 (home-page "https://github.com/emacs-helm/helm-pass")
22327 (synopsis "Helm interface to pass, the standard Unix password manager")
22328 (description
22329 "Users of @code{helm-pass} may also be interested in functionality
22330 provided by other Emacs packages dealing with pass:
22331 @itemize
22332 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
22333 @item @code{emacs-pass}, a major mode for @code{pass}.
22334 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
22335 @code{pass}, included in Emacs 26+).
22336 @end itemize\n")
22337 (license license:gpl3+)))
22338
22339 (define-public emacs-image+
22340 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
22341 (package
22342 (name "emacs-image+")
22343 (version (git-version "0.6.2" "1" commit))
22344 (source
22345 (origin
22346 (method git-fetch)
22347 (uri (git-reference
22348 (url "https://github.com/mhayashi1120/Emacs-imagex")
22349 (commit commit)))
22350 (file-name (git-file-name name version))
22351 (sha256
22352 (base32
22353 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
22354 (build-system emacs-build-system)
22355 (inputs (list imagemagick))
22356 (arguments
22357 `(#:phases
22358 (modify-phases %standard-phases
22359 (add-after 'unpack 'configure
22360 (lambda* (#:key inputs outputs #:allow-other-keys)
22361 (let ((imagemagick (assoc-ref inputs "imagemagick")))
22362 ;; Specify the absolute file names of the various
22363 ;; programs so that everything works out-of-the-box.
22364 (chmod "image+.el" #o666)
22365 (emacs-substitute-variables
22366 "image+.el"
22367 ("imagex-convert-command"
22368 (string-append imagemagick "/bin/convert"))
22369 ("imagex-identify-command"
22370 (string-append imagemagick "/bin/identify")))))))))
22371 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
22372 (synopsis "Image manipulation extensions for Emacs")
22373 (description
22374 "Image+ provides keybindings allowing you to zoom in or zoom out of an
22375 image, rotate it, save modified images, and more.")
22376 (license license:gpl3+))))
22377
22378 (define-public emacs-package-lint
22379 (package
22380 (name "emacs-package-lint")
22381 (version "0.16")
22382 (source
22383 (origin
22384 (method git-fetch)
22385 (uri (git-reference
22386 (url "https://github.com/purcell/package-lint")
22387 (commit version)))
22388 (file-name (git-file-name name version))
22389 (sha256
22390 (base32
22391 "0srqcrhbdmd39jdsvh8k3nbrkqrl4nlic59dp5bal5vj495j7126"))))
22392 (arguments
22393 '(#:include (cons "^data/" %default-include)))
22394 (build-system emacs-build-system)
22395 (home-page "https://github.com/purcell/package-lint")
22396 (synopsis "Linting library for elisp package authors")
22397 (description
22398 "This provides a list of issues with the Emacs package metadata of a file,
22399 e.g. the package dependencies it requires. See function
22400 @code{package-lint-buffer}. Checks will currently be enabled only if a
22401 \"Package-Requires:\" or \"Package-Version:\" header is present in the
22402 file.")
22403 (license license:gpl3+)))
22404
22405 (define-public emacs-packed
22406 (package
22407 (name "emacs-packed")
22408 (version "3.0.4")
22409 (source
22410 (origin
22411 (method git-fetch)
22412 (uri (git-reference
22413 (url "https://github.com/emacscollective/packed")
22414 (commit version)))
22415 (file-name (git-file-name name version))
22416 (sha256
22417 (base32 "1gpv2vaci0m48fzn0sy7iwl1mnkkqc30bf05jjrqlpn9kpbjyf1p"))))
22418 (build-system emacs-build-system)
22419 (home-page "https://github.com/emacscollective/packed")
22420 (synopsis "Package manager agnostic Emacs Lisp package utilities")
22421 (description
22422 "Packed provides some package manager agnostic utilities to work
22423 with Emacs Lisp packages. As far as Packed is concerned packages
22424 are collections of Emacs Lisp libraries that are stored in a
22425 dedicated directory such as a Git repository. And libraries are
22426 Emacs Lisp files that provide the correct feature (matching the
22427 filename).
22428
22429 Where a package manager might depend on metadata, Packed instead
22430 uses some heuristics to get the same information---that is slower
22431 and might also fail at times but makes it unnecessary to maintain
22432 package recipes.")
22433 (license license:gpl3+)))
22434
22435 (define-public emacs-dpd
22436 (package
22437 (name "emacs-dpd")
22438 (version "0.2.1")
22439 (source
22440 (origin
22441 (method git-fetch)
22442 (uri (git-reference
22443 (url "https://gitlab.com/lilyp/emacs-dpd")
22444 (commit version)))
22445 (file-name (git-file-name name version))
22446 (sha256
22447 (base32 "0wrqmpfcqp87dr5blpskf9kvm9slvffldqfxx77n15gcw516zzc8"))))
22448 (build-system emacs-build-system)
22449 (propagated-inputs
22450 (list emacs-packed))
22451 (home-page "https://gitlab.com/lilyp/emacs-dpd")
22452 (synopsis "Deliver packages to package.el")
22453 (description
22454 "This package provides tools for generating package-desc structures and
22455 feeding them to package.el library.")
22456 (license license:gpl3+)))
22457
22458 (define-public emacs-picpocket
22459 (let ((version "41")
22460 (commit "fa3a49f011b5ae139728548fec7375743f61c7c7"))
22461 (package
22462 (name "emacs-picpocket")
22463 (version version)
22464 (source
22465 (origin
22466 (method git-fetch)
22467 (uri (git-reference
22468 (url "https://github.com/johanclaesson/picpocket")
22469 (commit commit)))
22470 (file-name (git-file-name name version))
22471 (sha256
22472 (base32 "1vb358jyfs3px70ah60dmlz5azdfkva9xrw3mgrr4060vcy7w4q1"))))
22473 (build-system emacs-build-system)
22474 (arguments ; needed for running tests
22475 `(#:tests? #t
22476 #:emacs ,emacs
22477 #:test-command '("emacs" "--batch"
22478 "-l" "picpocket-test.el"
22479 "-f" "ert-run-tests-batch-and-exit")))
22480 (home-page "https://github.com/johanclaesson/picpocket")
22481 (synopsis "Image viewer for Emacs")
22482 (description
22483 "Picpocket is an image viewer for GNU Emacs. It has commands for:
22484 @itemize
22485 @item File operations on the picture files (delete, move, copy, hardlink).
22486 @item Scale and rotate the picture.
22487 @item Associate pictures with tags which are saved to disk.
22488 @item Filter pictures according to tags.
22489 @item Customizing keystrokes for quick tagging and file operations.
22490 @item Undo and browse history of undoable commands.
22491 @end itemize")
22492 (license license:gpl3+))))
22493
22494 (define-public emacs-mu4e-conversation
22495 (let ((commit "98110bb9c300fc9866dee8e0023355f9f79c9b96")
22496 (revision "5"))
22497 (package
22498 (name "emacs-mu4e-conversation")
22499 (version (git-version "0.0.1" revision commit))
22500 (source
22501 (origin
22502 (method git-fetch)
22503 (uri (git-reference
22504 (url "https://gitlab.com/Ambrevar/mu4e-conversation.git")
22505 (commit commit)))
22506 (file-name (git-file-name name version))
22507 (sha256
22508 (base32
22509 "080s96jkcw2p288sp1vgds91rgl693iz6hi2dv56p2ih0nnivwlg"))))
22510 (build-system emacs-build-system)
22511 (propagated-inputs
22512 (list mu))
22513 (home-page
22514 "https://gitlab.com/Ambrevar/mu4e-conversation")
22515 (synopsis
22516 "Show a complete thread in a single buffer")
22517 (description
22518 "This package offers an alternate view to mu4e's e-mail display. It
22519 shows all e-mails of a thread in a single view, where each correspondent has
22520 their own face. Threads can be displayed linearly (in which case e-mails are
22521 displayed in chronological order) or as an Org document where the node tree
22522 maps the thread tree.")
22523 (license license:gpl3+))))
22524
22525 (define-public emacs-pinentry
22526 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
22527 (revision "1"))
22528 (package
22529 (name "emacs-pinentry")
22530 (version (git-version "0.1" revision commit))
22531 (source
22532 (origin
22533 (method url-fetch)
22534 (uri (string-append
22535 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
22536 "/packages/pinentry/pinentry.el?id=" commit))
22537 (file-name (string-append "pinentry.el"))
22538 (sha256
22539 (base32
22540 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
22541 (build-system emacs-build-system)
22542 (propagated-inputs
22543 (list gnupg))
22544 (home-page "https://elpa.gnu.org/packages/pinentry.html")
22545 (synopsis "GnuPG Pinentry server implementation")
22546 (description
22547 "This package allows GnuPG passphrase to be prompted through the
22548 minibuffer instead of graphical dialog.
22549
22550 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
22551 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
22552 server with @code{M-x pinentry-start}.")
22553 (license license:gpl3+))))
22554
22555 (define-public emacs-so-long
22556 (package
22557 (name "emacs-so-long")
22558 (version "1.1.2")
22559 (source
22560 (origin
22561 (method git-fetch)
22562 (uri (git-reference
22563 (url "https://git.savannah.gnu.org/git/so-long")
22564 (commit version)))
22565 (file-name (git-file-name name version))
22566 (sha256
22567 (base32
22568 "06a76ajfqgz48yqvvyhi5b9zss9c6h4xz6acg98ibg0v99v9k5pz"))))
22569 (build-system emacs-build-system)
22570 (home-page "https://www.emacswiki.org/emacs/SoLong")
22571 (synopsis "Improve performance in files with long lines")
22572 (description "This package improves the performance of Emacs when
22573 viewing files with long lines. It is included as standard with Emacs 27 or
22574 later.")
22575 (license license:gpl3+)))
22576
22577 (define-public emacs-srfi
22578 ;; SRFI data gets updated quite frequently; lastest tag is from
22579 ;; 2020; commit from 2021-08-12.
22580 (let ((commit "e31bf04a3be3aad1286b7fe919c2e4810aae751e")
22581 (revision "0"))
22582 (package
22583 (name "emacs-srfi")
22584 (version (git-version "0.3" revision commit))
22585 (source (origin
22586 (method git-fetch)
22587 (uri (git-reference
22588 (url "https://github.com/srfi-explorations/emacs-srfi")
22589 (commit commit)))
22590 (file-name (git-file-name name version))
22591 (sha256
22592 (base32
22593 "01n3yrjrdl2gdhvgd56lpjqg9d82mmrnb0h6hxdx4h5hy8sbk2p4"))))
22594 (build-system emacs-build-system)
22595 (home-page "https://github.com/srfi-explorations/emacs-srfi")
22596 (synopsis "Scheme Requests for Implementation browser in Emacs")
22597 (description
22598 "This package shows a list of all SRFIs and provides commands to visit
22599 them in your web browser.")
22600 (license license:expat))))
22601
22602 (define-public emacs-github-review
22603 (let ((commit "a13a3b4f1b6114a32af843971a145ab880f51232")
22604 (revision "2"))
22605 (package
22606 (name "emacs-github-review")
22607 (version (git-version "0.1" revision commit))
22608 (source
22609 (origin
22610 (method git-fetch)
22611 (uri (git-reference
22612 (url "https://github.com/charignon/github-review")
22613 (commit commit)))
22614 (file-name (git-file-name name version))
22615 (sha256
22616 (base32
22617 "0injfpxzgfhmqalba845j5l5cdcxxqz43knhxwinf36g52nfabl0"))))
22618 (build-system emacs-build-system)
22619 (inputs
22620 (list emacs-dash emacs-s emacs-ghub))
22621 (native-inputs
22622 (list emacs-buttercup emacs-undercover))
22623 (arguments
22624 `(#:tests? #t
22625 #:test-command '("buttercup" "-L" "test/github-review-test.el")))
22626 (home-page "https://github.com/charignon/github-review")
22627 (synopsis "Review GitHub pull requests within Emacs")
22628 (description "This package provides commands to pull in, comment on, and
22629 accept and reject GitHub pull requests.")
22630 (license license:gpl3+))))
22631
22632 (define-public emacs-deadgrep
22633 ;; Latest release is not tagged.
22634 (let ((commit "aebaf72e35546fd235b4861399791814e4e4c7d8")
22635 (revision "1"))
22636 (package
22637 (name "emacs-deadgrep")
22638 (version (git-version "0.11" revision commit))
22639 (source
22640 (origin
22641 (method git-fetch)
22642 (uri (git-reference
22643 (url "https://github.com/Wilfred/deadgrep")
22644 (commit commit)))
22645 (file-name (git-file-name name version))
22646 (sha256
22647 (base32
22648 "1qd60winrrpxmrjsx77i24921p6dad9halz5l5s6biwa421zcgr3"))))
22649 (build-system emacs-build-system)
22650 (inputs (list ripgrep))
22651 (propagated-inputs
22652 (list emacs-dash emacs-s emacs-spinner))
22653 (arguments
22654 `(#:phases
22655 (modify-phases %standard-phases
22656 (add-after 'unpack 'configure
22657 (lambda* (#:key inputs #:allow-other-keys)
22658 (let ((ripgrep (assoc-ref inputs "ripgrep")))
22659 ;; .el is read-only in git.
22660 (make-file-writable "deadgrep.el")
22661 ;; Specify the absolute file names of rg so that everything
22662 ;; works out-of-the-box.
22663 (emacs-substitute-variables "deadgrep.el"
22664 ("deadgrep-executable"
22665 (string-append ripgrep "/bin/rg")))))))))
22666 (home-page "https://github.com/Wilfred/deadgrep")
22667 (synopsis "Frontend for @code{ripgrep}")
22668 (description "This package provides an Emacs interface for performing
22669 searches with @code{ripgrep}.")
22670 (license license:gpl3+))))
22671
22672 (define-public emacs-focus
22673 (let ((commit "5f3f20e7f22fb9fd7c48abce8bd38061d97e4bc0")
22674 (version "1.0.0")
22675 (revision "1"))
22676 (package
22677 (name "emacs-focus")
22678 (version (git-version version revision commit))
22679 (source
22680 (origin
22681 (method git-fetch)
22682 (uri (git-reference
22683 (url "https://github.com/larstvei/Focus")
22684 (commit commit)))
22685 (file-name (git-file-name name version))
22686 (sha256
22687 (base32
22688 "0a55i4bychfnnzjg67a9h4j130hchcg44446dwwx1l1h48i692dw"))))
22689 (build-system emacs-build-system)
22690 (home-page "https://github.com/larstvei/Focus")
22691 (synopsis "Minor mode for focusing in on relevant text")
22692 (description "This package provides a minor mode that dims the color of
22693 text in neighboring sections.")
22694 (license license:gpl3+))))
22695
22696 (define-public emacs-pandoc-mode
22697 (package
22698 (name "emacs-pandoc-mode")
22699 (version "2.31")
22700 (source
22701 (origin
22702 (method git-fetch)
22703 (uri (git-reference
22704 (url "https://github.com/joostkremers/pandoc-mode")
22705 (commit version)))
22706 (file-name (git-file-name name version))
22707 (sha256
22708 (base32
22709 "1c3gay9fkikg7h46djw1nf86fzckmv7w1zbz5fbar20klcr12pbm"))))
22710 (build-system emacs-build-system)
22711 (propagated-inputs
22712 (list emacs-dash emacs-hydra))
22713 (home-page "https://github.com/joostkremers/pandoc-mode")
22714 (synopsis "Minor mode for interacting with Pandoc")
22715 (description "This package provides a Hydra menu for interacting with the
22716 Pandoc, the document-conversion tool.")
22717 (license license:bsd-3)))
22718
22719 (define-public emacs-hlint-refactor-mode
22720 (let ((commit "c4307f86aad6d02e32e9b30cb6edc115584c791c")
22721 (revision "1"))
22722 (package
22723 (name "emacs-hlint-refactor-mode")
22724 (version (git-version "0.0.1" revision commit))
22725 (source
22726 (origin
22727 (method git-fetch)
22728 (uri (git-reference
22729 (url "https://github.com/mpickering/hlint-refactor-mode")
22730 (commit commit)))
22731 (file-name (git-file-name name version))
22732 (sha256
22733 (base32
22734 "1c71w9s34n0i7mm4njchxn6s3ri1y6mh3akgbg4nq41d42h8iap3"))))
22735 (build-system emacs-build-system)
22736 (propagated-inputs
22737 (list apply-refact hlint))
22738 (home-page "https://github.com/mpickering/hlint-refactor-mode")
22739 (synopsis "Emacs bindings for @code{hlint}'s @code{--refactor} option")
22740 (description "This package applies refactoring suggestions from
22741 @code{hlint}.")
22742 (license license:expat))))
22743
22744 (define-public emacs-ccls
22745 (let ((commit "675a5704c14a27931e835a431beea3631d92e8e6")
22746 (revision "5"))
22747 (package
22748 (name "emacs-ccls")
22749 (version (git-version "0.1" revision commit))
22750 (source
22751 (origin
22752 (method git-fetch)
22753 (uri (git-reference
22754 (url "https://github.com/MaskRay/emacs-ccls")
22755 (commit commit)))
22756 (file-name (git-file-name name version))
22757 (sha256
22758 (base32
22759 "0l4bhyr9d8ljz1f0cfg1s2cjcmh6fiwbk5mdlvc7rrwz5hxc21is"))))
22760 (build-system emacs-build-system)
22761 (propagated-inputs
22762 (list ccls emacs-dash emacs-lsp-mode))
22763 (home-page "https://github.com/MaskRay/emacs-ccls")
22764 (synopsis "Emacs support for the @code{ccls} language server")
22765 (description "This package extends @code{lsp-mode} to work with @code{C}
22766 and @code{C++} files through the @code{ccls} language server.")
22767 (license license:expat))))
22768
22769 (define-public emacs-cpreproc
22770 (package
22771 (name "emacs-cpreproc")
22772 (version "1.0.0")
22773 (source
22774 (origin
22775 (method git-fetch)
22776 (uri (git-reference
22777 (url "https://git.sr.ht/~plattfot/cpreproc")
22778 (commit version)))
22779 (sha256
22780 (base32
22781 "0n4lhj9bbnkbzvifrj9q6z3j7z6jqzkaa36y239cfxdcc7i86c1c"))
22782 (file-name (git-file-name name version))))
22783 (build-system emacs-build-system)
22784 (home-page "https://sr.ht/~plattfot/cpreproc")
22785 (synopsis "Wrap C/C++ code in preprocessor macros")
22786 (description
22787 "Aim for this project is to make it easier to generate preprocessor macros
22788 from Emacs for C/C++ code that needs to be build against multiple incompatible
22789 versions of third party libraries or @code{C++} standards.")
22790 (license license:gpl3+)))
22791
22792 (define-public emacs-org-brain
22793 (package
22794 (name "emacs-org-brain")
22795 (version "0.5")
22796 (source
22797 (origin
22798 (method git-fetch)
22799 (uri (git-reference
22800 (url "https://github.com/Kungsgeten/org-brain")
22801 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
22802 (file-name (git-file-name name version))
22803 (sha256
22804 (base32
22805 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
22806 (build-system emacs-build-system)
22807 (home-page "https://github.com/Kungsgeten/org-brain")
22808 (synopsis "Org-mode wiki and concept-mapping for Emacs")
22809 (description "@code{emacs-org-brain} implements a variant of concept
22810 mapping in Emacs, using @code{org-mode}. An org-brain is a network of
22811 org-mode entries, where each entry is a file or a headline, and you can get a
22812 visual overview of the relationships between the entries: parents, children,
22813 siblings and friends. This visual overview can also be used to browse your
22814 entries. You can think of entries as nodes in a mind map, or pages in a
22815 wiki.")
22816 (license license:expat)))
22817
22818 (define-public emacs-recent-addresses
22819 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
22820 (revision "1"))
22821 (package
22822 (name "emacs-recent-addresses")
22823 (home-page "https://nschum.de/src/emacs/recent-addresses/")
22824 (version (git-version "0.1" revision commit))
22825 (source (origin
22826 (method git-fetch)
22827 (uri (git-reference
22828 ;; Note: Use a branch that works with Helm. Submitted
22829 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
22830 (url "https://github.com/civodul/recent-addresses.el")
22831 (commit commit)))
22832 (sha256
22833 (base32
22834 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
22835 (file-name (git-file-name name version))))
22836 (build-system emacs-build-system)
22837 (synopsis "Record recently-used email addressed and auto-complete them")
22838 (description
22839 "@code{recent-addresses} is an Emacs package that allows you to quickly
22840 look up previously used email addresses. It can be used alongside the Gnus
22841 email client.")
22842 (license license:gpl2+))))
22843
22844 (define-public emacs-fold-dwim
22845 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
22846 (revision "0"))
22847 (package
22848 (name "emacs-fold-dwim")
22849 (version (git-version "1.2" revision commit))
22850 (home-page "https://github.com/emacsattic/fold-dwim")
22851 (source (origin
22852 (method git-fetch)
22853 (uri (git-reference (url home-page) (commit commit)))
22854 (sha256
22855 (base32
22856 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
22857 (file-name (git-file-name name version))))
22858 (build-system emacs-build-system)
22859 (synopsis "Unified user interface for Emacs folding modes")
22860 (description
22861 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
22862 can do different things depending on the context. In this package, it means
22863 that, if the cursor is in a currently hidden folded construction, we want to
22864 show it; if it's not, we want to hide whatever fold the cursor is in.")
22865 (license license:gpl2+))))
22866
22867 (define-public emacs-markup-faces
22868 (package
22869 (name "emacs-markup-faces")
22870 (version "1.0.0")
22871 (source
22872 (origin
22873 (method url-fetch)
22874 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
22875 version ".el"))
22876 (sha256
22877 (base32
22878 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
22879 (build-system emacs-build-system)
22880 (home-page "https://github.com/sensorflo/markup-faces")
22881 (synopsis "Collection of Emacs faces for markup language modes")
22882 (description "emacs-markup-faces is like font-lock-faces, but tailored for
22883 markup languages instead programming languages. The sub group markup-faces-text
22884 is also intended for 'text viewing modes' such as info or (wo)man. This gives a
22885 common look and feel, or let's say theme, across different markup language modes
22886 and 'text viewing modes' respectively.")
22887 (license license:gpl3+)))
22888
22889 (define-public emacs-adoc-mode
22890 (package
22891 (name "emacs-adoc-mode")
22892 (version "0.6.6")
22893 (source
22894 (origin
22895 (method git-fetch)
22896 (uri (git-reference
22897 (url "https://github.com/sensorflo/adoc-mode")
22898 (commit (string-append "V" version))))
22899 (file-name (git-file-name name version))
22900 (sha256
22901 (base32
22902 "0kp2aafjhqxz3mjr9hkkss85r4n51chws5a2qj1xzb63dh36liwm"))))
22903 (build-system emacs-build-system)
22904 (arguments
22905 `(#:phases
22906 (modify-phases %standard-phases
22907 ;; See: https://github.com/sensorflo/adoc-mode/issues/39.
22908 (add-after 'unpack 'disable-failing-tests
22909 (lambda _
22910 (let-syntax
22911 ((disable-tests
22912 (syntax-rules ()
22913 ((_ file ())
22914 (syntax-error "test names list must not be empty"))
22915 ((_ file (test-name ...))
22916 (substitute* file
22917 (((string-append "^\\(ert-deftest " test-name ".*") all)
22918 (string-append all "(skip-unless nil)\n")) ...)))))
22919 (disable-tests "adoc-mode-test.el"
22920 ("adoctest-test-tempo-delimited-blocks"
22921 "adoctest-test-tempo-macros"
22922 "adoctest-test-tempo-paragraphs"
22923 "adoctest-test-tempo-passthroug-macros"
22924 "adoctest-test-tempo-quotes")))
22925 #t)))
22926 #:tests? #t
22927 #:test-command '("emacs" "-Q" "-batch"
22928 "-l" "adoc-mode-test.el"
22929 "-f" "ert-run-tests-batch-and-exit")))
22930 (propagated-inputs
22931 (list emacs-markup-faces))
22932 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
22933 (synopsis "AsciiDoc mode for Emacs")
22934 (description "This package provides an Emacs major mode for editing AsciiDoc
22935 files. It focuses on highlighting the document to improve readability.")
22936 (license license:gpl2+)))
22937
22938 (define-public emacs-racer
22939 (let ((commit "1e63e98626737ea9b662d4a9b1ffd6842b1c648c")
22940 (revision "0"))
22941 (package
22942 (name "emacs-racer")
22943 (version (git-version "1.2" revision commit))
22944 (source
22945 (origin
22946 (method git-fetch)
22947 (uri
22948 (git-reference
22949 (url "https://github.com/racer-rust/emacs-racer")
22950 (commit commit)))
22951 (file-name (git-file-name name version))
22952 (sha256
22953 (base32 "12a429lajk09qp1jxgig54p8z6wndfgr4jwdmgkc9s2df9sw02d3"))))
22954 (arguments
22955 `(#:tests? #t
22956 #:test-command '("ert-runner")))
22957 (native-inputs
22958 (list emacs-ert-runner emacs-undercover))
22959 (propagated-inputs
22960 (list emacs-dash emacs-f emacs-pos-tip emacs-rust-mode emacs-s))
22961 (build-system emacs-build-system)
22962 (home-page "https://github.com/racer-rust/emacs-racer")
22963 (synopsis "Racer support for Emacs")
22964 (description
22965 "This is the official Emacs package for Racer. It supports code
22966 completion of variables, functions and modules. It can also jump to
22967 definition of functions and types, and show a help buffer based on the
22968 docstring of the thing at point.")
22969 (license license:expat))))
22970
22971 (define-public emacs-rust-mode
22972 (package
22973 (name "emacs-rust-mode")
22974 (version "1.0.4")
22975 (source
22976 (origin
22977 (method git-fetch)
22978 (uri (git-reference
22979 (url "https://github.com/rust-lang/rust-mode")
22980 (commit version)))
22981 (file-name (git-file-name name version))
22982 (sha256
22983 (base32 "10972zw2h1dijx08j5h7aa4d717vhrmahzkslisy3dk2gd8y2v0q"))))
22984 (build-system emacs-build-system)
22985 (arguments
22986 `(#:tests? #false ;FIXME: phase fail with status 127
22987 #:test-command '("make test")))
22988 (home-page "https://github.com/rust-lang/rust-mode")
22989 (synopsis "Major Emacs mode for editing Rust source code")
22990 (description "This package provides a major Emacs mode for editing Rust
22991 source code.")
22992 (license (list license:expat
22993 license:asl2.0))))
22994
22995 (define-public emacs-rustic
22996 (package
22997 (name "emacs-rustic")
22998 (version "3.0")
22999 (source
23000 (origin
23001 (method git-fetch)
23002 (uri (git-reference
23003 (url "https://github.com/brotzeit/rustic")
23004 (commit version)))
23005 (file-name (git-file-name name version))
23006 (sha256
23007 (base32 "18br5yfakfwcbw3vkawhw5sm41xg78cz4bimz36x5xcgbwi88k3p"))))
23008 (build-system emacs-build-system)
23009 (propagated-inputs
23010 (list emacs-dash
23011 emacs-f
23012 emacs-flycheck
23013 emacs-lsp-mode
23014 emacs-markdown-mode
23015 emacs-project
23016 emacs-rust-mode
23017 emacs-s
23018 emacs-spinner
23019 emacs-xterm-color))
23020 (arguments
23021 ;; Tests require rust, cargo, rustfmt, and various crates to be
23022 ;; vendored.
23023 `(#:tests? #f
23024 #:phases
23025 (modify-phases %standard-phases
23026 (add-before 'check 'set-without-cask
23027 (lambda _
23028 (setenv "WITHOUT_CASK" "1"))))))
23029 (home-page "https://github.com/brotzeit/rustic")
23030 (synopsis "Rust development environment for Emacs")
23031 (description "Rustic is a fork of Rust mode.
23032 In addition to its predecessor, it offers the following features:
23033 @itemize
23034 @item Flycheck integration,
23035 @item Cargo popup,
23036 @item multiline error parsing,
23037 @item translation of ANSI control sequences through XTerm color,
23038 @item asynchronous Org Babel,
23039 @item custom compilation process,
23040 @item @command{rustfmt} errors in a Rust compilation mode,
23041 @item automatic LSP configuration with Eglot or LSP mode,
23042 @item optional Rust inline documentation,
23043 @item etc.
23044 @end itemize")
23045 (license (list license:expat
23046 license:asl2.0))))
23047
23048 (define-public emacs-ztree
23049 ;; Upstream provides no tag, but the commit below matches latest release.
23050 (let ((commit "c9ad9136d52ca5a81475693864e255d29448f43f"))
23051 (package
23052 (name "emacs-ztree")
23053 (version "1.0.6")
23054 (source
23055 (origin
23056 (method git-fetch)
23057 (uri (git-reference
23058 (url "https://github.com/fourier/ztree")
23059 (commit commit)))
23060 (file-name (git-file-name name version))
23061 (sha256
23062 (base32
23063 "03i5pa3nfdz6g0yrdk7r2qcn679w0s85cc5kcmgrwlnhdzakgr80"))))
23064 (build-system emacs-build-system)
23065 (home-page "https://github.com/fourier/ztree")
23066 (synopsis "Directory tree comparison mode for Emacs")
23067 (description "Ztree is a project dedicated to implementation of several
23068 text-tree applications inside GNU Emacs. It consists of 2 subprojects:
23069 @command{ztree-diff} and @command{ztree-dir} (the basis of
23070 @command{ztree-diff}).")
23071 (license license:gpl3))))
23072
23073 (define-public emacs-helm-org-contacts
23074 (let ((commit "741eca6239684950219c9a12802386a132491b8c")
23075 (revision "2"))
23076 (package
23077 (name "emacs-helm-org-contacts")
23078 (version (git-version "20201202" revision commit))
23079 (source
23080 (origin
23081 (method git-fetch)
23082 (uri (git-reference
23083 (url "https://github.com/tmalsburg/helm-org-contacts")
23084 (commit commit)))
23085 (file-name (git-file-name name version))
23086 (sha256
23087 (base32
23088 "1xy51hc3az8bc9sj71sjzy03xpkfa4v3cdcv3gpq3cj2zhk9gr8h"))))
23089 (build-system emacs-build-system)
23090 (propagated-inputs
23091 (list emacs-dash emacs-helm emacs-s))
23092 (home-page "https://github.com/tmalsburg/helm-org-contacts")
23093 (synopsis "Helm source for org-contacts")
23094 (description "This Helm source can be used to search contacts stored in
23095 org-contacts format. There are actions for inserting postal addresses, email
23096 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
23097 was called.")
23098 (license license:gpl3))))
23099
23100 (define-public emacs-dired-du
23101 (package
23102 (name "emacs-dired-du")
23103 (version "0.5.2")
23104 (source
23105 (origin
23106 (method url-fetch)
23107 (uri (string-append
23108 "https://elpa.gnu.org/packages/dired-du-" version ".tar"))
23109 (sha256
23110 (base32 "0vhph7vcicsiq28b10h3b4dvnhckcy4gccpdgsad5j7pwa5k26m1"))))
23111 (build-system emacs-build-system)
23112 (home-page "https://elpa.gnu.org/packages/dired-du.html")
23113 (synopsis "Dired with recursive directory sizes")
23114 (description
23115 "Display the recursive size of directories in Dired.
23116 This file defines a minor mode @command{dired-du-mode} to show the recursive
23117 size of directories in Dired buffers. If @command{du} program is available,
23118 then the directory sizes are obtained with it. Otherwise, the directory sizes
23119 are obtained with Lisp. The former is faster and provide a more precise
23120 value. For directories where the user doesn't have read permission, the
23121 recursive size is not obtained. Once this mode is enabled, every new Dired
23122 buffer displays recursive dir sizes.")
23123 (license license:gpl3+)))
23124
23125 (define-public emacs-dired-rsync
23126 (package
23127 (name "emacs-dired-rsync")
23128 (version "0.6")
23129 (source (origin
23130 (method git-fetch)
23131 (uri (git-reference
23132 (url "https://github.com/stsquad/dired-rsync")
23133 (commit version)))
23134 (file-name (git-file-name name version))
23135 (sha256
23136 (base32
23137 "19za6i96xrmczdh928n5ixd7j7pvy175sz1msaiwvdjwysjr8k51"))))
23138 (build-system emacs-build-system)
23139 (propagated-inputs
23140 (list emacs-s emacs-dash))
23141 (home-page "https://github.com/stsquad/dired-rsync/")
23142 (synopsis "Support for rsync from Emacs dired buffers")
23143 (description "This package adds a single command @code{dired-rsync} which
23144 allows the user to copy marked files in a dired buffer via @code{rsync}. This
23145 is useful, especially for large files, because the copy happens in the
23146 background and doesn’t lock up Emacs. It is also more efficient than using
23147 tramps own encoding methods for moving data between systems.")
23148 (license license:gpl3+)))
23149
23150 (define-public emacs-pcre2el
23151 ;; Last release is very old so we get the latest commit.
23152 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
23153 (package
23154 (name "emacs-pcre2el")
23155 (version (git-version "1.8" "1" commit))
23156 (source
23157 (origin
23158 (method git-fetch)
23159 (uri (git-reference
23160 (url "https://github.com/joddie/pcre2el")
23161 (commit commit)))
23162 (file-name (git-file-name name version))
23163 (sha256
23164 (base32
23165 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
23166 (build-system emacs-build-system)
23167 (home-page "https://github.com/joddie/pcre2el")
23168 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
23169 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
23170 Tools) is a utility for working with regular expressions in Emacs, based on a
23171 recursive-descent parser for regexp syntax. In addition to converting (a
23172 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
23173
23174 @itemize
23175 @item convert Emacs syntax to PCRE
23176 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
23177 @item untangle complex regexps by showing the parse tree in @code{rx} form and
23178 highlighting the corresponding chunks of code
23179 @item show the complete list of strings (productions) matching a regexp,
23180 provided the list is finite
23181 @item provide live font-locking of regexp syntax (so far only for Elisp
23182 buffers – other modes on the TODO list).
23183 @end itemize\n")
23184 (license license:gpl3))))
23185
23186 (define-public emacs-magit-todos
23187 (package
23188 (name "emacs-magit-todos")
23189 (version "1.5.3")
23190 (source
23191 (origin
23192 (method git-fetch)
23193 (uri (git-reference
23194 (url "https://github.com/alphapapa/magit-todos")
23195 (commit version)))
23196 (file-name (git-file-name name version))
23197 (sha256
23198 (base32
23199 "12ay02vk6bk77k33mhlqi41m03a77y80b15rj1dbh1n6jfrjwkfy"))))
23200 (build-system emacs-build-system)
23201 (propagated-inputs
23202 (list emacs-async
23203 emacs-dash
23204 emacs-f
23205 emacs-hl-todo
23206 emacs-magit
23207 emacs-pcre2el
23208 emacs-s))
23209 (home-page "https://github.com/alphapapa/magit-todos")
23210 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
23211 (description "This package displays keyword entries from source code
23212 comments and Org files in the Magit status buffer. Activating an item jumps
23213 to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
23214 few (like NOTE).")
23215 (license license:gpl3)))
23216
23217 (define-public emacs-git-annex
23218 ;; Unreleased version has a fontification fix.
23219 (let ((commit "1324d3f23c534fe79391a2c256bb8803054e383b")
23220 (revision "2"))
23221 (package
23222 (name "emacs-git-annex")
23223 (version (git-version "1.1" revision commit))
23224 (source
23225 (origin
23226 (method git-fetch)
23227 (uri (git-reference
23228 (url "https://github.com/jwiegley/git-annex-el")
23229 (commit commit)))
23230 (file-name (git-file-name name version))
23231 (sha256
23232 (base32
23233 "1lfky2nsrlndlbvk6vwbswnvbvkz1sxgg0n3r5q6xykdkjym0lrh"))))
23234 (build-system emacs-build-system)
23235 (home-page "https://github.com/jwiegley/git-annex-el")
23236 (synopsis "Emacs integration for git-annex")
23237 (description "Enhances Dired and buffers visiting annex files with
23238 git-annex functionality. In Dired, the names of annex files are shortened by
23239 hiding the symbolic links and fontified based on whether content is present.
23240 Commands for performing some common operations (e.g., unlocking and adding
23241 files) are provided.")
23242 (license license:gpl2+))))
23243
23244 (define-public emacs-hackernews
23245 (package
23246 (name "emacs-hackernews")
23247 (version "0.6.1")
23248 (source
23249 (origin
23250 (method git-fetch)
23251 (uri (git-reference
23252 (url "https://github.com/clarete/hackernews.el")
23253 (commit (string-append "v" version))))
23254 (file-name (git-file-name name version))
23255 (sha256
23256 (base32
23257 "17lkjcka6ydd6khhz5jbjlybfpx05153z0d8s1rxaxcwl7z2y6cf"))))
23258 (build-system emacs-build-system)
23259 (home-page "https://github.com/clarete/hackernews.el")
23260 (synopsis "Hacker News client for Emacs")
23261 (description "The @command{hackernews} package is able to fetch stories
23262 from six different Hacker News feeds, namely top, new, best, ask, show and job
23263 stories. The default feed is top stories, which corresponds to the Hacker
23264 News homepage.")
23265 (license license:gpl3)))
23266
23267 (define-public emacs-youtube-dl
23268 (let ((commit "af877b5bc4f01c04fccfa7d47a2c328926f20ef4")
23269 (revision "2"))
23270 (package
23271 (name "emacs-youtube-dl")
23272 (version (git-version "1.0" "2" commit))
23273 (source
23274 (origin
23275 (method git-fetch)
23276 (uri (git-reference
23277 (url "https://github.com/skeeto/youtube-dl-emacs/")
23278 (commit commit)))
23279 (file-name (git-file-name name version))
23280 (sha256
23281 (base32
23282 "0zkl9jkjbx0lmp9ylv4rqg1zwqibk053s4rp7s1h0i18nzk7vn8j"))))
23283 (build-system emacs-build-system)
23284 (inputs
23285 (list youtube-dl))
23286 (arguments
23287 `(#:phases
23288 (modify-phases %standard-phases
23289 (add-after 'unpack 'configure
23290 (lambda* (#:key inputs #:allow-other-keys)
23291 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
23292 ;; .el is read-only in git.
23293 (chmod "youtube-dl.el" #o644)
23294 ;; Specify the absolute file names of the various
23295 ;; programs so that everything works out-of-the-box.
23296 (emacs-substitute-variables
23297 "youtube-dl.el"
23298 ("youtube-dl-program"
23299 (string-append youtube-dl "/bin/youtube-dl")))))))))
23300 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
23301 (synopsis "Emacs youtube-dl download manager")
23302 (description "This package manages a video download queue for
23303 @command{youtube-dl}, which serves as the back end. It manages a single
23304 @command{youtube-dl} subprocess, downloading one video at a time. New videos
23305 can be queued at any time.")
23306 (license license:unlicense))))
23307
23308 (define-public emacs-ytdl
23309 (package
23310 (name "emacs-ytdl")
23311 (version "1.3.6")
23312 (source
23313 (origin
23314 (method git-fetch)
23315 (uri (git-reference
23316 (url "https://gitlab.com/tuedachu/ytdl")
23317 (commit version)))
23318 (file-name (git-file-name name version))
23319 (sha256
23320 (base32 "010arhvibyw50lqhsr8bm0vj3pzry1h1vgcvxnmyryirk3dv40jl"))))
23321 (build-system emacs-build-system)
23322 (arguments
23323 `(#:phases
23324 (modify-phases %standard-phases
23325 (add-after 'unpack 'configure
23326 (lambda* (#:key inputs #:allow-other-keys)
23327 ;; .el is read-only in git.
23328 (make-file-writable "ytdl.el")
23329 ;; Specify the absolute file names of the various programs so
23330 ;; that everything works out-of-the-box.
23331 (emacs-substitute-variables "ytdl.el"
23332 ("ytdl-command"
23333 (search-input-file inputs "/bin/youtube-dl"))))))))
23334 (inputs
23335 (list youtube-dl))
23336 (propagated-inputs
23337 (list emacs-async emacs-transient))
23338 (home-page "https://gitlab.com/tuedachu/ytdl")
23339 (synopsis "Emacs interface for youtube-dl")
23340 (description
23341 "This package manages a video download queue for @command{youtube-dl},
23342 which serves as the back end. New videos can be queued at any time. All
23343 youtube-dl backends are supported. It is possible to create download profiles
23344 depending on the downloaded URL.")
23345 (license license:gpl3+)))
23346
23347 (define-public emacs-ytel
23348 ;; No tagged releases. Using version from main file.
23349 (let ((commit "d40bc7ead8d4d7e4d16b03b66a93d63bef51cc5f")
23350 (revision "0"))
23351 (package
23352 (name "emacs-ytel")
23353 (version (git-version "0.1.0" revision commit))
23354 (source
23355 (origin
23356 (method git-fetch)
23357 (uri (git-reference
23358 (url "https://github.com/grastello/ytel")
23359 (commit commit)))
23360 (file-name (git-file-name name version))
23361 (sha256
23362 (base32 "0pxzfsxzrpv59dssrgx2mmwkm6rzk49ffjkgsa3wks7rdyfil3kf"))))
23363 (build-system emacs-build-system)
23364 (arguments
23365 `(#:phases
23366 (modify-phases %standard-phases
23367 (add-after 'unpack 'patch-exec-paths
23368 (lambda* (#:key inputs #:allow-other-keys)
23369 (let ((curl (assoc-ref inputs "curl")))
23370 (substitute* "ytel.el"
23371 (("\"curl\"") (string-append "\"" curl "/bin/curl\"")))))))))
23372 (inputs
23373 (list curl))
23374 (home-page "https://github.com/grastello/ytel")
23375 (synopsis "Youtube front-end for Emacs")
23376 (description
23377 "This package provides a major mode to search YouTube videos via an
23378 Elfeed-like buffer. Information about videos displayed in this buffer can be
23379 extracted and manipulated by user-defined functions to do various things such
23380 as playing them in some video player, or downloading them.")
23381 (license license:gpl3+))))
23382
23383 (define-public emacs-ytel-show
23384 ;; No tagged releases. Version extracted from main file.
23385 (let ((commit "8b999484eb447ecdb741b24cbef2b5a7260a53e6")
23386 (revision "0"))
23387 (package
23388 (name "emacs-ytel-show")
23389 (version (git-version "0.1.0" revision commit))
23390 (source
23391 (origin
23392 (method git-fetch)
23393 (uri (git-reference
23394 (url "https://github.com/xFA25E/ytel-show")
23395 (commit commit)))
23396 (file-name (git-file-name name version))
23397 (sha256
23398 (base32 "0nhgzfzq1bgpbdbljx5z2hzr8ia7ybsyvvr66yj4klz0zj97rghj"))))
23399 (build-system emacs-build-system)
23400 (propagated-inputs
23401 (list emacs-ytel))
23402 (home-page "https://github.com/xFA25E/ytel-show")
23403 (synopsis "Browse YouTube in Emacs")
23404 (description
23405 "This package provides an Emacs interface for browsing YouTube videos
23406 and comments.")
23407 (license license:gpl3+))))
23408
23409 (define-public emacs-org-web-tools
23410 (package
23411 (name "emacs-org-web-tools")
23412 (version "1.1.1")
23413 (source
23414 (origin
23415 (method git-fetch)
23416 (uri (git-reference
23417 (url "https://github.com/alphapapa/org-web-tools")
23418 (commit version)))
23419 (file-name (git-file-name name version))
23420 (sha256
23421 (base32
23422 "0v4qad54r0z7dr7kg5lpfdsazi44qvrbybx9aciyl4w9grfajphb"))))
23423 (build-system emacs-build-system)
23424 (propagated-inputs
23425 (list emacs-dash emacs-esxml emacs-request emacs-s))
23426 (inputs
23427 (list pandoc))
23428 (arguments
23429 `(#:phases
23430 (modify-phases %standard-phases
23431 (add-after 'unpack 'patch-exec-paths
23432 (lambda* (#:key inputs #:allow-other-keys)
23433 (let ((pandoc (assoc-ref inputs "pandoc")))
23434 (substitute* "org-web-tools.el"
23435 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
23436 #t))))))
23437 (home-page "https://github.com/alphapapa/org-web-tools")
23438 (synopsis "Display/Process web page as Org-mode content")
23439 (description "This package contains library functions and commands useful
23440 for retrieving web page content and processing it into Org-mode content.
23441
23442 For example, you can copy a URL to the clipboard or kill-ring, then run a
23443 command that downloads the page, isolates the “readable” content with
23444 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
23445 displays it in an Org-mode buffer. Another command does all of that but
23446 inserts it as an Org entry instead of displaying it in a new buffer.")
23447 (license license:gpl3+)))
23448
23449 (define-public emacs-blimp
23450 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
23451 (package
23452 (name "emacs-blimp")
23453 (version (git-version "0.0.0" "1" commit))
23454 (source
23455 (origin
23456 (method git-fetch)
23457 (uri (git-reference
23458 (url "https://github.com/walseb/blimp")
23459 (commit commit)))
23460 (file-name (git-file-name name version))
23461 (sha256
23462 (base32
23463 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
23464 (build-system emacs-build-system)
23465 (propagated-inputs
23466 (list emacs-eimp))
23467 (home-page "https://github.com/walseb/blimp")
23468 (synopsis "Emacs wrapper around all Imagemagick commands")
23469 (description "Blimp (Bustling Image Manipulation Package) is a complete
23470 wrapper around all Imagemagick commands with descriptions, autocompletion (for
23471 some commands) and hints displayed in prompt using @command{eimp.el} to
23472 execute its commands and resize images.")
23473 (license license:gpl3+))))
23474
23475 (define-public emacs-synosaurus
23476 (package
23477 (name "emacs-synosaurus")
23478 (version "0.2.0")
23479 (source
23480 (origin
23481 (method git-fetch)
23482 (uri (git-reference
23483 (url "https://github.com/hpdeifel/synosaurus")
23484 (commit (string-append "v" version))))
23485 (file-name (git-file-name name version))
23486 (sha256
23487 (base32
23488 "14dd6p89pmpf1w3nx4f9mzm4sn2b64nicws436ck7pmp223pwciv"))))
23489 (build-system emacs-build-system)
23490 (propagated-inputs
23491 (list wordnet))
23492 (arguments
23493 `(#:phases
23494 (modify-phases %standard-phases
23495 (add-after 'unpack 'configure
23496 (lambda* (#:key inputs outputs #:allow-other-keys)
23497 (let ((wn (assoc-ref inputs "wordnet")))
23498 ;; .el is read-only in git.
23499 (make-file-writable "synosaurus-wordnet.el")
23500 ;; Specify the absolute file names of the various
23501 ;; programs so that everything works out-of-the-box.
23502 (emacs-substitute-variables "synosaurus-wordnet.el"
23503 ("synosaurus-wordnet--command"
23504 (string-append wn "/bin/wn")))))))))
23505 (home-page "https://github.com/hpdeifel/synosaurus")
23506 (synopsis "Extensible thesaurus mode for Emacs")
23507 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
23508 backends, including the @command{wordnet} offline backend.")
23509 (license license:gpl3+)))
23510
23511 (define-public emacs-editorconfig
23512 (package
23513 (name "emacs-editorconfig")
23514 (version "0.8.2")
23515 (source
23516 (origin
23517 (method git-fetch)
23518 (uri (git-reference
23519 (url "https://github.com/editorconfig/editorconfig-emacs")
23520 (commit (string-append "v" version))))
23521 (file-name (git-file-name name version))
23522 (sha256
23523 (base32
23524 "1lqxgc24gr67yhi64i9v4w2dcjhpx99jg1kr25gr2byqkkdldkz0"))))
23525 (build-system emacs-build-system)
23526 (home-page "https://github.com/editorconfig/editorconfig-emacs")
23527 (synopsis "Define and maintain consistent coding styles between different
23528 editors and IDEs")
23529 (description "The EditorConfig project consists of a file format for
23530 defining coding styles and a collection of text editor plugins that enable
23531 editors to read the file format and adhere to defined styles. EditorConfig
23532 files are easily readable and they work nicely with version control systems.")
23533 (license license:gpl3+)))
23534
23535 (define-public emacs-all-the-icons
23536 (package
23537 (name "emacs-all-the-icons")
23538 (version "5.0.0")
23539 (source
23540 (origin
23541 (method git-fetch)
23542 (uri (git-reference
23543 (url "https://github.com/domtronn/all-the-icons.el")
23544 (commit version)))
23545 (file-name (git-file-name name version))
23546 (sha256
23547 (base32 "0lwgvgnqf7vihglm0c5bwsxbl4x7f641289cji5s7jwy2dbsqk7g"))))
23548 (build-system emacs-build-system)
23549 (arguments
23550 `(#:include '("\\.el$" "^data/")
23551 #:exclude '("^test/")
23552 #:phases
23553 (modify-phases %standard-phases
23554 (add-after 'install 'install-fonts
23555 (lambda* (#:key outputs #:allow-other-keys)
23556 (let ((fonts (string-append (assoc-ref outputs "out")
23557 "/share/fonts")))
23558 (mkdir-p fonts)
23559 (with-directory-excursion "fonts"
23560 (install-file "all-the-icons.ttf" fonts)
23561 ;; TODO: Unbundle.
23562 (install-file "file-icons.ttf" fonts)
23563 (install-file "octicons.ttf" fonts)
23564 (install-file "weathericons.ttf" fonts)))))
23565 (replace 'check
23566 (lambda* (#:key outputs #:allow-other-keys)
23567 (apply invoke "ert-runner" "-l"
23568 (append (find-files "data" "\\.el")
23569 '("all-the-icons-faces.el"))))))))
23570 (native-inputs
23571 (list emacs-f emacs-ert-runner))
23572 (propagated-inputs
23573 (list emacs-f emacs-memoize font-awesome font-google-material-design-icons))
23574 (home-page "https://github.com/domtronn/all-the-icons.el")
23575 (synopsis "Collect icon fonts and propertize them within Emacs")
23576 (description
23577 "All-the-icons is a utility package to collect various icon fonts and
23578 propertize them within Emacs. Icon fonts allow you to propertize and format
23579 icons the same way you would normal text. This enables things such as better
23580 scaling of and anti aliasing of the icons.")
23581 ;; Package is released under Expat license. Elisp files are licensed
23582 ;; under GPL3+. Fonts come with various licenses: Expat for
23583 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
23584 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
23585 ;; "ocitcons.ttf" and "weathericons.ttf".
23586 (license
23587 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
23588
23589 (define-public emacs-all-the-icons-completion
23590 ;; XXX: No tags. Extract version from keyword in main file.
23591 (let ((commit "9e7d456b0934ecb568b6f05a8445e3f4ce32261f")
23592 (revision "0"))
23593 (package
23594 (name "emacs-all-the-icons-completion")
23595 (version (git-version "0.0.1" revision commit))
23596 (source
23597 (origin
23598 (method git-fetch)
23599 (uri (git-reference
23600 (url "https://github.com/iyefrat/all-the-icons-completion")
23601 (commit commit)))
23602 (file-name (git-file-name name version))
23603 (sha256
23604 (base32 "04bnmmd6lyx0p39sgymqvmcy7bk8mr7sikbpy49adxi7d2891ldg"))))
23605 (build-system emacs-build-system)
23606 (propagated-inputs (list emacs-all-the-icons))
23607 (home-page "https://github.com/iyefrat/all-the-icons-completion")
23608 (synopsis "Add icons to completion candidates")
23609 (description "This package adds icons to completion candidates using the
23610 built-in completion metadata functions. For example, with this package,
23611 @code{find-file} can display a file icon for each candidate based on the file
23612 type.")
23613 (license license:gpl3+))))
23614
23615 (define-public emacs-wttrin
23616 (let ((commit "df5427ce2a5ad4dab652dbb1c4a1834d7ddc2abc")
23617 (revision "1"))
23618 (package
23619 (name "emacs-wttrin")
23620 (version (git-version "0.2.0" revision commit))
23621 (source (origin
23622 (method git-fetch)
23623 (uri (git-reference
23624 (url "https://github.com/bcbcarl/emacs-wttrin")
23625 (commit commit)))
23626 (file-name (git-file-name name version))
23627 (sha256
23628 (base32
23629 "1ai655f10iayb4vw0ass2j3x83f4vsv90326mnywkzfl3sxd432z"))))
23630 (build-system emacs-build-system)
23631 (propagated-inputs
23632 (list emacs-xterm-color))
23633 (home-page "https://github.com/bcbcarl/emacs-wttrin")
23634 (synopsis "Frontend for weather web service @url{wttr.in}")
23635 (description "This package provides local weather information from
23636 @url{wttr.in}.")
23637 (license license:expat))))
23638
23639 (define-public emacs-browse-kill-ring
23640 (let ((commit "1ef72cc6accd94cd7032c02b1b2c78ae7f1d1965")
23641 (revision "0"))
23642 (package
23643 (name "emacs-browse-kill-ring")
23644 (version (git-version "2.0.0" revision commit))
23645 (source
23646 (origin
23647 (method git-fetch)
23648 (uri (git-reference
23649 (url "https://github.com/browse-kill-ring/browse-kill-ring")
23650 (commit commit)))
23651 (file-name (git-file-name name version))
23652 (sha256
23653 (base32
23654 "0mil32g7hcw376jibs5hdyv00xbaql3m4a27rwqaafg0x59avxdj"))))
23655 (build-system emacs-build-system)
23656 (home-page "https://github.com/browse-kill-ring/browse-kill-ring")
23657 (synopsis "Interactively insert items from kill-ring")
23658 (description
23659 "Did you ever feel that @code{C-y M-y M-y M-y ...} is not a great way
23660 of trying to find that piece of text you know you killed a while back? Then
23661 @code{browse-kill-ring.el} is for you.")
23662 (license license:gpl2+))))
23663
23664 (define-public emacs-powerline
23665 (package
23666 (name "emacs-powerline")
23667 (version "2.4")
23668 (source
23669 (origin
23670 (method git-fetch)
23671 (uri (git-reference
23672 (url "https://github.com/milkypostman/powerline")
23673 (commit version)))
23674 (file-name (git-file-name name version))
23675 (sha256
23676 (base32
23677 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
23678 (build-system emacs-build-system)
23679 (home-page "https://github.com/milkypostman/powerline/")
23680 (synopsis "Mode-line plugin for Emacs")
23681 (description "Powerline is a utility plugin which allows you to create
23682 a better-looking, more functional Emacs mode-line. A collection of predefined
23683 themes comes with the package.")
23684 (license license:gpl3+)))
23685
23686 (define-public emacs-spaceline
23687 (package
23688 (name "emacs-spaceline")
23689 (version "2.0.1")
23690 (source
23691 (origin
23692 (method git-fetch)
23693 (uri (git-reference
23694 (url "https://github.com/TheBB/spaceline")
23695 (commit (string-append "v" version))))
23696 (file-name (git-file-name name version))
23697 (sha256
23698 (base32
23699 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
23700 (build-system emacs-build-system)
23701 (propagated-inputs
23702 (list emacs-dash emacs-powerline emacs-s))
23703 (home-page "https://github.com/TheBB/spaceline")
23704 (synopsis "Powerline theme from Spacemacs")
23705 (description "Spaceline provides Spacemacs' mode-line theme.
23706 This package provides features for three kinds of users.
23707
23708 @itemize
23709 @item You just want to use the Spacemacs mode-line theme and forget about it.
23710 @item You want to use something similar to the Spacemacs mode-line theme, but
23711 with a handful of easy tweaks.
23712 @item You want an easy-to-use library for building your own mode-line from
23713 scratch, and you think the Spacemacs theme looks good.
23714 @end itemize")
23715 (license license:gpl3+)))
23716
23717 (define-public emacs-spaceline-next
23718 (let ((commit "1b26af2c1a701481ac5d90928fe0200e389756c3")
23719 (last-release-version "2.0.1")
23720 (revision "0"))
23721 (package
23722 (inherit emacs-spaceline)
23723 (name "emacs-spaceline-next")
23724 (version (git-version last-release-version revision commit))
23725 (source
23726 (origin
23727 (method git-fetch)
23728 (uri (git-reference
23729 (url "https://github.com/TheBB/spaceline")
23730 (commit commit)))
23731 (sha256
23732 (base32 "11lwckqcgzsahrkkm5wk1ph4kc7d4yz05r7251g8c9f0q6vdj9dp"))
23733 (file-name (git-file-name name version)))))))
23734
23735 (define-public emacs-column-marker
23736 (package
23737 (name "emacs-column-marker")
23738 (version "9")
23739 (source
23740 (origin
23741 (method url-fetch)
23742 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
23743 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
23744 (build-system emacs-build-system)
23745 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
23746 (synopsis "Emacs mode for highlighting columns")
23747 (description
23748 "With @code{column-marker.el} you can highlight any number of text columns.
23749 Three such highlight column markers are provided by default. This is
23750 especially useful for languages like COBOL or Fortran where certain columns
23751 have special meaning. It is also handy for aligning text across long vertical
23752 distances. Multi-column characters, such as @kbd{TAB} are treated
23753 correctly.")
23754 (license license:gpl2+)))
23755
23756 (define-public emacs-slime-repl-ansi-color
23757 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
23758 (package
23759 (name "emacs-slime-repl-ansi-color")
23760 (version (git-version "0.0.0" "1" commit))
23761 (source (origin
23762 (method git-fetch)
23763 (uri (git-reference
23764 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
23765 (commit commit)))
23766 (file-name (git-file-name name version))
23767 (sha256
23768 (base32
23769 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
23770 (build-system emacs-build-system)
23771 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
23772 (synopsis "Color ANSI codes in the REPL of SLIME")
23773 (description "Color ANSI codes in the REPL of SLIME")
23774 (license license:gpl2+))))
23775
23776 (define-public emacs-helm-slime
23777 (package
23778 (name "emacs-helm-slime")
23779 (version "0.4.0")
23780 (source (origin
23781 (method git-fetch)
23782 (uri (git-reference
23783 (url "https://github.com/emacs-helm/helm-slime")
23784 (commit version)))
23785 (file-name (git-file-name name version))
23786 (sha256
23787 (base32
23788 "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"))))
23789 (build-system emacs-build-system)
23790 (propagated-inputs
23791 (list emacs-helm emacs-slime))
23792 (home-page "https://github.com/emacs-helm/helm-slime")
23793 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
23794 (description "Helm-SLIME defines a few new commands:
23795
23796 @itemize
23797 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
23798 @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
23799 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
23800 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
23801 @end itemize\n")
23802 (license license:gpl3+)))
23803
23804 (define-public emacs-helm-sly
23805 (package
23806 (name "emacs-helm-sly")
23807 (version "0.7.2")
23808 (source (origin
23809 (method git-fetch)
23810 (uri (git-reference
23811 (url "https://github.com/emacs-helm/helm-sly")
23812 (commit version)))
23813 (file-name (git-file-name name version))
23814 (sha256
23815 (base32
23816 "06x8wyx1r0s7askkvlbklgz1cszv34qsvv3gryndw350smk1v8kx"))))
23817 (build-system emacs-build-system)
23818 (propagated-inputs
23819 (list emacs-helm emacs-sly))
23820 (home-page "https://github.com/emacs-helm/helm-sly")
23821 (synopsis "Helm for SLY, a Common Lisp interaction mode for Emacs")
23822 (description "Helm-SLY defines a few new commands:
23823
23824 @itemize
23825 @item @code{helm-sly-list-connections}: Yet another Lisp connection list with
23826 Helm.
23827 @item @code{helm-sly-apropos}: Yet another @command{apropos} with Helm.
23828 @item @code{helm-sly-mini}: Like @command{helm-sly-list-connections}, but
23829 include an extra source of Lisp-related buffers, like the events buffer or the
23830 scratch buffer.
23831 @end itemize\n")
23832 (license license:gpl3+)))
23833
23834 (define-public emacs-gtk-look
23835 (package
23836 (name "emacs-gtk-look")
23837 (version "29")
23838 (source (origin
23839 (method url-fetch)
23840 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
23841 (sha256
23842 (base32
23843 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
23844 (build-system emacs-build-system)
23845 (arguments
23846 `(#:phases
23847 (modify-phases %standard-phases
23848 (add-after 'unpack 'configure
23849 (lambda _
23850 ;; File is read-only.
23851 (chmod "gtk-look.el" #o644)
23852 (emacs-substitute-variables "gtk-look.el"
23853 ("gtk-lookup-devhelp-indices"
23854 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
23855 #t)))))
23856 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
23857 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
23858 (description "@command{gtk-look} finds and displays HTML documentation for
23859 GTK, GNOME and Glib functions and variables in Emacs, similar to what
23860 info-lookup-symbol does for info files (C-h S). The documentation is expected
23861 to be devhelp indexes with HTML files. The location of the indexes can be
23862 customized. In addition to C code development @command{gtk-look} is good for
23863
23864 @itemize
23865 @item @command{perl-gtk2}, recognising class funcs like
23866 @command{Gtk2::Label->new} and bare method names like @command{set_text}.
23867 @item @command{guile-gnome}, recognising methods like @command{set-text} and
23868 classes like @command{<gtk-window>}.
23869 @end itemize\n")
23870 (license license:gpl3+)))
23871
23872 (define-public emacs-ov
23873 (package
23874 (name "emacs-ov")
23875 (version "1.0.6")
23876 (source (origin
23877 (method git-fetch)
23878 (uri (git-reference
23879 (url "https://github.com/ShingoFukuyama/ov.el")
23880 (commit version)))
23881 (file-name (git-file-name name version))
23882 (sha256
23883 (base32
23884 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
23885 (build-system emacs-build-system)
23886 (home-page "https://github.com/ShingoFukuyama/ov.el")
23887 (synopsis "Overlay library for Emacs Lisp")
23888 (description "@code{ov.el} provides a simple way to manipulate overlays in
23889 Emacs.")
23890 (license license:gpl3+)))
23891
23892 (define-public emacs-matrix-client
23893 (let ((commit "d2ac55293c96d4c95971ed8e2a3f6f354565c5ed"))
23894 (package
23895 (name "emacs-matrix-client")
23896 (version (git-version "0.0.0" "6" commit))
23897 (source (origin
23898 (method git-fetch)
23899 (uri (git-reference
23900 (url "https://github.com/jgkamat/matrix-client-el")
23901 (commit commit)))
23902 (file-name (git-file-name name version))
23903 (sha256
23904 (base32
23905 "1scfv1502yg7x4bsl253cpr6plml1j4d437vci2ggs764sh3rcqq"))))
23906 (build-system emacs-build-system)
23907 (propagated-inputs
23908 (list emacs-a
23909 emacs-anaphora
23910 emacs-dash
23911 emacs-esxml
23912 emacs-f
23913 emacs-frame-purpose
23914 emacs-ht
23915 emacs-ov
23916 emacs-rainbow-identifiers
23917 emacs-request
23918 emacs-s
23919 emacs-tracking))
23920 (home-page "https://github.com/jgkamat/matrix-client-el")
23921 (synopsis "Matrix client for Emacs")
23922 (description "@code{matrix-client} is a simple chat UI to Matrix.org
23923 rooms. It also provides an API which allows Emacs to seamlessly create
23924 RPC channels with users and other software.")
23925 (license license:gpl3+))))
23926
23927 (define-public emacs-sesman
23928 (package
23929 (name "emacs-sesman")
23930 (version "0.3.4")
23931 (source
23932 (origin
23933 (method git-fetch)
23934 (uri (git-reference
23935 (url "https://github.com/vspinu/sesman")
23936 (commit (string-append "v" version))))
23937 (file-name (git-file-name name version))
23938 (sha256
23939 (base32
23940 "0z5jb4vpbjsi63w3wjy6d2lgz33qdfvrgfb3bszv4hcf6a96y7fc"))))
23941 (build-system emacs-build-system)
23942 (arguments
23943 `(#:phases
23944 (modify-phases %standard-phases
23945 (add-after 'unpack 'set-shell
23946 ;; Setting the SHELL environment variable is required for the tests
23947 ;; to find sh.
23948 (lambda _
23949 (setenv "SHELL" (which "sh"))
23950 #t)))
23951 #:tests? #t
23952 #:test-command '("make" "test")))
23953 (home-page "https://github.com/vspinu/sesman")
23954 (synopsis "Session manager for Emacs based IDEs")
23955 (description "Sesman provides facilities for session management and
23956 interactive session association with the current contexts (project, directory,
23957 buffers). While sesman can be used to manage arbitrary sessions, it primary
23958 targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
23959 (license license:gpl3+)))
23960
23961 (define-public emacs-buttercup
23962 (package
23963 (name "emacs-buttercup")
23964 (version "1.25")
23965 (source
23966 (origin
23967 (method git-fetch)
23968 (uri (git-reference
23969 (url "https://github.com/jorgenschaefer/emacs-buttercup")
23970 (commit (string-append "v" version))))
23971 (file-name (git-file-name name version))
23972 (sha256
23973 (base32
23974 "0fsysvsypda6b7azc15bpaprq3bwx4gb6rlq2mj6f8rgwdqc8153"))))
23975 (build-system emacs-build-system)
23976 (arguments
23977 `(#:tests? #t
23978 #:test-command '("make" "test")
23979 #:phases
23980 (modify-phases %standard-phases
23981 (add-after 'install 'install-bin
23982 (lambda* (#:key outputs #:allow-other-keys)
23983 (install-file "bin/buttercup"
23984 (string-append (assoc-ref outputs "out") "/bin"))
23985 #t)))))
23986 (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
23987 (synopsis "Behavior driven emacs lisp testing framework")
23988 (description "Buttercup is a behavior-driven development framework for
23989 testing Emacs Lisp code. It groups related tests so they can share
23990 common set-up and tear-down code, and allows the programmer to \"spy\" on
23991 functions to ensure they are called with the right arguments during testing.")
23992 (license license:gpl3+)))
23993
23994 (define-public emacs-cort
23995 (package
23996 (name "emacs-cort")
23997 (version "7.1.0")
23998 (source (origin
23999 (method git-fetch)
24000 (uri (git-reference
24001 (url "https://github.com/conao3/cort.el")
24002 (commit (string-append "v" version))))
24003 (file-name (git-file-name name version))
24004 (sha256
24005 (base32
24006 "03c223nczpbdkjmq69panhbsq2a0zj20w329jgj4c0zsj8m1a32a"))))
24007 (build-system emacs-build-system)
24008 (propagated-inputs
24009 (list emacs-ansi))
24010 (arguments
24011 `(#:tests? #t
24012 #:test-command '("emacs" "--batch" "--quick"
24013 "--directory=." "--load=cort-tests.el"
24014 "--funcall=cort-test-run")))
24015 (home-page "https://github.com/conao3/cort.el")
24016 (synopsis "Unit test framework for the Emacs Lisp")
24017 (description "@code{cort} is a lightweight Emacs Lisp unit test library.")
24018 (license license:gpl3+)))
24019
24020 (define-public emacs-wordnut
24021 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
24022 (revision "0"))
24023 (package
24024 (name "emacs-wordnut")
24025 (version (git-version "0.1" revision commit))
24026 (home-page "https://github.com/gromnitsky/wordnut")
24027 (source (origin
24028 (method git-fetch)
24029 (uri (git-reference (url home-page) (commit commit)))
24030 (sha256
24031 (base32
24032 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
24033 (patches
24034 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
24035 (file-name (git-file-name name version))))
24036 (build-system emacs-build-system)
24037 (propagated-inputs
24038 (list wordnet emacs-adaptive-wrap))
24039 (synopsis "Major mode for WordNet")
24040 (description "This Emacs package provides an interface for
24041 @code{wordnet}. Features include completion, if the query is not found
24042 too ambiguous and navigation in the result buffer.")
24043 (license license:gpl3+))))
24044
24045 (define-public emacs-frame-local
24046 ;; There is no release yet. Version is extracted from the main
24047 ;; file.
24048 (let ((version "0.0.1")
24049 (revision "0")
24050 (commit "7ee1106c3bcd4022f48421f8cb1ef4f995da816e"))
24051 (package
24052 (name "emacs-frame-local")
24053 (version (git-version version revision commit))
24054 (source
24055 (origin
24056 (method git-fetch)
24057 (uri (git-reference
24058 (url "https://github.com/sebastiencs/frame-local")
24059 (commit commit)))
24060 (file-name (git-file-name name version))
24061 (sha256
24062 (base32 "0zfxsxdh3bd3fd566zl0byp13p5b8f4cgkwl637imvarvahczigp"))))
24063 (build-system emacs-build-system)
24064 (home-page "https://github.com/sebastiencs/frame-local")
24065 (synopsis "Access variables local to an Emacs frame")
24066 (description
24067 "This package allows setting and accessing variables local to
24068 an Emacs frame. Note that the variables created with this package do
24069 not have any relation with variables defined by @code{defvar},
24070 @code{defconst}, etc.")
24071 (license license:gpl3+))))
24072
24073 (define-public emacs-frame-purpose
24074 (package
24075 (name "emacs-frame-purpose")
24076 (version "1.0")
24077 (source (origin
24078 (method git-fetch)
24079 (uri (git-reference
24080 (url "https://github.com/alphapapa/frame-purpose.el")
24081 (commit version)))
24082 (sha256
24083 (base32
24084 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
24085 (file-name (git-file-name name version))))
24086 (build-system emacs-build-system)
24087 (inputs
24088 (list emacs-dash))
24089 (synopsis "Purpose-specific frames for Emacs")
24090 (description "@code{frame-purpose} makes it easy to open purpose-specific
24091 frames that only show certain buffers, e.g. by buffers’ major mode, their
24092 filename or directory, etc, with custom frame/X-window titles, icons, and
24093 other frame parameters.")
24094 (home-page "https://github.com/alphapapa/frame-purpose.el")
24095 (license license:gpl3+)))
24096
24097 (define-public emacs-arduino-mode
24098 (let ((commit "23ae47c9f28f559e70b790b471f20310e163a39b")
24099 (revision "1")) ;no release yet
24100 (package
24101 (name "emacs-arduino-mode")
24102 (version (git-version "0" revision commit))
24103 (source
24104 (origin
24105 (method git-fetch)
24106 (uri (git-reference
24107 (url "https://github.com/stardiviner/arduino-mode")
24108 (commit commit)))
24109 (sha256
24110 (base32 "08vnbz9gpah1l93fzfd87aawrhcnh2v1kyfxgsn88pdwg8awz8rx"))
24111 (file-name (git-file-name name version))))
24112 (build-system emacs-build-system)
24113 (arguments
24114 `(#:phases
24115 (modify-phases %standard-phases
24116 ;; Emacs complains that "defmethod" and "defgeneric" are obsolete
24117 ;; macros when compiling. Substitute them with the recommended
24118 ;; macros "cl-defmethod" and "cl-defgeneric", respectively.
24119 (add-after 'unpack 'fix-obsolete
24120 (lambda _
24121 (substitute* "ede-arduino.el"
24122 (("defmethod") "cl-defmethod")
24123 (("defgeneric") "cl-defgeneric")))))))
24124 (inputs
24125 (list emacs-flycheck emacs-spinner))
24126 (synopsis "Emacs major mode for editing Arduino sketches")
24127 (description "Emacs major mode for editing Arduino sketches.")
24128 (home-page "https://github.com/stardiviner/arduino-mode")
24129 (license license:gpl3+))))
24130
24131 (define-public emacs-annalist
24132 (package
24133 (name "emacs-annalist")
24134 (version "1.0.1")
24135 (source (origin
24136 (method git-fetch)
24137 (uri (git-reference
24138 (url "https://github.com/noctuid/annalist.el")
24139 (commit version)))
24140 (sha256
24141 (base32
24142 "1jlb5w4972l8m2aa18q2l6arfpm65g4nk21dn1yi8c9dbpk2g67c"))
24143 (file-name (git-file-name name version))))
24144 (build-system emacs-build-system)
24145 (native-inputs
24146 (list emacs-buttercup emacs-lispy emacs-evil))
24147 (arguments
24148 `(#:phases
24149 (modify-phases %standard-phases
24150 (add-before 'check 'fix-makefile
24151 (lambda _
24152 (substitute* "Makefile"
24153 (("cask exec ") ""))
24154 #t)))
24155 #:tests? #t
24156 #:test-command '("make" "test")))
24157 (home-page "https://github.com/noctuid/annalist.el")
24158 (synopsis "Record and display information with Org headings and tables")
24159 (description "This package allows for keybindings, settings, hooks, and
24160 advice to be recorded and displayed.")
24161 (license license:gpl3+)))
24162
24163 (define-public emacs-general
24164 (let ((commit "a0b17d207badf462311b2eef7c065b884462cb7c")
24165 (revision "4"))
24166 (package
24167 (name "emacs-general")
24168 (version (git-version "0" revision commit))
24169 (source
24170 (origin
24171 (method git-fetch)
24172 (uri (git-reference
24173 (url "https://github.com/noctuid/general.el")
24174 (commit commit)))
24175 (sha256
24176 (base32 "0wn5rk3gkimdklip392mnjrmkymgrb7q9skifi03cbpjam1anzvv"))
24177 (file-name (git-file-name name version))))
24178 (build-system emacs-build-system)
24179 (native-inputs
24180 (list emacs-buttercup emacs-evil emacs-which-key emacs-use-package))
24181 (arguments
24182 `(#:tests? #t
24183 #:test-command '("buttercup" "-L" "test/test-general.el")))
24184 (home-page "https://github.com/noctuid/general.el")
24185 (synopsis "More convenient key definitions in emacs")
24186 (description "@code{general.el} provides a more convenient method for
24187 binding keys in emacs (for both evil and non-evil users). Like
24188 @code{use-package}, which provides a convenient, unified interface for
24189 managing packages, @code{general.el} is intended to provide a convenient,
24190 unified interface for key definitions. While this package does implement some
24191 completely new functionality (such as the ability to make vim-style
24192 keybindings under non-prefix keys with an optional timeout), its primary
24193 purpose is to build on existing functionality to make key definition more
24194 clear and concise. @code{general-define-key} is user-extensible and supports
24195 defining multiple keys in multiple keymaps at once, implicitly wrapping key
24196 strings with (@code{kbd ...}), using named prefix key sequences (like the
24197 leader key in vim), and much more.")
24198 (license license:gpl3+))))
24199
24200 (define-public emacs-tldr
24201 (let ((commit "7203d1be3dcbf12131846ffe06601933fa874d74"))
24202 (package
24203 (name "emacs-tldr")
24204 (version (git-version "0" "1" commit))
24205 (home-page "https://github.com/kuanyui/tldr.el")
24206 (source (origin
24207 (method git-fetch)
24208 (uri (git-reference
24209 (url (string-append home-page ".git"))
24210 (commit commit)))
24211 (sha256
24212 (base32
24213 "1bw6la463l2yfm7rp76ga4makfy4kpxgwi7ni5gxk31w11g26ryk"))
24214 (file-name (git-file-name name version))))
24215 (build-system emacs-build-system)
24216 (propagated-inputs
24217 (list emacs-request))
24218 (synopsis "Simplified and community-driven man pages for Emacs")
24219 (description "@code{emacs-tldr} allows the user to access tldr pages
24220 from within emacs. The @code{tldr} pages are a community effort to simplify
24221 the man pages with practical examples.")
24222 (license license:wtfpl2))))
24223
24224 (define-public emacs-window-layout
24225 (package
24226 (name "emacs-window-layout")
24227 (version "1.4")
24228 (home-page "https://github.com/kiwanami/emacs-window-layout")
24229 (source (origin
24230 (method git-fetch)
24231 (uri (git-reference
24232 (url home-page)
24233 (commit (string-append "v" version))))
24234 (sha256
24235 (base32
24236 "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"))
24237 (file-name (git-file-name name version))))
24238 (build-system emacs-build-system)
24239 (synopsis "Simple window layout management framework for emacs")
24240 (description "A window-layout management library that can split a frame
24241 or a window into some windows according to a layout recipe.")
24242 (license license:gpl3+)))
24243
24244 (define-public emacs-e2wm
24245 (package
24246 (name "emacs-e2wm")
24247 (version "1.4")
24248 (home-page "https://github.com/kiwanami/emacs-window-manager")
24249 (source (origin
24250 (method git-fetch)
24251 (uri (git-reference
24252 (url home-page)
24253 (commit (string-append "v" version))))
24254 (sha256
24255 (base32
24256 "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
24257 (file-name (git-file-name name version))))
24258 (build-system emacs-build-system)
24259 (propagated-inputs
24260 (list emacs-window-layout))
24261 (synopsis "Equilibrium Emacs Window Manager")
24262 (description "E2WM is a window manager for Emacs. It enables to
24263 customize the place of pop-up window, how the windows are split, how the
24264 buffers are located in the windows, keybinds to manipulate windows and
24265 buffers, etc. It also has plug-ins to help your Emacs life.")
24266 (license license:gpl3+)))
24267
24268 (define-public emacs-ctable
24269 ;; Latest release is not tagged. Use commit matching version bump.
24270 (let ((commit "04dbcddeba1da1f39e885bc0d36240ff37d829e9")
24271 (version "0.1.3"))
24272 (package
24273 (name "emacs-ctable")
24274 (version version)
24275 (home-page "https://github.com/kiwanami/emacs-ctable")
24276 (source (origin
24277 (method git-fetch)
24278 (uri (git-reference
24279 (url home-page)
24280 (commit commit)))
24281 (sha256
24282 (base32
24283 "16yrx1z44xs24z2a0gwzf1xhhks1wrzafc5ihf6lbw843rq2jar0"))
24284 (file-name (git-file-name name version))))
24285 (build-system emacs-build-system)
24286 (arguments
24287 ;; XXX: The following file does not compile. It is not useful, so
24288 ;; remove it.
24289 (list #:exclude #~(cons "^test-ctable\\.el" %default-exclude)))
24290 (synopsis "Table component for Emacs Lisp")
24291 (description "This program is a table component for Emacs Lisp. Other
24292 programs can use this table component for the application UI.")
24293 (license license:gpl3+))))
24294
24295 (define-public emacs-leetcode
24296 (let ((commit "8624496af9e105c3e07d88844b37ede87540d604")
24297 (revision "1"))
24298 (package
24299 (name "emacs-leetcode")
24300 (version (git-version "0" "1" commit))
24301 (home-page "https://github.com/ginqi7/leetcode-emacs")
24302 (source (origin
24303 (method git-fetch)
24304 (uri (git-reference
24305 (url "https://github.com/ginqi7/leetcode-emacs")
24306 (commit commit)))
24307 (sha256
24308 (base32
24309 "11pp7ydlmwrv7djf9mwk4xzn295xbmdnj5x13bfj5yjpjr89p531"))
24310 (file-name (git-file-name name version))))
24311 (build-system emacs-build-system)
24312 (propagated-inputs
24313 (list emacs-names emacs-ctable))
24314 (synopsis "Solve and submit LeetCode problems from within Emacs")
24315 (description "This package provides an Emacs interface to LeetCode
24316 allowing users to log in and solve problems of their choice using Emacs.")
24317 (license license:unlicense))))
24318
24319 (define-public emacs-epc
24320 (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
24321 (package
24322 (name "emacs-epc")
24323 (version (git-version "0.1.1" "1" commit))
24324 (home-page "https://github.com/kiwanami/emacs-epc")
24325 (source (origin
24326 (method git-fetch)
24327 (uri (git-reference
24328 (url home-page)
24329 (commit commit)))
24330 (sha256
24331 (base32
24332 "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
24333 (file-name (git-file-name name version))))
24334 (build-system emacs-build-system)
24335 (propagated-inputs
24336 (list emacs-deferred emacs-ctable))
24337 (synopsis "RPC stack for Emacs Lisp")
24338 (description "This program is an asynchronous RPC stack for Emacs.
24339 Using this RPC stack, Emacs can communicate with the peer process
24340 smoothly. Because the protocol employs S-expression encoding and consists of
24341 asynchronous communications, the RPC response is fairly good.")
24342 (license license:gpl3+))))
24343
24344 (define-public emacs-edbi
24345 (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
24346 (package
24347 (name "emacs-edbi")
24348 (version (git-version "0.1.3" "1" commit))
24349 (home-page "https://github.com/kiwanami/emacs-edbi")
24350 (source (origin
24351 (method git-fetch)
24352 (uri (git-reference
24353 (url home-page)
24354 (commit commit)))
24355 (sha256
24356 (base32
24357 "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
24358 (file-name (git-file-name name version))))
24359 (build-system emacs-build-system)
24360 (inputs
24361 (list perl
24362 perl-rpc-epc-service
24363 perl-dbi
24364 ;; TODO: Adding support for perl-dbd-mysql and others would
24365 ;; dramatically increase the closure size. Make several packages?
24366 perl-dbd-sqlite))
24367 (propagated-inputs
24368 (list emacs-e2wm emacs-epc))
24369 (arguments
24370 `(#:include '("\\.el$" "\\.pl$")
24371 #:phases
24372 (modify-phases %standard-phases
24373 (add-after 'unpack 'patch-path
24374 (lambda* (#:key inputs #:allow-other-keys)
24375 (let ((perl (assoc-ref inputs "perl")))
24376 (substitute* "edbi.el"
24377 (("\"perl\"") (string-append "\"" perl "/bin/perl\"")))
24378 #t)))
24379 (add-after 'wrap 'wrap-edbi-bridge
24380 (lambda* (#:key inputs outputs #:allow-other-keys)
24381 (let* ((out (assoc-ref outputs "out"))
24382 (bridge (string-append (elpa-directory out)
24383 "/edbi-bridge.pl")))
24384 (chmod bridge #o555)
24385 (wrap-program bridge
24386 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB")))))
24387 #t)))))
24388 (synopsis "Database Interface for Emacs Lisp")
24389 (description "This program connects the database server through Perl's
24390 DBI, and provides DB-accessing API and the simple management UI.")
24391 (license license:gpl3+))))
24392
24393 (define-public emacs-edbi-sqlite
24394 (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
24395 (package
24396 (name "emacs-edbi-sqlite")
24397 (version (git-version "0.1.1" "1" commit))
24398 (home-page "https://github.com/proofit404/edbi-sqlite")
24399 (source (origin
24400 (method git-fetch)
24401 (uri (git-reference
24402 (url home-page)
24403 (commit commit)))
24404 (sha256
24405 (base32
24406 "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
24407 (file-name (git-file-name name version))))
24408 (build-system emacs-build-system)
24409 (propagated-inputs
24410 (list emacs-edbi))
24411 (synopsis "Open SQLite files in Emacs")
24412 (description "This package is a convenience wrapper for @command{edbi}
24413 to open SQLite databases.")
24414 (license license:gpl3+))))
24415
24416 (define-public emacs-nice-citation
24417 (let ((commit "1013b56d9d1495a335f40a5f76203034dc5fa0ea")
24418 (revision "0"))
24419 (package
24420 (name "emacs-nice-citation")
24421 (version (git-version "0.0.2" revision commit))
24422 (source
24423 (origin
24424 (method git-fetch)
24425 (uri (git-reference
24426 (url "https://github.com/damiencollard/nice-citation")
24427 (commit commit)))
24428 (sha256
24429 (base32 "00xqr7haca5vd0bzd043lc6x4fjb903z96frz9b8cbd7spp63z7q"))
24430 (file-name (git-file-name name version))))
24431 (build-system emacs-build-system)
24432 (home-page "https://github.com/damiencollard/nice-citation")
24433 (synopsis "Depth-colored citations for Gnus")
24434 (description
24435 "This package replaces the traditional chevron citation marks @samp{>}
24436 with a Unicode vertical bar with the same color as the text it is quoting.
24437
24438 It is purely presentation: the underlying text is unchanged. In particular,
24439 if you send a message containing a citation, it will contain the traditional
24440 chevron marks.")
24441 (license license:gpl3+))))
24442
24443 (define-public emacs-nix-mode
24444 ;; Use the latest commit to get unreleased fixes to build with Emacs 28.1.
24445 (let ((commit "8fe2ccf0b01f694a77d2528e06c10f06057784f6")
24446 (revision "0"))
24447 (package
24448 (name "emacs-nix-mode")
24449 (version (git-version "1.4.5" revision commit))
24450 (source
24451 (origin
24452 (method git-fetch)
24453 (uri (git-reference
24454 (url "https://github.com/NixOS/nix-mode")
24455 (commit commit)))
24456 (file-name (git-file-name name version))
24457 (sha256
24458 (base32 "08kz9qp4gp55z1i87ig0ysq6pgqgwlgr765g1vp8gsh6lp3myh36"))))
24459 (build-system emacs-build-system)
24460 (propagated-inputs
24461 (list emacs-company emacs-json-mode emacs-magit emacs-mmm-mode))
24462 (home-page "https://github.com/NixOS/nix-mode")
24463 (synopsis "Emacs major mode for editing Nix expressions")
24464 (description "@code{nixos-mode} provides an Emacs major mode for editing
24465 Nix expressions. It supports syntax highlighting, indenting and refilling of
24466 comments.")
24467 (license license:lgpl2.1+))))
24468
24469 (define-public emacs-libmpdel
24470 (package
24471 (name "emacs-libmpdel")
24472 (version "1.3.0")
24473 (source (origin
24474 (method git-fetch)
24475 (uri (git-reference
24476 (url "https://gitea.petton.fr/mpdel/libmpdel.git")
24477 (commit (string-append "v" version))))
24478 (file-name (git-file-name name version))
24479 (sha256
24480 (base32
24481 "0krxhcay5s9s7i41q7ga5skj31vaz2qx3djcrlwajf203bl8j4m9"))))
24482 (build-system emacs-build-system)
24483 (home-page "https://gitea.petton.fr/mpdel/libmpdel")
24484 (synopsis "Emacs library to communicate with Music Player Daemon (MPD)")
24485 (description
24486 "LibMPDel is an Emacs library client to communicate with Music Player
24487 Daemon (MPD), a flexible, powerful, server-side application for playing
24488 music.")
24489 (license license:gpl3+)))
24490
24491 (define-public emacs-mpdel
24492 (package
24493 (name "emacs-mpdel")
24494 (version "1.0.0")
24495 (source
24496 (origin
24497 (method git-fetch)
24498 (uri (git-reference
24499 (url "https://gitea.petton.fr/mpdel/mpdel.git")
24500 (commit (string-append "v" version))))
24501 (file-name (git-file-name name version))
24502 (sha256
24503 (base32
24504 "0pyyvbzskr44dxbmlp3y0r6s459fd51cvwjmnjaqxfxflr5v891g"))))
24505 (build-system emacs-build-system)
24506 (inputs
24507 (list emacs-libmpdel))
24508 (home-page "https://gitea.petton.fr/mpdel/mpdel")
24509 (synopsis "Emacs user interface for Music Player Daemon (MPD)")
24510 (description
24511 "MPDel provides an Emacs user interface to control playback (play, pause,
24512 next, volume) and display and control the current playlist as well as your
24513 stored playlists.")
24514 (license license:gpl3+)))
24515
24516 (define-public emacs-vterm
24517 (let ((version "0.0.1")
24518 (revision "1")
24519 (commit "b44723552f86407d528c4a6c8057382c061b008e"))
24520 (package
24521 (name "emacs-vterm")
24522 (version (git-version version revision commit))
24523 (source (origin
24524 (method git-fetch)
24525 (uri (git-reference
24526 (url "https://github.com/akermu/emacs-libvterm")
24527 (commit commit)))
24528 (file-name (git-file-name name version))
24529 (sha256
24530 (base32
24531 "0rq2skwylvc7s4vfpbbsdykws4akyp9sc6xgrh2ql5yydhhnv2h3"))))
24532 (build-system emacs-build-system)
24533 (arguments
24534 `(#:modules ((guix build emacs-build-system)
24535 ((guix build cmake-build-system) #:prefix cmake:)
24536 (guix build emacs-utils)
24537 (guix build utils))
24538 #:imported-modules (,@%emacs-build-system-modules
24539 (guix build cmake-build-system))
24540 #:phases
24541 (modify-phases %standard-phases
24542 (add-after 'unpack 'substitute-vterm-module-path
24543 (lambda* (#:key outputs #:allow-other-keys)
24544 (chmod "vterm.el" #o644)
24545 (emacs-substitute-sexps "vterm.el"
24546 ("(require 'vterm-module nil t)"
24547 `(module-load
24548 ,(string-append (assoc-ref outputs "out")
24549 "/lib/vterm-module.so"))))))
24550 (add-after 'build 'configure
24551 ;; Run cmake.
24552 (lambda* (#:key outputs #:allow-other-keys)
24553 ((assoc-ref cmake:%standard-phases 'configure)
24554 #:outputs outputs
24555 #:out-of-source? #f
24556 #:configure-flags '("-DUSE_SYSTEM_LIBVTERM=ON"))))
24557 (add-after 'configure 'make
24558 ;; Run make.
24559 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
24560 ;; Compile the shared object file.
24561 (apply invoke "make" "all" make-flags)
24562 ;; Move the file into /lib.
24563 (install-file
24564 "vterm-module.so"
24565 (string-append (assoc-ref outputs "out") "/lib")))))
24566 #:tests? #f))
24567 (native-inputs
24568 (list cmake-minimal libtool libvterm))
24569 (home-page "https://github.com/akermu/emacs-libvterm")
24570 (synopsis "Emacs libvterm integration")
24571 (description "This package implements a bridge to @code{libvterm} to
24572 display a terminal in an Emacs buffer.")
24573 (license license:gpl3+))))
24574
24575 (define-public emacs-vterm-toggle
24576 ;; There have been no releases.
24577 (let ((commit "d10239b7bb89b78dddb82f66ac2286bc0b02747b")
24578 (revision "1"))
24579 (package
24580 (name "emacs-vterm-toggle")
24581 (version (git-version "0.0.4" revision commit))
24582 (source
24583 (origin
24584 (method git-fetch)
24585 (uri (git-reference
24586 (url "https://github.com/jixiuf/vterm-toggle")
24587 (commit commit)))
24588 (file-name (git-file-name name version))
24589 (sha256
24590 (base32 "0r9n23wg9cfy10h5f9zqr8jpkvw34f9rylri3nxq870awjab7rqi"))))
24591 (build-system emacs-build-system)
24592 (propagated-inputs (list emacs-vterm))
24593 (home-page "https://github.com/jixiuf/vterm-toggle")
24594 (synopsis "Toggle between a vterm buffer and other buffers")
24595 (description
24596 "This package provides a DWIM way to switch from an Emacs buffer to
24597 a vterm buffer and back again.")
24598 (license license:gpl3+))))
24599
24600 (define-public emacs-multi-vterm
24601 (let ((commit "a3df7218c1ecadef779e2c47815201052283f9ea")
24602 (revision "1"))
24603 (package
24604 (name "emacs-multi-vterm")
24605 (version (git-version "1.0" revision commit))
24606 (source (origin
24607 (method git-fetch)
24608 (uri (git-reference
24609 (url "https://github.com/suonlight/multi-vterm")
24610 (commit commit)))
24611 (file-name (git-file-name name version))
24612 (sha256
24613 (base32
24614 "0z6321994c4c8f5iya240pzvhirci9idlc110wjjwsm4pzdrrppj"))))
24615 (build-system emacs-build-system)
24616 (propagated-inputs (list emacs-vterm))
24617 (home-page "https://github.com/suonlight/multi-vterm/")
24618 (synopsis "Manage multiple vterm buffers in Emacs")
24619 (description
24620 "This package provides an Emacs library to manage vterm buffers.")
24621 (license license:gpl3+))))
24622
24623 (define-public emacs-simple-mpc
24624 ;; There have been no releases.
24625 (let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
24626 (revision "1"))
24627 (package
24628 (name "emacs-simple-mpc")
24629 (version (git-version "0" revision commit))
24630 (source
24631 (origin
24632 (method git-fetch)
24633 (uri (git-reference
24634 (url "https://github.com/jorenvo/simple-mpc")
24635 (commit commit)))
24636 (file-name (git-file-name name version))
24637 (sha256
24638 (base32
24639 "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"))))
24640 (build-system emacs-build-system)
24641 (propagated-inputs (list emacs-s))
24642 (home-page "https://github.com/jorenvo/simple-mpc")
24643 (synopsis "Simple Emacs frontend to mpc")
24644 (description "This package provides an Emacs major mode which acts as a
24645 front end to mpc, a client for the @dfn{Music Player Daemon} (MPD).")
24646 (license license:gpl3+))))
24647
24648 (define-public emacs-mkmcc-gnuplot-mode
24649 (package
24650 (name "emacs-mkmcc-gnuplot-mode")
24651 (version "1.2.0")
24652 (source
24653 (origin
24654 (method git-fetch)
24655 (uri (git-reference
24656 (url "https://github.com/mkmcc/gnuplot-mode")
24657 (commit "601f6392986f0cba332c87678d31ae0d0a496ce7")))
24658 (file-name (git-file-name name version))
24659 (sha256
24660 (base32
24661 "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"))))
24662 (build-system emacs-build-system)
24663 (home-page "https://mkmcc.github.io/software/gnuplot-mode.html")
24664 (synopsis "Minimal emacs major mode for editing gnuplot scripts")
24665 (description "@code{emacs-mkmcc-gnuplot-mode} is a minimal emacs major
24666 mode for editing gnuplot scripts. It provides syntax highlighting,
24667 indentation and a command to plot the file.")
24668 (license license:gpl3+)))
24669
24670 (define-public emacs-cmake-font-lock
24671 ;; Upstream does not tag commits. The commit hash below matches version
24672 ;; bump.
24673 (let ((commit "0d6111b36a66013aa9b452e664c93308df3b07e1"))
24674 (package
24675 (name "emacs-cmake-font-lock")
24676 (version "0.1.12")
24677 (source (origin
24678 (method git-fetch)
24679 (uri (git-reference
24680 (url "https://github.com/Lindydancer/cmake-font-lock")
24681 (commit commit)))
24682 (file-name (git-file-name name version))
24683 (sha256
24684 (base32
24685 "12ga8ri7v9r5y46pghk80ww27i7nhbrg0r3s2ina42drlkkliqj4"))))
24686 (build-system emacs-build-system)
24687 (native-inputs
24688 (list emacs-faceup))
24689 (arguments
24690 (list #:include #~(cons "^admin\\/" %default-include)))
24691 (home-page "https://github.com/Lindydancer/cmake-font-lock")
24692 (synopsis "Advanced type-aware syntax-highlighting for CMake")
24693 (description "This package highlights function arguments in CMake
24694 according to their use.")
24695 (license license:gpl3+))))
24696
24697 (define-public emacs-detached
24698 (package
24699 (name "emacs-detached")
24700 (version "0.7")
24701 (source (origin
24702 (method git-fetch)
24703 (uri (git-reference
24704 (url "https://git.sr.ht/~niklaseklund/detached.el")
24705 (commit version)))
24706 (file-name (git-file-name name version))
24707 (sha256
24708 (base32
24709 "160h60vrpxslw6y290ndc065cc75dab58aq7kjqash94vkifnii2"))))
24710 (arguments
24711 (list
24712 #:tests? #t
24713 #:test-command #~(list "ert-runner")
24714 #:phases
24715 #~(modify-phases %standard-phases
24716 (add-before 'install 'install-detached-env
24717 (lambda _
24718 (install-file "detached-env" (string-append #$output "/bin"))))
24719 (add-after 'unpack 'configure
24720 (lambda* (#:key inputs #:allow-other-keys)
24721 (make-file-writable "detached.el")
24722 (emacs-substitute-variables "detached.el"
24723 ("detached-env"
24724 (string-append #$output "/bin/detached-env"))
24725 ("detached-dtach-program"
24726 (search-input-file inputs "/bin/dtach"))
24727 ("detached-shell-program"
24728 (search-input-file inputs "/bin/bash"))))))))
24729 (build-system emacs-build-system)
24730 (native-inputs (list emacs-ert-runner))
24731 (inputs (list dtach))
24732 (home-page "https://git.sr.ht/~niklaseklund/detached.el")
24733 (synopsis "A package to launch, and manage, detached processes")
24734 (description
24735 "The detached package allows users to run processes
24736 detached from Emacs. It provides integration with multiple built-in modes, as
24737 well as providing an interface to attach and interact with the processes.")
24738 (license license:gpl3+)))
24739
24740 (define-public emacs-dtache
24741 (deprecated-package "emacs-dtache" emacs-detached))
24742
24743 (define-public emacs-dtrt-indent
24744 (package
24745 (name "emacs-dtrt-indent")
24746 (version "1.7")
24747 (source (origin
24748 (method git-fetch)
24749 (uri (git-reference
24750 (url "https://github.com/jscheid/dtrt-indent")
24751 (commit version)))
24752 (file-name (git-file-name name version))
24753 (sha256
24754 (base32
24755 "0ihwmkxgbd0mgfvzisjiwvyypa9z21ckyxdnkf9y5lxywjyr39zh"))))
24756 (build-system emacs-build-system)
24757 (home-page "https://github.com/jscheid/dtrt-indent")
24758 (synopsis "Minor mode that guesses the indentation offset")
24759 (description "This package provides a minor mode that guesses the
24760 indentation offset originally used for creating source code files and
24761 transparently adjusts the corresponding settings in Emacs, making it more
24762 convenient to edit foreign files.")
24763 (license license:gpl2+)))
24764
24765 (define-public emacs-repo
24766 (package
24767 (name "emacs-repo")
24768 (version "0.2.0")
24769 (source (origin
24770 (method git-fetch)
24771 (uri (git-reference
24772 (url "https://github.com/canatella/repo-el")
24773 (commit version)))
24774 (file-name (git-file-name name version))
24775 (sha256
24776 (base32
24777 "0jgiawdnzjlrpx2j1y6djwbqncdpmyfd31q1qf1890049y8ppxnb"))))
24778 (build-system emacs-build-system)
24779 (native-inputs
24780 (list emacs-el-mock emacs-ert-runner))
24781 (propagated-inputs
24782 (list emacs-f emacs-magit))
24783 (home-page "https://github.com/canatella/repo-el")
24784 (synopsis "Emacs interface for the Google Repo tool")
24785 (description "This package provides integration of the Google Repo tool
24786 with emacs. It displays the output of the @code{repo status} command in a
24787 buffer and launches Magit from the status buffer for the project at point.")
24788 (license license:gpl3+)))
24789
24790 (define-public emacs-repology
24791 (package
24792 (name "emacs-repology")
24793 (version "1.2.3")
24794 (source
24795 (origin
24796 (method url-fetch)
24797 (uri (string-append "https://elpa.gnu.org/packages/"
24798 "repology-" version ".tar"))
24799 (sha256
24800 (base32 "1ngx23b7dilyps20nznrrn867kbxyn6nryf4p1sy5m576hkw18kn"))))
24801 (build-system emacs-build-system)
24802 (arguments
24803 (list
24804 #:tests? #t
24805 #:test-command
24806 #~(list "emacs" "-Q" "-batch"
24807 "-l" "repology-tests.el"
24808 "-f" "ert-run-tests-batch-and-exit")))
24809 (home-page "https://elpa.gnu.org/packages/repology.html")
24810 (synopsis "Repology API access via Elisp")
24811 (description
24812 "This package provides tools to query Repology API (see
24813 @url{https://repology.org/api}), process results, and display them.")
24814 (license license:gpl3+)))
24815
24816 (define-public emacs-alect-themes
24817 (package
24818 (name "emacs-alect-themes")
24819 (version "0.10")
24820 (source
24821 (origin
24822 (method git-fetch)
24823 (uri (git-reference
24824 (url "https://github.com/alezost/alect-themes")
24825 (commit (string-append "v" version))))
24826 (file-name (git-file-name name version))
24827 (sha256
24828 (base32 "190clnm5x4hpzrq2wp18vxg6614ly3ciyv0y1sm9rfr9w9z5i0ya"))))
24829 (build-system emacs-build-system)
24830 (home-page "https://github.com/alezost/alect-themes")
24831 (synopsis "Low contrast, light, dark and black color theme for Emacs")
24832 (description "@code{emacs-alect-themes} provides configurable light, dark
24833 and black color themes for Emacs. The themes are intended to be used with
24834 GUI.")
24835 (license license:gpl3+)))
24836
24837 (define-public emacs-google-c-style
24838 (let ((commit "6271f3f473ceb3a7fef99388a3040903b1a145f1")
24839 (revision "0"))
24840 (package
24841 (name "emacs-google-c-style")
24842 (version (git-version "0.1" revision commit))
24843 (source (origin
24844 (method git-fetch)
24845 (uri (git-reference
24846 (url "https://github.com/google/styleguide")
24847 (commit commit)))
24848 (file-name (git-file-name name version))
24849 (sha256
24850 (base32
24851 "1jghyyasdl15c4gaqaxmdn43am63k6bykn5ab83f1ahv9zi1krxk"))))
24852 (build-system emacs-build-system)
24853 (home-page "https://github.com/google/styleguide")
24854 (synopsis "Emacs settings file for Google C/C++ style")
24855 (description "@code{emacs-google-c-style} provides an Emacs settings
24856 file for Google C and C++ style.")
24857 (license license:gpl1+))))
24858
24859 (define-public emacs-redshank
24860 (let ((commit "f98e68f532e622bcd464292ca4a9cf5fbea14ebb")
24861 (revision "1"))
24862 (package
24863 (name "emacs-redshank")
24864 (version (git-version "0.1" revision commit))
24865 (source (origin
24866 (method git-fetch)
24867 (uri (git-reference
24868 (url "http://www.foldr.org/~michaelw/projects/redshank.git")
24869 (commit commit)))
24870 (file-name (git-file-name name version))
24871 (sha256
24872 (base32
24873 "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"))))
24874 (build-system emacs-build-system)
24875 (propagated-inputs
24876 (list emacs-paredit))
24877 (home-page "http://www.foldr.org/~michaelw/emacs/redshank/")
24878 (synopsis "Common Lisp Editing Extensions (for Emacs)")
24879 (description "Redshank is a collection of code-wrangling Emacs macros
24880 mostly geared towards Common Lisp, but some are useful for other Lisp
24881 dialects, too. Redshank's code transformations aim to be expression-based (as
24882 opposed to character-based).")
24883 (license license:gpl1+))))
24884
24885 (define-public emacs-disk-usage
24886 (package
24887 (name "emacs-disk-usage")
24888 (version "1.3.3")
24889 (source
24890 (origin
24891 (method git-fetch)
24892 (uri (git-reference
24893 (url "https://gitlab.com/Ambrevar/emacs-disk-usage")
24894 (commit version)))
24895 (file-name (git-file-name name version))
24896 (sha256
24897 (base32
24898 "0hv2gsd8k5fbjgckgiyisq4rn1i7y4rchbjy8kmixjv6mx563bll"))))
24899 (build-system emacs-build-system)
24900 (home-page "https://gitlab.com/Ambrevar/emacs-disk-usage")
24901 (synopsis "Sort and browse disk usage listings with Emacs")
24902 (description "Disk Usage is a file system analyzer: it offers a tabulated
24903 view of file listings sorted by size. Directory sizes are computed
24904 recursively. The results are cached for speed.")
24905 (license license:gpl3+)))
24906
24907 (define-public emacs-orgit
24908 (package
24909 (name "emacs-orgit")
24910 (version "1.8.0")
24911 (home-page "https://github.com/magit/orgit")
24912 (source (origin
24913 (method git-fetch)
24914 (uri (git-reference
24915 (url home-page)
24916 (commit (string-append "v" version))))
24917 (file-name (git-file-name name version))
24918 (sha256
24919 (base32
24920 "1hjfsj12qx06m8ji4l2sg502a55sabar4h6c2b2i9nmp1xf5889l"))))
24921 (build-system emacs-build-system)
24922 (propagated-inputs
24923 (list emacs-dash emacs-magit))
24924 (synopsis "Support for Org links to Magit buffers")
24925 (description "This package defines several Org link types, which can be
24926 used to link to certain Magit buffers. Use the command
24927 @command{org-store-link} while such a buffer is current to store a link.
24928 Later you can insert it into an Org buffer using the command
24929 @code{org-insert-link}.")
24930 (license license:gpl3+)))
24931
24932 (define-public emacs-amx
24933 (package
24934 (name "emacs-amx")
24935 (version "3.4")
24936 (source
24937 (origin
24938 (method git-fetch)
24939 (uri (git-reference
24940 (url "https://github.com/DarwinAwardWinner/amx")
24941 (commit (string-append "v" version))))
24942 (file-name (git-file-name name version))
24943 (sha256
24944 (base32 "0h1cxqqf0hixh25j679r57bq9dv0b20icf268wbnsim5xp88ngf8"))))
24945 (build-system emacs-build-system)
24946 (propagated-inputs
24947 (list emacs-s))
24948 (home-page "https://github.com/DarwinAwardWinner/amx")
24949 (synopsis "Alternative M-x interface for Emacs")
24950 (description "Amx is an alternative interface for M-x in Emacs. It
24951 provides several enhancements over the ordinary
24952 @code{execute-extended-command}, such as prioritizing your most-used commands
24953 in the completion list and showing keyboard shortcuts, and it supports several
24954 completion systems for selecting commands, such as Ido and Ivy.")
24955 (license license:gpl3+)))
24956
24957 (define-public emacs-lorem-ipsum
24958 (let ((commit "4b39f6fed455d67f635b3837cf5668bf74d0f6cd"))
24959 (package
24960 (name "emacs-lorem-ipsum")
24961 (version (git-version "0.2" "1" commit))
24962 (home-page "https://github.com/jschaf/emacs-lorem-ipsum/")
24963 (source (origin
24964 (method git-fetch)
24965 (uri (git-reference
24966 (url home-page)
24967 (commit commit)))
24968 (file-name (git-file-name name version))
24969 (sha256
24970 (base32
24971 "0a3b18p3vdjci89prsgdzjnfxsl8p67vjhf8ai4qdng7zvh50lir"))))
24972 (build-system emacs-build-system)
24973 (synopsis "Insert dummy pseudo Latin text in Emacs")
24974 (description "This package provides convenience functions to insert
24975 dummy Latin text into a buffer. This can be useful if you need to produce
24976 paragraphs or pages of text for testing purposes.")
24977 (license license:gpl3+))))
24978
24979 (define-public emacs-lisp-extra-font-lock
24980 (let ((commit "4605eccbe1a7fcbd3cacf5b71249435413b4db4f"))
24981 (package
24982 (name "emacs-lisp-extra-font-lock")
24983 (version (git-version "0.0.6" "1" commit))
24984 (home-page "https://github.com/Lindydancer/lisp-extra-font-lock")
24985 (source (origin
24986 (method git-fetch)
24987 (uri (git-reference
24988 (url home-page)
24989 (commit commit)))
24990 (file-name (git-file-name name version))
24991 (sha256
24992 (base32
24993 "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w"))))
24994 (build-system emacs-build-system)
24995 (synopsis "Highlight bound variables and quoted expressions in Emacs")
24996 (description "This package highlight the location where local variables
24997 is created (bound, for example, by let) as well as quoted and backquoted
24998 constant expressions.")
24999 (license license:gpl3+))))
25000
25001 (define-public emacs-docker-tramp
25002 (package
25003 (name "emacs-docker-tramp")
25004 (version "0.1.1")
25005 (source
25006 (origin
25007 (method git-fetch)
25008 (uri (git-reference
25009 (url "https://github.com/emacs-pe/docker-tramp.el")
25010 (commit (string-append "v" version))))
25011 (file-name (git-file-name name version))
25012 (sha256
25013 (base32
25014 "05966l3af9lg4nlsz6wrq282ipwxh19ggirfyabjrr1syw3v2crn"))))
25015 (build-system emacs-build-system)
25016 (home-page "https://github.com/emacs-pe/docker-tramp.el")
25017 (synopsis "TRAMP integration for docker containers")
25018 (description
25019 "This package provides a TRAMP method for Docker containers.")
25020 (license license:gpl3+)))
25021
25022 (define-public emacs-docker
25023 (package
25024 (name "emacs-docker")
25025 (version "2.2.0")
25026 (source
25027 (origin
25028 (method git-fetch)
25029 (uri (git-reference
25030 (url "https://github.com/Silex/docker.el")
25031 (commit version)))
25032 (file-name (git-file-name name version))
25033 (sha256
25034 (base32 "1743x2s7ss7h329yayima3pqi62f0qjv56g5y6b7iwk40wpnhv9v"))))
25035 (inputs
25036 (list emacs-undercover))
25037 (propagated-inputs
25038 (list emacs-aio
25039 emacs-dash
25040 emacs-docker-tramp
25041 emacs-json-mode
25042 emacs-s
25043 emacs-tablist
25044 emacs-transient))
25045 (arguments `(#:tests? #false)) ;no tests
25046 (build-system emacs-build-system)
25047 (home-page "https://github.com/Silex/docker.el")
25048 (synopsis "Manage docker from Emacs")
25049 (description "This package provides an Emacs interface for Docker.")
25050 (license license:gpl3+)))
25051
25052 (define-public emacs-dockerfile-mode
25053 (package
25054 (name "emacs-dockerfile-mode")
25055 (version "1.6")
25056 (source
25057 (origin
25058 (method git-fetch)
25059 (uri (git-reference
25060 (url "https://github.com/spotify/dockerfile-mode")
25061 (commit (string-append "v" version))))
25062 (file-name (git-file-name name version))
25063 (sha256
25064 (base32
25065 "0nmybfc9qch0jng06qgs2xb41dl9v52ckc9nc20d7hv3x36w555x"))))
25066 (build-system emacs-build-system)
25067 (propagated-inputs
25068 (list emacs-s))
25069 (home-page "https://github.com/spotify/dockerfile-mode")
25070 (synopsis "Major mode for editing Dockerfile")
25071 (description
25072 "This package provides a major mode @code{dockerfile-mode} for use with
25073 the standard @code{Dockerfile} file format.")
25074 (license license:asl2.0)))
25075
25076 (define-public emacs-lsp-mode
25077 (let ((commit "4aafe25e03ab7470b8d3c1cb326affa3c5e9930e")
25078 (revision "0"))
25079 (package
25080 (name "emacs-lsp-mode")
25081 (version (git-version "8.0.1" revision commit))
25082 (source
25083 (origin
25084 (method git-fetch)
25085 (uri (git-reference
25086 (url "https://github.com/emacs-lsp/lsp-mode")
25087 (commit commit)))
25088 (file-name (git-file-name name version))
25089 (sha256
25090 (base32 "01csz4vr3fg1q2py45mxj5j8bkvckn3daam1jafb2gg9gjc9bp7z"))))
25091 (build-system emacs-build-system)
25092 (arguments
25093 `(#:emacs ,emacs ;need libxml support
25094 #:phases
25095 (modify-phases %standard-phases
25096 (add-after 'unpack 'move-clients-libraries
25097 ;; Move all clients libraries at top-level, as is done, e.g., in
25098 ;; MELPA.
25099 (lambda _
25100 (for-each (lambda (f)
25101 (install-file f "."))
25102 (find-files "clients/" "\\.el$"))))
25103 (add-before 'move-clients-libraries 'fix-patch-el-files
25104 ;; /bin/ksh is only used on macOS, which we don't support, so we
25105 ;; don't want to add it as input.
25106 (lambda _
25107 (substitute* '("clients/lsp-csharp.el" "clients/lsp-fsharp.el")
25108 (("/bin/ksh") "ksh")))))))
25109 (propagated-inputs
25110 (list emacs-dash
25111 emacs-f
25112 emacs-ht
25113 emacs-hydra
25114 emacs-markdown-mode
25115 emacs-spinner))
25116 (home-page "https://emacs-lsp.github.io/lsp-mode/")
25117 (synopsis "Emacs client and library for the Language Server Protocol")
25118 (description
25119 "LSP mode is a client and library implementation for the Language
25120 Server Protocol. This mode creates an IDE-like experience by providing
25121 optional integration with other popular Emacs packages like Company, Flycheck,
25122 and Projectile.")
25123 (license license:gpl3+))))
25124
25125 (define-public emacs-lsp-treemacs
25126 (package
25127 (name "emacs-lsp-treemacs")
25128 (version "0.4")
25129 (source
25130 (origin
25131 (method git-fetch)
25132 (uri (git-reference
25133 (url "https://github.com/emacs-lsp/lsp-treemacs")
25134 (commit version)))
25135 (file-name (git-file-name name version))
25136 (sha256
25137 (base32 "05ivqa5900139jzjhwc3nggwznhm8564dz4ydcxym2ddd63571k0"))))
25138 (build-system emacs-build-system)
25139 (propagated-inputs
25140 (list emacs-lsp-mode emacs-treemacs))
25141 (home-page "https://github.com/emacs-lsp/lsp-treemacs")
25142 (synopsis "Integration between LSP mode and treemacs")
25143 (description
25144 "This package provides integration between LSP mode and treemacs,
25145 and implementation of treeview controls using treemacs as a tree renderer.")
25146 (license license:gpl3+)))
25147
25148 (define-public emacs-dap-mode
25149 (package
25150 (name "emacs-dap-mode")
25151 (version "0.7")
25152 (source
25153 (origin
25154 (method git-fetch)
25155 (uri (git-reference
25156 (url "https://github.com/emacs-lsp/dap-mode")
25157 (commit version)))
25158 (file-name (git-file-name name version))
25159 (sha256
25160 (base32 "1zczmcv8562lachkvcwy6njn7zkgny08iznpmrx821wr8mh52wnn"))))
25161 (build-system emacs-build-system)
25162 (propagated-inputs
25163 (list emacs-bui emacs-lsp-mode emacs-posframe emacs-lsp-treemacs))
25164 (home-page "https://emacs-lsp.github.io/dap-mode")
25165 (synopsis "Emacs client/library for Debug Adapter Protocol")
25166 (description
25167 "Dap mode is an Emacs client/library for Debug Adapter
25168 Protocol (DAP), a wire protocol for communication between client and
25169 debug server. It is similar to the LSP but provides integration with
25170 Debug server.")
25171 (license license:gpl3+)))
25172
25173 (define-public emacs-bfuture
25174 (package
25175 (name "emacs-bfuture")
25176 (version "1.0.1")
25177 (source
25178 (origin
25179 (method git-fetch)
25180 (uri (git-reference
25181 (url "https://git.sr.ht/~plattfot/bfuture")
25182 (commit (string-append "v" version))))
25183 (sha256
25184 (base32
25185 "1m4v4xbsvg26z7nvg2c8q7x1nvv7v4ajm56l0nbkwcbdbrgahpva"))
25186 (file-name (git-file-name name version))))
25187 (build-system emacs-build-system)
25188 (arguments
25189 (list #:tests? (not (%current-target-system))
25190 #:test-command #~'("ert-runner")))
25191 (native-inputs (list emacs-ert-runner))
25192 (home-page "https://github.com/plattfot/bfuture.el")
25193 (synopsis "Basic future concept for Emacs with Tramp support")
25194 (description
25195 "This package provides basic functions for spawning processes asynchronous in
25196 Emacs and retrieving the output. It is similar to @code{emacs-pfuture} except
25197 that this works over Tramp but the feature set is more limited. For example,
25198 it cannot tell stdout and stderr apart.")
25199 (license license:gpl3+)))
25200
25201 (define-public emacs-pfuture
25202 (package
25203 (name "emacs-pfuture")
25204 (version "1.10.2")
25205 (source
25206 (origin
25207 (method git-fetch)
25208 (uri (git-reference
25209 (url "https://github.com/Alexander-Miller/pfuture")
25210 (commit version)))
25211 (file-name (git-file-name name version))
25212 (sha256
25213 (base32 "0cks18fwir8h9b35ryz2yr5rligv1da2iqkqz0fcb5dx2a4fxwjj"))))
25214 (build-system emacs-build-system)
25215 (home-page "https://github.com/Alexander-Miller/pfuture")
25216 (synopsis "Simple wrapper around asynchronous processes for Emacs")
25217 (description "This package provides a simple wrapper around asynchronous
25218 processes for Emacs.")
25219 (license license:gpl3+)))
25220
25221 (define-public emacs-treemacs
25222 (package
25223 (name "emacs-treemacs")
25224 (version "2.9.5")
25225 (source
25226 (origin
25227 (method git-fetch)
25228 (uri (git-reference
25229 (url "https://github.com/Alexander-Miller/treemacs")
25230 (commit version)))
25231 (file-name (git-file-name name version))
25232 (sha256
25233 (base32 "01qrprxfwmdzak77k2qa9fc2kb4hxddbvj30avqglj9sjaid9wmq"))))
25234 (build-system emacs-build-system)
25235 (propagated-inputs
25236 (list emacs-ace-window
25237 emacs-dash
25238 emacs-f
25239 emacs-ht
25240 emacs-hydra
25241 emacs-pfuture
25242 emacs-s))
25243 (native-inputs
25244 (list emacs-buttercup emacs-el-mock))
25245 (inputs
25246 (list python))
25247 (arguments
25248 `(#:tests? #t
25249 #:test-command '("make" "-C" "../.." "test")
25250 #:phases
25251 (modify-phases %standard-phases
25252 (add-after 'unpack 'fix-makefile
25253 (lambda _
25254 (substitute* "Makefile"
25255 (("@\\$\\(CASK\\) exec ") "")
25256 ;; Guix does not need to prepare dependencies before testing.
25257 (("test: prepare") "test:"))))
25258 (add-after 'fix-makefile 'chdir-elisp
25259 ;; Elisp directory is not in root of the source.
25260 (lambda _
25261 (chdir "src/elisp")))
25262 (add-before 'install 'patch-paths
25263 (lambda* (#:key inputs outputs #:allow-other-keys)
25264 (with-directory-excursion "../.." ;treemacs root
25265 (chmod "src/elisp/treemacs-core-utils.el" #o644)
25266 (emacs-substitute-variables "src/elisp/treemacs-core-utils.el"
25267 ("treemacs-dir"
25268 (string-append (assoc-ref outputs "out") "/")))
25269 (chmod "src/elisp/treemacs-icons.el" #o644)
25270 (substitute* "src/elisp/treemacs-icons.el"
25271 (("icons/default") "share/emacs-treemacs/images"))
25272 (chmod "src/elisp/treemacs-customization.el" #o644)
25273 (emacs-substitute-variables "src/elisp/treemacs-customization.el"
25274 ("treemacs-python-executable"
25275 (search-input-file inputs "/bin/python3")))
25276 (chmod "src/elisp/treemacs-async.el" #o644)
25277 (substitute* "src/elisp/treemacs-async.el"
25278 (("src/scripts") (string-append "share/" ,name "/scripts"))))))
25279 (add-after 'install 'install-data
25280 (lambda* (#:key outputs #:allow-other-keys)
25281 (let ((out (assoc-ref outputs "out")))
25282 (with-directory-excursion "../.." ;treemacs root
25283 (copy-recursively "icons/default"
25284 (string-append out "/share/" ,name "/images"))
25285 (copy-recursively
25286 "src/scripts"
25287 (string-append out "/share/" ,name "/scripts")))))))))
25288 (home-page "https://github.com/Alexander-Miller/treemacs")
25289 (synopsis "Emacs tree style file explorer")
25290 (description
25291 "Treemacs is a file and project explorer similar to NeoTree or Vim's
25292 NerdTree, but largely inspired by the Project Explorer in Eclipse. It shows
25293 the file system outlines of your projects in a simple tree layout allowing
25294 quick navigation and exploration, while also possessing basic file management
25295 utilities.")
25296 (license license:gpl3+)))
25297
25298 (define-public emacs-treemacs-extra
25299 (package
25300 (inherit emacs-treemacs)
25301 (name "emacs-treemacs-extra")
25302 (propagated-inputs
25303 `(,@(package-propagated-inputs emacs-treemacs)
25304 ("emacs-all-the-icons" ,emacs-all-the-icons)
25305 ("emacs-evil" ,emacs-evil)
25306 ("emacs-magit" ,emacs-magit)
25307 ("emacs-projectile" ,emacs-projectile)
25308 ("emacs-perspective" ,emacs-perspective)
25309 ("emacs-persp-mode" ,emacs-persp-mode)))
25310 (arguments
25311 (substitute-keyword-arguments
25312 (package-arguments emacs-treemacs)
25313 ((#:phases phases)
25314 `(modify-phases ,phases
25315 (add-after 'chdir-elisp 'copy-extra
25316 (lambda _
25317 (copy-recursively "../extra" ".")))))))))
25318
25319 (define-public emacs-libyaml
25320 ;; Upstream made no release so far.
25321 (let ((version "0")
25322 (revision "1")
25323 (commit "703e0d448c7ee24e25b513a3c65980c80e166805"))
25324 (package
25325 (name "emacs-libyaml")
25326 (version (git-version version revision commit))
25327 (source
25328 (origin
25329 (method git-fetch)
25330 (uri (git-reference
25331 (url "https://github.com/syohex/emacs-libyaml")
25332 (commit commit)))
25333 (file-name (git-file-name name version))
25334 (sha256
25335 (base32 "08l7pm9v50ykd3fkbm0bh2kcd57cadbc5i9r6rj51vd32w3pl2yl"))))
25336 (build-system emacs-build-system)
25337 (arguments
25338 `(#:tests? #f ;no test
25339 #:modules ((guix build emacs-build-system)
25340 (guix build emacs-utils)
25341 (guix build utils))
25342 #:imported-modules (,@%emacs-build-system-modules
25343 (guix build gnu-build-system))
25344 #:phases
25345 (modify-phases %standard-phases
25346 (add-after 'unpack 'substitute-libyaml-core-path
25347 (lambda* (#:key outputs #:allow-other-keys)
25348 (chmod "libyaml.el" #o644)
25349 (substitute* "libyaml.el"
25350 (("^\\(require 'libyaml-core\\)")
25351 (string-append "(module-load \"" (assoc-ref outputs "out")
25352 "/lib/libyaml-core.so\")")))
25353 #t))
25354 (add-after 'check 'make
25355 ;; Run make.
25356 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
25357 ;; Compile the shared object file.
25358 (apply invoke "make" "all" "CPPFLAGS=" make-flags)
25359 ;; Move the file into /lib.
25360 (install-file "libyaml-core.so"
25361 (string-append (assoc-ref outputs "out") "/lib"))
25362 #t)))))
25363 (native-inputs (list libyaml))
25364 (home-page "https://github.com/syohex/emacs-libyaml")
25365 (synopsis "Libyaml bindings for Emacs")
25366 (description
25367 "This package implements bindings for LibYAML to be able to parse YAML
25368 files in Elisp.")
25369 (license license:gpl3+))))
25370
25371 (define-public emacs-lsp-java
25372 (package
25373 (name "emacs-lsp-java")
25374 (version "3.1")
25375 (source (origin
25376 (method git-fetch)
25377 (uri (git-reference
25378 (url "https://github.com/emacs-lsp/lsp-java")
25379 (commit version)))
25380 (file-name (git-file-name name version))
25381 (sha256
25382 (base32
25383 "1h0hqgjpk5mbylma1fkva0vx45achf0k7ab2c5y8a2449niww90h"))))
25384 (build-system emacs-build-system)
25385 (propagated-inputs
25386 (list emacs-dap-mode
25387 emacs-lsp-mode
25388 emacs-markdown-mode
25389 emacs-dash
25390 emacs-f
25391 emacs-ht
25392 emacs-request
25393 emacs-treemacs))
25394 (home-page "https://github.com/emacs-lsp/lsp-java/")
25395 (synopsis "Java support for lsp-mode")
25396 (description "Emacs Java IDE using Eclipse JDT Language Server.")
25397 (license license:gpl3+)))
25398
25399 (define-public emacs-lsp-metals
25400 (package
25401 (name "emacs-lsp-metals")
25402 (version "1.2.0")
25403 (source (origin
25404 (method git-fetch)
25405 (uri (git-reference
25406 (url "https://github.com/emacs-lsp/lsp-metals")
25407 (commit version)))
25408 (file-name (git-file-name name version))
25409 (sha256
25410 (base32
25411 "0ca5xq1l3lscx36pcdnpy2axgyikjrl18naqr140kr1y500sy37s"))))
25412 (build-system emacs-build-system)
25413 (propagated-inputs
25414 (list emacs-dap-mode emacs-lsp-treemacs emacs-scala-mode))
25415 (home-page "https://github.com/emacs-lsp/lsp-metals")
25416 (synopsis "Scala support for LSP mode")
25417 (description "This package is an Emacs Scala IDE using LSP mode to connect
25418 to Metals.")
25419 (license license:gpl3+)))
25420
25421 (define-public emacs-lsp-ui
25422 (package
25423 (name "emacs-lsp-ui")
25424 (version "8.0.0")
25425 (source (origin
25426 (method git-fetch)
25427 (uri (git-reference
25428 (url "https://github.com/emacs-lsp/lsp-ui")
25429 (commit version)))
25430 (file-name (git-file-name name version))
25431 (sha256
25432 (base32
25433 "00yirx6qzlb8fv8rd53zaw93nw72z3br40rb16scdqj1v20qsp47"))))
25434 (build-system emacs-build-system)
25435 (propagated-inputs
25436 (list emacs-dash emacs-lsp-mode emacs-markdown-mode emacs-flycheck))
25437 (home-page "https://github.com/emacs-lsp/lsp-ui")
25438 (synopsis "User interface extensions for @code{lsp-mode}")
25439 (description
25440 "@code{LSP-ui} contains several enhancements and integrations for
25441 @code{lsp-mode}, such as visual flychecking, displaying references in-line,
25442 and code peeking.")
25443 (license license:gpl3+)))
25444
25445 (define-public emacs-lsp-lua-emmy
25446 (let ((commit "ab53fb2a8b8942804eb75bab5624fd19f1d360bf"))
25447 (package
25448 (name "emacs-lsp-lua-emmy")
25449 (version (git-version "0.1.0" "1" commit))
25450 (source (origin
25451 (method git-fetch)
25452 (uri (git-reference
25453 (url "https://github.com/phenix3443/lsp-lua-emmy")
25454 (commit commit)))
25455 (file-name (git-file-name name version))
25456 (sha256
25457 (base32
25458 "0rbizis73n1w5ig07fj1han74chbc1zpbp5bn37rj0gz608aqka8"))))
25459 (build-system emacs-build-system)
25460 (propagated-inputs
25461 (list emacs-lsp-mode))
25462 (home-page "https://github.com/phenix3443/lsp-lua-emmy/")
25463 (synopsis "Lua support in @code{lsp-mode} client for Emacs")
25464 (description "This package provides a Lua language support in
25465 @code{lsp-mode} client for Emacs.")
25466 (license license:gpl3+))))
25467
25468 (define-public emacs-lsp-ivy
25469 (package
25470 (name "emacs-lsp-ivy")
25471 (version "0.5")
25472 (source
25473 (origin
25474 (method git-fetch)
25475 (uri (git-reference
25476 (url "https://github.com/emacs-lsp/lsp-ivy")
25477 (commit version)))
25478 (file-name (git-file-name name version))
25479 (sha256
25480 (base32 "0nb9ypa8hyx7i38rbywh8hn2i5f9l2l567hvdr9767fk279yr97n"))))
25481 (build-system emacs-build-system)
25482 (propagated-inputs
25483 (list emacs-dash emacs-ivy emacs-lsp-mode))
25484 (home-page "https://github.com/emacs-lsp/lsp-ivy")
25485 (synopsis "Provide LSP-enhanced completion for symbols")
25486 (description
25487 "This package enhances @code{ivy} with completion for symbols from
25488 workspaces with a LSP-compliant server running.")
25489 (license license:gpl3+)))
25490
25491 (define-public emacs-helm-lsp
25492 (package
25493 (name "emacs-helm-lsp")
25494 (version "0.2")
25495 (source (origin
25496 (method git-fetch)
25497 (uri (git-reference
25498 (url "https://github.com/emacs-lsp/helm-lsp")
25499 (commit version)))
25500 (file-name (git-file-name name version))
25501 (sha256
25502 (base32
25503 "1vq3qpqm3ndqyvf5bk8qhqcr60x9ykc0ipk2a43rr3yjm4z1b6s9"))))
25504 (build-system emacs-build-system)
25505 (propagated-inputs
25506 (list emacs-helm emacs-lsp-mode emacs-dash))
25507 (home-page "https://github.com/emacs-lsp/helm-lsp")
25508 (synopsis "Provide LSP-enhanced completion for symbols")
25509 (description
25510 "This package enhances @code{helm} with completion for symbols from
25511 workspaces with a LSP-compliant server running.")
25512 (license license:gpl3+)))
25513
25514 (define-public emacs-helm-notmuch
25515 (package
25516 (name "emacs-helm-notmuch")
25517 (version "1.2")
25518 (home-page "https://github.com/emacs-helm/helm-notmuch/")
25519 (source (origin
25520 (method git-fetch)
25521 (uri (git-reference
25522 (url home-page)
25523 (commit version)))
25524 (file-name (git-file-name name version))
25525 (sha256
25526 (base32
25527 "1k038dbdpaa411gl4071x19fklhnizhr346plxw23lsnxir9dhqc"))))
25528 (build-system emacs-build-system)
25529 (propagated-inputs
25530 (list emacs-helm emacs-notmuch))
25531 (synopsis "Search emails with Emacs Notmuch and Helm")
25532 (description
25533 "This package can be used to search emails in Emacs, searching result
25534 displays as you type thanks to Helm, though @command{notmuch-search} does the
25535 real search.")
25536 (license license:gpl3+)))
25537
25538 (define-public emacs-notmuch-maildir
25539 (package
25540 (name "emacs-notmuch-maildir")
25541 (version "0.2.1")
25542 (source
25543 (origin
25544 (method git-fetch)
25545 (uri (git-reference
25546 (url "https://git.sr.ht/~tarsius/notmuch-maildir")
25547 (commit (string-append "v" version))))
25548 (file-name (git-file-name name version))
25549 (sha256
25550 (base32 "1fqnx6hhg0cqj82yjpl7llg6vvppc3y8q9k6g67mqr7z3712bw0x"))))
25551 (build-system emacs-build-system)
25552 (propagated-inputs
25553 (list emacs-notmuch))
25554 (home-page "https://git.sr.ht/~tarsius/notmuch-maildir")
25555 (synopsis "Visualize maildirs as a tree")
25556 (description
25557 "This package can visualize maildirs hierarchically in Notmuch's ``hello
25558 buffer''.")
25559 (license license:gpl3+)))
25560
25561 (define-public emacs-elmacro
25562 (package
25563 (name "emacs-elmacro")
25564 (version "1.1.1")
25565 (home-page "https://github.com/Silex/elmacro")
25566 (source (origin
25567 (method git-fetch)
25568 (uri (git-reference
25569 (url home-page)
25570 (commit version)))
25571 (file-name (git-file-name name version))
25572 (sha256
25573 (base32
25574 "1x4wnsshf9h10mp51x92vs5rxw5had4gmw6zz4f53czx1ymcv16a"))))
25575 (build-system emacs-build-system)
25576 (propagated-inputs
25577 (list emacs-s emacs-dash))
25578 (synopsis "Convert keyboard macros to Emacs Lisp")
25579 (description
25580 "This package displays keyboard macros or latest interactive commands
25581 as Emacs Lisp.")
25582 (license license:gpl3+)))
25583
25584 (define-public emacs-transient
25585 (package
25586 (name "emacs-transient")
25587 (version "0.3.7")
25588 (source
25589 (origin
25590 (method git-fetch)
25591 (uri (git-reference
25592 (url "https://github.com/magit/transient")
25593 (commit (string-append "v" version))))
25594 (file-name (git-file-name name version))
25595 (sha256
25596 (base32 "0c7wbd0j0b802bzdpdkrx2q7wm7b9s56rk554dnadkpywhmdiqwn"))))
25597 (build-system emacs-build-system)
25598 (arguments
25599 `(#:tests? #f ;no test suite
25600 #:phases
25601 (modify-phases %standard-phases
25602 (add-after 'unpack 'build-info-manual
25603 (lambda _
25604 (invoke "make" "info")
25605 ;; Move the info file to lisp so that it gets installed by the
25606 ;; emacs-build-system.
25607 (rename-file "docs/transient.info" "lisp/transient.info")))
25608 (add-after 'build-info-manual 'enter-lisp-directory
25609 (lambda _
25610 (chdir "lisp"))))))
25611 (native-inputs
25612 (list texinfo))
25613 (propagated-inputs
25614 (list emacs-dash))
25615 (home-page "https://magit.vc/manual/transient")
25616 (synopsis "Transient commands in Emacs")
25617 (description "Taking inspiration from prefix keys and prefix arguments
25618 in Emacs, Transient implements a similar abstraction involving a prefix
25619 command, infix arguments and suffix commands. We could call this abstraction
25620 a \"transient command\", but because it always involves at least two
25621 commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
25622 (license license:gpl3+)))
25623
25624 (define-public emacs-forge
25625 (package
25626 (name "emacs-forge")
25627 (version "0.3.1")
25628 (source
25629 (origin
25630 (method git-fetch)
25631 (uri (git-reference
25632 (url "https://github.com/magit/forge")
25633 (commit (string-append "v" version))))
25634 (file-name (git-file-name name version))
25635 (sha256
25636 (base32 "112mghydfzrbiwnzrb2f9d74y6ja702157p66ss94kqps0lj7rkp"))))
25637 (build-system emacs-build-system)
25638 (arguments
25639 `(#:tests? #f ;no tests
25640 #:phases
25641 (modify-phases %standard-phases
25642 (add-after 'unpack 'build-info-manual
25643 (lambda _
25644 (invoke "make" "info")
25645 ;; Move the info file to lisp so that it gets installed by the
25646 ;; emacs-build-system.
25647 (rename-file "docs/forge.info" "lisp/forge.info")))
25648 (add-after 'build-info-manual 'chdir-lisp
25649 (lambda _
25650 (chdir "lisp"))))))
25651 (native-inputs
25652 (list texinfo))
25653 (propagated-inputs
25654 (list emacs-closql
25655 emacs-dash
25656 emacs-emacsql
25657 emacs-ghub
25658 emacs-let-alist
25659 emacs-magit
25660 emacs-markdown-mode
25661 emacs-transient
25662 emacs-yaml))
25663 (home-page "https://github.com/magit/forge/")
25664 (synopsis "Access Git forges from Magit")
25665 (description "Work with Git forges, such as Github and Gitlab, from the
25666 comfort of Magit and the rest of Emacs.")
25667 (license license:gpl3+)))
25668
25669 (define-public emacs-matcha
25670 (let ((commit "c7df5cf5cdac9ae369e241342389ccda0205eab9"))
25671 (package
25672 (name "emacs-matcha")
25673 (version (git-version "0.0.1" "1" commit)) ;no upstream release
25674 (source (origin
25675 (method git-fetch)
25676 (uri (git-reference
25677 (url "https://github.com/jojojames/matcha")
25678 (commit commit)))
25679 (file-name (git-file-name name version))
25680 (sha256
25681 (base32
25682 "1lfnh1glg6al677m7ci0x8g5wjdhjxlfl3nv1f1ppsw4dpnwsj9b"))))
25683 (propagated-inputs
25684 (list emacs-hydra emacs-transient))
25685 (build-system emacs-build-system)
25686 (home-page "https://github.com/jojojames/matcha/")
25687 (synopsis "Collection of hydras with a generic interface to launch them")
25688 (description "Matcha provides a collection of transients for various
25689 packages with a consistent way to use them.")
25690 (license license:gpl3+))))
25691
25692 (define-public emacs-undo-propose-el
25693 (let ((commit "f80baee566807d733fbacbab08a897bcd62579c3")
25694 (revision "3"))
25695 (package
25696 (name "emacs-undo-propose-el")
25697 (version (git-version "3.0.0" revision commit))
25698 (source
25699 (origin
25700 (method git-fetch)
25701 (uri (git-reference
25702 (url "https://github.com/jackkamm/undo-propose-el")
25703 (commit commit)))
25704 (file-name (git-file-name name version))
25705 (sha256
25706 (base32
25707 "00rqz63bhh66q78l646q3w16gydygj8h4d8np0dpbifgzciak90b"))))
25708 (build-system emacs-build-system)
25709 (arguments
25710 `(#:tests? #t
25711 #:test-command '("make" "test")))
25712 (home-page "https://github.com/jackkamm/undo-propose-el")
25713 (synopsis "Simple and safe navigation of @code{undo} history")
25714 (description "This package permits navigation of @code{undo} history in a
25715 temporary buffer, which is read-only save for @code{undo} commands, and
25716 subsequent committal of a chain of @code{undo} commands as a single edit in
25717 the @code{undo} history.")
25718 (license license:gpl3+))))
25719
25720 (define-public emacs-elisp-docstring-mode
25721 (let ((commit "f512e509dd690f65133e55563ebbfd2dede5034f")
25722 (version "0.0.1")
25723 (revision "1"))
25724 (package
25725 (name "emacs-elisp-docstring-mode")
25726 (version (git-version version revision commit))
25727 (source
25728 (origin
25729 (method git-fetch)
25730 (uri (git-reference
25731 (url "https://github.com/Fuco1/elisp-docstring-mode")
25732 (commit commit)))
25733 (file-name (git-file-name name version))
25734 (sha256
25735 (base32
25736 "0al8m75p359h4n82rf0dsl22qfdg9cwwywn5pn7x6gb96c7qrqaa"))))
25737 (build-system emacs-build-system)
25738 (home-page "https://github.com/Fuco1/elisp-docstring-mode")
25739 (synopsis "Major mode for editing Emacs Lisp docstrings")
25740 (description "This package provides font lock and automatic escaping and
25741 unescaping of quotes.")
25742 (license license:gpl3+))))
25743
25744 (define-public emacs-vimrc-mode
25745 (let ((commit "13bc150a870d5d4a95f1111e4740e2b22813c30e")
25746 (version "0.3.1")
25747 (revision "1"))
25748 (package
25749 (name "emacs-vimrc-mode")
25750 (version (git-version version revision commit))
25751 (source
25752 (origin
25753 (method git-fetch)
25754 (uri (git-reference
25755 (url "https://github.com/mcandre/vimrc-mode")
25756 (commit commit)))
25757 (file-name (git-file-name name version))
25758 (sha256
25759 (base32
25760 "0026dqs3hwygk2k2xfra90w5sfnxrfj7l69jz7sq5glavbf340pk"))))
25761 (build-system emacs-build-system)
25762 (home-page "https://github.com/mcandre/vimrc-mode")
25763 (synopsis "Major mode for Vimscript")
25764 (description "This package provides font lock and @code{beginning-} and
25765 @code{end-of-defun} functions for Vimscript files.")
25766 (license license:gpl3+))))
25767
25768 (define-public emacs-flycheck-elm
25769 (let ((revision "0")
25770 (commit "1b60050efd4729bfba548f3e5adbcb58436667cb"))
25771 (package
25772 (name "emacs-flycheck-elm")
25773 (version (git-version "0" revision commit))
25774 (source
25775 (origin
25776 (method git-fetch)
25777 (uri
25778 (git-reference
25779 (url "https://github.com/bsermons/flycheck-elm")
25780 (commit commit)))
25781 (file-name (git-file-name name version))
25782 (sha256
25783 (base32 "1kjms9d2c98ffd1qxs879qhg0n4jzic0r5kni9y4gz3v09ww8zms"))))
25784 (build-system emacs-build-system)
25785 (propagated-inputs
25786 (list emacs-flycheck emacs-let-alist))
25787 (home-page "https://github.com/bsermons/flycheck-elm")
25788 (synopsis "Flycheck support for the Elm language")
25789 (description "Flycheck Elm adds Flycheck support for Elm language.")
25790 (license license:gpl3+))))
25791
25792 (define-public emacs-flycheck-haskell
25793 (let ((commit "32ddff87165a7d3a35e7318bee997b5b4bd41278")
25794 (revision "2"))
25795 (package
25796 (name "emacs-flycheck-haskell")
25797 (version (git-version "0.8" revision commit))
25798 (source
25799 (origin
25800 (method git-fetch)
25801 (uri (git-reference
25802 (url "https://github.com/flycheck/flycheck-haskell")
25803 (commit commit)))
25804 (file-name (git-file-name name version))
25805 (sha256
25806 (base32
25807 "10pgsbagq6qj4mshq5sypv0q0khck92b30sc793b4g1pfpsxvgjn"))))
25808 (build-system emacs-build-system)
25809 (propagated-inputs
25810 (list emacs-dash emacs-flycheck emacs-haskell-mode emacs-let-alist))
25811 (arguments
25812 `(#:include '("\\.el$" "\\.hs$")))
25813 (home-page "https://github.com/flycheck/flycheck-haskell")
25814 (synopsis "Flycheck for Haskell")
25815 (description "This package configures syntax-checking for Haskell
25816 buffers.")
25817 (license license:gpl3+))))
25818
25819 (define-public emacs-js2-refactor-el
25820 (let ((commit "d4c40b5fc86d3edd7c6a7d83ac86483ee1cb7a28")
25821 (revision "2"))
25822 (package
25823 (name "emacs-js2-refactor-el")
25824 (version (git-version "0.9.0" revision commit))
25825 (source
25826 (origin
25827 (method git-fetch)
25828 (uri (git-reference
25829 (url "https://github.com/magnars/js2-refactor.el")
25830 (commit commit)))
25831 (file-name (git-file-name name version))
25832 (sha256
25833 (base32
25834 "08b25y3raz0p98zxk9xdd8nj9shqd6mzrqhbq1gg4cwsmi7h7ly1"))))
25835 (build-system emacs-build-system)
25836 (propagated-inputs
25837 (list emacs-dash emacs-s emacs-js2-mode emacs-yasnippet
25838 emacs-multiple-cursors))
25839 (native-inputs
25840 (list emacs-buttercup emacs-espuds))
25841 (home-page "https://github.com/magnars/js2-refactor.el")
25842 (synopsis "JavaScript refactoring in Emacs")
25843 (description "This package provides various refactoring functions for
25844 JavaScript.")
25845 (license license:gpl3+))))
25846
25847 (define-public emacs-prettier
25848 (let ((commit "e9b73e81d3e1642aec682195f127a42dfb0b5774")
25849 (version "0.1.0")
25850 (revision "1"))
25851 (package
25852 (name "emacs-prettier")
25853 (version (git-version version revision commit))
25854 (source
25855 (origin
25856 (method git-fetch)
25857 (uri (git-reference
25858 (url "https://github.com/prettier/prettier-emacs")
25859 (commit commit)))
25860 (file-name (git-file-name name version))
25861 (sha256
25862 (base32
25863 "0hj4fv3fgc60i6jrsx4a81s5c9fsxxafhhs3q2q1dypsscjci9ph"))))
25864 (build-system emacs-build-system)
25865 (home-page "https://github.com/prettier/prettier-emacs")
25866 (synopsis "Automatic formatting of JavaScript code")
25867 (description "This package integrates Prettier with Emacs, and
25868 provides a minor mode that autoformats the buffer upon saving.")
25869 (license license:expat))))
25870
25871 (define-public emacs-fish-mode
25872 (package
25873 (name "emacs-fish-mode")
25874 (version "0.1.6")
25875 (source
25876 (origin
25877 (method git-fetch)
25878 (uri (git-reference
25879 (url "https://github.com/wwwjfy/emacs-fish")
25880 (commit version)))
25881 (file-name (git-file-name name version))
25882 (sha256
25883 (base32
25884 "1spxxkji9xa930sbwvzyjm8jrqk9ra0xqhivw7zd12a4c56nhna9"))))
25885 (build-system emacs-build-system)
25886 (home-page "https://github.com/wwwjfy/emacs-fish")
25887 (synopsis "Major mode for Fish shell scripts")
25888 (description "This package provides syntax highlighting and indentation
25889 functions for Fish shell scripts.")
25890 (license license:gpl3+)))
25891
25892 (define-public emacs-eshell-up
25893 (let ((commit "9c100bae5c3020e8d9307e4332d3b64e7dc28519")
25894 (version "0.0.3")
25895 (revision "12"))
25896 (package
25897 (name "emacs-eshell-up")
25898 (version (git-version version revision commit))
25899 (source
25900 (origin
25901 (method git-fetch)
25902 (uri (git-reference
25903 (url "https://github.com/peterwvj/eshell-up")
25904 (commit commit)))
25905 (file-name (git-file-name name version))
25906 (sha256
25907 (base32
25908 "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"))))
25909 (build-system emacs-build-system)
25910 (home-page "https://github.com/peterwvj/eshell-up")
25911 (synopsis "Quickly go to a parent directory in @code{Eshell}")
25912 (description "This package provides quick navigation to a specific
25913 parent directory using @code{Eshell}.")
25914 (license license:gpl3+))))
25915
25916 (define-public emacs-springboard
25917 ;; Upstream provides no tag. Using the latest commit. Version is extracted
25918 ;; from "Version:" keyword.
25919 (let ((commit "687d1e5898a880878995dc9bffe93b4598366203")
25920 (version "1.0")
25921 (revision "1"))
25922 (package
25923 (name "emacs-springboard")
25924 (version (git-version version revision commit))
25925 (source
25926 (origin
25927 (method git-fetch)
25928 (uri (git-reference
25929 (url "https://github.com/jwiegley/springboard")
25930 (commit commit)))
25931 (file-name (git-file-name name version))
25932 (sha256
25933 (base32 "0fn8c4hqblfjvcpg68kj2dmdjqsdnxddqbzgvakl43zckjg8pi01"))))
25934 (build-system emacs-build-system)
25935 (propagated-inputs
25936 (list emacs-helm emacs-ivy))
25937 (home-page "https://github.com/jwiegley/springboard")
25938 (synopsis "Change the Emacs default directory quickly")
25939 (description
25940 "This Emacs package provides a quick way to change the default
25941 directory for only the next invoked command. The directory selection can be
25942 done using Helm, Ido or Ivy.")
25943 (license license:gpl2+))))
25944
25945 (define-public emacs-tco-el
25946 (let ((commit "482db5313f090b17ed22ccd856f0e141dc75afe6")
25947 (revision "1"))
25948 (package
25949 (name "emacs-tco-el")
25950 (version (git-version "0.3" revision commit))
25951 (source
25952 (origin
25953 (method git-fetch)
25954 (uri (git-reference
25955 (url "https://github.com/Wilfred/tco.el")
25956 (commit commit)))
25957 (file-name (git-file-name name version))
25958 (sha256
25959 (base32
25960 "1z7xkbrqznk6ni687qqknp8labcyhl8y6576hjfri89fn21385y9"))))
25961 (build-system emacs-build-system)
25962 (propagated-inputs
25963 (list emacs-dash))
25964 (native-inputs
25965 (list emacs-ert-runner emacs-undercover))
25966 (arguments
25967 `(#:tests? #t
25968 #:test-command '("ert-runner")))
25969 (home-page "https://github.com/Wilfred/tco.el")
25970 (synopsis "Tail-call optimization for Emacs Lisp")
25971 (description "This package provides tail-call optimization for Emacs
25972 Lisp functions that call themselves in tail position.")
25973 (license license:gpl3+))))
25974
25975 (define-public emacs-equake
25976 ;; Upstream provides no tagged releases, but the commit below matches an
25977 ;; exact release.
25978 (let ((commit "4d6ef75a4d91ded22caad220909518ccb67b7b87"))
25979 (package
25980 (name "emacs-equake")
25981 (version "0.985")
25982 (source
25983 (origin
25984 (method git-fetch)
25985 (uri (git-reference
25986 (url "https://gitlab.com/emacsomancer/equake")
25987 (commit commit)))
25988 (file-name (git-file-name name version))
25989 (sha256
25990 (base32 "11xfr71y78idcn461p4pz7b0k01nhz15cyl97bjqq6ii5xhbhvdx"))))
25991 (build-system emacs-build-system)
25992 (propagated-inputs
25993 (list emacs-dash))
25994 (home-page "https://gitlab.com/emacsomancer/equake/")
25995 (synopsis "Drop-down console for @code{Eshell} and terminal emulators")
25996 (description "This package provides a Quake-style drop-down console
25997 compatible with Emacs' shell modes.")
25998 (license license:gpl3+))))
25999
26000 (define-public emacs-vdiff
26001 ;; There is no proper tag, but the commit below matches the version bump.
26002 (let ((commit "007e44be19d068fd6b49874b6e9b8df8b1f552bd"))
26003 (package
26004 (name "emacs-vdiff")
26005 (version "0.2.4")
26006 (source
26007 (origin
26008 (method git-fetch)
26009 (uri (git-reference
26010 (url "https://github.com/justbur/emacs-vdiff")
26011 (commit commit)))
26012 (file-name (git-file-name name version))
26013 (sha256
26014 (base32 "197xrwph1llrzjgkhlvagiwdgfp68pb45w5afg89ndahpqc2725s"))))
26015 (build-system emacs-build-system)
26016 (propagated-inputs
26017 (list emacs-hydra))
26018 (arguments
26019 `(#:tests? #t
26020 #:test-command '("emacs" "-Q" "-batch" "-L" "."
26021 "-l" "vdiff-test.el"
26022 "-f" "ert-run-tests-batch-and-exit")))
26023 (home-page "https://github.com/justbur/emacs-vdiff/")
26024 (synopsis "Frontend for diffing based on vimdiff")
26025 (description
26026 "This package permits comparisons of two or three buffers based on diff
26027 output.")
26028 (license license:gpl3+))))
26029
26030 (define-public emacs-vdiff-magit
26031 ;; Need to use a more recent commit than the latest release version because
26032 ;; of Magit and Transient
26033 (let ((commit "b100d126c69e5c26a61ae05aa1778bcc4302b597")
26034 (version "0.3.2")
26035 (revision "8"))
26036 (package
26037 (name "emacs-vdiff-magit")
26038 (version (git-version version revision commit))
26039 (source
26040 (origin
26041 (method git-fetch)
26042 (uri (git-reference
26043 (url "https://github.com/justbur/emacs-vdiff-magit/")
26044 (commit commit)))
26045 (file-name (git-file-name name version))
26046 (sha256
26047 (base32
26048 "16cjmrzflf2i1w01973sl944xrfanakba8sb4dpwi79d92xp03xy"))))
26049 (build-system emacs-build-system)
26050 (propagated-inputs
26051 (list emacs-vdiff emacs-magit emacs-transient))
26052 (home-page "https://github.com/justbur/emacs-vdiff-magit/")
26053 (synopsis "Frontend for diffing based on vimdiff")
26054 (description "This package permits comparisons of two or three buffers
26055 based on diff output.")
26056 (license license:gpl3+))))
26057
26058 (define-public emacs-all-the-icons-dired
26059 (let ((commit "fc2dfa1e9eb8bf1c402a675e7089638d702a27a5")
26060 (version "1.0")
26061 (revision "2"))
26062 (package
26063 (name "emacs-all-the-icons-dired")
26064 (version (git-version version revision commit))
26065 (source
26066 (origin
26067 (method git-fetch)
26068 (uri (git-reference
26069 (url "https://github.com/jtbm37/all-the-icons-dired/")
26070 (commit commit)))
26071 (file-name (git-file-name name version))
26072 (sha256
26073 (base32
26074 "0zhyhz4lhx0d8wwh1xxxf7ck4s621fk9757ql2ypxbr4iqh7sjlp"))))
26075 (build-system emacs-build-system)
26076 (propagated-inputs
26077 (list emacs-all-the-icons))
26078 (home-page "https://github.com/jtbm37/all-the-icons-dired/")
26079 (synopsis "Show icons for each file in @code{dired-mode}")
26080 (description "This package allows icons from @file{all-the-icons.el} to
26081 be used in @code{dired-mode}.")
26082 (license license:gpl3+))))
26083
26084 (define-public emacs-all-the-icons-ibuffer
26085 (package
26086 (name "emacs-all-the-icons-ibuffer")
26087 (version "1.3.0")
26088 (source
26089 (origin
26090 (method git-fetch)
26091 (uri (git-reference
26092 (url "https://github.com/seagle0128/all-the-icons-ibuffer")
26093 (commit (string-append"v" version))))
26094 (file-name (git-file-name name version))
26095 (sha256
26096 (base32
26097 "1c1fkkwzxxa90fd5q5x6xlj48p8rhj4bs7h8wxx41w6wsggk2fm2"))))
26098 (build-system emacs-build-system)
26099 (propagated-inputs
26100 (list emacs-all-the-icons))
26101 (home-page "https://github.com/seagle0128/all-the-icons-ibuffer")
26102 (synopsis "Display icons for all buffers in ibuffer")
26103 (description
26104 "This package uses @code{emacs-all-the-icons} to display icons in Ibuffer
26105 buffers.")
26106 (license license:gpl3+)))
26107
26108 (define-public emacs-exwm-edit
26109 (let ((commit "e1291e311840f1049106fe98cec032a1c75efd2b")
26110 (version "0.0.1")
26111 (revision "3"))
26112 (package
26113 (name "emacs-exwm-edit")
26114 (version (git-version version revision commit))
26115 (source
26116 (origin
26117 (method git-fetch)
26118 (uri (git-reference
26119 (url "https://github.com/agzam/exwm-edit/")
26120 (commit commit)))
26121 (file-name (git-file-name name version))
26122 (sha256
26123 (base32
26124 "031cb8fvv5n30djr9lpl6vz3rl15zykfvjlgkjc8l33a3l5mw8j0"))))
26125 (build-system emacs-build-system)
26126 (propagated-inputs
26127 (list emacs-exwm))
26128 (home-page "https://github.com/agzam/exwm-edit/")
26129 (synopsis "Open temp buffers for editing text from EXWM buffers")
26130 (description "This package facilitates editing text from EXWM buffers by
26131 generating a temp buffer in which any useful Emacs utilities and modes can be
26132 invoked.")
26133 (license license:gpl3+))))
26134
26135 (define-public emacs-ert-async
26136 (package
26137 (name "emacs-ert-async")
26138 (version "0.1.2")
26139 (source
26140 (origin
26141 (method git-fetch)
26142 (uri (git-reference
26143 (url "https://github.com/rejeep/ert-async.el")
26144 (commit (string-append "v" version))))
26145 (file-name (git-file-name name version))
26146 (sha256
26147 (base32
26148 "0hn9i405nfhjd1h9vnwj43nxbbz00khrwkjq0acfyxjaz1shfac9"))))
26149 (build-system emacs-build-system)
26150 (home-page "https://github.com/rejeep/ert-async.el")
26151 (synopsis "Async support for ERT")
26152 (description "This package allows ERT to work with asynchronous tests.")
26153 (license license:gpl3+)))
26154
26155 (define-public emacs-prodigy-el
26156 (let ((commit "0a12eec1f001a4eef16b2c0c524f02f2647a4ff1")
26157 (revision "2"))
26158 (package
26159 (name "emacs-prodigy-el")
26160 (version (git-version "0.7.0" revision commit))
26161 (source
26162 (origin
26163 (method git-fetch)
26164 (uri (git-reference
26165 (url "https://github.com/rejeep/prodigy.el")
26166 (commit commit)))
26167 (file-name (git-file-name name version))
26168 (sha256
26169 (base32
26170 "02kysq57kqzg0zkhaf302ada9cp9spgp71z8vbdq4c7dl6x75h4g"))))
26171 (build-system emacs-build-system)
26172 (propagated-inputs
26173 (list emacs-dash emacs-s emacs-f))
26174 (native-inputs
26175 (list emacs-el-mock emacs-ert-async))
26176 (home-page "https://github.com/rejeep/prodigy.el")
26177 (synopsis "Manage external services from within Emacs")
26178 (description "This package provides a GUI for defining and monitoring services.")
26179 (license license:gpl3+))))
26180
26181 (define-public emacs-web-server
26182 (package
26183 (name "emacs-web-server")
26184 (version "0.1.2")
26185 (source
26186 (origin
26187 (method url-fetch)
26188 (uri (string-append "https://elpa.gnu.org/packages/"
26189 "web-server-" version ".tar"))
26190 (sha256
26191 (base32 "10lcsl4dg2yr9zjd99gq9jz150wvvh6r5y9pd88l8y9vz16f2lim"))))
26192 (build-system emacs-build-system)
26193 (home-page "https://github.com/eschulte/emacs-web-server/")
26194 (synopsis "Web server with handlers in Emacs Lisp")
26195 (description "This package supports HTTP GET and POST requests with
26196 url-encoded parameters, as well as web sockets.")
26197 (license license:gpl3+)))
26198
26199 (define-public emacs-markdown-preview-mode
26200 (package
26201 (name "emacs-markdown-preview-mode")
26202 (version "0.9.4")
26203 (source
26204 (origin
26205 (method git-fetch)
26206 (uri (git-reference
26207 (url "https://github.com/ancane/markdown-preview-mode")
26208 (commit (string-append "v" version))))
26209 (file-name (git-file-name name version))
26210 (sha256
26211 (base32
26212 "0a0qskhy6jil583hq3mgbzdsi3m1schzyzrd46yfxdsvqiczg170"))))
26213 (build-system emacs-build-system)
26214 (propagated-inputs
26215 (list emacs-markdown-mode emacs-websocket emacs-web-server))
26216 (arguments '(#:include '("\\.el$" "\\.html$")))
26217 (home-page "https://github.com/ancane/markdown-preview-mode")
26218 (synopsis "Preview Markdown files")
26219 (description "This package provides a minor mode for preview of Markdown
26220 files, and sends rendered Markdown to a web browser.")
26221 (license license:gpl3+)))
26222
26223 (define-public emacs-dotenv-mode
26224 (package
26225 (name "emacs-dotenv-mode")
26226 (version "0.2.5")
26227 (source
26228 (origin
26229 (method git-fetch)
26230 (uri (git-reference
26231 (url "https://github.com/preetpalS/emacs-dotenv-mode")
26232 (commit (string-append "v" version))))
26233 (file-name (git-file-name name version))
26234 (sha256
26235 (base32
26236 "0ys1czramj3c8zbnxxc599bqc0nqp3nnn3n45ac9cjglx5iaydq3"))))
26237 (build-system emacs-build-system)
26238 (home-page "https://github.com/preetpalS/emacs-dotenv-mode")
26239 (synopsis "Major mode for @file{.env} files")
26240 (description "This package provides syntax highlighting for @file{.env}
26241 files.")
26242 (license license:gpl3+)))
26243
26244 (define-public emacs-add-node-modules-path
26245 (package
26246 (name "emacs-add-node-modules-path")
26247 (version "1.3.1")
26248 (source
26249 (origin
26250 (method git-fetch)
26251 (uri (git-reference
26252 (url "https://github.com/codesuki/add-node-modules-path")
26253 (commit version)))
26254 (file-name (git-file-name name version))
26255 (sha256
26256 (base32
26257 "09vf921dh6lawh14rk02gjsvz88x9vd1c68ilf2fzkap5dh61dy5"))))
26258 (build-system emacs-build-system)
26259 (propagated-inputs (list emacs-s))
26260 (home-page "https://github.com/codesuki/add-node-modules-path")
26261 (synopsis "Add @file{node_modules} to the buffer-local @file{exec-path}")
26262 (description "This package searches the parent directories of the
26263 current file for the project's @file{node_modules/.bin/} directory, allowing
26264 Emacs to find project-specific installations of packages.")
26265 (license license:expat)))
26266
26267 (define-public emacs-flow-minor-mode
26268 (let ((commit "d1b32a7dd0d33c6a00a106da5f4b2323602cbd3e")
26269 (version "0.3")
26270 (revision "4"))
26271 (package
26272 (name "emacs-flow-minor-mode")
26273 (version (git-version version revision commit))
26274 (source
26275 (origin
26276 (method git-fetch)
26277 (uri (git-reference
26278 (url "https://github.com/an-sh/flow-minor-mode")
26279 (commit commit)))
26280 (file-name (git-file-name name version))
26281 (sha256
26282 (base32
26283 "169r4ib9qg9q6fm3p0p23qs1qx4pa9pg1qvyq4ysr85i7kwygppl"))))
26284 (build-system emacs-build-system)
26285 (home-page "https://github.com/an-sh/flow-minor-mode")
26286 (synopsis "Minor mode for JavaScript Flow files")
26287 (description "This package integrates Flow with Emacs, allowing for
26288 definition-jumping and type-checking on demand.")
26289 (license license:bsd-3))))
26290
26291 (define-public emacs-rjsx-mode
26292 (package
26293 (name "emacs-rjsx-mode")
26294 (version "0.5.0")
26295 (source
26296 (origin
26297 (method git-fetch)
26298 (uri (git-reference
26299 (url "https://github.com/felipeochoa/rjsx-mode")
26300 (commit (string-append "v" version))))
26301 (file-name (git-file-name name version))
26302 (sha256
26303 (base32
26304 "08b4hdgq4hc1yfd9pvyir2j3cqqdqa3j5svgaba97x5fzhsz7y8i"))))
26305 (build-system emacs-build-system)
26306 (propagated-inputs
26307 (list emacs-js2-mode))
26308 (arguments
26309 `(#:tests? #t
26310 #:test-command '("make" "test")))
26311 (home-page "https://github.com/felipeochoa/rjsx-mode")
26312 (synopsis "Major mode for JSX files")
26313 (description "This package extends the parser of @code{js2-mode} to
26314 support JSX syntax.")
26315 (license license:expat)))
26316
26317 (define-public emacs-origami-el
26318 (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366")
26319 (version "1.0")
26320 (revision "1"))
26321 (package
26322 (name "emacs-origami-el")
26323 (version (git-version version revision commit))
26324 (source
26325 (origin
26326 (method git-fetch)
26327 (uri (git-reference
26328 (url "https://github.com/gregsexton/origami.el")
26329 (commit commit)))
26330 (file-name (git-file-name name version))
26331 (sha256
26332 (base32
26333 "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x"))))
26334 (build-system emacs-build-system)
26335 (propagated-inputs
26336 (list emacs-dash emacs-s))
26337 (home-page "https://github.com/gregsexton/origami.el")
26338 (synopsis "Flexible text-folding")
26339 (description "This package provides a minor mode for collapsing and
26340 expanding regions of text without modifying the actual contents.")
26341 (license license:expat))))
26342
26343 (define-public emacs-peep-dired
26344 (let ((commit "c88a9a3050197840edfe145f11e0bb9488de32f4")
26345 (version "0")
26346 (revision "1"))
26347 (package
26348 (name "emacs-peep-dired")
26349 (version (git-version version revision commit))
26350 (source
26351 (origin
26352 (method git-fetch)
26353 (uri (git-reference
26354 (url "https://github.com/asok/peep-dired")
26355 (commit commit)))
26356 (file-name (git-file-name name version))
26357 (sha256
26358 (base32
26359 "1wy5qpnfri1gha2cnl6q20qar8dbl2mimpb43bnhmm2g3wgjyad6"))))
26360 (build-system emacs-build-system)
26361 (home-page "https://github.com/asok/peep-dired")
26362 (synopsis "Preview files in another window")
26363 (description "This package provides a minor mode that allows files to be
26364 previewed by scrolling up and down within a @code{dired} buffer.")
26365 (license license:gpl3+))))
26366
26367 (define-public emacs-counsel-etags
26368 (package
26369 (name "emacs-counsel-etags")
26370 (version "1.10.1")
26371 (source
26372 (origin
26373 (method git-fetch)
26374 (uri (git-reference
26375 (url "https://github.com/redguardtoo/counsel-etags")
26376 (commit version)))
26377 (file-name (git-file-name name version))
26378 (sha256
26379 (base32 "1v77lpp0nij1rjg2k9wj42kqk7xqg1dzs9vmadha6f2j8j6375m8"))))
26380 (build-system emacs-build-system)
26381 (propagated-inputs
26382 (list emacs-counsel))
26383 (arguments
26384 `(#:tests? #f ;require internet access
26385 #:test-command '("make test")))
26386 (home-page "https://github.com/redguardtoo/counsel-etags")
26387 (synopsis "Fast @code{Ctags}/@code{Etags} solution with @code{ivy-mode}")
26388 (description "This package uses @code{ivy-mode} to facilitate navigating
26389 and searching through @code{Ctags} files.")
26390 (license license:gpl3+)))
26391
26392 (define-public emacs-ivy-clipmenu
26393 (let ((commit "d2071f2c5043a05d610cd1952e84176ca78c31dc"))
26394 (package
26395 (name "emacs-ivy-clipmenu")
26396 (version (git-version "0.0.1" "1" commit))
26397 (source (origin
26398 (method git-fetch)
26399 (uri (git-reference
26400 (url "https://github.com/wpcarro/ivy-clipmenu.el")
26401 (commit commit)))
26402 (file-name (git-file-name name version))
26403 (sha256
26404 (base32
26405 "0npd8glzk5z4n7y9mzbsbzi0cf3by19fqcki052jr3dga363lds7"))))
26406 (propagated-inputs
26407 (list emacs-f emacs-ivy))
26408 (build-system emacs-build-system)
26409 (home-page "https://github.com/wpcarro/ivy-clipmenu.el")
26410 (synopsis "Ivy integration with clipmenu")
26411 (description "Ivy integration with the clipboard manager, clipmenu.")
26412 (license license:expat))))
26413
26414 (define-public emacs-org-download
26415 (let ((commit "42ac361ef5502017e6fc1bceb00333eba90402f4")
26416 (revision "3"))
26417 (package
26418 (name "emacs-org-download")
26419 (version (git-version "0.1.0" revision commit))
26420 (source (origin
26421 (method git-fetch)
26422 (uri (git-reference
26423 (url "https://github.com/abo-abo/org-download")
26424 (commit commit)))
26425 (file-name (git-file-name name version))
26426 (sha256
26427 (base32 "0cg4y7hy7xbq4vrbdicfzgvyaf3cjbx2zkqd4yl0y2garz71j99l"))))
26428 (build-system emacs-build-system)
26429 (propagated-inputs
26430 (list emacs-org emacs-async))
26431 (home-page "https://github.com/abo-abo/org-download")
26432 (synopsis "Facilitate moving images")
26433 (description "This package provides utilities for managing image files
26434 copied into @code{org-mode} buffers.")
26435 (license license:gpl3+))))
26436
26437 (define-public emacs-org-drill-table
26438 ;; No releases or tags.
26439 (let ((commit "096387d929bcf3eb479e0a9d5da9cf32c756a759")
26440 (revision "0"))
26441 (package
26442 (name "emacs-org-drill-table")
26443 (version (git-version "0.1" revision commit))
26444 (source
26445 (origin
26446 (method git-fetch)
26447 (uri (git-reference
26448 (url "https://github.com/chrisbarrett/org-drill-table.git")
26449 (commit commit)))
26450 (file-name (git-file-name name version))
26451 (sha256
26452 (base32 "1a8ygrcag8i9hdpy2vsn0sh8lwhl9b56rv91j3rddy1jv5qx1ipb"))))
26453 (build-system emacs-build-system)
26454 (propagated-inputs
26455 (list emacs-dash emacs-org emacs-s))
26456 (home-page "https://github.com/chrisbarrett/org-drill-table")
26457 (synopsis "Generate Org drill cards using Org mode tables")
26458 (description
26459 "This package generates drill cards based on an Org mode table in the
26460 current subtree. The cards are inserted under a new ``Cards'' heading in the
26461 current tree.")
26462 (license license:gpl3+))))
26463
26464 (define-public emacs-dash-docs
26465 (let ((commit "dafc8fc9f1ddb2e4e39e0b8d066c42d5d7ce8d06")
26466 (revision "2"))
26467 (package
26468 (name "emacs-dash-docs")
26469 (version (git-version "1.4.0" revision commit))
26470 (source
26471 (origin
26472 (method git-fetch)
26473 (uri (git-reference
26474 (url "https://github.com/dash-docs-el/dash-docs")
26475 (commit commit)))
26476 (file-name (git-file-name name version))
26477 (sha256
26478 (base32
26479 "0n6d3mm43gj16v8kjjradcfik93wb89dsqnfcbskb28bvcamafid"))))
26480 (build-system emacs-build-system)
26481 (propagated-inputs
26482 (list emacs-async))
26483 (native-inputs
26484 (list emacs-undercover emacs-ert-runner))
26485 (arguments
26486 `(#:tests? #t
26487 #:test-command '("ert-runner")
26488 #:phases
26489 ;; this test requires network access, so remove it
26490 (modify-phases %standard-phases
26491 (add-before 'check 'make-tests-writable
26492 (lambda _
26493 (make-file-writable "test/dash-docs-test.el")
26494 #t))
26495 (add-before 'check 'delete-test
26496 (lambda _
26497 (emacs-batch-edit-file "test/dash-docs-test.el"
26498 `(progn (progn
26499 (goto-char (point-min))
26500 (re-search-forward "ert-deftest dash-docs-official-docsets-test")
26501 (beginning-of-line)
26502 (kill-sexp))
26503 (basic-save-buffer)))
26504 #t)))))
26505 (home-page "https://github.com/dash-docs-el/dash-docs")
26506 (synopsis "Offline documentation browser for APIs using Dash docsets")
26507 (description "This package exposes functionality to work with Dash docsets.")
26508 (license license:gpl3+))))
26509
26510 (define-public emacs-helm-dash
26511 (let ((commit "7f853bd34da666f0e9a883011c80f451b06f6c59")
26512 (revision "2"))
26513 (package
26514 (name "emacs-helm-dash")
26515 (version (git-version "1.3.0" revision commit))
26516 (source
26517 (origin
26518 (method git-fetch)
26519 (uri (git-reference
26520 (url "https://github.com/areina/helm-dash")
26521 (commit commit)))
26522 (file-name (git-file-name name version))
26523 (sha256
26524 (base32
26525 "0r192vzry1212ihabg9pgw9xar8zdgnbgy0vsgvfm8s5wj6ny7jp"))))
26526 (build-system emacs-build-system)
26527 (propagated-inputs
26528 (list emacs-helm emacs-dash-docs))
26529 (home-page "https://github.com/areina/helm-dash")
26530 (synopsis "Offline documentation browser for APIs using Dash docsets")
26531 (description "This package uses Helm to install and navigate through
26532 Dash docsets.")
26533 (license license:gpl3+))))
26534
26535 (define-public emacs-counsel-dash
26536 (let ((commit "370d5f6f14b5294d0eb717f7b2a6a8e93df1ed24")
26537 (revision "4"))
26538 (package
26539 (name "emacs-counsel-dash")
26540 (version (git-version "0.1.3" revision commit))
26541 (source
26542 (origin
26543 (method git-fetch)
26544 (uri (git-reference
26545 (url "https://github.com/dash-docs-el/counsel-dash")
26546 (commit commit)))
26547 (file-name (git-file-name name version))
26548 (sha256
26549 (base32 "1fn38vbz46ijarjvhgw7iy7dj9s2a2miy95fyy9f8b5sj8nrdfvz"))))
26550 (build-system emacs-build-system)
26551 (propagated-inputs
26552 (list emacs-counsel emacs-dash-docs))
26553 (home-page "https://github.com/dash-docs-el/counsel-dash")
26554 (synopsis "Offline documentation browser for APIs using Dash docsets")
26555 (description "This package uses @code{ivy-mode} to install and navigate
26556 through Dash docsets.")
26557 (license license:expat))))
26558
26559 (define-public emacs-devdocs
26560 (package
26561 (name "emacs-devdocs")
26562 (version "0.4")
26563 (source
26564 (origin
26565 (method url-fetch)
26566 (uri (string-append
26567 "https://elpa.gnu.org/packages/"
26568 "devdocs-" version ".tar"))
26569 (sha256
26570 (base32 "05xmxqpp1cpf03y7idpqdsmbj30cissscy80ng5hqc3028kr2jqm"))))
26571 (build-system emacs-build-system)
26572 (home-page "https://github.com/astoff/devdocs.el")
26573 (synopsis "Emacs viewer for DevDocs")
26574 (description
26575 "This package provides a documentation viewer similar to Emacs's
26576 built-in Info browser, but geared towards documentation obtained from
26577 @url{https://devdocs.io}.")
26578 (license license:gpl3+)))
26579
26580 (define-public emacs-cascading-dir-locals
26581 (let ((release "0.1")
26582 (revision "0")
26583 (commit "efdf5e6d62b955ee0ca3c170eae1d388799f9fa0"))
26584 (package
26585 (name "emacs-cascading-dir-locals")
26586 (version (git-version release revision commit))
26587 (home-page "https://github.com/fritzgrabo/cascading-dir-locals")
26588 (source
26589 (origin
26590 (method git-fetch)
26591 (uri (git-reference
26592 (url home-page)
26593 (commit commit)))
26594 (file-name (git-file-name name version))
26595 (sha256
26596 (base32 "1jwd99kk5l588n7wwi1x3b4bgimm66x1icna3n20pwaj49kf0zy8"))))
26597 (build-system emacs-build-system)
26598 (synopsis "Apply all @file{.dir-locals.el} from root to current directory")
26599 (description
26600 "This package provides a global minor mode that changes how Emacs
26601 handles the lookup of applicable dir-locals files (@file{.dir-locals.el}):
26602 instead of starting at the directory of the visited file and moving up the
26603 directory tree only until a first dir-locals file is found, collect and apply
26604 all (!) dir-locals files found from the current directory up to the root one.
26605
26606 Values specified in files nearer to the current directory take precedence over
26607 values in files farther away from it.
26608
26609 You might want to use this to globally set dir-local variables that apply to
26610 all of your projects, then override or add variables on a per-project basis.")
26611 (license license:gpl3+))))
26612
26613 (define-public emacs-calibredb
26614 (package
26615 (name "emacs-calibredb")
26616 (version "2.12.0")
26617 (source
26618 (origin
26619 (method git-fetch)
26620 (uri (git-reference
26621 (url "https://github.com/chenyanming/calibredb.el")
26622 (commit version)))
26623 (file-name (git-file-name name version))
26624 (sha256
26625 (base32 "1l30s3wv21mpybbxni5fziq2awai9k60i87s6fid56hg262r7jp0"))))
26626 (build-system emacs-build-system)
26627 (arguments
26628 (list
26629 #:phases
26630 #~(modify-phases %standard-phases
26631 (add-after 'unpack 'patch-paths
26632 (lambda* (#:key inputs #:allow-other-keys)
26633 (make-file-writable "calibredb-core.el")
26634 (let ((calibredb (search-input-file inputs "/bin/calibredb"))
26635 (fetch-ebook-metadata
26636 (search-input-file inputs "/bin/fetch-ebook-metadata")))
26637 (emacs-substitute-variables "calibredb-core.el"
26638 ("calibredb-fetch-metadata-program" fetch-ebook-metadata)
26639 ("calibredb-program" calibredb))))))))
26640 (inputs
26641 (list calibre))
26642 (propagated-inputs
26643 (list emacs-dash emacs-esxml emacs-s emacs-transient))
26644 (home-page "https://github.com/chenyanming/calibredb.el")
26645 (synopsis "Yet another calibre client for Emacs")
26646 (description "This package integrates calibre into Emacs.
26647 @enumerate
26648 @item Powerful ebook dashboard.
26649 @item Manage ebooks, actually not only ebooks!
26650 @item Manage Ebook libraries.
26651 @item Another bookmarks solution, by setting the tags and comments.
26652 @item Quick search, filter, make actions on items with ivy and helm.
26653 @item Org-ref support.
26654 @end enumerate")
26655 (license license:gpl3)))
26656
26657 (define-public emacs-el-patch
26658 (package
26659 (name "emacs-el-patch")
26660 (version "3.0")
26661 (source
26662 (origin
26663 (method git-fetch)
26664 (uri (git-reference
26665 (url "https://github.com/raxod502/el-patch")
26666 (commit version)))
26667 (file-name (git-file-name name version))
26668 (sha256
26669 (base32 "0qkx7f19kl85n56bp3q40200a6ynpkhimcnb3k6x4n6idn6ff2pa"))))
26670 (build-system emacs-build-system)
26671 (home-page "https://github.com/raxod502/el-patch")
26672 (synopsis "Future-proof your Emacs customizations")
26673 (description "This package allows for an alternate definition of an Elisp
26674 function to be specified and for any differences from the original definition
26675 to be examined using Ediff.")
26676 (license license:expat)))
26677
26678 (define-public emacs-info-plus
26679 (let ((commit "29811edf7a71764ac343631facc00268d9483146")
26680 (revision "3"))
26681 (package
26682 (name "emacs-info-plus")
26683 (version (git-version "0" revision commit))
26684 (source
26685 (origin
26686 (method git-fetch)
26687 (uri (git-reference
26688 (url "https://github.com/emacsmirror/info-plus")
26689 (commit commit)))
26690 (file-name (git-file-name name version))
26691 (sha256
26692 (base32
26693 "0ayq7z6dbf43vczbkjm1l976hxcfrmw45nfywbf1kjpzl3viy4gy"))))
26694 (build-system emacs-build-system)
26695 (home-page "https://github.com/emacsmirror/info-plus")
26696 (synopsis "Extensions to @file{info.el}")
26697 (description "This package extends Emacs' @file{info.el} by allowing
26698 outline-enabled table of contents, additional metadata association for Info
26699 nodes, and more.")
26700 (license license:gpl2+))))
26701
26702 (define-public emacs-eval-sexp-fu-el
26703 (package
26704 (name "emacs-eval-sexp-fu-el")
26705 (version "0.6.0")
26706 (source
26707 (origin
26708 (method git-fetch)
26709 (uri (git-reference
26710 (url "https://github.com/hchbaw/eval-sexp-fu.el")
26711 (commit (string-append "v" version))))
26712 (file-name (git-file-name name version))
26713 (sha256
26714 (base32
26715 "19rv0kwajq0j8inglp84sml23ci74wdcvp5bl6zxbw5skqpf6phr"))))
26716 (build-system emacs-build-system)
26717 (home-page "https://github.com/hchbaw/eval-sexp-fu.el")
26718 (synopsis "Enhancements for evaluating s-expressions")
26719 (description "This package provides provides variants of
26720 @code{eval-last-sexp} that work on the containing list or s-expression, as
26721 well as an option for visually flashing evaluated s-expressions.")
26722 (license license:gpl3+)))
26723
26724 (define-public emacs-counsel-tramp
26725 (package
26726 (name "emacs-counsel-tramp")
26727 (version "0.7.5")
26728 (source
26729 (origin
26730 (method git-fetch)
26731 (uri (git-reference
26732 (url "https://github.com/masasam/emacs-counsel-tramp")
26733 (commit version)))
26734 (file-name (git-file-name name version))
26735 (sha256
26736 (base32 "18qlwyjqxap2qfbz14ma6yqp4p3v4q2y8idc355s4szjdd2as2lr"))))
26737 (build-system emacs-build-system)
26738 (propagated-inputs
26739 (list emacs-counsel))
26740 (home-page "https://github.com/masasam/emacs-counsel-tramp")
26741 (synopsis "Ivy interface for TRAMP")
26742 (description
26743 "This package allows @code{ivy-mode} to display and filter SSH servers.")
26744 (license license:gpl3+)))
26745
26746 (define-public emacs-tramp
26747 (package
26748 (name "emacs-tramp")
26749 (version "2.5.3")
26750 (source
26751 (origin
26752 (method url-fetch)
26753 (uri (string-append "https://elpa.gnu.org/packages/"
26754 "tramp-" version ".tar"))
26755 (sha256
26756 (base32 "16bs90h7b1d188v6glhfp0y4wgxvwn3dl6l4sbswlf1zq3y61zy7"))))
26757 (build-system emacs-build-system)
26758 (arguments
26759 (list
26760 #:emacs emacs ;need D-Bus
26761 #:phases
26762 #~(modify-phases %standard-phases
26763 ;; All but one "/bin/" directory refer to remote
26764 ;; environments, which may not be Guix. Do not patch them
26765 ;; blindly. However, local encoding shell has to be patched.
26766 (replace 'patch-el-files
26767 (lambda* (#:key inputs #:allow-other-keys)
26768 (emacs-substitute-variables "tramp.el"
26769 ("tramp-encoding-shell"
26770 (search-input-file inputs "/bin/sh"))))))))
26771 (inputs
26772 (list bash))
26773 (home-page "https://savannah.gnu.org/projects/tramp")
26774 (synopsis "Remote file editing package for Emacs")
26775 (description
26776 "Tramp stands for ``Transparent Remote (file) Access, Multiple
26777 Protocol''. This package provides remote file editing, using
26778 a combination of @command{rsh} and @command{rcp} or other work-alike
26779 programs, such as @command{ssh} and @command{scp}.")
26780 (license license:gpl3+)))
26781
26782 (define-public emacs-tramp-auto-auth
26783 (let ((commit "f15a12dfab651aff60f4a9d70f868030a12344ac"))
26784 (package
26785 (name "emacs-tramp-auto-auth")
26786 (version (git-version "20191027" "1" commit))
26787 (source
26788 (origin
26789 (method git-fetch)
26790 (uri (git-reference
26791 (url "https://github.com/oitofelix/tramp-auto-auth")
26792 (commit commit)))
26793 (file-name (git-file-name name version))
26794 (sha256
26795 (base32
26796 "09nkjgwppjfgv04q0gv468qihgx4y3p39lpwbd6vbh3wgbccas9k"))))
26797 (build-system emacs-build-system)
26798 (home-page "https://github.com/oitofelix/tramp-auto-auth")
26799 (synopsis "TRAMP automatic authentication library")
26800 (description "This package provides @code{tramp-auto-auth-mode} Emacs
26801 global minor mode whose purpose is to automatically feed TRAMP sub-processes
26802 with passwords for paths matching regexps.")
26803 (license license:gpl3+))))
26804
26805 (define-public emacs-eacl
26806 (package
26807 (name "emacs-eacl")
26808 (version "2.2.0")
26809 (source
26810 (origin
26811 (method git-fetch)
26812 (uri (git-reference
26813 (url "https://github.com/redguardtoo/eacl")
26814 (commit version)))
26815 (file-name (git-file-name name version))
26816 (sha256
26817 (base32 "1d2krw9x1mw6jn1q07nbq2qi92fms85q3i9wa2q5drs3368l55vr"))))
26818 (build-system emacs-build-system)
26819 (propagated-inputs
26820 (list emacs-ivy))
26821 (home-page "https://github.com/redguardtoo/eacl")
26822 (synopsis "Auto-complete lines by using @code{grep} on a project")
26823 (description "This package provides auto-completion commands for single
26824 and multiple lines of code in a project.")
26825 (license license:gpl3+)))
26826
26827 (define-public emacs-semantic-refactor
26828 ;; The last release, 0.5, was made on 2015-07-26 and there have been 47
26829 ;; commits since then.
26830 (let ((commit "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5"))
26831 (package
26832 (name "emacs-semantic-refactor")
26833 (version (git-version "0.5" "1" commit))
26834 (source
26835 (origin
26836 (method git-fetch)
26837 (uri (git-reference
26838 (url "https://github.com/tuhdo/semantic-refactor")
26839 (commit commit)))
26840 (file-name (git-file-name name version))
26841 (sha256
26842 (base32
26843 "1lyz3zjkx2csh0xdy1zpx8s32qp1p3sig57mwi9xhgpqjyf0axmb"))))
26844 (build-system emacs-build-system)
26845 (home-page "https://github.com/tuhdo/semantic-refactor")
26846 (synopsis "Refactoring tool for C/C++ and Lisp dialects")
26847 (description "This package provides a refactoring tool based on the
26848 Emacs Semantic parser framework. For C and C++ it supports operations such as:
26849
26850 @enumerate
26851 @item Generating class implementations
26852 @item Generating function prototypes
26853 @item Converting functions to function pointers
26854 @item Moving semantic units
26855 @item etc...
26856 @end enumerate
26857
26858 For Lisp dialects like Clojure, ELisp, and Scheme, it supports operations such
26859 as:
26860
26861 @enumerate
26862 @item Formatting the whole buffer
26863 @item Converting sexpressions to one or multiple lines
26864 @item etc...
26865 @end enumerate\n")
26866 (license license:gpl3+))))
26867
26868 (define-public emacs-nhexl-mode
26869 (package
26870 (name "emacs-nhexl-mode")
26871 (version "1.5")
26872 (source
26873 (origin
26874 (method url-fetch)
26875 (uri (string-append "https://elpa.gnu.org/packages/"
26876 "nhexl-mode-" version ".el"))
26877 (sha256
26878 (base32 "0qvxfg7sv4iqyjxzaim6b4v9k5hav36qd4vkf9jwzw6p5fri8w8d"))))
26879 (build-system emacs-build-system)
26880 (home-page "https://elpa.gnu.org/packages/nhexl-mode.html")
26881 (synopsis "Minor mode to edit files via hex-dump format")
26882 (description
26883 "This package implements NHexl mode, a minor mode for editing files
26884 in hex dump format. The mode command is called @command{nhexl-mode}.
26885
26886 This minor mode implements similar functionality to @command{hexl-mode},
26887 but using a different implementation technique, which makes it
26888 usable as a \"plain\" minor mode. It works on any buffer, and does
26889 not mess with the undo log or with the major mode.
26890
26891 It also comes with:
26892
26893 @itemize
26894 @item @command{nhexl-nibble-edit-mode}: a \"nibble editor\" minor mode, where
26895 the cursor pretends to advance by nibbles (4-bit) and the self-insertion keys
26896 (which only work for hex-digits) will only modify the nibble under point.
26897 @item @command{nhexl-overwrite-only-mode}: a minor mode to try and avoid
26898 moving text. In this minor mode, not only self-inserting keys overwrite
26899 existing text, but commands like `yank' and @command{kill-region} as well.
26900 @item It overrides @code{C-u} to use hexadecimal, so you can do @code{C-u a 4
26901 C-f} to advance by #xa4 characters.
26902 @end itemize")
26903 (license license:gpl3+)))
26904
26905 (define-public emacs-helm-wikipedia
26906 (let ((commit "126f044e0a0e1432e0791c33ce2a41875d704a9b"))
26907 (package
26908 (name "emacs-helm-wikipedia")
26909 (version (git-version "0.0.0" "1" commit))
26910 (home-page "https://github.com/emacs-helm/helm-wikipedia/")
26911 (source
26912 (origin
26913 (method git-fetch)
26914 (uri (git-reference
26915 (url home-page)
26916 (commit commit)))
26917 (file-name (git-file-name name version))
26918 (sha256
26919 (base32
26920 "148a5xsnbsiddhf9cl7yxdk41lrv38h0pip91kcflw9d7l0dp7pr"))))
26921 (build-system emacs-build-system)
26922 (inputs
26923 (list emacs-helm))
26924 (synopsis "Search suggestions and article extracts from Wikipedia for Emacs")
26925 (description
26926 "This package provides an Emacs Helm interface for search suggestions
26927 and article extracts for Wikipedia.")
26928 (license license:gpl3+))))
26929
26930 (define-public emacs-webfeeder
26931 (package
26932 (name "emacs-webfeeder")
26933 (version "1.1.2")
26934 (source
26935 (origin
26936 (method url-fetch)
26937 (uri (string-append
26938 "https://elpa.gnu.org/packages/webfeeder-"
26939 version
26940 ".tar"))
26941 (sha256
26942 (base32
26943 "1l128q424qsq9jv2wk8cv4zli71rk34q5kgwa9axdz0d27p9l6v4"))))
26944 (build-system emacs-build-system)
26945 (home-page "https://gitlab.com/Ambrevar/emacs-webfeeder")
26946 (synopsis "Build RSS and Atom webfeeds from HTML files")
26947 (description
26948 "Webfeeder is an Emacs library to generate RSS and Atom feeds from HTML
26949 files. The various elements of the HTML input are parsed with customizable
26950 functions (e.g. @code{webfeeder-title-function}).")
26951 (license license:gpl3+)))
26952
26953 (define-public emacs-evil-numbers
26954 (let ((commit "6ea1c8c3a9b37bed63d48f1128e9a4910e68187e"))
26955 (package
26956 (name "emacs-evil-numbers")
26957 (version (git-version "0.4" "1" commit))
26958 (source (origin
26959 (method git-fetch)
26960 (uri (git-reference
26961 (url "https://github.com/dieggsy/evil-numbers")
26962 (commit commit)))
26963 (file-name (git-file-name name version))
26964 (sha256
26965 (base32
26966 "1aq95hj8x13py0pwsnc6wvd8cc5yv5qin8ym9js42y5966vwj4np"))))
26967 (build-system emacs-build-system)
26968 (home-page "https://github.com/dieggsy/evil-numbers")
26969 (synopsis "Increment and decrement numbers in Emacs")
26970 (description "This package increments and decrements binary, octal,
26971 decimal and hex literals. It works like C-a/C-x in Vim, i.e. searches for
26972 number up to EOL and then increments or decrements and keeps zero padding up
26973 (unlike in Vim). When a region is active, as in Evil's visual mode, all the
26974 numbers within that region will be incremented/decremented (unlike in Vim).
26975
26976 It is a fork of https://github.com/cofi/evil-numbers, which is unmaintained.")
26977 (license license:gpl3+))))
26978
26979 (define-public emacs-rotate-text
26980 (package
26981 (name "emacs-rotate-text")
26982 (version "0.1")
26983 (source (origin
26984 (method git-fetch)
26985 (uri (git-reference
26986 (url "https://github.com/nschum/rotate-text.el")
26987 (commit version)))
26988 (file-name (git-file-name name version))
26989 (sha256
26990 (base32
26991 "1cgxv4aibkvv6lnssynn0438a615fz3zq8hg9sb0lhfgsr99pxln"))))
26992 (build-system emacs-build-system)
26993 (home-page "https://nschum.de/src/emacs/rotate-text/")
26994 (synopsis "Cycle through words, symbols and patterns in Emacs")
26995 (description "@code{rotate-text} allows you rotate to commonly
26996 interchanged text with a single keystroke. For example, you can toggle
26997 between \"frame-width\" and \"frame-height\", between \"public\",
26998 \"protected\" and \"private\" and between \"variable1\", \"variable2\" through
26999 \"variableN\".")
27000 (license license:gpl2+)))
27001
27002 (define-public emacs-ediprolog
27003 (package
27004 (name "emacs-ediprolog")
27005 (version "2.1")
27006 (source
27007 (origin
27008 (method url-fetch)
27009 (uri (string-append
27010 "https://elpa.gnu.org/packages/ediprolog-"
27011 version
27012 ".el"))
27013 (sha256
27014 (base32 "1piimsmzpirw8plrpy79xbpnvynzzhcxi31g6lg6is8gridiv3md"))))
27015 (build-system emacs-build-system)
27016 (home-page "https://elpa.gnu.org/packages/ediprolog.html")
27017 (synopsis "Emacs Does Interactive Prolog")
27018 (description "This package provides a major mode that let the user
27019 interact with SWI-Prolog in all buffers. For instance, one can consult Prolog
27020 programs and evaluate embedded queries. This mode is focused on the command
27021 @code{ediprolog-dwim} (Do What I Mean) which is supposed to, depending on the
27022 context, carry out the appropriate action.")
27023 (license license:gpl3+)))
27024
27025 (define-public emacs-evil-cleverparens
27026 (let ((commit "8c45879d49bfa6d4e414b6c1df700a4a51cbb869")
27027 (revision "1"))
27028 (package
27029 (name "emacs-evil-cleverparens")
27030 (version (git-version "2017-07-17" revision commit))
27031 (source (origin
27032 (method git-fetch)
27033 (uri (git-reference
27034 (url "https://github.com/luxbock/evil-cleverparens")
27035 (commit commit)))
27036 (sha256 (base32 "0lhnybpnk4n2yhlcnj9zxn0vi5hpjfaqfhvyfy7ckzz74g8v7iyw"))
27037 (file-name (git-file-name name version))))
27038 (build-system emacs-build-system)
27039 (propagated-inputs
27040 (list emacs-evil emacs-paredit emacs-smartparens))
27041 (home-page "https://github.com/luxbock/evil-cleverparens")
27042 (synopsis "Emacs modal editing optimized for editing Lisp")
27043 (description "@code{evil-cleverparens} remaps Evil keybindings to allow
27044 modal editing with screwing up the structure of Lisp code. Alternatives for
27045 verb commands which would are normally destructive (such as deletion) are
27046 provided. Those alternative commands are and bound by default to their
27047 corresponding Evil keys.")
27048 (license license:expat))))
27049
27050 (define-public emacs-ntlm
27051 (package
27052 (name "emacs-ntlm")
27053 (version "2.1.0")
27054 (source
27055 (origin
27056 (method url-fetch)
27057 (uri (string-append "https://elpa.gnu.org/packages/ntlm-" version ".el"))
27058 (sha256
27059 (base32 "01d0bcmh8a36qf871w6bc05kjk9bmnh843m9869xw06zyvqwg9mv"))))
27060 (build-system emacs-build-system)
27061 (home-page "https://elpa.gnu.org/packages/ntlm.html")
27062 (synopsis "NTLM (NT LanManager) authentication support")
27063 (description
27064 "This library is a direct translation of the Samba release 2.2.0
27065 implementation of Windows NT and LanManager compatible password encryption.")
27066 (license license:gpl3+)))
27067
27068 (define-public emacs-nadvice
27069 (package
27070 (name "emacs-nadvice")
27071 (version "0.3")
27072 (source
27073 (origin
27074 (method url-fetch)
27075 (uri (string-append "https://elpa.gnu.org/packages/"
27076 "nadvice-" version ".el"))
27077 (sha256
27078 (base32 "0gi3csnxbs8h7iy0scsl35sic3gv90swa89hhdjwb7qvpirfdcgw"))))
27079 (build-system emacs-build-system)
27080 (home-page "https://elpa.gnu.org/packages/nadvice.html")
27081 (synopsis "Forward compatibility for Emacs-24.4's nadvice")
27082 (description
27083 "This package tries to re-implement some of nadvice.el's functionality on
27084 top of the old defadvice system, to help users of defadvice move to the new
27085 advice system without dropping support for Emacs<24.4.")
27086 (license license:gpl3+)))
27087
27088 (define-public emacs-url-http-ntlm
27089 (package
27090 (name "emacs-url-http-ntlm")
27091 (version "2.0.4")
27092 (source
27093 (origin
27094 (method url-fetch)
27095 (uri (string-append "https://elpa.gnu.org/packages/"
27096 "url-http-ntlm-" version ".el"))
27097 (sha256
27098 (base32 "1cakq2ykraci7d1gl8rnpv4f2f5ffyaidhqb1282g7i72adwmb98"))))
27099 (build-system emacs-build-system)
27100 (propagated-inputs (list emacs-ntlm))
27101 (home-page "https://elpa.gnu.org/packages/url-http-ntlm.html")
27102 (synopsis "NTLM authentication for the url library")
27103 (description "This package provides a NTLM handler for the URL package.")
27104 (license license:gpl3+)))
27105
27106 (define-public emacs-soap-client
27107 (package
27108 (name "emacs-soap-client")
27109 (version "3.2.1")
27110 (source
27111 (origin
27112 (method url-fetch)
27113 (uri (string-append "https://elpa.gnu.org/packages/"
27114 "soap-client-" version ".tar"))
27115 (sha256
27116 (base32 "0ajv6l1p8dinnlybwzvv4c2i6291is6isjxb2h4apg27g66qbcki"))))
27117 (build-system emacs-build-system)
27118 (home-page "httpa://elpa.gnu.org/packages/soap-client.html")
27119 (synopsis "Access SOAP web services")
27120 (description
27121 "This package provides a SOAP client to access web services.")
27122 (license license:gpl3+)))
27123
27124 (define-public emacs-fsm
27125 (package
27126 (name "emacs-fsm")
27127 (version "0.2.1")
27128 (source
27129 (origin
27130 (method url-fetch)
27131 (uri (string-append "https://elpa.gnu.org/packages/fsm-" version ".el"))
27132 (sha256
27133 (base32 "1jyxyqdbfl8nv7c50q0sg3w5p7whp1sqgi7w921k5hfar4d11qqp"))))
27134 (build-system emacs-build-system)
27135 (home-page "https://elpa.gnu.org/packages/fsm.html")
27136 (synopsis "Finite State Machine library")
27137 (description
27138 "This package provides Finite State Machine library to make asynchronous
27139 programming in Emacs Lisp easy and fun.")
27140 (license license:gpl3+)))
27141
27142 (define-public emacs-excorporate
27143 (package
27144 (name "emacs-excorporate")
27145 (version "1.0.0")
27146 (source
27147 (origin
27148 (method url-fetch)
27149 (uri (string-append "https://elpa.gnu.org/packages/"
27150 "excorporate-" version ".tar"))
27151 (sha256
27152 (base32 "1g0wc2kp15ra323b4rxvdh58q9c4h7m20grw6a0cs53m7l9xi62f"))))
27153 (build-system emacs-build-system)
27154 (propagated-inputs
27155 (list emacs-fsm emacs-nadvice emacs-soap-client emacs-url-http-ntlm))
27156 (home-page "https://elpa.gnu.org/packages/excorporate.html")
27157 (synopsis "Exchange integration")
27158 (description "This package provides Exchange integration for Emacs.")
27159 (license license:gpl3+)))
27160
27161 (define-public emacs-evil-traces
27162 (let ((commit "1931e3ea2c64b4aec393a9c25063c330deff55e3")
27163 (revision "2"))
27164 (package
27165 (name "emacs-evil-traces")
27166 (version (git-version "0.0.1" revision commit))
27167 (source (origin
27168 (method git-fetch)
27169 (uri (git-reference
27170 (url "https://github.com/mamapanda/evil-traces")
27171 (commit commit)))
27172 (file-name (git-file-name name version))
27173 (sha256
27174 (base32
27175 "12p9lfxscs182vbd4dy0m5gacs3d4kyprbz5yndpwvl8g2qsqplz"))))
27176 (build-system emacs-build-system)
27177 (propagated-inputs
27178 (list emacs-evil))
27179 (arguments
27180 `(#:phases
27181 (modify-phases %standard-phases
27182 (add-after 'unpack 'set-shell
27183 ;; Setting the SHELL environment variable is required for the tests
27184 ;; to find sh.
27185 (lambda _
27186 (setenv "SHELL" (which "sh"))
27187 #t)))
27188 #:tests? #t
27189 #:test-command '("make" "test")))
27190 (home-page "https://github.com/mamapanda/evil-traces")
27191 (synopsis "Visual hints for @code{evil-ex}")
27192 (description "This package adds visual hints to certain @code{ex}
27193 commands in @code{evil-mode}.")
27194 (license license:gpl3+))))
27195
27196 (define-public emacs-evil-tmux-navigator
27197 (package
27198 (name "emacs-evil-tmux-navigator")
27199 (version "0.1.5")
27200 (source
27201 (origin
27202 (method git-fetch)
27203 (uri
27204 (git-reference
27205 (url "https://github.com/keith/evil-tmux-navigator")
27206 (commit version)))
27207 (file-name (git-file-name name version))
27208 (sha256
27209 (base32
27210 "1na44rbc03sr5b4z9pvnps6n4nmrqcz58nywix9825l74a419ijx"))))
27211 (propagated-inputs
27212 (list emacs-evil))
27213 (build-system emacs-build-system)
27214 (home-page "https://github.com/keith/evil-tmux-navigator")
27215 (synopsis
27216 "Navigate seamlessly between emacs windows and tmux panes")
27217 (description
27218 "This package lets you use C-h, C-j, C-k and C-l to navigate between
27219 Emacs windows and tmux panes.")
27220 (license license:expat)))
27221
27222 (define-public emacs-everywhere
27223 ;; No upstream release. Extract version from main file.
27224 (let ((commit "ace53396a66ed4b753f42c04a5a0db2bcd770423")
27225 (revision "0"))
27226 (package
27227 (name "emacs-everywhere")
27228 (version (git-version "0.0.1" revision commit))
27229 (source (origin
27230 (method git-fetch)
27231 (uri (git-reference
27232 (url "https://github.com/tecosaur/emacs-everywhere")
27233 (commit commit)))
27234 (file-name (git-file-name name version))
27235 (sha256
27236 (base32
27237 "0p55shxvqm1713af33mfglny7rpi31d42wvgwylcsfy4jvnsq8bb"))))
27238 (arguments
27239 (list
27240 #:phases
27241 #~(modify-phases %standard-phases
27242 (add-after 'unpack 'patch-exec-paths
27243 (lambda* (#:key inputs #:allow-other-keys)
27244 (substitute* "emacs-everywhere.el"
27245 (("\"xclip\"")
27246 (string-append "\""
27247 (search-input-file inputs "/bin/xclip")
27248 "\""))
27249 (("\"xdotool\"")
27250 (string-append "\""
27251 (search-input-file inputs "/bin/xdotool")
27252 "\""))
27253 (("\"xprop\"")
27254 (string-append "\""
27255 (search-input-file inputs "/bin/xprop")
27256 "\""))
27257 (("\"xwininfo\"")
27258 (string-append "\""
27259 (search-input-file inputs "/bin/xwininfo")
27260 "\""))))))))
27261 (inputs (list xclip xdotool xprop xwininfo))
27262 (build-system emacs-build-system)
27263 (home-page "https://github.com/tecosaur/emacs-everywhere")
27264 (synopsis "System-wide popup Emacs windows for quick edits")
27265 (description "@code{emacs-everywhere} launches a new Emacs frame, and the
27266 contents of the buffer are pasted into the previously focused application on
27267 deletion of the frame.")
27268 (license license:gpl3+))))
27269
27270 (define-public emacs-xclip
27271 (package
27272 (name "emacs-xclip")
27273 (version "1.11")
27274 (source
27275 (origin
27276 (method url-fetch)
27277 (uri (string-append "https://elpa.gnu.org/packages/"
27278 "xclip-" version ".tar"))
27279 (sha256
27280 (base32 "0hgblj8ng7vfsdb7g1mm9m2qhzfprycdd77836l59prpak5kp55q"))))
27281 (build-system emacs-build-system)
27282 (home-page "http://elpa.gnu.org/packages/xclip.html")
27283 (synopsis "Copy and paste GUI clipboard from Emacs in text terminal")
27284 (description
27285 "This package allows Emacs to copy to and paste from the GUI clipboard
27286 when running in text terminal.
27287
27288 It can use external command-line tools for that, e.g., @command{xclip} or
27289 @command{xsel}, which you may need to install in order for the package to
27290 work.")
27291 (license license:gpl3+)))
27292
27293 (define-public emacs-xterm-color
27294 (package
27295 (name "emacs-xterm-color")
27296 (version "2.0")
27297 (source
27298 (origin
27299 (method git-fetch)
27300 (uri (git-reference
27301 (url "https://github.com/atomontage/xterm-color")
27302 (commit version)))
27303 (file-name (git-file-name name version))
27304 (sha256
27305 (base32 "127lq50q62x06kd1xrf8lyc4rkqbfhfy86gsx1x4x169am2xk397"))))
27306 (build-system emacs-build-system)
27307 (home-page "https://github.com/atomontage/xterm-color")
27308 (synopsis "ANSI & xterm-256 color text property translator for Emacs")
27309 (description "@code{xterm-color.el} is an ANSI control sequence to
27310 text-property translator.")
27311 (license license:bsd-2)))
27312
27313 (define-public emacs-org-noter
27314 (package
27315 (name "emacs-org-noter")
27316 (version "1.4.1")
27317 (source
27318 (origin
27319 (method git-fetch)
27320 (uri (git-reference
27321 (url "https://github.com/weirdNox/org-noter")
27322 (commit version)))
27323 (file-name (git-file-name name version))
27324 (sha256
27325 (base32
27326 "1vwfpdi7hfkxx4vi0cwg7rvqby3i0mymzdkyzrqzv30dazmcjpag"))))
27327 (build-system emacs-build-system)
27328 (propagated-inputs (list emacs-org))
27329 (home-page "https://github.com/weirdNox/org-noter")
27330 (synopsis "Synchronized, Org-mode, document annotator")
27331 (description
27332 "This package lets you create notes that are kept in sync when you
27333 scroll through the document, but that are external to it---the notes
27334 themselves live in an Org-mode file. As such, this leverages the power of
27335 Org-mode (the notes may have outlines, latex fragments, babel, etc...) while
27336 acting like notes that are made @emph{in} the document.")
27337 (license license:gpl3+)))
27338
27339 (define-public emacs-org-redmine
27340 (let ((commit "e77d013bc3784947c46a5c53f03cd7d3c68552fc"))
27341 (package
27342 (name "emacs-org-redmine")
27343 (version (git-version "0.1" "1" commit))
27344 (source (origin
27345 (method git-fetch)
27346 (uri (git-reference
27347 (url "https://github.com/gongo/org-redmine")
27348 (commit commit)))
27349 (file-name (git-file-name name version))
27350 (sha256
27351 (base32
27352 "06miv3mf2a39vkf6mmm5ssc47inqh7dq82khsyc03anz4d4lj822"))))
27353 (build-system emacs-build-system)
27354 (home-page "https://github.com/gongo/org-redmine/")
27355 (synopsis "Redmine tools using Emacs")
27356 (description "This program provides an Emacs client for Redmine.")
27357 (license license:gpl3+))))
27358
27359 (define-public emacs-multi-term
27360 ;; No upstream release. Extract version from main file.
27361 (let ((commit "017c77c550115936860e2ea71b88e585371475d5")
27362 (revision "0"))
27363 (package
27364 (name "emacs-multi-term")
27365 (version (git-version "1.5" revision commit))
27366 (source
27367 (origin
27368 (method git-fetch)
27369 (uri (git-reference
27370 (url "https://github.com/manateelazycat/multi-term")
27371 (commit commit)))
27372 (file-name (git-file-name name version))
27373 (sha256
27374 (base32 "043dqd8i8h6hbcg11rzprxin2yq5lb902zlrb7mxah44vyp8wrdi"))))
27375 (build-system emacs-build-system)
27376 (inputs
27377 (list zsh))
27378 (home-page "https://github.com/manateelazycat/multi-term")
27379 (synopsis "Manage multiple terminal buffers in Emacs")
27380 (description
27381 "This package enhances @code{term.el} with the following features:
27382
27383 @enumerate
27384 @item Functions to switch between multiple terminal buffers
27385 @item List of keys to be intercepted by @code{emacs-multi-term} instead of by
27386 the underlying terminal
27387 @item Kills the unused buffer left after exiting the terminal
27388 @item Kills the running sub-processes along with the terminal when killing the
27389 it forcibly
27390 @item Dedicated window for debugging program.
27391 @end enumerate")
27392 (license license:gpl3+))))
27393
27394 (define-public emacs-elpher
27395 (package
27396 (name "emacs-elpher")
27397 (version "3.4.1")
27398 (source
27399 (origin
27400 (method git-fetch)
27401 (uri (git-reference
27402 (url "git://thelambdalab.xyz/elpher")
27403 (commit (string-append "v" version))))
27404 (file-name (git-file-name name version))
27405 (sha256
27406 (base32 "0dv71zc95m5sa4824vk3d1xk726nh2v50i0yp6w3ydfzzsfph6j6"))))
27407 (build-system emacs-build-system)
27408 (arguments
27409 (list
27410 #:emacs emacs-no-x ;need libxml support
27411 #:phases
27412 #~(modify-phases %standard-phases
27413 (add-before 'install 'build-doc
27414 (lambda _
27415 (invoke "makeinfo" "elpher.texi"))))))
27416 (native-inputs
27417 (list texinfo))
27418 (home-page "gopher://thelambdalab.xyz/1/projects/elpher/")
27419 (synopsis "Gopher and gemini client for Emacs")
27420 (description "Elpher is a full-featured gopher and gemini client for
27421 Emacs. Its features include intuitive keyboard and mouse-driven browsing,
27422 out-of-the-box compatibility with evil-mode, clickable links in plain text,
27423 caching of visited sites, pleasant and configurable visualization of Gopher
27424 directories, direct visualisation of image files, jumping directly to links by
27425 name (with autocompletion), a simple bookmark management system and
27426 connections using TLS encryption.")
27427 (license license:gpl3+)))
27428
27429 (define-public emacs-zerodark-theme
27430 (package
27431 (name "emacs-zerodark-theme")
27432 (version "4.7")
27433 (source
27434 (origin
27435 (method git-fetch)
27436 (uri (git-reference
27437 (url "https://github.com/NicolasPetton/zerodark-theme")
27438 (commit version)))
27439 (file-name (git-file-name name version))
27440 (sha256
27441 (base32
27442 "1r5s4mvwlxsb9ylr6dkfxpm1l0pbqkmn5gwjdcfk762cnxlam8cm"))))
27443 (build-system emacs-build-system)
27444 (propagated-inputs
27445 (list emacs-flycheck emacs-all-the-icons))
27446 (home-page
27447 "https://gitlab.petton.fr/nico/zerodark-theme")
27448 (synopsis
27449 "Dark, medium contrast theme for Emacs")
27450 (description
27451 "Zerodark is a dark theme inspired from One Dark and Niflheim.
27452 An optional mode-line format can be enabled with @code{zerodark-setup-modeline-format}.")
27453 (license license:gpl3+)))
27454
27455 (define-public emacs-gnus-alias
27456 (package
27457 (name "emacs-gnus-alias")
27458 (version "20150316")
27459 (source (origin
27460 (method git-fetch)
27461 (uri (git-reference
27462 (url "https://github.com/hexmode/gnus-alias")
27463 (commit "9447d3ccb4c0e75d0468899cccff7aa249657bac")))
27464 (file-name (git-file-name name version))
27465 (sha256
27466 (base32
27467 "1i278npayv3kfxxd1ypi9n83q5l402sbc1zkm11pf8g006ifqsp4"))))
27468 (build-system emacs-build-system)
27469 (home-page "https://melpa.org/#/gnus-alias")
27470 (synopsis "Alternative to @code{gnus-posting-styles}")
27471 (description "This Emacs add-on provides a simple mechanism to switch
27472 Identities when using a @code{message-mode} or a @code{message-mode} derived
27473 mode. Identities can include @code{From} and @code{Organisation} headers,
27474 extra headers, body and signature. Other features include:
27475
27476 @itemize
27477 @item Switch Identities in a message buffer.
27478 @item Access original message to help determine Identity of the followup/reply
27479 message.
27480 @item Act on a forwarded message as if it were a message being replied to.
27481 @item Start a new message with a given Identity pre-selected.
27482 @end itemize")
27483 (license license:gpl2+)))
27484
27485 (define-public emacs-ox-epub
27486 (package
27487 (name "emacs-ox-epub")
27488 (version "0.3")
27489 (source (origin
27490 (method git-fetch)
27491 (uri (git-reference
27492 (url "https://github.com/ofosos/ox-epub")
27493 (commit (string-append "v" version))))
27494 (file-name (git-file-name name version))
27495 (sha256
27496 (base32
27497 "057sqmvm8hwkhcg3yd4i8zz2xlqsqrpyiklyiw750s3i5mxdn0k7"))))
27498 (build-system emacs-build-system)
27499 (home-page "https://github.com/ofosos/ox-epub")
27500 (synopsis "Export org mode projects to EPUB")
27501 (description "@code{ox-epub} extends the (X)HTML exporter to generate
27502 @code{.epub} files directly from OrgMode. This will export EPUB version 2,
27503 which should give broad compatibility. It should also be relatiely easy to
27504 convert the resulting @code{.epub} to a @code{.mobi} file. Needs a working
27505 zip utility (default is @code{zip}).")
27506 (license license:gpl3+)))
27507
27508 (define-public emacs-ox-gemini
27509 ;; No releases yet
27510 (let ((commit "168f820ea401fb813435a3a55af295873a4c110b")
27511 (revision "1"))
27512 (package
27513 (name "emacs-ox-gemini")
27514 (version (git-version "0" revision commit))
27515 (source
27516 (origin
27517 (method git-fetch)
27518 (uri (git-reference
27519 (url "https://git.sr.ht/~abrahms/ox-gemini")
27520 (commit commit)))
27521 (file-name (git-file-name name version))
27522 (sha256
27523 (base32 "0jmiya3f9vv4v64p5kxla6wiiyv4wg4w7f4a6zmdrjcn11hflqmm"))))
27524 (build-system emacs-build-system)
27525 (home-page "https://sr.ht/~abrahms/ox-gemini")
27526 (synopsis "Export Org files in Gemini format")
27527 (description
27528 "@code{ox-gemini} adds support for exporting Org files in Gemini
27529 format. Many things were taken from the ASCII exporter, from which
27530 @code{ox-gemini} derives.")
27531 (license license:gpl3+))))
27532
27533 (define-public emacs-ox-haunt
27534 (package
27535 (name "emacs-ox-haunt")
27536 (version "0.2")
27537 (source
27538 (origin
27539 (method git-fetch)
27540 (uri (git-reference
27541 (url "https://git.sr.ht/~jakob/ox-haunt")
27542 (commit (string-append "v" version))))
27543 (file-name (git-file-name name version))
27544 (sha256
27545 (base32 "1rs1n228c2fmpvirc57bqgf2616ijpphkgf4w9ln5j46snmkam25"))))
27546 (build-system emacs-build-system)
27547 (home-page "https://git.sr.ht/~jakob/ox-haunt")
27548 (synopsis "Export Org files to HTML appropriate for Haunt")
27549 (description
27550 "This library implements an HTML back-end for the Org generic exporter,
27551 producing output appropriate for Haunt's @code{html-reader}.")
27552 (license license:gpl3+)))
27553
27554 (define-public emacs-ox-hugo
27555 (package
27556 (name "emacs-ox-hugo")
27557 (version "0.12.2")
27558 (source
27559 (origin
27560 (method git-fetch)
27561 (uri (git-reference
27562 (url "https://github.com/kaushalmodi/ox-hugo")
27563 (commit (string-append "v" version))))
27564 (file-name (git-file-name name version))
27565 (sha256
27566 (base32
27567 "054ln6x92qyicvc5l1m9yjqqzwpg3j66v0shxsypp97vfw2d3ww6"))))
27568 (build-system emacs-build-system)
27569 (propagated-inputs
27570 (list emacs-tomelr))
27571 (home-page "https://ox-hugo.scripter.co")
27572 (synopsis "Hugo markdown back-end for Org export engine")
27573 (description
27574 "Ox-hugo is an Org exporter backend that exports Org to Hugo-compatible
27575 Markdown, Blackfriday, and also generates the front-matter in TOML or YAML
27576 format.")
27577 (license license:gpl3+)))
27578
27579 (define-public emacs-ox-pandoc
27580 (package
27581 (name "emacs-ox-pandoc")
27582 (version "20180510")
27583 (source (origin
27584 (method git-fetch)
27585 (uri (git-reference
27586 (url "https://github.com/kawabata/ox-pandoc")
27587 (commit "aa37dc7e94213d4ebedb85c384c1ba35007da18e")))
27588 (file-name (git-file-name name version))
27589 (sha256
27590 (base32
27591 "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"))))
27592 (build-system emacs-build-system)
27593 (inputs
27594 (list pandoc))
27595 (propagated-inputs
27596 (list emacs-dash emacs-ht))
27597 (home-page "https://github.com/kawabata/ox-pandoc")
27598 (synopsis "Org exporter for Pandoc")
27599 (description "@code{ox-pandoc} is an exporter for converting Org-mode
27600 files to numerous other formats via Pandoc.")
27601 (license license:gpl3+)))
27602
27603 (define-public emacs-ox-reveal
27604 (let ((commit "07900f29fada581d0e1b0f1e2057cea5e1ba8ce1")
27605 (revision "0"))
27606 (package
27607 (name "emacs-ox-reveal")
27608 (version (git-version "1.0" revision commit))
27609 (source
27610 (origin
27611 (method git-fetch)
27612 (uri (git-reference
27613 (url "https://github.com/hexmode/ox-reveal")
27614 (commit commit)))
27615 (file-name (git-file-name name version))
27616 (sha256
27617 (base32
27618 "132b0llxda8jivabvm2ssbrdny7q2q1c0z4ikb12k4kia3fvg6cg"))))
27619 (build-system emacs-build-system)
27620 (propagated-inputs
27621 (list emacs-org))
27622 (home-page "https://github.com/hexmode/ox-reveal")
27623 (synopsis "reveal.js Presentation Back-End for Org export engine")
27624 (description
27625 "Org Reveal exports your Org documents to @code{reveal.js} presentations.
27626 With org-reveal, you can create beautiful presentations with 3D effects from
27627 simple but powerful Org contents.")
27628 (license license:gpl3+))))
27629
27630 (define-public emacs-wc-mode
27631 (package
27632 (name "emacs-wc-mode")
27633 (version "1.4.1")
27634 (source (origin
27635 (method git-fetch)
27636 (uri (git-reference
27637 (url "https://github.com/bnbeckwith/wc-mode")
27638 (commit (string-append "v" version))))
27639 (file-name (git-file-name name version))
27640 (sha256
27641 (base32
27642 "1wzgb4z2qyyv223x5fc7ff2fn5xpz4s7lr1q1y33q8878a7w9d45"))))
27643 (build-system emacs-build-system)
27644 (home-page "https://github.com/bnbeckwith/wc-mode")
27645 (synopsis "Running word count with goals (minor mode)")
27646 (description "@code{wc-mode} is a minor mode, providing a ‘wc’ function
27647 for Emacs buffers as well as a modeline addition with live word, line and
27648 character counts. Additionally, a user can set specific goals for adding or
27649 deleting words. These goals were partly inspired by 750words.com where the
27650 goal of the site is to encourage writing by setting a goal of 750 words at a
27651 time.")
27652 (license license:gpl3+)))
27653
27654 (define-public emacs-mastodon
27655 (package
27656 (name "emacs-mastodon")
27657 (version "0.9.0")
27658 (source (origin
27659 (method git-fetch)
27660 (uri (git-reference
27661 (url "https://github.com/jdenen/mastodon.el")
27662 (commit version)))
27663 (file-name (git-file-name name version))
27664 (sha256
27665 (base32
27666 "0hwax6y9dghqwsbnb6f1bnc7gh8xsh5cvcnayk2sn49x8b0zi5h1"))))
27667 (build-system emacs-build-system)
27668 (arguments
27669 `(#:phases
27670 (modify-phases %standard-phases
27671 ;; Move the source files to the top level, which is included in
27672 ;; the EMACSLOADPATH.
27673 (add-after 'unpack 'move-source-files
27674 (lambda _
27675 (let ((el-files (find-files "./lisp" ".*\\.el$")))
27676 (for-each (lambda (f)
27677 (rename-file f (basename f)))
27678 el-files))
27679 #t)))))
27680 (home-page "https://github.com/jdenen/mastodon.el")
27681 (synopsis "Emacs client for Mastodon")
27682 (description "@code{mastodon.el} is an Emacs client for Mastodon, the
27683 federated microblogging social network.")
27684 (license license:gpl3+)))
27685
27686 (define-public emacs-ebdb
27687 (package
27688 (name "emacs-ebdb")
27689 (version "0.8.14")
27690 (source
27691 (origin
27692 (method url-fetch)
27693 (uri (string-append "https://elpa.gnu.org/packages/"
27694 "ebdb-" version ".tar"))
27695 (sha256
27696 (base32 "0h7yva7p4b4lapi7pwcibf75nqmazjf3r67ibnkc8l9salfhml25"))))
27697 (build-system emacs-build-system)
27698 (home-page "https://github.com/girzel/ebdb")
27699 (synopsis "EIEIO port of BBDB, Emacs's contact-management package")
27700 (description
27701 "EBDB is a contact management/addressbook package for Emacs. It's
27702 a re-write of the Insidious Big Brother Database (BBDB) using Emacs
27703 Lisp's (relatively new) EIEIO object oriented libraries.")
27704 (license license:gpl3+)))
27705
27706 (define-public emacs-refactor
27707 (package
27708 (name "emacs-refactor")
27709 (version "0.4")
27710 (source (origin
27711 (method git-fetch)
27712 (uri (git-reference
27713 (url "https://github.com/Wilfred/emacs-refactor")
27714 (commit version)))
27715 (file-name (git-file-name name version))
27716 (sha256
27717 (base32
27718 "1yky7vlv91501xb43xk19rr8mxlvrsxhawsc98jivf64nad5dqay"))))
27719 (build-system emacs-build-system)
27720 (propagated-inputs
27721 (list emacs-dash emacs-s emacs-popup emacs-list-utils emacs-iedit))
27722 (home-page "https://github.com/Wilfred/emacs-refactor/")
27723 (synopsis "Language-specific refactoring in Emacs")
27724 (description "Emacs Refactor (EMR) is a framework for providing
27725 language-specific refactoring in Emacs. It includes refactoring commands for
27726 a variety of languages, including elisp itself.")
27727 (license license:gpl3+)))
27728
27729 (define-public emacs-flyspell-correct
27730 (package
27731 (name "emacs-flyspell-correct")
27732 (version "0.6.1")
27733 (source
27734 (origin
27735 (method git-fetch)
27736 (uri (git-reference
27737 (url "https://github.com/d12frosted/flyspell-correct")
27738 (commit (string-append "v" version))))
27739 (file-name (git-file-name name version))
27740 (sha256
27741 (base32 "1m5da6r82hk0c2x3lw03qnkk79sx67875afw0ybblj3cmfk6szd1"))))
27742 (build-system emacs-build-system)
27743 ;; XXX: emacs-avy-menu is not packaged, so we ignore the file below.
27744 (arguments
27745 `(#:exclude '("flyspell-correct-avy-menu\\.el")))
27746 (propagated-inputs
27747 (list emacs-helm emacs-ivy emacs-popup))
27748 (home-page "https://github.com/d12frosted/flyspell-correct")
27749 (synopsis "Correcting words with flyspell via custom interfaces")
27750 (description
27751 "This package provides functionality for correcting words via custom
27752 interfaces. Several interfaces are supported beside the classic Ido: Popup,
27753 Helm and Ivy.")
27754 (license license:gpl3+)))
27755
27756 (define-public emacs-spell-fu
27757 ;; There are no tagged releases upstream on gitlab, instead we are using the
27758 ;; most recent commit.
27759 (let ((commit "50be652a6ec8590c3098f46094a92213623349c1") (revision "0"))
27760 (package
27761 (name "emacs-spell-fu")
27762 (version (git-version "0.3" revision commit))
27763 (source (origin
27764 (method git-fetch)
27765 (uri (git-reference
27766 (url "https://gitlab.com/ideasman42/emacs-spell-fu")
27767 (commit commit)))
27768 (file-name (git-file-name name version))
27769 (sha256
27770 (base32
27771 "0n7qwnirvkh2aprb7l1wj9rywdsn33a7s32716m3afcvy7z9pyh4"))))
27772 (build-system emacs-build-system)
27773 (home-page "https://gitlab.com/ideasman42/emacs-spell-fu")
27774 (synopsis "Fast highlighting of misspelled words")
27775 (description
27776 "This is a light weight spell checker for Emacs,
27777 that runs from the syntax highlighter without starting external processes.")
27778 (license license:gpl3+))))
27779
27780 (define-public emacs-org-emms
27781 (let ((commit "07a8917f3d628c32e5de1dbd118ac08203772533")
27782 (revision "1"))
27783 (package
27784 (name "emacs-org-emms")
27785 (version
27786 (git-version "0.1" revision commit))
27787 (source
27788 (origin
27789 (method git-fetch)
27790 (uri (git-reference
27791 (url "https://gitlab.com/jagrg/org-emms.git")
27792 (commit commit)))
27793 (file-name (git-file-name name commit))
27794 (sha256
27795 (base32
27796 "1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d"))))
27797 (build-system emacs-build-system)
27798 (propagated-inputs
27799 (list emacs-emms emacs-org))
27800 (home-page "https://gitlab.com/jagrg/org-emms")
27801 (synopsis "Play multimedia files from org-mode")
27802 (description
27803 "This package provides a new org link type for playing back multimedia
27804 files from org-mode using EMMS, The Emacs Multimedia System. If the link
27805 contains a track position, playback will start at the specified position.")
27806 (license license:gpl3+))))
27807
27808 (define-public emacs-org-jira
27809 (package
27810 (name "emacs-org-jira")
27811 (version "4.3.2")
27812 (source
27813 (origin
27814 (method git-fetch)
27815 (uri (git-reference
27816 (url "https://github.com/ahungry/org-jira")
27817 (commit version)))
27818 (file-name (git-file-name name version))
27819 (sha256
27820 (base32
27821 "1hsfkkm3ykdf7n8a6k0mpzilhjpy7vllwrl2s4rfb9mhnaq5yb8y"))))
27822 (build-system emacs-build-system)
27823 (propagated-inputs
27824 (list emacs-request emacs-s emacs-dash emacs-org))
27825 (home-page "https://github.com/ahungry/org-jira")
27826 (synopsis "Syncing between Jira and Org-mode")
27827 (description
27828 "This package provides an extension to org-mode for syncing issues with
27829 JIRA issue servers.")
27830 (license license:gpl3+)))
27831
27832 (define-public emacs-slime-volleyball
27833 (package
27834 (name "emacs-slime-volleyball")
27835 (version "1.2.0")
27836 (source
27837 (origin
27838 (method url-fetch)
27839 (uri (string-append "https://elpa.gnu.org/packages/"
27840 "slime-volleyball-" version ".tar"))
27841 (sha256
27842 (base32 "07xavg6xq5ckrfy5sk5k5ldb46m5w8nw1r1k006ck8f23ajaw5z2"))))
27843 (build-system emacs-build-system)
27844 (arguments '(#:include '("\\.el$" "\\.svg$" "\\.b64$" "slime\\.el\\.gz$")))
27845 (home-page "http://elpa.gnu.org/packages/slime-volleyball.html")
27846 (synopsis "SVG slime volleyball game")
27847 (description
27848 "Emacs Slime Volleyball is a volleyball game. Win points by
27849 making the ball land on your opponent's side of the court. The first
27850 player to five points wins! You can play against a friend, or
27851 challenge the three computer opponents in one player mode. You can
27852 even train opponent slimes.")
27853 (license license:gpl3+)))
27854
27855 (define-public emacs-systemd-mode
27856 (package
27857 (name "emacs-systemd-mode")
27858 (version "1.6")
27859 (source (origin
27860 (method git-fetch)
27861 (uri (git-reference
27862 (url "https://github.com/holomorph/systemd-mode")
27863 (commit (string-append "v" version))))
27864 (file-name (git-file-name name version))
27865 (sha256
27866 (base32
27867 "0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq"))))
27868 (build-system emacs-build-system)
27869 (arguments '(#:include '("\\.el$" "\\.txt$")))
27870 (home-page "https://github.com/holomorph/systemd-mode")
27871 (synopsis
27872 "Major mode for editing systemd units")
27873 (description
27874 "Major mode for editing systemd units in GNU Emacs.")
27875 (license license:gpl3+)))
27876
27877 (define-public emacs-ssh-config-mode
27878 (let ((commit "4c1dfa57d452cb5654453bf186c8ff63e1e71b56")
27879 (revision "1"))
27880 (package
27881 (name "emacs-ssh-config-mode")
27882 (version (git-version "8.0" revision commit))
27883 (source
27884 (origin
27885 (method git-fetch)
27886 (uri
27887 (git-reference
27888 (url "https://github.com/jhgorrell/ssh-config-mode-el")
27889 (commit commit)))
27890 (file-name (git-file-name name commit))
27891 (sha256
27892 (base32
27893 "0crglfdazzckizbwzmgl2rn6j85avfzkr1q7ijxd17rp2anvr9bd"))))
27894 (build-system emacs-build-system)
27895 (arguments '(#:include '("\\.el$" "\\.txt$")))
27896 (home-page
27897 "https://github.com/jhgorrell/ssh-config-mode-el")
27898 (synopsis
27899 "Mode for fontification of ~/.ssh/config")
27900 (description
27901 "This package fontifies the ssh config keywords and creates
27902 keybindings for skipping from host section to host section.")
27903 (license license:gpl3+))))
27904
27905 (define-public emacs-ssh-agency
27906 (package
27907 (name "emacs-ssh-agency")
27908 (version "0.4.1")
27909 (source (origin
27910 (method git-fetch)
27911 (uri (git-reference
27912 (url "https://github.com/magit/ssh-agency")
27913 (commit version)))
27914 (file-name (git-file-name name version))
27915 (sha256
27916 (base32
27917 "1i3zmsn0w2k7p2hlzssibckm32kf05l56mkhg96x4sf06g3pwq1d"))))
27918 (build-system emacs-build-system)
27919 (propagated-inputs
27920 (list emacs-dash))
27921 (home-page "https://github.com/magit/ssh-agency")
27922 (synopsis "Manage @code{ssh-agent} from Emacs")
27923 (description
27924 "This package provides functions to startup @code{ssh-agent}, set the
27925 needed environment variables in Emacs, and prompt for passphrases from within
27926 Emacs so that pushes and pulls from @code{magit} will not require entering any
27927 passphrase.
27928
27929 It can also be useful on Unix-like platforms to delay having to enter your
27930 passphrase until the first time you push to a remote.")
27931 (license license:gpl3+)))
27932
27933 (define-public emacs-tao-theme
27934 (let ((commit "468ee4f6ba7afb9dbfc8855ae2c333cb16ca4408")
27935 (revision "1"))
27936 (package
27937 (name "emacs-tao-theme")
27938 (version (git-version "1.1.1" revision commit))
27939 (source
27940 (origin
27941 (method git-fetch)
27942 (uri (git-reference
27943 (url "https://github.com/11111000000/tao-theme-emacs")
27944 (commit commit)))
27945 (file-name (git-file-name name version))
27946 (sha256
27947 (base32
27948 "0yqibx6wcdsj5k6130c3qp0hmj6zwhfjrrvw98lny23ksw6k0s3s"))))
27949 (build-system emacs-build-system)
27950 (home-page "https://github.com/11111000000/tao-theme-emacs")
27951 (synopsis "Parameterized uncolored color themes for Emacs")
27952 (description
27953 "This package provides two parameterized uncolored color themes for
27954 Emacs: @code{tao-yin} and @code{tao-yang}. The default
27955 @code{tao-theme-scale-fn} is @code{tao-theme-golden-scale}.
27956
27957 You can customize: @code{tao-theme-scale-fn}, that returns 16 2-digit numbers;
27958 @code{tao-theme-scale-filter-fn}, for edge filter; and
27959 @code{tao-theme-use-height}.")
27960 (license license:gpl3+))))
27961
27962 (define-public emacs-almost-mono-themes
27963 (let ((commit "c3a85c1a665530a5d830665969725cdba8eceb75")
27964 (revision "0"))
27965 (package
27966 (name "emacs-almost-mono-themes")
27967 (version (git-version "0" revision commit))
27968 (source
27969 (origin
27970 (method git-fetch)
27971 (uri (git-reference
27972 (url "https://github.com/cryon/almost-mono-themes")
27973 (commit commit)))
27974 (file-name (git-file-name name version))
27975 (sha256
27976 (base32
27977 "034k32xkr5ma415hlkbl35z0jxc4sa1inf87hg3y6lrlfl83fyjh"))))
27978 (build-system emacs-build-system)
27979 (home-page "https://github.com/cryon/almost-mono-themes")
27980 (synopsis "Almost monochromatic themes for emacs in a few variants")
27981 (description
27982 "This package provides a collection of almost monochrome Emacs themes:
27983 @code{almost-mono-black} and @code{almost-mono-white}.")
27984 (license license:gpl3+))))
27985
27986 (define-public emacs-quasi-monochrome
27987 (let ((commit "68060dbbc0bbfe4924387392874186c5a29bb434")
27988 (revision "0"))
27989 (package
27990 (name "emacs-quasi-monochrome")
27991 (version (git-version "1.2" revision commit))
27992 (source
27993 (origin
27994 (method git-fetch)
27995 (uri (git-reference
27996 (url "https://github.com/lbolla/emacs-quasi-monochrome")
27997 (commit commit)))
27998 (file-name (git-file-name name version))
27999 (sha256
28000 (base32
28001 "0zp2xr0bjfqrpb0bqczzick1vvbjmipjavrdi70kw6a9caynvq22"))))
28002 (build-system emacs-build-system)
28003 (home-page "https://github.com/lbolla/emacs-quasi-monochrome")
28004 (synopsis "Dark color theme for Emacs")
28005 (description
28006 "This package provides a dark color theme with a black background, high
28007 contrast and few colors.")
28008 (license license:gpl3+))))
28009
28010 (define-public emacs-doom-themes
28011 (package
28012 (name "emacs-doom-themes")
28013 (version "2.3.0")
28014 (source (origin
28015 (method git-fetch)
28016 (uri (git-reference
28017 (url "https://github.com/hlissner/emacs-doom-themes")
28018 (commit (string-append "v" version))))
28019 (file-name (git-file-name name version))
28020 (sha256
28021 (base32 "120pcas0l1m6w551qxfcl2fx0aysjqp91nn47zdxrr8rs01654wr"))))
28022 (build-system emacs-build-system)
28023 (native-inputs
28024 (list emacs-ert-runner))
28025 (arguments
28026 (list #:tests? #t
28027 #:test-command #~(list "ert-runner")
28028 #:modules '((guix build emacs-build-system)
28029 (guix build utils)
28030 (guix build emacs-utils)
28031 (srfi srfi-1))
28032 #:phases
28033 #~(modify-phases %standard-phases
28034 (add-after 'unpack 'move-themes
28035 (lambda _
28036 ;; Move the source files to the top level, which is in the
28037 ;; EMACSLOADPATH.
28038 (for-each (lambda (f)
28039 (rename-file f (basename f)))
28040 (append
28041 (find-files "./themes" ".*\\.el$")
28042 (find-files "./extensions" ".*\\.el$"))))))))
28043 (synopsis "Wide collection of color themes for Emacs")
28044 (description "Emacs-doom-themes contains numerous popular color themes for
28045 Emacs that integrate with major modes like Org-mode.")
28046 (home-page "https://github.com/hlissner/emacs-doom-themes")
28047 (license license:expat)))
28048
28049 (define-public emacs-modus-themes
28050 (package
28051 (name "emacs-modus-themes")
28052 (version "2.4.1")
28053 (source
28054 (origin
28055 (method git-fetch)
28056 (uri (git-reference
28057 (url "https://git.sr.ht/~protesilaos/modus-themes")
28058 (commit version)))
28059 (file-name (git-file-name name version))
28060 (sha256
28061 (base32 "0b4y8dzyc9qwwaf2ngqiwyfcnhwlr49kxhc96laqk20lvjlfsrnx"))))
28062 (native-inputs (list texinfo))
28063 (build-system emacs-build-system)
28064 (arguments
28065 (list
28066 #:phases
28067 #~(modify-phases %standard-phases
28068 (add-after 'install 'makeinfo
28069 (lambda _
28070 (invoke "emacs"
28071 "--batch"
28072 "--eval=(require 'ox-texinfo)"
28073 "--eval=(find-file \"doc/modus-themes.org\")"
28074 "--eval=(org-texinfo-export-to-info)")
28075 (install-file "doc/modus-themes.info" (string-append #$output "/share/info")))))))
28076 (home-page "https://protesilaos.com/modus-themes/")
28077 (synopsis "Accessible themes (WCAG AAA)")
28078 (description
28079 "The Modus themes are designed for accessible readability. They conform
28080 with the highest standard for color contrast between any given combination of
28081 background and foreground values. This corresponds to the WCAG AAA standard,
28082 which specifies a minimum rate of distance in relative luminance of 7:1.
28083
28084 Modus Operandi (modus-operandi) is a light theme, while Modus
28085 Vivendi (modus-vivendi) is dark. Each theme’s color palette is designed to
28086 meet the needs of the numerous interfaces that are possible in the Emacs
28087 computing environment.")
28088 (license (list license:gpl3+
28089 license:fdl1.3+)))) ; GFDLv1.3+ for the manual
28090
28091 (define-public emacs-punpun-theme
28092 (let ((commit "7026684cd568cb691af3ced5de14c375fe6f5a1a")
28093 (revision "0"))
28094 (package
28095 (name "emacs-punpun-theme")
28096 (version (git-version "0" revision commit))
28097 (source
28098 (origin
28099 (method git-fetch)
28100 (uri (git-reference
28101 (url "https://depp.brause.cc/punpun-theme")
28102 (commit commit)))
28103 (file-name (git-file-name name version))
28104 (sha256
28105 (base32
28106 "1nwvlp93l5lj259mchd1a2glq3jxd0h1vazsbjqfi07hsg86xjp0"))))
28107 (build-system emacs-build-system)
28108 (home-page "https://depp.brause.cc/punpun-theme")
28109 (synopsis "Bleak Emacs theme")
28110 (description
28111 "A bleak theme. Uses shades of gray and the occasional splash of
28112 color. Designed for 256-color terminals. Comes in light and dark!")
28113 (license license:gpl3+))))
28114
28115 (define-public emacs-spacemacs-theme
28116 (package
28117 (name "emacs-spacemacs-theme")
28118 (version "0.2")
28119 (source
28120 (origin
28121 (method git-fetch)
28122 (uri (git-reference
28123 (url "https://github.com/nashamri/spacemacs-theme")
28124 (commit version)))
28125 (file-name (git-file-name name version))
28126 (sha256
28127 (base32 "15l9hb8f08nkxsaj8pxbg2mip4pp2msnrl0nvlq22zg40gh7pqsn"))))
28128 (build-system emacs-build-system)
28129 (home-page "https://github.com/nashamri/spacemacs-theme")
28130 (synopsis
28131 "Light and dark theme for spacemacs that supports GUI and terminal")
28132 (description
28133 "Spacemacs theme is an Emacs color theme that started as
28134 a theme for Spacemacs. The theme comes with dark and light variants
28135 and it should work well with 256 color terminals.")
28136 (license license:gpl3+)))
28137
28138 (define-public emacs-elixir-mode
28139 (package
28140 (name "emacs-elixir-mode")
28141 (version "2.3.2")
28142 (source
28143 (origin
28144 (method git-fetch)
28145 (uri (git-reference
28146 (url "https://github.com/elixir-editors/emacs-elixir")
28147 (commit (string-append "v" version))))
28148 (file-name (git-file-name name version))
28149 (sha256
28150 (base32 "0f2a360h8bizvqk6bmgxm59g8n7id5rzwlbv6d383h15w298mcga"))))
28151 (build-system emacs-build-system)
28152 (propagated-inputs
28153 (list emacs-pkg-info))
28154 (home-page
28155 "https://github.com/elixir-editors/emacs-elixir")
28156 (synopsis "Major mode for editing Elixir files")
28157 (description
28158 "Elixir-Mode provides font-locking, indentation and navigation support
28159 for the Elixir programming language.")
28160 (license license:gpl3+)))
28161
28162 (define-public emacs-dimmer
28163 (let ((commit "2f915b100044e09dd647b22085e1696249c4b115")
28164 (revision "1"))
28165 (package
28166 (name "emacs-dimmer")
28167 (version (git-version "0.4.2" revision commit))
28168 (source
28169 (origin
28170 (method git-fetch)
28171 (uri (git-reference
28172 (url "https://github.com/gonewest818/dimmer.el")
28173 (commit commit)))
28174 (file-name (git-file-name name version))
28175 (sha256
28176 (base32
28177 "00y6645zjary1sz7517qy5pjwfm5ipsc46sypmdygin65hbbc8wg"))))
28178 (build-system emacs-build-system)
28179 (home-page "https://github.com/gonewest818/dimmer.el")
28180 (synopsis "Visually highlights the selected buffer in Emacs")
28181 (description "Dimmer provides a minor mode that indicates which buffer is
28182 currently active by dimming the faces in the other buffers. It does this
28183 nondestructively, and computes the dimmed faces dynamically such that your
28184 overall color scheme is shown in a muted form without requiring you to define
28185 what is a \"dim\" version of every face.")
28186 (license license:gpl3+))))
28187
28188 (define-public emacs-minibuffer-line
28189 (package
28190 (name "emacs-minibuffer-line")
28191 (version "0.1")
28192 (source
28193 (origin
28194 (method url-fetch)
28195 (uri (string-append
28196 "https://elpa.gnu.org/packages/minibuffer-line-"
28197 version
28198 ".el"))
28199 (sha256
28200 (base32 "1ny4iirp26na5118wfgxlv6fxlrdclzdbd9m0lkrv51w0qw7spil"))))
28201 (build-system emacs-build-system)
28202 (home-page "https://elpa.gnu.org/packages/minibuffer-line.html")
28203 (synopsis "Display status info in the minibuffer window")
28204 (description
28205 "This package lets you display various status information in the
28206 minibuffer window instead of the mode-line. Of course, this is only displayed
28207 when the minibuffer window is not already used for other things (e.g. a
28208 minibuffer or an each area message).
28209
28210 The contents and aspect is controlled by the @code{minibuffer-line-format}
28211 variable and the @code{minibuffer-line} face.")
28212 (license license:gpl3+)))
28213
28214 (define-public emacs-minimap
28215 (package
28216 (name "emacs-minimap")
28217 (version "1.4")
28218 (source
28219 (origin
28220 (method url-fetch)
28221 (uri (string-append
28222 "https://elpa.gnu.org/packages/minimap-"
28223 version
28224 ".el"))
28225 (sha256
28226 (base32 "09fm0ziy8cdzzw08l7l6p63dxz2a27p3laia2v51mvbva8177ls1"))))
28227 (build-system emacs-build-system)
28228 (home-page "http://elpa.gnu.org/packages/minimap.html")
28229 (synopsis "Sidebar showing a @emph{mini-map} of a buffer")
28230 (description
28231 "Minimap provides Emacs with a minimap sidebar, which is a smaller
28232 display of the current buffer on the side, like a scrollbar. It highlights
28233 the currently shown region and updates its position automatically. You can
28234 navigate in the minibar by dragging the active region with the mouse, which
28235 will scroll the corresponding edit buffer. Additionally, you can overlay
28236 information from the tags gathered by CEDET's semantic analyzer.)")
28237 (license license:gpl3+)))
28238
28239 (define-public emacs-eshell-prompt-extras
28240 (package
28241 (name "emacs-eshell-prompt-extras")
28242 (version "1.0")
28243 (home-page "https://github.com/zwild/eshell-prompt-extras")
28244 (source
28245 (origin
28246 (method git-fetch)
28247 (uri (git-reference
28248 (url home-page)
28249 (commit version)))
28250 (file-name (git-file-name name version))
28251 (sha256
28252 (base32
28253 "0gb07mns23dgqqr6qfy7d6ndizy15sqgbgfaig6k5xbjnwi02v9g"))))
28254 (build-system emacs-build-system)
28255 (synopsis "Display extra information and color for your Eshell prompt")
28256 (description "This library displays various customizable elements for
28257 @code{eshell} prompts: remote user, remote host, python virtual environment
28258 info, git branch, git dirty info and git unpushed number. Multiple themes are
28259 available.")
28260 (license license:gpl3+)))
28261
28262 (define-public emacs-eshell-did-you-mean
28263 (package
28264 (name "emacs-eshell-did-you-mean")
28265 (version "0.2")
28266 (source
28267 (origin
28268 (method git-fetch)
28269 (uri (git-reference
28270 (url "https://github.com/xuchunyang/eshell-did-you-mean")
28271 (commit (string-append "v" version))))
28272 (file-name (git-file-name name version))
28273 (sha256
28274 (base32 "158g8b4crm0gf5pilfxf89hdsb22gr1wbrjyx9gf45bmcll3i9vf"))))
28275 (build-system emacs-build-system)
28276 (home-page "https://github.com/xuchunyang/eshell-did-you-mean")
28277 (synopsis "Display suggestions on 'command not found' in Eshell")
28278 (description "This library adds a list of 'Did you mean...' suggestions
28279 when the command was not found in Eshell. The suggestions are found after the
28280 commands that bear resemblance to the input command.")
28281 (license license:gpl3+)))
28282
28283 (define-public emacs-unfill
28284 (package
28285 (name "emacs-unfill")
28286 (version "0.3")
28287 (home-page "https://github.com/purcell/unfill")
28288 (source
28289 (origin
28290 (method git-fetch)
28291 (uri (git-reference
28292 (url home-page)
28293 (commit version)))
28294 (file-name (git-file-name name version))
28295 (sha256
28296 (base32 "0pg64nza2mp4xyr69pjq51jsq1aaym0g38g4jzaxr0hh3w0ris1n"))))
28297 (build-system emacs-build-system)
28298 (synopsis "Inverse of Emacs' @code{fill-paragraph} and @code{fill-region}")
28299 (description
28300 "The functions in this package provide the inverse of Emacs'
28301 @code{fill-paragraph} and @code{fill-region}.")
28302 (license license:gpl3+)))
28303
28304 (define-public emacs-windower
28305 (package
28306 (name "emacs-windower")
28307 (version "0.0.1")
28308 (home-page "https://gitlab.com/ambrevar/emacs-windower")
28309 (source
28310 (origin
28311 (method git-fetch)
28312 (uri (git-reference
28313 (url home-page)
28314 (commit version)))
28315 (file-name (git-file-name name version))
28316 (sha256
28317 (base32 "0h24gb1ip0czfasxm8wwcc3v19g7mznzw2sxkmmfb5iis59p7dfy"))))
28318 (build-system emacs-build-system)
28319 (synopsis "Helper functions for window manipulation in Emacs")
28320 (description
28321 "This package provides helper functions for window manipulation in Emacs,
28322 such as:
28323
28324 @itemize
28325 @item switch to last buffer,
28326 @item toggle single window display,
28327 @item toggle between horizontal and vertical splits,
28328 @item move borders more naturally,
28329 @item swap windows à-la @code{windmove}.
28330 @end itemize")
28331 (license license:gpl3+)))
28332
28333 (define-public emacs-flycheck-cpplint
28334 (let ((commit "1d8a090861572258ab704915263feeb3a436c3d2")
28335 (revision "1"))
28336 (package
28337 (name "emacs-flycheck-cpplint")
28338 (version (git-version "0.1" revision commit))
28339 (source
28340 (origin
28341 (method git-fetch)
28342 (uri (git-reference
28343 (url "https://github.com/flycheck/flycheck-google-cpplint")
28344 (commit commit)))
28345 (file-name (git-file-name name version))
28346 (sha256
28347 (base32 "0l6sg83f6z8x2alnblpv03rj442sbnkkkcbf8i0agjmx3713a5yx"))))
28348 (build-system emacs-build-system)
28349 (arguments
28350 `(#:phases
28351 (modify-phases %standard-phases
28352 (add-after 'unpack 'set-cpplint-path
28353 (lambda _
28354 (substitute* "flycheck-google-cpplint.el"
28355 (("\"cpplint.py\"")
28356 (string-append "\"" (which "cpplint") "\""))))))))
28357 (inputs
28358 (list cpplint))
28359 (propagated-inputs
28360 (list emacs-flycheck))
28361 (synopsis "Google C++ checker for Flycheck")
28362 (description "This package provides a interface for @code{cpplint} over
28363 Flycheck plugin. @code{cpplint} is a static code checker for C++, following
28364 Google guidelines.")
28365 (home-page "https://github.com/flycheck/flycheck-google-cpplint")
28366 (license license:gpl3+))))
28367
28368 (define-public emacs-highlight-doxygen
28369 ;; Upstream does not tag releases. Commit below matches version bump.
28370 (let ((commit "eec4874e2e89d4eb39091aad89a67dff8f8ec84c"))
28371 (package
28372 (name "emacs-highlight-doxygen")
28373 (version "0.0.2")
28374 (source
28375 (origin
28376 (method git-fetch)
28377 (uri (git-reference
28378 (url "https://github.com/Lindydancer/highlight-doxygen")
28379 (commit commit)))
28380 (sha256
28381 (base32
28382 "0r3rv1px43r265716l3g20c1ss4381h1mc1kjxin22vdmrj6cmxy"))
28383 (file-name (git-file-name name version))))
28384 (build-system emacs-build-system)
28385 (home-page "https://github.com/Lindydancer/highlight-doxygen")
28386 (synopsis "Highlight Doxygen comments in Emacs, including code blocks")
28387 (description
28388 "This package highlights Doxygen comments.
28389
28390 In addition to highlighting Doxygen commands and their arguments, entire
28391 Doxygen comment are highlighted, making them stand out compared to other
28392 comments. The code blocks are highlighted according to the
28393 language they are written in.")
28394 (license license:gpl3+))))
28395
28396 (define-public emacs-helm-fish-completion
28397 (package
28398 (name "emacs-helm-fish-completion")
28399 (version "0.6")
28400 (home-page "https://github.com/emacs-helm/helm-fish-completion")
28401 (source
28402 (origin
28403 (method git-fetch)
28404 (uri (git-reference
28405 (url home-page)
28406 (commit version)))
28407 (file-name (git-file-name name version))
28408 (sha256
28409 (base32 "1j2vfngq3512naaayv9kx0d1q2zg1xgs69l8afc7swg72h0l0imw"))))
28410 (build-system emacs-build-system)
28411 (propagated-inputs
28412 (list emacs-helm emacs-fish-completion))
28413 (synopsis "Helm interface for Emacs fish-completion")
28414 (description "Helm Fish Completion is a Helm interface for Emacs
28415 fish-completion. It can be used in both Eshell and M-x shell.")
28416 (license license:gpl3+)))
28417
28418 (define-public emacs-helm-switch-to-repl
28419 (package
28420 (name "emacs-helm-switch-to-repl")
28421 (version "0.1.2")
28422 (home-page "https://github.com/emacs-helm/helm-switch-to-repl")
28423 (source
28424 (origin
28425 (method git-fetch)
28426 (uri (git-reference
28427 (url home-page)
28428 (commit version)))
28429 (file-name (git-file-name name version))
28430 (sha256
28431 (base32 "0n8qa549c5syvgqw1h2zrakjjbygddpxzaifaq5irscgdcajrads"))))
28432 (build-system emacs-build-system)
28433 (propagated-inputs
28434 (list emacs-helm))
28435 (synopsis "Helm action to switch directory in Emacs REPLs")
28436 (description "Helm \"Switch-to-REPL\" offers the
28437 @code{helm-switch-to-repl} action, a generalized and extensible version of
28438 @code{helm-ff-switch-to-shell}. It can be added to @code{helm-find-files} and
28439 other @code{helm-type-file} sources such as @code{helm-locate}.")
28440 (license license:gpl3+)))
28441
28442 (define-public emacs-telega-server
28443 (package
28444 (name "emacs-telega-server")
28445 (version "0.8.03")
28446 (source
28447 (origin
28448 (method git-fetch)
28449 (uri (git-reference
28450 (url "https://github.com/zevlg/telega.el")
28451 (commit (string-append "v" version))))
28452 (sha256
28453 (base32 "1ffy17i5fi1bw5r5m6x372c52hc1k83wxdxvi4z0hixyklj48nsv"))
28454 (file-name (git-file-name "emacs-telega" version))
28455 (patches
28456 (search-patches "emacs-telega-path-placeholder.patch"
28457 "emacs-telega-test-env.patch"))))
28458 (build-system gnu-build-system)
28459 (arguments
28460 (list
28461 #:make-flags
28462 #~(list (string-append "CC=" #$(cc-for-target))
28463 (string-append "INSTALL_PREFIX=" #$output "/bin"))
28464 #:phases
28465 #~(modify-phases %standard-phases
28466 (add-before 'configure 'enter-subdirectory
28467 (lambda _ (chdir "server")))
28468 (replace 'configure
28469 (lambda _
28470 (substitute* "run_tests.py"
28471 (("^(TELEGA_SERVER = ).*$" _all prefix)
28472 (string-append prefix
28473 "\"" #$output "/bin/telega-server\"\n")))))
28474 (delete 'check)
28475 (add-after 'install 'check
28476 (assoc-ref %standard-phases 'check))
28477 (add-before 'install-license-files 'leave-subdirectory
28478 (lambda _ (chdir ".."))))
28479 #:test-target "test"))
28480 (inputs
28481 (list tdlib libappindicator))
28482 (native-inputs
28483 (list python pkg-config))
28484 (home-page "https://zevlg.github.io/telega.el/")
28485 (synopsis "Server process of Telega")
28486 (description "Telega-server is helper program to interact with Telegram
28487 service, and connect it with Emacs via inter-process communication.")
28488 (license license:gpl3+)))
28489
28490 (define-public emacs-telega
28491 (package
28492 (inherit emacs-telega-server)
28493 (name "emacs-telega")
28494 (build-system emacs-build-system)
28495 (arguments
28496 `(#:emacs ,(if (target-64bit?)
28497 emacs-minimal
28498 ;; Require wide-int support for 32-bit platform.
28499 emacs-wide-int)
28500 #:include (cons "^etc\\/" %default-include)
28501 #:phases
28502 (modify-phases %standard-phases
28503 (add-after 'unpack 'patch-sources
28504 (lambda* (#:key inputs #:allow-other-keys)
28505 ;; Hard-code paths to `ffplay` and `ffmpeg`.
28506 (let* ((ffplay-bin (search-input-file inputs "/bin/ffplay"))
28507 (ffmpeg-bin (search-input-file inputs "/bin/ffmpeg")))
28508 (substitute* '("telega-ffplay.el" "telega-vvnote.el")
28509 (("(shell-command-to-string\|concat) \"(ffmpeg\|ffprobe)"
28510 all func cmd)
28511 (string-append func " \""
28512 (search-input-file
28513 inputs (string-append "/bin/" cmd))))
28514 (("\\(executable-find \"ffplay\"\\)")
28515 (string-append "(and (file-executable-p \"" ffplay-bin "\")"
28516 "\"" ffplay-bin "\")"))
28517 (("\\(executable-find \"ffmpeg\"\\)")
28518 (string-append "(and (file-executable-p \"" ffmpeg-bin "\")"
28519 "\"" ffmpeg-bin "\")"))))))
28520 (add-after 'unpack 'configure
28521 (lambda* (#:key inputs outputs #:allow-other-keys)
28522 (substitute* "telega-customize.el"
28523 (("@TELEGA_SERVER_BIN@")
28524 (search-input-file inputs "/bin/telega-server")))
28525 (substitute* "telega-util.el"
28526 (("@TELEGA_SHARE@")
28527 (string-append (elpa-directory (assoc-ref outputs "out"))
28528 "/etc"))))))))
28529 (inputs
28530 (list emacs-telega-server ffmpeg))
28531 (native-inputs '())
28532 (propagated-inputs
28533 (list emacs-visual-fill-column emacs-company
28534 emacs-rainbow-identifiers))
28535 (synopsis "GNU Emacs client for the Telegram messenger")
28536 (description "Telega is a full-featured, unofficial GNU Emacs-based client
28537 for the Telegram messaging platform.")))
28538
28539 (define-public emacs-telega-contrib
28540 (package
28541 (inherit emacs-telega)
28542 (name "emacs-telega-contrib")
28543 (arguments
28544 `(#:exclude '("telega-live-location.el")
28545 #:phases
28546 (modify-phases %standard-phases
28547 (add-after 'unpack 'enter-subdirectory
28548 (lambda _ (chdir "contrib") #t))
28549 (add-before 'install-license-files 'leave-subdirectory
28550 (lambda _ (chdir "..") #t)))))
28551 (inputs '())
28552 (native-inputs '())
28553 (propagated-inputs
28554 (list emacs-alert emacs-all-the-icons emacs-dashboard emacs-telega
28555 emacs-transient))
28556 (synopsis "Contributed packages to Telega")
28557 (description "Telega-contrib is a collection of third-party
28558 contributed packages to Telega.")))
28559
28560 (define-public emacs-doom-modeline
28561 (package
28562 (name "emacs-doom-modeline")
28563 (version "3.3.1")
28564 (source
28565 (origin
28566 (method git-fetch)
28567 (uri (git-reference
28568 (url "https://github.com/seagle0128/doom-modeline")
28569 (commit (string-append "v" version))))
28570 (sha256
28571 (base32 "0p728hbphfch6kmkjxm1qwxrwz6l94s3sj7wl1wc4mp82zrdsi15"))
28572 (file-name (git-file-name name version))))
28573 (build-system emacs-build-system)
28574 (arguments
28575 `(#:test-command '("ert-runner")))
28576 (native-inputs (list emacs-ert-runner))
28577 (propagated-inputs
28578 (list emacs-all-the-icons emacs-compat emacs-dash emacs-shrink-path))
28579 (synopsis "Fancy and fast mode-line inspired by minimalism design")
28580 (description "Doom modeline is a complete modeline for GNU Emacs inspired
28581 by the Doom theme collection. This modeline features support for mode-specific
28582 icon support, git integration, and several other utilities.")
28583 (home-page "https://github.com/seagle0128/doom-modeline/")
28584 (license license:gpl3+)))
28585
28586 (define-public emacs-mood-line
28587 (package
28588 (name "emacs-mood-line")
28589 (version "1.2.5")
28590 (source
28591 (origin
28592 (method git-fetch)
28593 (uri (git-reference
28594 (url "https://gitlab.com/jessieh/mood-line")
28595 (commit version)))
28596 (file-name (git-file-name name version))
28597 (sha256
28598 (base32 "0z6s80j259xf8nxjxcsmp7wyvpcg5wyx58brlrbwg1aa9hl3fxga"))))
28599 (build-system emacs-build-system)
28600 (home-page "https://gitlab.com/jessieh/mood-line")
28601 (synopsis "Minimal mode-line for Emacs")
28602 (description
28603 "Mood-line is a minimal Emacs mode-line configuration that aims to
28604 replicate some of the features of the Doom modeline package.")
28605 (license license:gpl2+)))
28606
28607 (define-public emacs-simple-modeline
28608 (package
28609 (name "emacs-simple-modeline")
28610 (version "1.4")
28611 (source
28612 (origin
28613 (method git-fetch)
28614 (uri (git-reference
28615 (url "https://github.com/gexplorer/simple-modeline")
28616 (commit version)))
28617 (file-name (git-file-name name version))
28618 (sha256
28619 (base32
28620 "1rnzrx7gcaw056cqvnb1wai4hala0r0gpk3a4kyyghyp9hmrxbb5"))))
28621 (build-system emacs-build-system)
28622 (home-page "https://github.com/gexplorer/simple-modeline")
28623 (synopsis "Simple mode-line configuration for Emacs")
28624 (description
28625 "This package provides a simple mode-line configuration for Emacs.")
28626 (license license:gpl3+)))
28627
28628 (define-public emacs-frames-only-mode
28629 (package
28630 (name "emacs-frames-only-mode")
28631 (version "1.0.0")
28632 (source
28633 (origin
28634 (method git-fetch)
28635 (uri (git-reference
28636 (url "https://github.com/davidshepherd7/frames-only-mode")
28637 (commit version)))
28638 (file-name (git-file-name name version))
28639 (sha256
28640 (base32 "0y0sdjixaxvywrlp2sw51wnczhk51q1svl5aghbk9rkxpwv9ys9v"))))
28641 (build-system emacs-build-system)
28642 (propagated-inputs
28643 (list emacs-dash emacs-s))
28644 (home-page "https://github.com/davidshepherd7/frames-only-mode")
28645 (synopsis "Use frames instead of Emacs windows")
28646 (description
28647 "This is an Emacs global minor mode to use Emacs frames instead of Emacs'
28648 internal windowing system. This combines particularly well with tiling window
28649 managers such as XMonad.")
28650 (license license:gpl3+)))
28651
28652 (define-public emacs-modalka
28653 (package
28654 (name "emacs-modalka")
28655 (version "0.1.5")
28656 (source
28657 (origin
28658 (method git-fetch)
28659 (uri (git-reference
28660 (url "https://github.com/mrkkrp/modalka")
28661 (commit version)))
28662 (file-name (git-file-name name version))
28663 (sha256
28664 (base32 "0ggj8q92sb6wp3hs1vhpmy56id0p3i9zwnw24g2v7xa7w8ac9s7l"))))
28665 (build-system emacs-build-system)
28666 (home-page "https://github.com/mrkkrp/modalka")
28667 (synopsis "Minor mode to easily define native custom modal editing")
28668 (description
28669 "This is a building kit to help switch to modal editing in Emacs. The
28670 main goal of the package is to make modal editing in Emacs as natural and
28671 native as possible. Modalka lets you define your own keys and does not come
28672 with a preconfigured set of keys.")
28673 (license license:gpl3+)))
28674
28675 (define-public emacs-shrink-path
28676 (package
28677 (name "emacs-shrink-path")
28678 (version "0.3.1")
28679 (source
28680 (origin
28681 (method git-fetch)
28682 (uri (git-reference
28683 (url "https://gitlab.com/bennya/shrink-path.el.git")
28684 (commit (string-append "v" version))))
28685 (sha256
28686 (base32
28687 "0kx0c4syd7k6ff9j463bib32pz4wq0rzjlg6b0yqnymlzfr1mbki"))
28688 (file-name (git-file-name name version))))
28689 (build-system emacs-build-system)
28690 (propagated-inputs
28691 (list emacs-s emacs-dash emacs-f))
28692 (home-page "https://gitlab.com/bennya/shrink-path.el")
28693 (synopsis "Fish-style path truncation in emacs-lisp")
28694 (description "This package provides utility functions that allow for
28695 Fish-style truncated directories in eshell and various modelines.")
28696 (license license:gpl3+)))
28697
28698 (define-public emacs-org-present
28699 (let ((commit "d13acd70eff6a1608bc991920232146a0de76b21"))
28700 (package
28701 (name "emacs-org-present")
28702 (version "0.0.1")
28703 (source
28704 (origin
28705 (method git-fetch)
28706 (uri (git-reference
28707 (url "https://github.com/rlister/org-present")
28708 (commit commit)))
28709 (file-name (git-file-name name version))
28710 (sha256
28711 (base32
28712 "0jz8xiny3rv9ql0p623byz32pip1b82j2c2nyfz2wd114kiabb6q"))))
28713 (build-system emacs-build-system)
28714 (synopsis "Ultra-minimalist presentation minor-mode for Emacs org-mode")
28715 (description "Org-present is an extremely minimalist presentation tool
28716 for Emacs org-mode. Simply layout your presentation with each slide under a
28717 top-level header, start the minor mode with @code{org-present}, and page through
28718 each slide with left/right keys.")
28719 (home-page "https://github.com/rlister/org-present")
28720 (license license:gpl2))))
28721
28722 (define-public emacs-fullframe
28723 (package
28724 (name "emacs-fullframe")
28725 (version "0.5.1")
28726 (source
28727 (origin
28728 (method git-fetch)
28729 (uri (git-reference
28730 (url "https://git.sr.ht/~tomterl/fullframe")
28731 (commit version)))
28732 (sha256
28733 (base32 "1q276p3bagx9fhzyzjmz449f95k1z287x4p34980d06klj11lrab"))
28734 (file-name (git-file-name name version))))
28735 (build-system emacs-build-system)
28736 (home-page "https://git.sr.ht/~tomterl/fullframe")
28737 (synopsis "Generalized automatic execution in a single frame")
28738 (description
28739 "This library provides helpers for single-window-per-frame execution of
28740 buffer-exposing commands.")
28741 (license license:gpl3+)))
28742
28743 (define-public emacs-eshell-toggle
28744 (let ((commit "ddfbe0a693497c4d4bc5494a19970ba4f6ab9033")
28745 (revision "1"))
28746 (package
28747 (name "emacs-eshell-toggle")
28748 (version (git-version "0.10.0" revision commit))
28749 (source
28750 (origin
28751 (method git-fetch)
28752 (uri (git-reference
28753 (url "https://github.com/4DA/eshell-toggle")
28754 (commit commit)))
28755 (sha256
28756 (base32
28757 "0xqrp8pwbmfxjdqipgpw5nw633mvhjjjm3k3j9sh9xdpmw05hhws"))
28758 (file-name (git-file-name name version))))
28759 (build-system emacs-build-system)
28760 (propagated-inputs
28761 (list emacs-dash))
28762 (home-page "https://github.com/4DA/eshell-toggle")
28763 (synopsis "Show and hide an @code{eshell} instance")
28764 (description "This package toggles an @code{eshell} instance for the
28765 current buffer.")
28766 (license license:gpl3+))))
28767
28768 (define-public emacs-repl-toggle
28769 (package
28770 (name "emacs-repl-toggle")
28771 (version "0.7.1")
28772 (source
28773 (origin
28774 (method git-fetch)
28775 (uri (git-reference
28776 (url "https://git.sr.ht/~tomterl/repl-toggle")
28777 (commit version)))
28778 (sha256
28779 (base32
28780 "0nycm8a4wwkkaif958z4m89slayp17k20lp2h7lvddjx8prn6yfp"))
28781 (file-name (git-file-name name version))))
28782 (build-system emacs-build-system)
28783 (propagated-inputs
28784 (list emacs-fullframe))
28785 (home-page "https://git.sr.ht/~tomterl/repl-toggle")
28786 (synopsis "Switch to and from current major mode's REPL")
28787 (description "This package provides a function to switch to and from a
28788 REPL appropriate to the current major mode.")
28789 (license license:gpl3+)))
28790
28791 (define-public emacs-rime
28792 (package
28793 (name "emacs-rime")
28794 (version "1.0.5")
28795 (source
28796 (origin
28797 (method git-fetch)
28798 (uri (git-reference
28799 (url "https://github.com/DogLooksGood/emacs-rime")
28800 (commit (string-append "v" version))))
28801 (file-name (git-file-name name version))
28802 (sha256
28803 (base32 "0z0iwsqr92g8ykxb51gkawwxwzx0faw0027zgdi7c38ngjqld237"))))
28804 (build-system emacs-build-system)
28805 (arguments
28806 '(#:include (cons "\\.so$" %default-include)
28807 #:phases
28808 (modify-phases %standard-phases
28809 (add-after 'unpack 'patch-rime-data-path
28810 (lambda* (#:key inputs #:allow-other-keys)
28811 (make-file-writable "rime.el")
28812 (emacs-substitute-variables "rime.el"
28813 ("rime-share-data-dir"
28814 (search-input-directory inputs
28815 "share/rime-data")))))
28816 (add-before 'install 'build-emacs-module
28817 (lambda _
28818 (invoke "make" "lib"))))))
28819 (inputs
28820 (list librime rime-data))
28821 (propagated-inputs
28822 (list emacs-dash emacs-popup emacs-posframe))
28823 (home-page "https://github.com/DogLooksGood/emacs-rime")
28824 (synopsis "Rime input method in Emacs")
28825 (description
28826 "Rime is an Emacs input method built upon Rime input method engine.")
28827 (license license:gpl3+)))
28828
28829 (define-public emacs-bison-mode
28830 (package
28831 (name "emacs-bison-mode")
28832 (version "0.4")
28833 (source
28834 (origin
28835 (method url-fetch)
28836 (uri (string-append
28837 "https://elpa.nongnu.org/nongnu/bison-mode-"
28838 version ".tar"))
28839 (sha256
28840 (base32 "19n9kz1ycjpxngd3clzr8lzrnnw19l8sfvlx1yqn35hk7017z7ab"))))
28841 (build-system emacs-build-system)
28842 (home-page "https://elpa.nongnu.org/nongnu/bison-mode.html")
28843 (synopsis "Major mode for editing Bison, Yacc, and Lex files")
28844 (description
28845 "This Emacs package provides a major mode for editing Bison, Yacc, and
28846 Lex files.")
28847 (license license:gpl2+)))
28848
28849 (define-public emacs-blackout
28850 (let ((commit "4bac44671fca4c98d96aa94c79946bf4d4baf0ee")
28851 (revision "1"))
28852 (package
28853 (name "emacs-blackout")
28854 (version (git-version "1.0" revision commit))
28855 (source
28856 (origin
28857 (method git-fetch)
28858 (uri (git-reference
28859 (url "https://github.com/raxod502/blackout")
28860 (commit commit)))
28861 (sha256
28862 (base32
28863 "1wnh0nwy6r3a18sy9sqmrwv04vnmaflxy4g7mq8jiyyjijri7l1b"))
28864 (file-name (git-file-name name version))))
28865 (build-system emacs-build-system)
28866 (home-page "https://github.com/raxod502/blackout")
28867 (synopsis "Clean up mode lighters")
28868 (description "This package provides a function for hiding and customizing
28869 display of major and minor modes in the mode line.")
28870 (license license:gpl3+))))
28871
28872 (define-public emacs-ivy-omni-org
28873 (let ((commit "5460a9fc061a4a5ae8372dc8df966ced94abab58")
28874 (revision "1"))
28875 (package
28876 (name "emacs-ivy-omni-org")
28877 (version (git-version "0.2.1" revision commit))
28878 (source
28879 (origin
28880 (method git-fetch)
28881 (uri (git-reference
28882 (url "https://github.com/akirak/ivy-omni-org")
28883 (commit commit)))
28884 (file-name (git-file-name name version))
28885 (sha256
28886 (base32
28887 "1np1f51hc3phkl5w02a9a79gl38ra2d535i784fn4pqaasvm0rq8"))))
28888 (build-system emacs-build-system)
28889 (propagated-inputs
28890 (list emacs-ivy emacs-dash))
28891 (synopsis "Browse anything in Org mode")
28892 (description "This package allows Org items to be accessed via the Ivy
28893 interface.")
28894 (home-page "https://github.com/akirak/ivy-omni-org")
28895 (license license:gpl3+))))
28896
28897 (define-public emacs-ivy-posframe
28898 (package
28899 (name "emacs-ivy-posframe")
28900 (version "0.6.3")
28901 (source
28902 (origin
28903 (method url-fetch)
28904 (uri (string-append "https://elpa.gnu.org/packages/"
28905 "ivy-posframe-" version ".tar"))
28906 (sha256
28907 (base32 "0b498qzaydjrhplx4d7zcrs883dlrhfiz812sv4m3pmhfwifcchh"))))
28908 (build-system emacs-build-system)
28909 (propagated-inputs
28910 (list emacs-ivy emacs-posframe))
28911 (home-page "https://github.com/tumashu/ivy-posframe")
28912 (synopsis "Pop a posframe (a child frame) to show Ivy candidates")
28913 (description
28914 "This package provides an Emacs Ivy extension, which let Ivy use
28915 posframe to show its candidate menu.")
28916 (license license:gpl3+)))
28917
28918 (define-public emacs-shackle
28919 (package
28920 (name "emacs-shackle")
28921 (version "1.0.4")
28922 (source
28923 (origin
28924 (method git-fetch)
28925 (uri (git-reference
28926 (url "https://depp.brause.cc/shackle.git")
28927 (commit version)))
28928 (file-name (git-file-name name version))
28929 (sha256
28930 (base32 "0s4br59zpd5qq7z9074ddq9lmwnddq2ixijwi666wp5gxw45fpgg"))))
28931 (build-system emacs-build-system)
28932 (synopsis "Enforce rules for popups")
28933 (description
28934 "This package provides a global minor mode in which users
28935 can specify how popup-displaying functions occupy the screen.")
28936 (home-page "https://depp.brause.cc/shackle")
28937 (license license:gpl3+)))
28938
28939 (define-public emacs-showtip
28940 (let ((commit "930da302809a4257e8d69425455b29e1cc91949b")
28941 (revision "0"))
28942 (package
28943 (name "emacs-showtip")
28944 (version (git-version "0.01" revision commit))
28945 (source
28946 (origin
28947 (method git-fetch)
28948 (uri (git-reference
28949 (url "https://github.com/emacsorphanage/showtip")
28950 (commit commit)))
28951 (file-name (git-file-name name version))
28952 (sha256
28953 (base32 "01zak0zhha6dp7a2hm28d065gjnc462iwpsfyxhbxgfzcdlicqc7"))))
28954 (build-system emacs-build-system)
28955 (home-page "https://github.com/emacsorphanage/showtip")
28956 (synopsis "Show tip at cursor")
28957 (description
28958 "This library provide one function to show tooltip near the cursor.")
28959 (license license:gpl2+))))
28960
28961 (define-public emacs-sdcv
28962 ;; No tagged version upstream.
28963 (let ((commit "943ae3e90cc9a0a88a37cc710acd7424fd4defc4" )
28964 (revision "0"))
28965 (package
28966 (name "emacs-sdcv")
28967 (version (git-version "1.5.2" revision commit))
28968 (source
28969 (origin
28970 (method git-fetch)
28971 (uri (git-reference
28972 (url "https://github.com/stardiviner/sdcv.el")
28973 (commit commit)))
28974 (file-name (git-file-name name version))
28975 (sha256
28976 (base32 "0i1ylvw7p46pkf3yyyzcdmdhsspzymnnnvx8s0i7vynngr5x0vzh"))))
28977 (build-system emacs-build-system)
28978 (propagated-inputs
28979 (list emacs-popup emacs-pos-tip emacs-showtip))
28980 (home-page "https://www.emacswiki.org/emacs/download/sdcv.el")
28981 (synopsis "Emacs interface for @code{sdcv}")
28982 (description
28983 "This plugin translates words with @code{sdcv}, and displays
28984 translation using a tooltip or in a dedicated buffer.")
28985 (license license:gpl3+))))
28986
28987 (define-public emacs-helm-lacarte
28988 (let ((commit "40a6c449720be521435b6b1da7911af3a0b9dca0")
28989 (revision "1"))
28990 (package
28991 (name "emacs-helm-lacarte")
28992 (version (git-version "0" revision commit))
28993 (source
28994 (origin
28995 (method git-fetch)
28996 (uri (git-reference
28997 (url "https://github.com/emacs-helm/helm-lacarte")
28998 (commit commit)))
28999 (file-name (git-file-name name version))
29000 (sha256
29001 (base32
29002 "0dkfd3lap2v7b4nckzv8v7hczmzwzhbl75haqkra107ln91ldbwc"))))
29003 (build-system emacs-build-system)
29004 (propagated-inputs
29005 (list emacs-helm emacs-lacarte))
29006 (synopsis "Helm interface to @code{lacarte.el}")
29007 (description "This package provides a Helm interface to
29008 @code{lacarte.el}, a package that displays mode-specific commands as menu
29009 items.")
29010 (home-page "https://github.com/emacs-helm/helm-lacarte")
29011 (license license:gpl3+))))
29012
29013 (define-public emacs-esh-help
29014 (let ((commit "417673ed18a983930a66a6692dbfb288a995cb80")
29015 (revision "1"))
29016 (package
29017 (name "emacs-esh-help")
29018 (version (git-version "1.0.1" revision commit))
29019 (source
29020 (origin
29021 (method git-fetch)
29022 (uri (git-reference
29023 (url "https://github.com/tom-tan/esh-help")
29024 (commit commit)))
29025 (file-name (git-file-name name version))
29026 (sha256
29027 (base32
29028 "0x7d51a6ljl014zy7mi27vzcqqbcwg9z4drq29fr2ajk82mqhlgd"))))
29029 (build-system emacs-build-system)
29030 (propagated-inputs
29031 (list emacs-dash))
29032 (synopsis "Help functions for Eshell")
29033 (description "This package provides a @code{run-help} function inspired
29034 by @code{zsh} as well as @code{eldoc} support.")
29035 (home-page "https://github.com/tom-tan/esh-help")
29036 (license license:gpl3+))))
29037
29038 (define-public emacs-isearch-dabbrev
29039 (let ((commit "1efe7abba4923015cbc2462395deaec5446a9cc8")
29040 (revision "1"))
29041 (package
29042 (name "emacs-isearch-dabbrev")
29043 (version (git-version "0.1" revision commit))
29044 (source
29045 (origin
29046 (method git-fetch)
29047 (uri (git-reference
29048 (url "https://github.com/Dewdrops/isearch-dabbrev")
29049 (commit commit)))
29050 (file-name (git-file-name name version))
29051 (sha256
29052 (base32
29053 "17d0816awadvsw1qc7r0p6ira75jmgxaj9hsk9ypayxsaf6ynyrb"))))
29054 (build-system emacs-build-system)
29055 (synopsis "Use @code{dabbrev} within @code{isearch}")
29056 (description "This package allows @code{dabbrev-expand} to be used
29057 within @code{isearch-mode}.")
29058 (home-page "https://github.com/Dewdrops/isearch-dabbrev")
29059 (license license:gpl3+))))
29060
29061 (define-public emacs-helm-linux-disks
29062 (let ((commit "2cdc8116a08534289eb0dc76461d0f93a0bdf231")
29063 (revision "1"))
29064 (package
29065 (name "emacs-helm-linux-disks")
29066 (version (git-version "0.1" revision commit))
29067 (source
29068 (origin
29069 (method git-fetch)
29070 (uri (git-reference
29071 (url "https://github.com/Akirak/helm-linux-disks")
29072 (commit commit)))
29073 (file-name (git-file-name name version))
29074 (sha256
29075 (base32
29076 "1limw82zd8jz3mhh9rqlmhj4cjhfgybs9argfjid1an3vpyhc85i"))))
29077 (build-system emacs-build-system)
29078 (propagated-inputs
29079 (list emacs-helm))
29080 (synopsis "Mount/unmount volumes in Linux via Helm")
29081 (description "This package provides a Helm interface to run operations
29082 on removable volumes in Linux.")
29083 (home-page "https://github.com/Akirak/helm-linux-disks")
29084 (license license:gpl3+))))
29085
29086 (define-public emacs-psession
29087 (let ((commit "3e97267c92b164584e06a6c70ee7491714c7c12c")
29088 (revision "1"))
29089 (package
29090 (name "emacs-psession")
29091 (version (git-version "1.5" revision commit))
29092 (source
29093 (origin
29094 (method git-fetch)
29095 (uri (git-reference
29096 (url "https://github.com/thierryvolpiatto/psession")
29097 (commit commit)))
29098 (file-name (git-file-name name version))
29099 (sha256
29100 (base32
29101 "15frl618393bc891d0yi3mdxzvbq790a86vfvp3dyd5riz4ddg95"))))
29102 (build-system emacs-build-system)
29103 (propagated-inputs
29104 (list emacs-async))
29105 (synopsis "Persistent save of @code{elisp} objects")
29106 (description "This package provides minor modes for saving Emacs session
29107 data, including buffers, window configuration, variables, and more.")
29108 (home-page "https://github.com/thierryvolpiatto/psession")
29109 (license license:gpl3+))))
29110
29111 (define-public emacs-parseedn
29112 (package
29113 (name "emacs-parseedn")
29114 (version "1.1.0")
29115 (source
29116 (origin
29117 (method git-fetch)
29118 (uri (git-reference
29119 (url "https://github.com/clojure-emacs/parseedn")
29120 (commit (string-append "v" version))))
29121 (file-name (git-file-name name version))
29122 (sha256
29123 (base32 "01j8nrkcm2s0ps277b5zb4pys29lk4cq49rlcqpj19gbfpkwcvdv"))))
29124 (build-system emacs-build-system)
29125 (propagated-inputs
29126 (list emacs-a emacs-parseclj))
29127 (home-page "https://cider.mx")
29128 (synopsis "EDN parser for Emacs Lisp")
29129 (description
29130 "Parseedn is an Emacs Lisp library for parsing EDN (Clojure) data.
29131 It uses parseclj's shift-reduce parser internally.")
29132 (license license:gpl3+)))
29133
29134 (define-public emacs-parseclj
29135 (package
29136 (name "emacs-parseclj")
29137 (version "1.1.0")
29138 (source
29139 (origin
29140 (method git-fetch)
29141 (uri (git-reference
29142 (url "https://github.com/clojure-emacs/parseclj")
29143 (commit (string-append "v" version))))
29144 (file-name (git-file-name name version))
29145 (sha256
29146 (base32 "0ifc9gyp7hr97ssnsqxiwrzmldqysz874crlg6jm4iy5l9fyls22"))))
29147 (build-system emacs-build-system)
29148 (propagated-inputs (list emacs-a))
29149 (home-page "https://cider.mx")
29150 (synopsis "Clojure parser for Emacs Lisp")
29151 (description
29152 "Parseclj is an Emacs Lisp library for parsing Clojure code and EDN data.
29153 It supports several input and output formats, all powered by the same
29154 shift-reduce parser function.")
29155 (license license:gpl3+)))
29156
29157 (define-public emacs-hide-mode-line
29158 (package
29159 (name "emacs-hide-mode-line")
29160 (version "1.0.2")
29161 (source (origin
29162 (method git-fetch)
29163 (uri (git-reference
29164 (url "https://github.com/hlissner/emacs-hide-mode-line")
29165 (commit (string-append "v" version))))
29166 (file-name (git-file-name name version))
29167 (sha256
29168 (base32
29169 "0dfzjgxfkcw4wisbyldsm1km18pfp9j8xgadn6qnsz11l55bpgyp"))))
29170 (build-system emacs-build-system)
29171 (synopsis "Emacs plugin that hides the mode-line")
29172 (description "A minor mode that hides the mode-line in your current
29173 buffer. It can be used to toggle an alternative mode-line, toggle its visibility,
29174 or simply disable the mode-line in buffers where it is not very useful.")
29175 (home-page "https://github.com/hlissner/emacs-hide-mode-line")
29176 (license license:expat)))
29177
29178 (define-public emacs-helm-cider
29179 (package
29180 (name "emacs-helm-cider")
29181 (version "0.5.0")
29182 (source (origin
29183 (method git-fetch)
29184 (uri (git-reference
29185 (url "https://github.com/clojure-emacs/helm-cider")
29186 (commit (string-append "v" version))))
29187 (file-name (git-file-name name version))
29188 (sha256
29189 (base32
29190 "0jjjy68pmmsx0biawyi5581cqh2b4zb0q8f5vs49ihpzn6zc04vk"))))
29191 (build-system emacs-build-system)
29192 (propagated-inputs
29193 (list emacs-helm emacs-cider))
29194 (home-page "https://github.com/clojure-emacs/helm-cider")
29195 (synopsis "Helm interface to Clojure's CIDER")
29196 (description "Helm-CIDER adds Helm interfaces to
29197 @command{cider-apropos}, @command{cider-apropos-documentation},
29198 @command{cider-browse-ns} (namespaces).
29199
29200 It also provides original Helm commands: @command{helm-cider-spec},
29201 @command{helm-cider-spec-ns}, @command{helm-cider-repl-history},
29202 @command{helm-cider-cheatsheet}.")
29203 (license license:gpl3+)))
29204
29205 (define-public emacs-edn
29206 ;; No release since February 2016
29207 (let ((commit "be9e32d1b49e35247b263b0243df7cfdc8d413ab"))
29208 (package
29209 (name "emacs-edn")
29210 (version (git-version "1.1.2" "1" commit))
29211 (home-page "https://github.com/expez/edn.el")
29212 (source (origin
29213 (method git-fetch)
29214 (uri (git-reference
29215 (url home-page)
29216 (commit commit)))
29217 (file-name (git-file-name name version))
29218 (sha256
29219 (base32
29220 "1xp2hjhn52k6l1g6ypva6dsklpawni7gvjafbz6404f9dyxflh7l"))))
29221 (build-system emacs-build-system)
29222 (propagated-inputs
29223 (list emacs-peg))
29224 (synopsis "Read and write EDN from Elisp")
29225 (description "This is an Emacs Lisp library for reading and writing the
29226 data format @code{edn}. See @url{https://github.com/edn-format/edn}.")
29227 (license license:gpl3+))))
29228
29229 (define-public emacs-helm-clojuredocs
29230 (let ((commit "5a7f0f2cb401be0b09e73262a1c18265ab9a3cea"))
29231 (package
29232 (name "emacs-helm-clojuredocs")
29233 (version (git-version "0.3" "1" commit))
29234 (home-page "https://github.com/mbuczko/helm-clojuredocs")
29235 (source (origin
29236 (method git-fetch)
29237 (uri (git-reference
29238 (url home-page)
29239 (commit commit)))
29240 (file-name (git-file-name name version))
29241 (sha256
29242 (base32
29243 "015b8zxh91ljhqvn6z43gy08di54xcw9skw0i7frj3d7gk984qhl"))))
29244 (build-system emacs-build-system)
29245 (propagated-inputs
29246 (list emacs-helm emacs-edn))
29247 (synopsis "Search help on clojuredocs.org with Helm")
29248 (description "This package provides a Helm interface to lookup Clojure
29249 documentation on @url{https://clojuredocs.org} with Helm.
29250
29251 Two function are exposed:
29252 @itemize
29253 @item @command{helm-clojuredocs}: opens a Helm session with no initial
29254 pattern. Searching starts with minimal 3 characters entered.
29255 @item @command{helm-clojuredocs-at-point}: opens a Helm session with initial
29256 pattern guessed from thing under current cursor position.
29257 @end itemize\n")
29258 (license license:gpl3+))))
29259
29260 (define-public emacs-helm-selector
29261 (package
29262 (name "emacs-helm-selector")
29263 (version "0.6.1")
29264 (home-page "https://github.com/emacs-helm/helm-selector")
29265 (source
29266 (origin
29267 (method git-fetch)
29268 (uri (git-reference
29269 (url home-page)
29270 (commit version)))
29271 (file-name (git-file-name name version))
29272 (sha256
29273 (base32
29274 "01lh1df0bnas1p7xlqc4i1jd67f8lxgq0q2zsvx10z8828i76j3v"))))
29275 (build-system emacs-build-system)
29276 (propagated-inputs
29277 (list emacs-helm))
29278 (synopsis "Convenient related-buffer selection for Emacs Helm")
29279 (description "Helm Selector is a collection of Helm helper functions for
29280 convenient buffer selection.
29281
29282 It is especially helpful to create Helm sessions to navigate buffers of a
29283 given mode in a “do what I mean” fashion:
29284
29285 If current buffer is not of mode X, switch to last buffer of mode X. If
29286 current buffer is of mode X, show a Helm session of all buffers in mode X. In
29287 the Helm session, it’s also possible to input an arbitrary name which will be
29288 used for the creation of a new buffer of mode X.")
29289 (license license:gpl3+)))
29290
29291 (define-public emacs-helm-wordnut
29292 (let ((commit "9681a9535a839cd5d042c302945ae595852fe7bf"))
29293 (package
29294 (name "emacs-helm-wordnut")
29295 (version (git-version "0.1" "1" commit))
29296 (home-page "https://github.com/emacs-helm/helm-wordnut")
29297 (source
29298 (origin
29299 (method git-fetch)
29300 (uri (git-reference
29301 (url home-page)
29302 (commit commit)))
29303 (file-name (git-file-name name version))
29304 (sha256
29305 (base32
29306 "0msj7nbsb363pxamxi7n2z08cp5jizkpjbwia8f5a161wjglrihs"))))
29307 (build-system emacs-build-system)
29308 (inputs
29309 (list wordnet))
29310 (propagated-inputs
29311 (list emacs-helm))
29312 (arguments
29313 `(#:phases
29314 (modify-phases %standard-phases
29315 (add-after 'unpack 'configure
29316 (lambda* (#:key inputs #:allow-other-keys)
29317 (let ((wn (assoc-ref inputs "wordnet")))
29318 ;; .el is read-only in git.
29319 (chmod "helm-wordnut.el" #o644)
29320 ;; Specify the absolute file names of the various
29321 ;; programs so that everything works out-of-the-box.
29322 (emacs-substitute-variables "helm-wordnut.el"
29323 ("helm-wordnut-prog" (string-append wn "/bin/wn"))
29324 ("helm-wordnut-wordnet-location"
29325 (string-append wn "/dict")))))))))
29326 (synopsis "Emacs Helm interface for Wordnet")
29327 (description "This package is merely a combination of two other Emacs
29328 packages: @code{helm-wordnet} and @code{wordnut}. It features word completion
29329 with Helm and displays a buffer of all the different result types available to
29330 Wordnet.")
29331 (license license:gpl3+))))
29332
29333 (define-public emacs-helm-xref
29334 (package
29335 (name "emacs-helm-xref")
29336 (version "1.0")
29337 (source
29338 (origin
29339 (method git-fetch)
29340 (uri (git-reference
29341 (url "https://github.com/brotzeit/helm-xref")
29342 (commit version)))
29343 (file-name (git-file-name name version))
29344 (sha256
29345 (base32 "0v0wm1x11r1h9p139c5rl0r4s5q6092bmwrsnr2140ddbq34mnvy"))))
29346 (build-system emacs-build-system)
29347 (propagated-inputs
29348 (list emacs-helm))
29349 (home-page "https://github.com/brotzeit/helm-xref")
29350 (synopsis "Helm interface for @code{xref}")
29351 (description "This package provides a Helm interface for selecting
29352 @code{xref} results.")
29353 (license license:gpl3+)))
29354
29355 (define-public emacs-metal-mercury-mode
29356 (let ((commit "99e2d8fb7177cae3bfa2dec2910fc28216d5f5a8")
29357 (revision "1")
29358 (version "0.0.0"))
29359 (package
29360 (name "emacs-metal-mercury-mode")
29361 (version (git-version version revision commit))
29362 (source
29363 (origin
29364 (method git-fetch)
29365 (uri (git-reference
29366 (url "https://github.com/ahungry/metal-mercury-mode")
29367 (commit commit)))
29368 (sha256
29369 (base32
29370 "0iil5k3rgifz2vqwsy12rbv5rzyvidq4sgwazsb2hzys8xynmfn5"))
29371 (file-name (git-file-name name version))))
29372 (build-system emacs-build-system)
29373 (propagated-inputs
29374 (list emacs-dash))
29375 (synopsis "Major mode for editing Mercury files")
29376 (description
29377 "Major mode for editing Mercury files. This is a rewrite of the original
29378 mercury-mode provided by Emacs as a wrapper around prolog-mode.")
29379 (home-page "https://github.com/ahungry/metal-mercury-mode")
29380 (license license:gpl3+))))
29381
29382 (define-public emacs-boxquote
29383 (package
29384 (name "emacs-boxquote")
29385 (version "2.2")
29386 (source
29387 (origin
29388 (method git-fetch)
29389 (uri (git-reference
29390 (url "https://github.com/davep/boxquote.el")
29391 (commit (string-append "v" version))))
29392 (file-name (git-file-name name version))
29393 (sha256
29394 (base32 "0wwjawgylaaifdsszqxcfsyhfzgxbjkzqhzrnxnr9b16wghb7xf7"))))
29395 (build-system emacs-build-system)
29396 (home-page "https://github.com/davep/boxquote.el")
29397 (synopsis "Quote text with different kinds of boxes")
29398 (description "@code{boxquote} provides a set of functions for using
29399 a text quoting style that partially boxes in the left hand side of an area of
29400 text, such a marking style might be used to show externally included text or
29401 example code.")
29402 (license license:gpl3+)))
29403
29404 (define-public emacs-buffer-move
29405 (package
29406 (name "emacs-buffer-move")
29407 (version "0.6.2")
29408 (source
29409 (origin
29410 (method git-fetch)
29411 (uri (git-reference
29412 (url "https://github.com/lukhas/buffer-move")
29413 (commit version)))
29414 (file-name (git-file-name name version))
29415 (sha256
29416 (base32 "0xdks4jfqyhkh34y48iq3gz8swp0f526kwnaai5mhgvazvs4za8c"))))
29417 (build-system emacs-build-system)
29418 (home-page "https://github.com/lukhas/buffer-move")
29419 (synopsis "Functions for moving Emacs' buffers around")
29420 (description
29421 "This package define functions for swapping buffers between windows
29422 contained in the same frame. An alternate behavior is to have the current
29423 window switch to the previous buffer instead of swapping with the other
29424 window.")
29425 (license license:gpl3+)))
29426
29427 (define-public emacs-company-ebdb
29428 (package
29429 (name "emacs-company-ebdb")
29430 (version "1.1")
29431 (source
29432 (origin
29433 (method url-fetch)
29434 (uri (string-append "https://elpa.gnu.org/packages/"
29435 "company-ebdb-" version ".el"))
29436 (sha256
29437 (base32 "146qpiigz12zp1823ggxfrx090g0mxs7gz1ba7sa0iq6ibgzwwm9"))))
29438 (build-system emacs-build-system)
29439 (propagated-inputs
29440 (list emacs-company))
29441 (home-page "https://elpa.gnu.org/packages/company-ebdb.html")
29442 (synopsis "Company completion backend for EBDB in Message mode")
29443 (description "@code{company-ebdb} provides Company mode integration for
29444 EBDB. It is copied more or less intact from @code{company-bbdb}, originally
29445 by Jan Tatarik.")
29446 (license license:gpl3+)))
29447
29448 (define-public emacs-mwim
29449 ;; Use the latest commit not in a release version as of yet, since it
29450 ;; contains a bug fix for the cases where `comment-start-skip' is nil.
29451 (let ((commit "b4f3edb4c0fb8f8b71cecbf8095c2c25a8ffbf85")
29452 (revision "0"))
29453 (package
29454 (name "emacs-mwim")
29455 (version (git-version "0.4" revision commit))
29456 (source
29457 (origin
29458 (method git-fetch)
29459 (uri (git-reference
29460 (url "https://github.com/alezost/mwim.el")
29461 (commit commit)))
29462 (file-name (git-file-name name version))
29463 (sha256
29464 (base32 "0l3k611gp9g2x2vfmh92wnhnda81dslpwwpb8mxmzk308man77ya"))))
29465 (build-system emacs-build-system)
29466 (home-page "https://github.com/alezost/mwim.el")
29467 (synopsis "Move to the beginning/end of line, code or comment")
29468 (description "@code{mwim} provides several commands to switch between
29469 various line positions, like moving to the beginning/end of code, line, or
29470 comment.")
29471 (license license:gpl3+))))
29472
29473 (define-public emacs-delight
29474 (package
29475 (name "emacs-delight")
29476 (version "1.7")
29477 (source
29478 (origin
29479 (method url-fetch)
29480 (uri (string-append "https://elpa.gnu.org/packages/"
29481 "delight-" version ".el"))
29482 (sha256
29483 (base32 "0pihsghrf9xnd1kqlq48qmjcmp5ra95wwwgrb3l8m1wagmmc0bi1"))))
29484 (build-system emacs-build-system)
29485 (home-page "https://elpa.gnu.org/packages/delight.html")
29486 (synopsis "Dimmer switch for your mode-line lighter text")
29487 (description "@code{delight} enables customizing or hiding the
29488 mode-line text (lighter) of major and minor modes.")
29489 (license license:gpl3+)))
29490
29491 (define-public emacs-unkillable-scratch
29492 ;; Use the latest (unreleased) commit as of now, since it contains a handy
29493 ;; `unkillable-scratch-do-not-reset-scratch-buffer' customization to not
29494 ;; repopulate the scratch buffer with `initial-scratch-message'.
29495 (let ((commit "b24c2a760529833f230c14cb02ff6e7ec92288ab")
29496 (revision "0"))
29497 (package
29498 (name "emacs-unkillable-scratch")
29499 (version (git-version "1.0.0" revision commit))
29500 (source
29501 (origin
29502 (method git-fetch)
29503 (uri (git-reference
29504 (url "https://github.com/EricCrosson/unkillable-scratch")
29505 (commit commit)))
29506 (file-name (git-file-name name version))
29507 (sha256
29508 (base32 "13wjbcxr3km4s96yhpavgs5acs5pvqv3ih1p84diqb3x3i6wd4pa"))))
29509 (build-system emacs-build-system)
29510 (home-page "https://github.com/EricCrosson/unkillable-scratch")
29511 (synopsis "Prevents the *scratch* buffer from being killed")
29512 (description "@code{unkillable-scratch} helps prevent killing buffers
29513 matching a given regexp.")
29514 (license license:gpl2+))))
29515
29516 (define-public emacs-switch-buffer-functions
29517 (package
29518 (name "emacs-switch-buffer-functions")
29519 (version "0.0.1")
29520 (source
29521 (origin
29522 (method git-fetch)
29523 (uri (git-reference
29524 (url "https://github.com/10sr/switch-buffer-functions-el")
29525 (commit (string-append "v" version))))
29526 (file-name (git-file-name name version))
29527 (sha256
29528 (base32 "0pq53b8wrjbrxd5hnrcdi0z7mffp4bax55hn90k9ca3j76lhbn1k"))))
29529 (build-system emacs-build-system)
29530 (home-page "https://github.com/10sr/switch-buffer-functions-el")
29531 (synopsis "Hooks run when switching current buffer")
29532 (description "This package provides a hook variable
29533 @code{switch-buffer-functions}. The hooks will be run when the current buffer
29534 is changed after an interactive command, i.e., when @code{post-command-hook}
29535 hooks are run. The hooked functions will be called with both the previous and
29536 the current buffer.")
29537 (license license:unlicense)))
29538
29539 (define-public emacs-erc-scrolltoplace
29540 (package
29541 (name "emacs-erc-scrolltoplace")
29542 (version "0.1.0")
29543 (source
29544 (origin
29545 (method git-fetch)
29546 (uri (git-reference
29547 (url "https://gitlab.com/jgkamat/erc-scrolltoplace.git")
29548 (commit version)))
29549 (file-name (git-file-name name version))
29550 (sha256
29551 (base32 "11zpqwh1mlfifbgnvhc63bvnhg340jgxssm3m43hr1sxsyb52lh6"))))
29552 (build-system emacs-build-system)
29553 (propagated-inputs
29554 (list emacs-switch-buffer-functions))
29555 (home-page "https://gitlab.com/jgkamat/erc-scrolltoplace")
29556 (synopsis "ERC module to replace scrolltobottom while using keep-place")
29557 (description "@code{erc-scrolltoplace} is an ERC module to try
29558 to emulate @code{scrolltobottom} while @code{keep-place} is enabled.")
29559 (license license:gpl3+)))
29560
29561 (define-public emacs-dmenu
29562 ;; Use the latest commit, as there are no tagged releases.
29563 (let ((commit "e8cc9b27c79d3ecc252267c082ab8e9c82eab264")
29564 (revision "0"))
29565 (package
29566 (name "emacs-dmenu")
29567 (version (git-version "0.1" revision commit))
29568 (source
29569 (origin
29570 (method git-fetch)
29571 (uri (git-reference
29572 (url "https://github.com/lujun9972/el-dmenu")
29573 (commit commit)))
29574 (file-name (git-file-name name version))
29575 (sha256
29576 (base32 "098ncygms1r33zhjlq4fj2p4jc91v5whqrm3fazzdk7sd6dilf25"))))
29577 (build-system emacs-build-system)
29578 (home-page "https://github.com/lujun9972/el-dmenu")
29579 (synopsis "Simulate the @command{dmenu} command line program")
29580 (description "This package provides a @command{dmenu} command for
29581 launching other commands/applications from within Emacs, similar to the
29582 @command{dmenu} program. This is especially useful when using EXWM.")
29583 (license license:gpl3+))))
29584
29585 (define-public emacs-no-littering
29586 (package
29587 (name "emacs-no-littering")
29588 (version "1.2.6")
29589 (source
29590 (origin
29591 (method git-fetch)
29592 (uri (git-reference
29593 (url "https://github.com/emacscollective/no-littering")
29594 (commit (string-append "v" version))))
29595 (file-name (git-file-name name version))
29596 (sha256
29597 (base32 "1098wm46gi15pzh065fpxfjf8lr7jf2sg48yy9yzdi0dwdyz6l4c"))))
29598 (build-system emacs-build-system)
29599 (home-page "https://github.com/emacscollective/no-littering")
29600 (synopsis "Help keep @file{~/.emacs.d/} clean")
29601 (description "The default paths used to store configuration files and
29602 persistent data are not consistent across Emacs packages, be them built-in or
29603 third-party ones. @code{no-littering} sets out to help clean
29604 @file{~/.emacs.d/} by putting configuration files and persistent data files in
29605 two user-defined directories, as well as using more descriptive names for
29606 files and subdirectories when appropriate.")
29607 (license license:gpl3+)))
29608
29609 (define-public emacs-meson-mode
29610 (package
29611 (name "emacs-meson-mode")
29612 (version "0.3")
29613 (source
29614 (origin
29615 (method git-fetch)
29616 (uri (git-reference
29617 (url "https://github.com/wentasah/meson-mode")
29618 (commit (string-append "v" version))))
29619 (file-name (git-file-name name version))
29620 (sha256
29621 (base32 "0hlqvq3j4f6g16nj3bm2wbkncn8hv8c8iqd0sch3w80wwqnr622y"))))
29622 (build-system emacs-build-system)
29623 (home-page "https://github.com/wentasah/meson-mode")
29624 (synopsis "Major mode for Meson build system files")
29625 (description
29626 "This is an Emacs major mode for Meson build system files. Syntax
29627 highlighting works reliably. Indentation works too, but there are probably
29628 cases where it breaks.")
29629 (license license:gpl3+)))
29630
29631 (define-public emacs-message-x
29632 ;; Use the latest commit, as there are no tagged releases.
29633 (let ((commit "5524de7bbfdd8749c110f48de5afb024d9f83133")
29634 (revision "0"))
29635 (package
29636 (name "emacs-message-x")
29637 (version (git-version "1.23" revision commit))
29638 (source
29639 (origin
29640 (method git-fetch)
29641 (uri (git-reference
29642 (url "https://github.com/emacsmirror/message-x")
29643 (commit commit)))
29644 (file-name (git-file-name name version))
29645 (sha256
29646 (base32 "0qy1xf11j357lsnbb829hnbg7fq1cii4cx54fwf0wgjh1bv2abvj"))))
29647 (build-system emacs-build-system)
29648 (home-page "https://www.emacswiki.org/emacs/message-x.el")
29649 (synopsis "Customizable completion in message headers")
29650 (description "@code{message-x} assigns a context-sensitive function to
29651 the TAB key in Message mode. When on a header line, it performs completion
29652 based on which header we are in (for example, newsgroup name completion makes
29653 sense on the @samp{Newsgroups} header, whereas mail alias expansion makes
29654 sense in the @samp{To} and @samp{Cc} headers). When in the message body, this
29655 executes a different function (default: @code{indent-relative}).")
29656 (license license:gpl2+))))
29657
29658 (define-public emacs-glsl-mode
29659 ;; No tag, version grabbed from source .el file.
29660 (let ((commit "b07112016436d9634cd4ef747f9af6b01366d136")
29661 (revision "0"))
29662 (package
29663 (name "emacs-glsl-mode")
29664 (version (git-version "2.4" revision commit))
29665 (source
29666 (origin
29667 (method git-fetch)
29668 (uri (git-reference
29669 (url "https://github.com/jimhourihan/glsl-mode")
29670 (commit commit)))
29671 (file-name (git-file-name name version))
29672 (sha256
29673 (base32 "0bav9ipfm0vy26n74ngsmjzc7fsyqz6xmriadzx55s44h8p5dn1s"))))
29674 (build-system emacs-build-system)
29675 (home-page "https://github.com/jimhourihan/glsl-mode")
29676 (synopsis "Major mode for Open GLSL shader files")
29677 (description
29678 "This package provides a major mode for editing OpenGLSL grammar files,
29679 usually files ending with @file{.vert}, @file{.frag}, @file{.glsl} or
29680 @file{.geom}. It is based on C mode plus some features and pre-specified
29681 fontifications.")
29682 (license license:gpl3+))))
29683
29684 (define-public emacs-gnus-harvest
29685 (let ((commit "feda071a87b799bd5d23cacde3ee71f0b166e75d")
29686 (revision "0"))
29687 (package
29688 (name "emacs-gnus-harvest")
29689 (version (git-version "1.0" revision commit))
29690 (source
29691 (origin
29692 (method git-fetch)
29693 (uri (git-reference
29694 (url "https://github.com/jwiegley/gnus-harvest")
29695 (commit commit)))
29696 (file-name (git-file-name name version))
29697 (sha256
29698 (base32 "08zb7vc3v3wdxkzgi902vlc5ybfvm8fxrvm5drnwfsjj9873pbcb"))))
29699 (build-system emacs-build-system)
29700 (inputs
29701 (list sqlite))
29702 (arguments
29703 `(#:phases
29704 (modify-phases %standard-phases
29705 (add-before 'build 'patch-exec-paths
29706 (lambda* (#:key inputs #:allow-other-keys)
29707 (let ((sqlite (assoc-ref inputs "sqlite"))
29708 (file "gnus-harvest.el"))
29709 (make-file-writable file)
29710 (emacs-substitute-variables file
29711 ("gnus-harvest-sqlite-program"
29712 (string-append sqlite "/bin/sqlite3"))))
29713 #t)))))
29714 (home-page "https://github.com/jwiegley/gnus-harvest")
29715 (synopsis
29716 "Harvest email addresses from read/written Gnus articles")
29717 (description "@code{gnus-harvest} notices email address in every message
29718 or post you read or write, and collects them in a SQLite database, which can
29719 be easily and quickly queried to determine the completion list. It optionally
29720 uses BBDB and Message-X.")
29721 (license license:gpl3+))))
29722
29723 (define-public emacs-auto-dictionary-mode
29724 (package
29725 (name "emacs-auto-dictionary-mode")
29726 (version "1.1")
29727 (source
29728 (origin
29729 (method git-fetch)
29730 (uri (git-reference
29731 (url "https://github.com/nschum/auto-dictionary-mode")
29732 (commit version)))
29733 (file-name (git-file-name name version))
29734 (sha256
29735 (base32 "191294k92qp8gmfypf0q8j8qrym96aqikzvyb9p03wqvbr3r1dsk"))))
29736 (build-system emacs-build-system)
29737 (home-page "http://nschum.de/src/emacs/auto-dictionary/")
29738 (synopsis "Automatic dictionary switcher for Emacs spell checking")
29739 (description "@code{auto-dictionary} is a minor mode that hooks into
29740 Flyspell's on-the-fly spell checking and extends these checks to also detect
29741 language. Auto-dictionary then sets @code{ispell-dictionary} to use the
29742 detected language.")
29743 (license license:gpl2+)))
29744
29745 (define-public emacs-persist
29746 (package
29747 (name "emacs-persist")
29748 (version "0.4")
29749 (source
29750 (origin
29751 (method url-fetch)
29752 (uri (string-append "https://elpa.gnu.org/packages/"
29753 "persist-" version ".tar"))
29754 (sha256
29755 (base32 "0gpxy41qawzss2526j9a7lys60vqma1lvamn4bfabwza7gfhac0q"))))
29756 (build-system emacs-build-system)
29757 (home-page "http://elpa.gnu.org/packages/persist.html")
29758 (synopsis "Persist variables between Emacs sessions")
29759 (description
29760 "This package provides variables which persist across sessions.
29761 Values are stored in a directory in @code{user-emacs-directory}, using
29762 one file per value. This makes it easy to delete or remove unused
29763 variables.")
29764 (license license:gpl3+)))
29765
29766 (define-public emacs-company-emoji
29767 (package
29768 (name "emacs-company-emoji")
29769 (version "2.6.1")
29770 (source
29771 (origin
29772 (method git-fetch)
29773 (uri (git-reference
29774 (url "https://github.com/dunn/company-emoji/")
29775 (commit version)))
29776 (file-name (git-file-name name version))
29777 (sha256
29778 (base32 "1rhf2hr345953mkn52i58aiq8j16ps2ckapd5f7jxmhkcpzxxfhk"))))
29779 (build-system emacs-build-system)
29780 (propagated-inputs
29781 (list emacs-company))
29782 (home-page "https://github.com/dunn/company-emoji/")
29783 (synopsis "Company completion back-end for emoji")
29784 (description
29785 "This library is a Company back-end providing auto-completion for
29786 emoji.")
29787 (license license:gpl3+)))
29788
29789 (define-public emacs-exiftool
29790 (package
29791 (name "emacs-exiftool")
29792 (version "0.3.2")
29793 (source
29794 (origin
29795 (method git-fetch)
29796 (uri (git-reference
29797 (url "https://git.systemreboot.net/exiftool.el/")
29798 (commit (string-append "v" version))))
29799 (file-name (git-file-name name version))
29800 (sha256
29801 (base32
29802 "0bv58is66cz21yhc0qqkp1z4nk13zfi2l7i6pjbhyi0g1n88qqyv"))))
29803 (build-system emacs-build-system)
29804 (arguments
29805 `(#:tests? #t
29806 #:test-command '("make" "-C" "tests")
29807 #:phases
29808 (modify-phases %standard-phases
29809 (add-after 'unpack 'configure
29810 (lambda* (#:key inputs #:allow-other-keys)
29811 (make-file-writable "exiftool.el")
29812 (emacs-substitute-variables "exiftool.el"
29813 ("exiftool-executable"
29814 (search-input-file inputs "/bin/exiftool"))))))))
29815 (inputs
29816 (list perl-image-exiftool))
29817 (home-page "https://git.systemreboot.net/exiftool.el/about/")
29818 (synopsis "Elisp wrapper around ExifTool")
29819 (description "@code{emacs-exiftool} is an Elisp wrapper around ExifTool.
29820 ExifTool supports reading and writing metadata in various formats including
29821 EXIF, XMP and IPTC.")
29822 (license license:gpl3+)))
29823
29824 (define-public emacs-password-generator
29825 (package
29826 (name "emacs-password-generator")
29827 (version "1.01")
29828 (home-page "https://github.com/zargener/emacs-password-genarator")
29829 (source
29830 (origin
29831 (method git-fetch)
29832 (uri (git-reference
29833 (url home-page)
29834 (commit "904cdb591a04305ba882ce19e1d117f5fa60f7d3")))
29835 (file-name (git-file-name name version))
29836 (sha256
29837 (base32
29838 "1qgvn79qz1h8ykm5i1qv2fja4v2y0g2i0n5sf7byhnqhqlwn63nv"))))
29839 (build-system emacs-build-system)
29840 (synopsis "Generate passwords inside Emacs")
29841 (description "@code{emacs-password-generator} provides simple functions to
29842 generate random passwords and insert them into the current buffer. It also
29843 supports generation of phonetic and numeric passwords.")
29844 (license license:artistic2.0)))
29845
29846 (define-public emacs-csv
29847 (package
29848 (name "emacs-csv")
29849 (version "2.1")
29850 (home-page "https://gitlab.com/u11/csv.el")
29851 (source
29852 (origin
29853 (method git-fetch)
29854 (uri (git-reference
29855 (url home-page)
29856 (commit (string-append "V" version))))
29857 (file-name (git-file-name name version))
29858 (sha256
29859 (base32
29860 "1vmazjrfcsa9aa9aw8bq5sazdhqvhxyj837dyw5lmh8gk7z0xdaa"))))
29861 (build-system emacs-build-system)
29862 (synopsis "Elisp functions for reading and parsing CSV files")
29863 (description
29864 "@code{csv.el} provides functions for reading and parsing @acronym{CSV,
29865 Comma-Separated Values} files. It follows the format as defined in RFC 4180
29866 @emph{Common Format and MIME Type for CSV
29867 Files} (@url{http://tools.ietf.org/html/rfc4180}).")
29868 (license license:gpl3+)))
29869
29870 (define-public emacs-org-journal
29871 (package
29872 (name "emacs-org-journal")
29873 (version "2.1.2")
29874 (source
29875 (origin
29876 (method git-fetch)
29877 (uri (git-reference
29878 (url "https://github.com/bastibe/org-journal")
29879 (commit version)))
29880 (file-name (git-file-name name version))
29881 (sha256
29882 (base32 "0s82sh2svc0mzr1ak414n5r2j0dmwvvyx4swk2c61zivc2gjd778"))))
29883 (build-system emacs-build-system)
29884 (home-page "https://github.com/bastibe/org-journal")
29885 (synopsis "Simple Org mode journaling mode")
29886 (description
29887 "Org Journal is a set of functions to maintain a simple personal diary /
29888 journal using in Emacs, adapted from
29889 @url{https://www.emacswiki.org/emacs/PersonalDiary}. Convenient bindings
29890 allow the creation of journal records in the current daily, weekly, monthly or
29891 yearly file and search within all records or specified time intervals. All
29892 records can be browsed and searched from the Emacs Calendar for convenience.
29893 All entries in a specified TODO state will be carried over to the next day.")
29894 (license license:bsd-3)))
29895
29896 (define-public emacs-org-static-blog
29897 (package
29898 (name "emacs-org-static-blog")
29899 (version "1.5.0")
29900 (source
29901 (origin
29902 (method git-fetch)
29903 (uri (git-reference
29904 (url "https://github.com/bastibe/org-static-blog")
29905 (commit version)))
29906 (file-name (git-file-name name version))
29907 (sha256
29908 (base32 "1p9v40mm8p25b9xgfahwqqx4c36aqnl9yyjjdhkp6x5xkhkdf7by"))))
29909 (build-system emacs-build-system)
29910 (home-page "https://github.com/bastibe/org-static-blog")
29911 (synopsis
29912 "Simple Org mode based static blog generator")
29913 (description
29914 "@code{emacs-org-static-blog} is one more static blog generator, it
29915 focuses on being simple. All files are simple Org files in a directory. The
29916 only requirement is that every Org file must have a @samp{title} and
29917 a @samp{date} keywords, and optionally, a @samp{filetags} keyword.")
29918 (license license:bsd-3)))
29919
29920 (define-public emacs-ddskk
29921 ;; XXX: Upstream adds code names to their release tags, so version and code
29922 ;; name below need to be updated together.
29923 (let ((version "17.1")
29924 (code-name "Neppu"))
29925 (package
29926 (name "emacs-ddskk")
29927 (version version)
29928 (source
29929 (origin
29930 (method git-fetch)
29931 (uri (git-reference
29932 (url "https://github.com/skk-dev/ddskk")
29933 (commit (string-append "ddskk-" version "_" code-name))))
29934 (file-name (git-file-name name version))
29935 (sha256
29936 (base32 "0xm53rybxki2784gyjkafg6956viyhhcq51kbmnrwc6aw3yzh7aw"))))
29937 (build-system gnu-build-system)
29938 (arguments
29939 `(#:modules ((guix build gnu-build-system)
29940 (guix build utils)
29941 (guix build emacs-utils))
29942 #:imported-modules (,@%gnu-build-system-modules
29943 (guix build emacs-utils))
29944 #:test-target "test"
29945 #:phases
29946 (modify-phases %standard-phases
29947 (replace 'configure
29948 (lambda* (#:key outputs #:allow-other-keys)
29949 (make-file-writable "SKK-MK")
29950 (emacs-substitute-variables "SKK-MK"
29951 ("PREFIX" (assoc-ref outputs "out"))
29952 ("LISPDIR" '(expand-file-name "/share/emacs/site-lisp" PREFIX))
29953 ("SKK_PREFIX" "")
29954 ("SKK_INFODIR" '(expand-file-name "info" PREFIX)))
29955 (for-each make-file-writable (find-files "./doc"))
29956 #t))
29957 (add-after 'unpack 'fix-test
29958 (lambda _
29959 (substitute* "Makefile"
29960 (("/bin/rm") (which "rm"))))))))
29961 (native-inputs
29962 (list emacs-minimal ruby))
29963 (home-page "https://github.com/skk-dev/ddskk")
29964 (synopsis "Simple Kana to Kanji conversion program")
29965 (description
29966 "Daredevil SKK is a version of @acronym{SKK, Simple Kana to Kanji
29967 conversion program}, a Japanese input method on Emacs.")
29968 (license license:gpl2+))))
29969
29970 (define-public emacs-ddskk-nicola
29971 (package
29972 (inherit emacs-ddskk)
29973 (name "emacs-ddskk-nicola")
29974 (propagated-inputs
29975 (list emacs-ddskk))
29976 (arguments
29977 `(#:make-flags
29978 (let ((out (assoc-ref %outputs "out")))
29979 (append
29980 (list (string-append "PREFIX=" out)
29981 (string-append "LISPDIR=" out "/share/emacs/site-lisp"))))
29982 #:tests? #f ; no tests in this subtree
29983 ,@(substitute-keyword-arguments (package-arguments emacs-ddskk)
29984 ((#:phases phases)
29985 `(modify-phases ,phases
29986 (add-after 'unpack 'chdir
29987 (lambda _
29988 (chdir "nicola")
29989 #t))
29990 (replace 'configure
29991 (lambda* (#:key outputs #:allow-other-keys)
29992 (make-file-writable "NICOLA-DDSKK-CFG")
29993 (emacs-substitute-sexps "NICOLA-DDSKK-CFG"
29994 ("setq NICOLA-DDSKK_PREFIX" ""))
29995 #t)))))))
29996 (synopsis "Nicola layout for Daredevil SKK")
29997 (description
29998 "Daredevil SKK is a version of @acronym{SKK, Simple Kana to Kanji
29999 conversion program}, a Japanese input method on Emacs. This package adds
30000 support for the Nicola keyboard layout to it.")))
30001
30002 (define-public emacs-objed
30003 (package
30004 (name "emacs-objed")
30005 (version "0.8.3")
30006 (source
30007 (origin
30008 (method url-fetch)
30009 (uri (string-append
30010 "https://elpa.gnu.org/packages/objed-" version ".tar"))
30011 (sha256
30012 (base32
30013 "1s38d6bvggdk5p45ww1jb4gxifzgjwgw1m6ar920nlg0j4fgbcvr"))))
30014 (build-system emacs-build-system)
30015 (home-page "https://github.com/clemera/objed")
30016 (synopsis "Navigate and edit text objects")
30017 (description
30018 "@code{emacs-objed} allows navigating and editing text objects. It
30019 enables modal editing and composition of commands, too. It combines ideas of
30020 other Editors like Vim or Kakoune and tries to align them with regular Emacs
30021 conventions.")
30022 (license license:gpl3+)))
30023
30024 (define-public emacs-haskell-snippets
30025 ;; The commit below is 7 commits ahead of release, and includes a build fix.
30026 ;; And also a fix in one snippet.
30027 (let ((commit "1c29c4a68ce89848b8d371c6510d1de3b586c8b3"))
30028 (package
30029 (name "emacs-haskell-snippets")
30030 (version (git-version "0.1.0" "1" commit))
30031 (source
30032 (origin
30033 (method git-fetch)
30034 (uri
30035 (git-reference
30036 (url "https://github.com/haskell/haskell-snippets")
30037 (commit commit)))
30038 (file-name (git-file-name name version))
30039 (sha256
30040 (base32 "1lwnggarmavyf164cfzbzzkq9ffahhd3bz7gw644czs49sndcawf"))))
30041 (build-system emacs-build-system)
30042 (arguments
30043 (list
30044 #:phases
30045 #~(modify-phases %standard-phases
30046 (add-after 'install 'install-snippets
30047 (lambda _
30048 (let ((snippets
30049 (string-append
30050 #$output "/share/emacs/site-lisp/snippets/haskell-mode")))
30051 (mkdir-p snippets)
30052 (copy-recursively "snippets/haskell-mode" snippets)))))))
30053 (propagated-inputs
30054 (list emacs-yasnippet))
30055 (home-page "https://github.com/haskell/haskell-snippets")
30056 (synopsis "Official collection of YASnippet Haskell snippets for Emacs")
30057 (description "Haskell-Snippets is a collection of YASnippet Haskell
30058 snippets for Emacs.")
30059 (license license:expat))))
30060
30061 (define-public emacs-org-roam
30062 (package
30063 (name "emacs-org-roam")
30064 (version "2.2.2")
30065 (source
30066 (origin
30067 (method git-fetch)
30068 (uri (git-reference
30069 (url "https://github.com/org-roam/org-roam")
30070 (commit (string-append "v" version))))
30071 (file-name (git-file-name name version))
30072 (sha256
30073 (base32 "09wcqdqy2gcsyd1mbcm90b70y3qj921m4ky8l3avhzpdwgyw8wy5"))))
30074 (build-system emacs-build-system)
30075 (arguments
30076 (list
30077 #:phases
30078 #~(modify-phases %standard-phases
30079 ;; Move the extensions source files to the top level, which
30080 ;; is included in the EMACSLOADPATH.
30081 (add-after 'unpack 'move-source-files
30082 (lambda _
30083 (let ((el-files (find-files "./extensions" ".*\\.el$")))
30084 (for-each (lambda (f)
30085 (rename-file f (basename f)))
30086 el-files))))
30087 (add-after 'move-source-files 'patch-exec-paths
30088 (lambda* (#:key inputs #:allow-other-keys)
30089 (make-file-writable "org-roam-graph.el")
30090 (emacs-substitute-variables "org-roam-graph.el"
30091 ("org-roam-graph-executable"
30092 (search-input-file inputs "/bin/dot")))))
30093 (add-after 'install 'install-image
30094 (lambda* (#:key outputs #:allow-other-keys)
30095 (install-file "doc/images/org-ref-citelink.png"
30096 (string-append #$output "/share/info/images"))))
30097 (add-after 'install-image 'make-info
30098 (lambda* (#:key outputs #:allow-other-keys)
30099 (with-directory-excursion "doc"
30100 (invoke "makeinfo" "-o" "org-roam.info" "org-roam.texi")
30101 (install-file "org-roam.info"
30102 (string-append #$output "/share/info"))))))))
30103 (inputs
30104 (list graphviz))
30105 (native-inputs
30106 (list texinfo))
30107 (propagated-inputs
30108 (list emacs-dash
30109 emacs-emacsql-sqlite3
30110 emacs-f
30111 emacs-magit
30112 emacs-org
30113 emacs-s))
30114 (home-page "https://github.com/org-roam/org-roam/")
30115 (synopsis "Non-hierarchical note-taking with Org mode")
30116 (description "Emacs Org Roam is a solution for taking non-hierarchical
30117 notes with Org mode. Notes are captured without hierarchy and are connected
30118 by tags. Notes can be found and created quickly. Org Roam should also work
30119 as a plug-and-play solution for anyone already using Org mode for their
30120 personal wiki.")
30121 (license license:gpl3+)))
30122
30123 (define-public emacs-org-roam-bibtex
30124 (package
30125 (name "emacs-org-roam-bibtex")
30126 (version "0.6.2")
30127 (source
30128 (origin
30129 (method git-fetch)
30130 (uri (git-reference
30131 (url "https://github.com/org-roam/org-roam-bibtex")
30132 (commit (string-append "v" version))))
30133 (file-name (git-file-name name version))
30134 (sha256
30135 (base32 "166n1q30xamms4lfqq9vp0yknq33gwlk54qaravxxwz01fdpgb25"))))
30136 (build-system emacs-build-system)
30137 (propagated-inputs
30138 (list emacs-helm-bibtex emacs-org-ref emacs-org-roam))
30139 (home-page "https://github.com/org-roam/org-roam-bibtex")
30140 (synopsis "Connector between Org Roam, BibTeX-completion, and Org Ref")
30141 (description
30142 "Org Roam BibTeX is a library which offers a tighter integration between
30143 Org Roam, Helm-BibTeX, and Org Ref. It allows users to access their
30144 bibliographical notes in Org Roam directory via Helm BibTeX, Ivy BibTeX, or by
30145 opening Org Ref's @code{cite:} links.")
30146 (license license:gpl3+)))
30147
30148 (define-public emacs-org-generate
30149 (package
30150 (name "emacs-org-generate")
30151 (version "1.0.0")
30152 (source (origin
30153 (method git-fetch)
30154 (uri (git-reference
30155 (url "https://github.com/conao3/org-generate.el")
30156 (commit (string-append "v" version))))
30157 (file-name (git-file-name name version))
30158 (sha256
30159 (base32
30160 "0z2frp5mn3lp2xskwanw2rncrwa50x3aphy87vfxmhx4fqlqrzy8"))))
30161 (inputs
30162 (list emacs-cort emacs-with-simulated-input))
30163 (propagated-inputs
30164 (list emacs-mustache))
30165 (arguments
30166 ;; FIXME: Tests fail with "Wrong type argument: sequencep, :equal". It
30167 ;; seems to be an issue with Cort library.
30168 `(#:tests? #f
30169 #:test-command '("emacs" "--batch" "--quick"
30170 "--directory=." "--load=org-generate-tests.el"
30171 "--funcall=cort-test-run")))
30172 (build-system emacs-build-system)
30173 (home-page "https://github.com/conao3/org-generate.el")
30174 (synopsis "Generate template files and folders from Org document")
30175 (description "This package generates files and folders from Emacs
30176 org-mode templates.")
30177 (license license:gpl3+)))
30178
30179 (define-public emacs-uml-mode
30180 ;; Package has no release. Version is extracted from "Version:" keyword in
30181 ;; main file.
30182 (let ((commit "4c37ac1c4424b2313cd8f16ba48a98a4cc214200")
30183 (revision "1"))
30184 (package
30185 (name "emacs-uml-mode")
30186 (version (git-version "0.0.4" revision commit))
30187 (source
30188 (origin
30189 (method git-fetch)
30190 (uri (git-reference
30191 (url "https://github.com/ianxm/emacs-uml")
30192 (commit commit)))
30193 (file-name (git-file-name name version))
30194 (sha256
30195 (base32 "145i4srnfvd1vyibri2a1l6p9mbjvkkwlrpi41134pbarqffcnka"))))
30196 (build-system emacs-build-system)
30197 (home-page "https://github.com/ianxm/emacs-uml")
30198 (synopsis "Minor mode for editing ASCII UML sequence diagrams")
30199 (description "Emacs UML mode is a minor mode that makes it easy to build
30200 ASCII UML sequence diagrams in Emacs, which can be embedded in source code,
30201 comments or emails.")
30202 (license license:gpl3+))))
30203
30204 (define-public emacs-trashed
30205 (package
30206 (name "emacs-trashed")
30207 (version "2.1.3")
30208 (source
30209 (origin
30210 (method git-fetch)
30211 (uri (git-reference
30212 (url "https://github.com/shingo256/trashed/")
30213 (commit version)))
30214 (file-name (git-file-name name version))
30215 (sha256
30216 (base32 "08v7g2zgrad0r0n4pla8j3i2aql46byq82jr712cvxhydd5gnzf9"))))
30217 (build-system emacs-build-system)
30218 (home-page "https://github.com/shingo256/trashed/")
30219 (synopsis "View and edit system trash can in Emacs")
30220 (description "Open, view, browse, restore or permanently delete trashed
30221 files or directories in trash can with Dired-like look and feel. The trash
30222 can has to be compliant with freedesktop.org. In Emacs, you can trash files by
30223 deleting them with @code{(setq delete-by-moving-to-trash t)}. This package
30224 provides a simple but convenient user interface to manage those trashed
30225 files.")
30226 (license license:gpl3+)))
30227
30228 (define-public emacs-placeholder
30229 ;; No tags.
30230 (let ((commit "b80cb152ddd63db40cc581eafee9d2ac08328df8"))
30231 (package
30232 (name "emacs-placeholder")
30233 (version "0.1")
30234 (source (origin
30235 (method git-fetch)
30236 (uri (git-reference
30237 (url "https://github.com/oantolin/placeholder")
30238 (commit commit)))
30239 (file-name (git-file-name name version))
30240 (sha256
30241 (base32
30242 "1ifiaxrp7inj70a3zf5137dih4b1sw38zmkp3h7dj79k2bv7h34h"))))
30243 (build-system emacs-build-system)
30244 (home-page "https://github.com/oantolin/placeholder")
30245 (synopsis "Treat any buffer as a template with placeholders to fill-in")
30246 (description
30247 "This package provides a simple way to treat text in a buffer as a template
30248 with placeholders where text needs to be filled in. Any occurrence of
30249 @code{<++>} in the buffer is a placeholder. You can navigate among the
30250 placeholder with the placeholder-forward and placeholder-backward commands.
30251 They move the point to the next placeholder in the specified direction and
30252 delete the placeholder so you can immediately start typing the text that
30253 should replace it. However, if you call them again immediately after, they
30254 restore that occurrence of the placeholder and move to the next.")
30255 (license license:gpl3+))))
30256
30257 (define-public emacs-plantuml-mode
30258 (package
30259 (name "emacs-plantuml-mode")
30260 (version "1.4.1")
30261 (source
30262 (origin
30263 (method git-fetch)
30264 (uri (git-reference
30265 (url "https://github.com/skuro/plantuml-mode")
30266 (commit (string-append "v" version))))
30267 (file-name (git-file-name name version))
30268 (sha256
30269 (base32 "0yp41d2dmf3sx7qnl5x0zdjcr9y71b2wwc9m0q31v22xqn938ipc"))))
30270 (arguments
30271 '(#:phases
30272 (modify-phases %standard-phases
30273 (add-after 'unpack 'use-local-plantuml
30274 (lambda* (#:key inputs #:allow-other-keys)
30275 (let ((plantuml (assoc-ref inputs "plantuml"))
30276 (file "plantuml-mode.el"))
30277 (chmod file #o644)
30278 (emacs-substitute-variables file
30279 ("plantuml-jar-path"
30280 (string-append plantuml "/share/java/plantuml.jar"))
30281 ("plantuml-executable-path"
30282 (string-append plantuml "/bin/plantuml"))
30283 ("plantuml-server-url" 'nil)
30284 ("plantuml-default-exec-mode" ''executable))
30285 (emacs-batch-edit-file file
30286 `(progn (progn
30287 (goto-char (point-min))
30288 (re-search-forward "(defun plantuml-download-jar")
30289 (beginning-of-line)
30290 (kill-sexp))
30291 (basic-save-buffer)))
30292 #t))))))
30293 (inputs
30294 (list plantuml))
30295 (propagated-inputs
30296 (list emacs-dash))
30297 (build-system emacs-build-system)
30298 (home-page "https://github.com/skuro/plantuml-mode")
30299 (synopsis "Major mode for editing PlantUML sources")
30300 (description "This package provides a major mode for editing PlantUML
30301 sources. It features syntax highlighting, autocompletion, preview of buffer
30302 or region and use of locally installed binaries.")
30303 (license license:gpl3+)))
30304
30305 (define-public emacs-execline
30306 (package
30307 (name "emacs-execline")
30308 (version "1.1")
30309 (source (origin
30310 (method git-fetch)
30311 (uri (git-reference
30312 (url "https://gitlab.com/KAction/emacs-execline/")
30313 (commit (string-append "v" version))))
30314 (file-name (git-file-name name version))
30315 (sha256
30316 (base32
30317 "02q531c9wvdwflhggflnci4a36h2bb90bq25bbhw6i2lvrd9sk55"))))
30318 (build-system emacs-build-system)
30319 (propagated-inputs
30320 (list emacs-s))
30321 (arguments
30322 `(#:tests? #t
30323 #:test-command '("emacs" "-Q" "-batch" "-L" "."
30324 "-l" "t/indent.el"
30325 "-f" "ert-run-tests-batch-and-exit")))
30326 (home-page "https://gitlab.com/KAction/emacs-execline/")
30327 (synopsis "Major Emacs mode for editing execline scripts")
30328 (description
30329 "This package provides a major mode for editing execline scripts.
30330
30331 Features:
30332 @itemize
30333 @item Syntax highlighting of commends, builtin commands and variable substitution.
30334 @item Completion of builtin commands.
30335 @item Working @code{comment-region} command.
30336 @item Indentation of blocks.
30337 @item Automatic enable of mode in @file{*.exec} files.
30338 @item Automatic enable of mode in files with @code{execlineb} interpreter.
30339 @end itemize\n")
30340 (license license:gpl3+)))
30341
30342 (define-public emacs-pcmpl-args
30343 (package
30344 (name "emacs-pcmpl-args")
30345 (version "0.1.3")
30346 (source
30347 (origin
30348 (method git-fetch)
30349 (uri (git-reference
30350 (url "https://github.com/JonWaltman/pcmpl-args.el")
30351 (commit version)))
30352 (sha256
30353 (base32 "19xwwpfcf0l9jh7xixyjd5adivj27jw00zvxb7n1240k5p332pzi"))
30354 (file-name (git-file-name name version))))
30355 (build-system emacs-build-system)
30356 (home-page "https://github.com/JonWaltman/pcmpl-args.el")
30357 (synopsis "Enhanced shell command completion")
30358 (description
30359 "pcmpl-args extends option and argument completion of shell commands read
30360 by Emacs. It is intended to make shell completion in Emacs comparable to the
30361 rather excellent completion provided by both Bash and Zsh.")
30362 (license license:gpl3+)))
30363
30364 (define-public emacs-shell-command+
30365 ;; XXX: Upstream did not tag last release. The commit below corresponds to
30366 ;; the exact version bump.
30367 (let ((commit "bf744c63bbd1e3bbb93407bd32d6da670b23e67e"))
30368 (package
30369 (name "emacs-shell-command+")
30370 (version "2.3.2")
30371 (source (origin
30372 (method git-fetch)
30373 (uri (git-reference
30374 (url "https://git.sr.ht/~pkal/shell-command-plus")
30375 (commit commit)))
30376 (file-name (git-file-name name version))
30377 (sha256
30378 (base32 "0prlvcryq5ngrzn5f45rkw09wbr99v7nnwps2bjrjc3wvr2rp6h0"))))
30379 (build-system emacs-build-system)
30380 (home-page "http://elpa.gnu.org/packages/shell-command+.html")
30381 (synopsis "Extended Emacs @code{shell-command}")
30382 (description
30383 "Shell-command+ is a @code{shell-command} substitute that extends the
30384 regular Emacs command with several features. You can for example count all
30385 the lines in a buffer with @code{> wc -l}, or delete all lower case letters in
30386 the selected region with @code{| tr -d a-z}.")
30387 (license license:gpl3+))))
30388
30389 (define-public emacs-shell-pop
30390 (let ((commit "4b4394037940a890a313d715d203d9ead2d156a6")
30391 (revision "0"))
30392 (package
30393 (name "emacs-shell-pop")
30394 (version (git-version "0.64" revision commit))
30395 (source
30396 (origin
30397 (method git-fetch)
30398 (uri (git-reference
30399 (url "https://github.com/kyagi/shell-pop-el")
30400 (commit commit)))
30401 (file-name (git-file-name name version))
30402 (sha256
30403 (base32 "0s77n6b9iw1x3dv91ybkpgy3zvqd12si7zw3lg0m2b6j1akrawsg"))))
30404 (build-system emacs-build-system)
30405 (home-page "https://github.com/kyagi/shell-pop-el")
30406 (synopsis "Utility which helps with pop up shell buffer")
30407 (description
30408 "This Emacs utility helps you pop up and pop out shell buffer window
30409 easily. Four pre-set options are: @samp{shell}, @samp{terminal},
30410 @samp{ansi-term}, and @samp{eshell}. You can also set your custom shell if
30411 you use some other configuration.")
30412 (license license:gpl3+))))
30413
30414 (define-public emacs-tshell
30415 ;; XXX: Upstream has no tagged release. Version is extracted from keyword
30416 ;; in main file.
30417 (let ((commit "47ef3a6c537b06eb422d9a124e1c44062223e323")
30418 (revision "0"))
30419 (package
30420 (name "emacs-tshell")
30421 (version (git-version "0.1.0" revision commit))
30422 (source
30423 (origin
30424 (method git-fetch)
30425 (uri (git-reference
30426 (url "https://github.com/TatriX/tshell")
30427 (commit commit)))
30428 (file-name (git-file-name name version))
30429 (sha256
30430 (base32 "0yv38bqdp6b614lbj4v408vv5mlic3vs1v7266xrfxm1cm903apj"))))
30431 (build-system emacs-build-system)
30432 (propagated-inputs
30433 (list emacs-transient))
30434 (home-page "https://github.com/TatriX/tshell")
30435 (synopsis "Experimental buffer-oriented Emacs shell")
30436 (description
30437 "Tshell is an experimental buffer-oriented shell. It supports shell
30438 and Emacs lisp commands.")
30439 (license license:gpl3+))))
30440
30441 (define-public emacs-extmap
30442 (package
30443 (name "emacs-extmap")
30444 (version "1.2.1")
30445 (source
30446 (origin
30447 (method git-fetch)
30448 (uri (git-reference
30449 (url "https://github.com/doublep/extmap")
30450 (commit version)))
30451 (file-name (git-file-name name version))
30452 (sha256
30453 (base32 "00415w4l9wfpw9v0a35dm1av2w1m6s36yr9f9286jg844x6l375f"))))
30454 (build-system emacs-build-system)
30455 (home-page "https://github.com/doublep/extmap")
30456 (synopsis "Externally-stored constant mapping for Emacs Lisp")
30457 (description "Extmap is a very simple package that lets you build a
30458 read-only, constant database that maps Emacs Lisp symbols to
30459 arbitrary Emacs Lisp objects.")
30460 (license license:gpl3+)))
30461
30462 (define-public emacs-csound-mode
30463 (package
30464 (name "emacs-csound-mode")
30465 (version "0.2.1")
30466 (source
30467 (origin
30468 (method git-fetch)
30469 (uri (git-reference
30470 (url "https://github.com/hlolli/csound-mode")
30471 (commit version)))
30472 (file-name (git-file-name name version))
30473 (sha256
30474 (base32
30475 "1c88ak0jaj51fwiqniqxd7xyk23wjl9m57znzm8j267ld8g12znp"))))
30476 (build-system emacs-build-system)
30477 (arguments
30478 `(#:phases
30479 (modify-phases %standard-phases
30480 (add-after 'unpack 'disable-breaking-compilation
30481 (lambda _
30482 (for-each (lambda (file)
30483 (chmod file #o600) ; needed to write changes.
30484 (emacs-batch-disable-compilation file))
30485 '("csound-font-lock.el"))
30486 #t)))))
30487 (inputs
30488 (list emacs-highlight emacs-multi emacs-shut-up))
30489 (home-page "https://github.com/hlolli/csound-mode")
30490 (synopsis "Emacs major mode for coding in CSound")
30491 (description "Provides both a basic major mode for editing
30492 CSound files, as well as a REPL for fast feedback when composing
30493 and sound-designing.")
30494 (license license:gpl3+)))
30495
30496 (define-public emacs-multi
30497 (package
30498 (name "emacs-multi")
30499 (version "2.0.1")
30500 (source
30501 (origin
30502 (method git-fetch)
30503 (uri (git-reference
30504 (url "https://github.com/kurisuwhyte/emacs-multi")
30505 (commit (string-append "v" version))))
30506 (file-name (git-file-name name version))
30507 (sha256
30508 (base32
30509 "11zabs7qpdhri6n90ck7pgwcbz46d813nyl73h5m1i8jvz1wzx7v"))))
30510 (build-system emacs-build-system)
30511 (home-page "https://github.com/kurisuwhyte/emacs-multi")
30512 (synopsis "Clojure-style multi-methods for Emacs Lisp")
30513 (description "Provides Emacs Lisp with a form of polymorphism
30514 by way of predicate dispatching. Methods consist of a dispatch
30515 function, and a series of branches. The dispatch function is
30516 applied to the arguments, and the result value is checked against
30517 the expectations of each branch to define which one to invoke.")
30518 (license license:expat)))
30519
30520 (define-public emacs-highlight
30521 (let ((commit "9258a2b8362d737115cbd87618f947eadb140411")
30522 (revision "1"))
30523 (package
30524 (name "emacs-highlight")
30525 (version "0.0.0")
30526 (source
30527 (origin
30528 (method git-fetch)
30529 (uri (git-reference
30530 (url "https://github.com/emacsmirror/highlight/")
30531 (commit commit)))
30532 (file-name (git-file-name name commit))
30533 (sha256
30534 (base32
30535 "0pbqzgbfkm8smi23j94hirxh2r1yc0ipyjbbv1y906br6bx5c1a8"))))
30536 (build-system emacs-build-system)
30537 (home-page "https://github.com/emacsmirror/highlight")
30538 (synopsis "Highlighting commands for GNU Emacs")
30539 (description "This library adds the possibility for ad-hoc
30540 applying highlighting to any face in GNU Emacs. The functionality
30541 of this library depends on overlays, which by default are not
30542 picked up when copy-pasting text from buffer to buffer.")
30543 (license license:gpl2+))))
30544
30545 (define-public emacs-org-webring
30546 (package
30547 (name "emacs-org-webring")
30548 (version "2.0.0")
30549 (source
30550 (origin
30551 (method git-fetch)
30552 (uri (git-reference
30553 (url "https://git.sr.ht/~brettgilio/org-webring")
30554 (commit version)))
30555 (file-name (git-file-name name version))
30556 (sha256
30557 (base32
30558 "1si0jah7n2gvlvghjy5dpannqpkxni5rczfp1x2a4z6ydalr3bn5"))))
30559 (build-system emacs-build-system)
30560 (arguments
30561 `(#:phases
30562 (modify-phases %standard-phases
30563 (add-after 'install 'install-assets
30564 (lambda* (#:key outputs #:allow-other-keys)
30565 (let* ((out (assoc-ref outputs "out"))
30566 (assets
30567 (string-append out "/share/emacs/org-webring-assets")))
30568 (mkdir-p assets)
30569 (copy-recursively "assets" assets)
30570 #t))))))
30571 (propagated-inputs
30572 (list emacs-xmlgen))
30573 (home-page "https://sr.ht/~brettgilio/org-webring")
30574 (synopsis "Generate webrings for Org-based sites / blogs")
30575 (description "Org-webring is an alternative implementation of a
30576 feed-based webring, taking inspiration from openring by Drew DeVault.
30577 Intended to integrate with Org-based websites and blogs (either
30578 directly, or indirectly, as in ox-hugo), it will fetch a given list of
30579 web feed files and correctly parse and format the elements to be
30580 displayed for sharing.")
30581 (license license:gpl3+)))
30582
30583 (define-public emacs-orglink
30584 (package
30585 (name "emacs-orglink")
30586 (version "1.2.0")
30587 (source
30588 (origin
30589 (method git-fetch)
30590 (uri (git-reference
30591 (url "https://github.com/tarsius/orglink")
30592 (commit version)))
30593 (file-name (git-file-name name version))
30594 (sha256
30595 (base32 "1619ly90vh2lla5rbw87a4n0rfal3wpbf7005jjiyv2ay88nc7l9"))))
30596 (build-system emacs-build-system)
30597 (home-page "https://github.com/tarsius/orglink")
30598 (synopsis "Use Org mode links in other modes")
30599 (description "This library implements support for some Org mode link types
30600 in other major modes. Links can be opened and edited like in Org mode.")
30601 (license license:gpl3+)))
30602
30603 (define-public emacs-scpaste
30604 (let ((commit "cd4fa0aafecd839736e0b6cba68b4fc4d7045472")
30605 (revision "0"))
30606 (package
30607 (name "emacs-scpaste")
30608 (version "0.6.5")
30609 (source
30610 (origin
30611 (method git-fetch)
30612 (uri (git-reference
30613 (url "https://git.sr.ht/~technomancy/scpaste")
30614 (commit commit)))
30615 (file-name (git-file-name name commit))
30616 (sha256
30617 (base32
30618 "1nvwbwl26z03963g9c82b3ggm39r95z1vp7c9qsa9mjm46dyq27w"))))
30619 (build-system emacs-build-system)
30620 (propagated-inputs
30621 (list emacs-htmlize))
30622 (home-page "https://git.sr.ht/~technomancy/scpaste")
30623 (synopsis "Emacs-based static HTML pastebin")
30624 (description "This library will place an HTML copy of a
30625 buffer on an active webserver to which the user has SSH access.
30626 It is similar in purpose to services such as Gist or Pastebin,
30627 but is much simpler since it assumes the user has access to a
30628 publicly-accessible HTTP server.")
30629 (license license:gpl3+))))
30630
30631 (define-public emacs-company-reftex
30632 (package
30633 (name "emacs-company-reftex")
30634 (version "0.1.0")
30635 (source
30636 (origin
30637 (method git-fetch)
30638 (uri (git-reference
30639 (url "https://github.com/TheBB/company-reftex")
30640 (commit "275ef708f08d3bf0eb30632148e5c6184eeaacdb")))
30641 (file-name (git-file-name name version))
30642 (sha256
30643 (base32
30644 "118cgw5lsffqdqz95mnkw36mmnsbg9m52r2np4m7v14mjjwr9fby"))))
30645 (build-system emacs-build-system)
30646 (propagated-inputs
30647 (list emacs-company emacs-s))
30648 (home-page "https://github.com/TheBB/company-reftex")
30649 (synopsis "RefTeX backends for company-mode")
30650 (description "This package provides company-mode backends for completing
30651 label references and citations in LaTeX. It is based on RefTeX, which is
30652 included with Emacs.")
30653 (license license:gpl3+)))
30654
30655 (define-public emacs-company-org-block
30656 (let ((commit "115af0a3625f4669358eca568466d468cacc78bd")
30657 (revision "1"))
30658 (package
30659 (name "emacs-company-org-block")
30660 (version (git-version "0.3" revision commit))
30661 (source (origin
30662 (method git-fetch)
30663 (uri (git-reference
30664 (url "https://github.com/xenodium/company-org-block")
30665 (commit commit)))
30666 (file-name (git-file-name name version))
30667 (sha256
30668 (base32
30669 "13kdwi4d1pvba6wv9yn1s0dl4cnq61zwf3j647d1s5ybqlrw5f4r"))))
30670 (build-system emacs-build-system)
30671 (propagated-inputs
30672 (list emacs-company))
30673 (home-page "https://github.com/xenodium/company-org-block")
30674 (synopsis "Emacs @code{company-complete} for Org blocks")
30675 (description
30676 "Insert Emacs Org blocks with completion via @code{company} mode.")
30677 (license license:gpl3+))))
30678
30679 (define-public emacs-html-to-hiccup
30680 ;; Package has no release. Version is extracted from "Version:" keyword in
30681 ;; main file.
30682 (let ((commit "50a52e2b0d13d865187acdf775b8203d5003f2f1")
30683 (revision "0"))
30684 (package
30685 (name "emacs-html-to-hiccup")
30686 (version (git-version "1" revision commit))
30687 (source
30688 (origin
30689 (method git-fetch)
30690 (uri (git-reference
30691 (url "https://github.com/plexus/html-to-hiccup")
30692 (commit commit)))
30693 (file-name (git-file-name name version))
30694 (sha256
30695 (base32 "1qi092mw2n08v6yr0j6hlpx0pnlcnhxjqbsrlw9pn4yin6zk91yp"))))
30696 (build-system emacs-build-system)
30697 (propagated-inputs
30698 (list emacs-dash emacs-s))
30699 (home-page "https://github.com/plexus/html-to-hiccup")
30700 (synopsis "Turn HTML into Hiccup syntax")
30701 (description
30702 "This is an Emacs package that turns HTML into Hiccup syntax
30703 which is a popular notation to use when doing Clojure/ClojureScript
30704 web development.")
30705 ;; There is a conflict between the repository official LICENSE
30706 ;; file and the header of the main elisp file which indicates
30707 ;; that it is licensed under the GPL version 3 or later.
30708 (license (list license:mpl2.0 license:gpl3+)))))
30709
30710 (define-public emacs-iter2
30711 (package
30712 (name "emacs-iter2")
30713 (version "1.1")
30714 (source
30715 (origin
30716 (method git-fetch)
30717 (uri (git-reference
30718 (url "https://github.com/doublep/iter2")
30719 (commit version)))
30720 (file-name (git-file-name name version))
30721 (sha256
30722 (base32 "12flc98nv353cqr9qbkasgdmiyf9c3iw4apzh899xw857j1h5qdr"))))
30723 (build-system emacs-build-system)
30724 (home-page "https://github.com/doublep/iter2")
30725 (synopsis "Reimplementation of Elisp generators")
30726 (description "@code{iter2} is a fully compatible reimplementation of
30727 built-in generator package. It provides @code{iter2-defun} and
30728 @code{iter2-lambda} forms that can be used in place of @code{iter-defun} and
30729 @code{iter-lambda}. All other functions and macros (e.g. @code{iter-yield},
30730 @code{iter-next}) are intentionally not duplicated: just use the ones from the
30731 original package.")
30732 (license license:gpl3+)))
30733
30734 (define-public emacs-bind-map
30735 (let ((commit "510a24138d8de3b8df0783f1ac493a551fc9bd74")
30736 (revision "0"))
30737 (package
30738 (name "emacs-bind-map")
30739 (version (git-version "1.1.2" revision commit))
30740 (source
30741 (origin
30742 (method git-fetch)
30743 (uri (git-reference
30744 (url "https://github.com/justbur/emacs-bind-map")
30745 (commit commit)))
30746 (file-name (git-file-name name version))
30747 (sha256
30748 (base32 "0crxjy1ykgb429z8ikjv5iy8vg5i0qn8n86p2lgri4glx45sxxx0"))))
30749 (build-system emacs-build-system)
30750 (home-page "https://github.com/justbur/emacs-bind-map")
30751 (synopsis "Bind personal keymaps in multiple locations")
30752 (description
30753 "@code{emacs-bind-map} provides a macro bind-map which can be used to
30754 make a keymap available across different leader keys including ones
30755 tied to evil states. It is essentially a generalization of the idea
30756 of a leader key as used in Vim or the @code{emacs-evil-leader} package,
30757 and allows for an arbitrary number of leader keys.")
30758 (license license:gpl3+))))
30759
30760 (define-public emacs-spaceleader
30761 (let ((commit "35368b03c094399c487cce93ab5b7ac725bd04f5")
30762 (revision "0"))
30763 (package
30764 (name "emacs-spaceleader")
30765 (version (git-version "0.0.3" revision commit))
30766 (source
30767 (origin
30768 (method git-fetch)
30769 (uri (git-reference
30770 (url "https://github.com/mohkale/spaceleader")
30771 (commit commit)))
30772 (file-name (git-file-name name version))
30773 (sha256
30774 (base32 "1lg51y59z6igqjw3vgyjc5zw32j11xhzw8y0svlx3ry415b0lnls"))))
30775 (build-system emacs-build-system)
30776 (propagated-inputs
30777 (list emacs-dash
30778 emacs-general
30779 emacs-which-key
30780 emacs-use-package
30781 emacs-bind-map))
30782 (home-page "https://github.com/mohkale/spaceleader")
30783 (synopsis "Emacs leader key implementation from Spacemacs")
30784 (description
30785 "@code{emacs-spaceleader} replicates Spacemacs' leader key features,
30786 without requiring all of Spacemacs. The @code{<Leader>} key, inspired by Vim,
30787 provides an easy way to bind keys under a configurable prefix key.")
30788 (license license:gpl3+))))
30789
30790 (define-public emacs-promise
30791 (package
30792 (name "emacs-promise")
30793 (version "1.1")
30794 (source
30795 (origin
30796 (method git-fetch)
30797 (uri (git-reference
30798 (url "https://github.com/chuntaro/emacs-promise")
30799 (commit version)))
30800 (file-name (git-file-name name version))
30801 (sha256
30802 (base32 "1xb34zdbwjvahfhycjphdkm925kgd22dr298c57hwxza4ljc2hxj"))))
30803 (build-system emacs-build-system)
30804 (home-page "https://github.com/chuntaro/emacs-promise")
30805 (synopsis "Promises/A+ for Emacs")
30806 (description "This is a simple implementation of Promises/A+.
30807
30808 This implementation ports the following Promises/A+ features
30809 faithfully. See @url{https://github.com/then/promise}.
30810
30811 @itemize
30812 @item The same API as the JavaScript version of Promise can be used.
30813 @item It has all the @code{then}, @code{catch}, @code{resolve}, @code{reject},
30814 @code{all}, @code{race}, etc.
30815 @item It supports \"thenable\".
30816 @item It supports \"Inheritance of Promise\".
30817 @item It supports \"rejection-tracking\".
30818 @end itemize\n")
30819 (license license:gpl3+)))
30820
30821 (define-public emacs-async-await
30822 (package
30823 (name "emacs-async-await")
30824 (version "1.1")
30825 (source
30826 (origin
30827 (method git-fetch)
30828 (uri (git-reference
30829 (url "https://github.com/chuntaro/emacs-async-await")
30830 (commit version)))
30831 (file-name (git-file-name name version))
30832 (sha256
30833 (base32 "0aav9qdswnw7ynqlzn0sm34as5fj2d85syxgg8zjabzp6646ay29"))))
30834 (build-system emacs-build-system)
30835 (propagated-inputs
30836 (list emacs-promise emacs-iter2))
30837 (home-page "https://github.com/chuntaro/emacs-async-await")
30838 (synopsis "Async/Await for Emacs")
30839 (description "This is a simple implementation of Async/Await inspired by
30840 the TypeScript implementation.")
30841 (license license:gpl3+)))
30842
30843 (define-public emacs-rocket-chat
30844 ;; No release.
30845 (let ((commit "96fe27a8678de5ae4061f635108a7192eee13f98"))
30846 (package
30847 (name "emacs-rocket-chat")
30848 (version (git-version "0.0.0" "1" commit))
30849 (source
30850 (origin
30851 (method git-fetch)
30852 (uri (git-reference
30853 (url "https://github.com/4hiziri/rocket-chat")
30854 (commit commit)))
30855 (file-name (git-file-name name version))
30856 (sha256
30857 (base32 "02a4j0yy7330kfr3rd3k2agdj01ii6989nki598anbamq6xvj5ql"))))
30858 (build-system emacs-build-system)
30859 (propagated-inputs
30860 (list emacs-async-await emacs-request))
30861 (home-page "https://github.com/4hiziri/rocket-chat")
30862 (synopsis "Emacs Rocket.chat client")
30863 (description "This package provides an Emacs client for the Rocket.chat
30864 service.")
30865 (license license:expat))))
30866
30867 (define-public emacs-monokai-theme
30868 (package
30869 (name "emacs-monokai-theme")
30870 (version "3.5.3")
30871 (source
30872 (origin
30873 (method git-fetch)
30874 (uri (git-reference
30875 (url "https://github.com/oneKelvinSmith/monokai-emacs")
30876 (commit (string-append "v" version))))
30877 (file-name (git-file-name name version))
30878 (sha256
30879 (base32 "0dy8c3349j7fmp8052hbgvk0b7ldlv5jqpg0paq1i0hlypivd30i"))))
30880 (build-system emacs-build-system)
30881 (home-page "https://github.com/oneKelvinSmith/monokai-emacs")
30882 (synopsis "High contrast color theme for Emacs")
30883 (description
30884 "Monokai theme is a port of the popular TextMate Monokai theme for
30885 Emacs.")
30886 (license license:gpl3+)))
30887
30888 (define-public emacs-nord-theme
30889 (package
30890 (name "emacs-nord-theme")
30891 (version "0.5.0")
30892 (source
30893 (origin
30894 (method git-fetch)
30895 (uri (git-reference
30896 (url "https://github.com/arcticicestudio/nord-emacs")
30897 (commit (string-append "v" version))))
30898 (file-name (git-file-name name version))
30899 (sha256
30900 (base32 "096f8cik4jz89bvkifwp3gm9iraqrd75ljy2q9js724v7yj88711"))))
30901 (build-system emacs-build-system)
30902 (home-page "https://www.nordtheme.com/")
30903 (synopsis "Low contrast arctic color theme for Emacs")
30904 (description
30905 "Nord is an arctic, north-bluish color scheme created for a clean and
30906 uncluttered design pattern to achieve optimal focus and readability for code
30907 syntax highlighting and UI components.")
30908 (license license:expat)))
30909
30910 (define-public emacs-janet-mode
30911 (let ((commit "2f5bcabcb6953e1ed1926ba6a2328c453e8b4ac7"))
30912 (package
30913 (name "emacs-janet-mode")
30914 (version (git-version "0.1.0" "1" commit))
30915 (source
30916 (origin
30917 (method git-fetch)
30918 (uri (git-reference
30919 (url "https://github.com/ALSchwalm/janet-mode")
30920 (commit commit)))
30921 (file-name (git-file-name name version))
30922 (sha256
30923 (base32 "0qj0gpycv2f3z1dgz1a27bjn983hrr3ppvrp7csl34lagnmp89rz"))))
30924 (build-system emacs-build-system)
30925 (home-page "https://github.com/ALSchwalm/janet-mode")
30926 (synopsis "Emacs major mode for the Janet programming language")
30927 (description
30928 "This package provides an Emacs major mode for editing Janet files.")
30929 (license license:gpl3))))
30930
30931 (define-public emacs-inf-janet
30932 (let ((commit "df46651d3aad32593b2195c80ca91fb64d571fb7"))
30933 (package
30934 (name "emacs-inf-janet")
30935 (version (git-version "0.1.0" "1" commit))
30936 (source
30937 (origin
30938 (method git-fetch)
30939 (uri (git-reference
30940 (url "https://github.com/velkyel/inf-janet")
30941 (commit commit)))
30942 (file-name (git-file-name name version))
30943 (sha256
30944 (base32 "0g0y7q62667j0p32md1h6zb2cap9fga9qgdg7138xwjqnk0328v7"))))
30945 (build-system emacs-build-system)
30946 (arguments
30947 `(#:phases
30948 (modify-phases %standard-phases
30949 (add-after 'unpack 'fix-program-name
30950 (lambda _
30951 (make-file-writable "inf-janet.el")
30952 (emacs-substitute-variables "inf-janet.el"
30953 ("inf-janet-program" "janet")))))))
30954 (propagated-inputs
30955 (list emacs-janet-mode))
30956 (home-page "https://github.com/velkyel/inf-janet")
30957 (synopsis "Run an external Janet process in an Emacs buffer")
30958 (description
30959 "This Emacs package provides a Janet REPL to evaluate @code{janet-mode}
30960 s-expression.")
30961 (license license:expat))))
30962
30963 (define-public emacs-map
30964 (package
30965 (name "emacs-map")
30966 (version "3.2.1")
30967 (source
30968 (origin
30969 (method url-fetch)
30970 (uri (string-append "https://elpa.gnu.org/packages/map-"
30971 version ".tar"))
30972 (sha256
30973 (base32
30974 "1vy231m2fm5cgz5nib14ib7ifprajhnbmzf6x4id48h2491m1n24"))))
30975 (build-system emacs-build-system)
30976 (home-page "http://elpa.gnu.org/packages/map.html")
30977 (synopsis "Map manipulation functions")
30978 (description "This package provides Emacs map-manipulation functions that
30979 work on alists, hash-table and arrays. All functions are prefixed with
30980 @code{map-}.")
30981 (license license:gpl3+)))
30982
30983 (define-public emacs-xref
30984 (package
30985 (name "emacs-xref")
30986 (version "1.4.1")
30987 (source
30988 (origin
30989 (method url-fetch)
30990 (uri (string-append "https://elpa.gnu.org/packages/xref-"
30991 version ".tar"))
30992 (sha256
30993 (base32 "1vbpplw0sngymmawi940nlqmncqznb5vp7zi0ib8v66g3y33ijrf"))))
30994 (build-system emacs-build-system)
30995 (home-page "http://elpa.gnu.org/packages/xref.html")
30996 (synopsis "Cross-referencing commands")
30997 (description
30998 "This library provides a generic infrastructure for cross referencing
30999 commands, in particular @code{find-definition}.")
31000 (license license:gpl3+)))
31001
31002 (define-public emacs-burly
31003 (package
31004 (name "emacs-burly")
31005 (version "0.2")
31006 (source
31007 (origin
31008 (method git-fetch)
31009 (uri (git-reference
31010 (url "https://github.com/alphapapa/burly.el")
31011 (commit version)))
31012 (file-name (git-file-name name version))
31013 (sha256
31014 (base32 "0zaknazhi8if38rmy9irnqwagsl76pqlxnzawzgn1vlv3aawivdk"))))
31015 (build-system emacs-build-system)
31016 (propagated-inputs
31017 (list emacs-map))
31018 (home-page "https://github.com/alphapapa/burly.el")
31019 (synopsis "Save and restore frame/window configurations with buffers")
31020 (description "This package provides tools to save and restore frame and
31021 window configurations in Emacs, including buffers that may not be live
31022 anymore. In this way, it's like a lightweight \"workspace\" manager, allowing
31023 you to easily restore one or more frames, including their windows, the
31024 windows' layout, and their buffers.")
31025 (license license:gpl3+)))
31026
31027 (define-public emacs-smart-hungry-delete
31028 (let ((commit "7c1d56a92481594e14d40b5fdf6c48657a0108a0"))
31029 (package
31030 (name "emacs-smart-hungry-delete")
31031 (version "0.1")
31032 (source
31033 (origin
31034 (method git-fetch)
31035 (uri (git-reference
31036 (url "https://github.com/hrehfeld/emacs-smart-hungry-delete")
31037 (commit commit)))
31038 (file-name (git-file-name name version))
31039 (sha256
31040 (base32
31041 "0mxaslx5823s68a8ggbbnmfk1jiswjvip5s4sg7ihfagnci72wni"))))
31042 (build-system emacs-build-system)
31043 (home-page "https://github.com/hrehfeld/emacs-smart-hungry-delete")
31044 (synopsis "Smart hungry deletion of whitespace")
31045 (description "@code{emacs-smart-hungry-delete} hungrily deletes whitespace
31046 between cursor and next word, parenthesis or delimiter while honoring some
31047 rules about where space should be left to separate words and parentheses.")
31048 (license license:gpl2+))))
31049
31050 (define-public emacs-seriestracker
31051 (package
31052 (name "emacs-seriestracker")
31053 (version "1.1")
31054 (source
31055 (origin
31056 (method git-fetch)
31057 (uri (git-reference
31058 (url "https://github.com/MaximeWack/seriesTracker")
31059 (commit version)))
31060 (file-name (git-file-name name version))
31061 (sha256
31062 (base32 "0b9hf20iah3ym2d4kz67k0kb48dq0442zxw4zmc03zg3sxfdxh0x"))))
31063 (build-system emacs-build-system)
31064 (propagated-inputs
31065 (list emacs-dash emacs-transient))
31066 (home-page "https://github.com/MaximeWack/seriesTracker")
31067 (synopsis "Keep track of the TV shows you watch from Emacs")
31068 (description
31069 "This package provides a major mode for tracking TV shows.
31070 TV shows data (episode list, release dates, etc.) are sourced from
31071 the free database hosted at @url{episodate.com}. The mode presents an
31072 outlined list of tracked shows, their episodes and release dates, and
31073 enables the user to see when new episodes for their favorite shows get
31074 released, and track their progress in watching a series.")
31075 (license license:gpl3+)))
31076
31077 (define-public emacs-webpaste
31078 (package
31079 (name "emacs-webpaste")
31080 (version "3.2.2")
31081 (source
31082 (origin
31083 (method git-fetch)
31084 (uri (git-reference
31085 (url "https://github.com/etu/webpaste.el")
31086 (commit version)))
31087 (file-name (git-file-name name version))
31088 (sha256
31089 (base32 "07hj9nr7x6c9w2dnvc58cfbprgp9cqzdxflp5qlpglzdw0bi9s3c"))))
31090 (build-system emacs-build-system)
31091 (arguments
31092 `(#:tests? #t
31093 #:test-command '("make" "unit" "integration")
31094 #:phases
31095 (modify-phases %standard-phases
31096 (add-after 'unpack 'fix-tests
31097 (lambda _
31098 ;; Do not use cask to run tests.
31099 (substitute* "Makefile"
31100 (("\\$\\{CASK\\} exec ") ""))
31101 ;; Disable tests that need network access.
31102 (substitute* (list "tests/unit/test-webpaste-provider-creation.el"
31103 "tests/integration/test-webpaste-providers.el")
31104 (("describe") "xdescribe")))))))
31105 (native-inputs
31106 (list emacs-buttercup))
31107 (propagated-inputs
31108 (list emacs-request))
31109 (home-page "https://github.com/etu/webpaste.el")
31110 (synopsis "Paste to pastebin-like services")
31111 (description "This mode pastes whole buffers or parts of buffers
31112 to pastebin-like services. It supports more than one service and will
31113 failover if one service fails. More services can easily be added over time
31114 and preferred services can easily be configured.")
31115 (license license:gpl3+)))
31116
31117 (define-public emacs-keystore-mode
31118 (let ((release "0.0.1")
31119 (revision "0")
31120 (commit "43bd5926348298d077c7221f37902c990df3f951"))
31121 (package
31122 (name "emacs-keystore-mode")
31123 (version (git-version release revision commit))
31124 (home-page "https://github.com/peterpaul/keystore-mode")
31125 (source
31126 (origin
31127 (method git-fetch)
31128 (uri (git-reference
31129 (url home-page)
31130 (commit commit)))
31131 (file-name (git-file-name name version))
31132 (sha256
31133 (base32 "06cznkqkm04zz5lqfb514aqvsr2p13arzysixv0ss0bqpvdq7cv7"))))
31134 (build-system emacs-build-system)
31135 (arguments
31136 `(#:tests? #t
31137 #:test-command
31138 '("emacs" "--no-init-file" "--batch"
31139 "--eval=(require 'ecukes)" "--eval=(ecukes)")))
31140 (native-inputs
31141 (list emacs-ecukes emacs-espuds emacs-undercover openjdk9))
31142 (propagated-inputs
31143 (list emacs-origami-el emacs-s))
31144 (synopsis "Major mode for viewing and managing Java keystores")
31145 (description
31146 "This package provides an Elisp wrapper around the Java
31147 @command{keytool} command and major mode for viewing Java keystores.")
31148 (license license:expat))))
31149
31150 (define-public emacs-ivy-avy
31151 (package
31152 (name "emacs-ivy-avy")
31153 (version "0.13.4")
31154 (source
31155 (origin
31156 (method url-fetch)
31157 (uri (string-append
31158 "https://elpa.gnu.org/packages/"
31159 "ivy-avy-" version ".tar"))
31160 (sha256
31161 (base32 "1q5caxm4rnh4jy5n88dhkdbx1afsshmfki5dl8xsqbdb3y0zq7yi"))))
31162 (build-system emacs-build-system)
31163 (propagated-inputs
31164 (list emacs-ivy emacs-avy))
31165 (home-page "https://github.com/abo-abo/swiper")
31166 (synopsis "Avy integration for Ivy")
31167 (description
31168 "This package adds a \"C-'\" binding to Ivy minibuffer that uses Avy.")
31169 (license license:gpl3+)))
31170
31171 (define-public emacs-vertico
31172 (package
31173 (name "emacs-vertico")
31174 (version "0.25")
31175 (source
31176 (origin
31177 (method git-fetch)
31178 (uri (git-reference
31179 (url "https://github.com/minad/vertico")
31180 (commit version)))
31181 (file-name (git-file-name name version))
31182 (sha256
31183 (base32 "13lgvaxbbgc08q5dc2pmagnvg1hr2vvl6c9qxvpwqcj06kw9b5ln"))))
31184 (build-system emacs-build-system)
31185 (arguments
31186 `(#:phases
31187 (modify-phases %standard-phases
31188 ;; Move the extensions source files to the top level, which is included in
31189 ;; the EMACSLOADPATH.
31190 (add-after 'unpack 'move-source-files
31191 (lambda _
31192 (let ((el-files (find-files "./extensions" ".*\\.el$")))
31193 (for-each (lambda (f)
31194 (rename-file f (basename f)))
31195 el-files)))))))
31196 (native-inputs
31197 (list texinfo))
31198 (home-page "https://github.com/minad/vertico")
31199 (synopsis "Vertical interactive completion")
31200 (description
31201 "Vertico provides a minimalistic vertical completion UI, which is based
31202 on Emacs' default completion system. By reusing the default system, it
31203 achieves full compatibility with built-in Emacs commands and completion
31204 tables. Vertico is pretty bare-bone and only provides a minimal set of
31205 commands. Additional optional enhancements can be provided externally by
31206 complementary packages.")
31207 (license license:gpl3+)))
31208
31209 (define-public emacs-wisp-mode
31210 (package
31211 (name "emacs-wisp-mode")
31212 (version "0.3.0")
31213 (source
31214 (origin
31215 (method hg-fetch)
31216 (uri (hg-reference
31217 (url "https://hg.sr.ht/~arnebab/wisp")
31218 (changeset (string-append "wisp-mode-" version))))
31219 (file-name (git-file-name name version))
31220 (sha256
31221 (base32 "189baxk27rq3s6h6mh0m25sv504853rpvyxxdcwx6wdy7l88qany"))))
31222 (build-system emacs-build-system)
31223 (home-page "https://www.draketo.de/software/wisp")
31224 (synopsis "Syntax highlighting and indentation support for Wisp files")
31225 (description
31226 "This package provides @code{wisp-mode}, an Emacs major mode for Wisp
31227 files, providing syntax highlighting and indentation rules.")
31228 (license license:gpl3+)))
31229
31230 (define-public emacs-ivy-hydra
31231 (package
31232 (name "emacs-ivy-hydra")
31233 (version "0.13.5")
31234 (source
31235 (origin
31236 (method url-fetch)
31237 (uri (string-append
31238 "https://elpa.gnu.org/packages/"
31239 "ivy-hydra-" version ".tar"))
31240 (sha256
31241 (base32 "06rln9bnq5hli5rqlm47fb68b8llpqrmzwqqv4rn7mx3854i9a5x"))))
31242 (build-system emacs-build-system)
31243 (propagated-inputs
31244 (list emacs-ivy emacs-hydra))
31245 (home-page "https://github.com/abo-abo/swiper")
31246 (synopsis "Additional key bindings for Ivy")
31247 (description
31248 "This package provides the `hydra-ivy/body' command, which is a
31249 quasi-prefix map, with many useful bindings. These bindings are
31250 shorter than usual, using mostly unprefixed keys.")
31251 (license license:gpl3+)))
31252
31253 (define-public emacs-cwl-mode
31254 (package
31255 (name "emacs-cwl-mode")
31256 (version "0.2.6")
31257 (source
31258 (origin
31259 (method git-fetch)
31260 (uri (git-reference
31261 (url "https://github.com/tom-tan/cwl-mode")
31262 (commit version)))
31263 (file-name (git-file-name name version))
31264 (sha256
31265 (base32
31266 "0507acyr9h4646scx316niq27vir6hl2gsgz7wdbiw0cb2drfkd1"))))
31267 (build-system emacs-build-system)
31268 (propagated-inputs
31269 (list emacs-yaml-mode))
31270 (home-page "https://github.com/tom-tan/cwl-mode")
31271 (synopsis "Emacs mode for @acronym{CWL, Common Workflow Language} files")
31272 (description "This package provides a major mode for editing
31273 @acronym{CWL, Common Workflow Language} files.")
31274 (license license:gpl3+)))
31275
31276 (define-public emacs-dictionary
31277 (package
31278 (name "emacs-dictionary")
31279 (version "1.11")
31280 (source
31281 (origin
31282 (method git-fetch)
31283 (uri (git-reference
31284 (url "https://github.com/myrkr/dictionary-el")
31285 (commit (string-append "v" version))))
31286 (file-name (git-file-name name version))
31287 (sha256
31288 (base32 "0zsjbpq0s0xdxd9r541f04bj1khhgzhdlzr0m4p17zjh1zardbpi"))))
31289 (build-system emacs-build-system)
31290 (home-page "http://www.myrkr.in-berlin.de/dictionary/index.html")
31291 (synopsis "Emacs client for dictionary servers")
31292 (description "This package provides commands for interacting with a
31293 dictionary server (as defined by RFC 2229; by default, the public server at
31294 dict.org) from within Emacs.")
31295 (license license:gpl2+)))
31296
31297 (define-public emacs-multitran
31298 (package
31299 (name "emacs-multitran")
31300 (version "0.4.14")
31301 (source
31302 (origin
31303 (method git-fetch)
31304 (uri (git-reference
31305 (url "https://github.com/zevlg/multitran.el")
31306 (commit version)))
31307 (file-name (git-file-name name version))
31308 (sha256
31309 (base32 "13lmhp2vm953s4phqdd119kp7s3p0kb3kqz4z6g3ga6m6py3gq3i"))))
31310 (build-system emacs-build-system)
31311 (home-page "https://github.com/zevlg/multitran.el")
31312 (synopsis "Emacs interface to the multitran.com online dictionary")
31313 (description "@code{emacs-multitran} is a zero-dependency Emacs interface
31314 to the @url{https://multitran.com} online dictionary.")
31315 (license license:gpl3+)))
31316
31317 (define-public emacs-blacken
31318 (package
31319 (name "emacs-blacken")
31320 (version "0.2.0")
31321 (source
31322 (origin
31323 (method git-fetch)
31324 (uri
31325 (git-reference
31326 (url "https://github.com/pythonic-emacs/blacken")
31327 (commit (string-append "v" version))))
31328 (file-name (git-file-name name version))
31329 (sha256
31330 (base32 "0pf9yllx0h78m925sdrg6hbv54ky2pi7cpkdsnx891qjsahvjnpy"))))
31331 (build-system emacs-build-system)
31332 (inputs
31333 (list python-black))
31334 (arguments
31335 `(#:phases
31336 (modify-phases %standard-phases
31337 (add-after 'unpack 'patch-python-black
31338 (lambda* (#:key inputs #:allow-other-keys)
31339 (make-file-writable "blacken.el")
31340 (emacs-substitute-variables "blacken.el"
31341 ("blacken-executable"
31342 (search-input-file inputs "/bin/black"))))))))
31343 (home-page "https://github.com/pythonic-emacs/blacken")
31344 (synopsis "Python Black for Emacs")
31345 (description
31346 "Use the @command{python} @command{black} package to reformat
31347 @command{python} buffers.")
31348 (license license:gpl3)))
31349
31350 (define-public emacs-code-cells
31351 ;; No tagged release upstream
31352 (let ((commit "8660bdeedee360e5eb632f1eb1356eb09d7dfbee")
31353 (revision "0"))
31354 (package
31355 (name "emacs-code-cells")
31356 (version (git-version "0.2" revision commit))
31357 (source
31358 (origin
31359 (method git-fetch)
31360 (uri (git-reference
31361 (url "https://github.com/astoff/code-cells.el")
31362 (commit commit)))
31363 (file-name (git-file-name name version))
31364 (sha256
31365 (base32 "0mvfsdlhc3znc0d2p8vm7apkbpvbs688wmwvd0sms33qly53f546"))))
31366 (build-system emacs-build-system)
31367 (home-page "https://github.com/astoff/code-cells.el")
31368 (synopsis "Emacs utilities for code split into cells, including Jupyter
31369 notebooks")
31370 (description "This package lets you efficiently navigate, edit and
31371 execute code split into cells according to certain magic comments.")
31372 (license license:gpl3+))))
31373
31374 (define-public emacs-kibit-helper
31375 (package
31376 (name "emacs-kibit-helper")
31377 (version "0.1.1")
31378 (source
31379 (origin
31380 (method git-fetch)
31381 (uri (git-reference
31382 (url "https://github.com/brunchboy/kibit-helper")
31383 (commit (string-append "v" version))))
31384 (file-name (git-file-name name version))
31385 (sha256
31386 (base32 "0ky167xh1hrmqsldybzjhyqjizgjzs1grn5mf8sm2j9qwcvjw2zv"))))
31387 (build-system emacs-build-system)
31388 (propagated-inputs
31389 (list emacs-s))
31390 (home-page "http://www.github.com/brunchboy/kibit-helper")
31391 (synopsis "Use the Kibit Leiningen plugin from Emacs")
31392 (description
31393 "Kibit Helper provides functions to work with the Kibit Leiningen plugin
31394 for detecting and improve non-idiomatic Clojure source code.")
31395 (license license:gpl3+)))
31396
31397 (define-public emacs-mint-mode
31398 (package
31399 (name "emacs-mint-mode")
31400 (version "1.0.2")
31401 (source
31402 (origin
31403 (method git-fetch)
31404 (uri (git-reference
31405 (url "https://github.com/creatorrr/emacs-mint-mode")
31406 (commit (string-append "v" version))))
31407 (file-name (git-file-name name version))
31408 (sha256
31409 (base32 "1v8mp1k24lzvc0mh9l4k3fwzr4sr87f5p9ahpy7263pcbvcy11vl"))))
31410 (build-system emacs-build-system)
31411 (arguments '(#:include '("\\.el$" "\\.txt$")))
31412 (home-page "https://github.com/creatorrr/emacs-mint-mode")
31413 (synopsis "Major mode for Mint language")
31414 (description
31415 "Mint mode provides syntax highlighting, basic keyword auto-completion,
31416 and format on save for Mint programming language.")
31417 (license license:gpl3+)))
31418
31419 (define-public emacs-seeing-is-believing
31420 (let ((version "1.2.0") ; from .el file
31421 (commit "fbbe246c0fda87bb26227bb826eebadb418a220f")
31422 (revision "0"))
31423 (package
31424 (name "emacs-seeing-is-believing")
31425 (home-page "https://github.com/jcinnamond/seeing-is-believing")
31426 (version (git-version version revision commit))
31427 (source
31428 (origin
31429 (method git-fetch)
31430 (uri (git-reference
31431 (url home-page)
31432 (commit commit)))
31433 (file-name (git-file-name name version))
31434 (sha256
31435 (base32
31436 "1h1b48s2iirswdlvfz41jbflm4x09ksc2lycrc1awzlwd6r8hdhg"))))
31437 (build-system emacs-build-system)
31438 (synopsis
31439 "Minor mode for running the seeing-is-believing Ruby gem")
31440 (description
31441 "@uref{https://github.com/JoshCheek/seeing_is_believing,Seeing Is
31442 Believing} is a ruby gem to evaluate Ruby code, recording the results of each
31443 line. This minor mode provides an easy way to run it from Emacs on the
31444 current region or entire buffer.")
31445 (license license:gpl3+))))
31446
31447 (define-public emacs-nasm-mode
31448 (package
31449 (name "emacs-nasm-mode")
31450 (version "1.1.1")
31451 (source
31452 (origin
31453 (method git-fetch)
31454 (uri (git-reference
31455 (url "https://github.com/skeeto/nasm-mode")
31456 (commit version)))
31457 (file-name (git-file-name name version))
31458 (sha256
31459 (base32
31460 "1dyc50a1zskx9fqxl2iy2x74f3bkb2ccz908v0aj13rqfqqnns9j"))))
31461 (build-system emacs-build-system)
31462 (home-page "https://github.com/skeeto/nasm-mode")
31463 (synopsis "NASM x86 assembly major mode")
31464 (description
31465 "NASM mode is a major mode for editing NASM x86 assembly programs.
31466 It includes syntax highlighting, automatic indentation, and imenu integration.
31467 Unlike Emacs' generic ASM mode, it understands NASM-specific syntax.")
31468 (license license:unlicense)))
31469
31470 (define-public emacs-validate-html
31471 ;; XXX: Upstream did not tag commits yet. However, commit below matches the
31472 ;; last version bump. Version is extracted from the keyword in main file.
31473 (let ((commit "748e874d50c3a95c61590ae293778e26de05c5f9"))
31474 (package
31475 (name "emacs-validate-html")
31476 (version "1.3")
31477 (source
31478 (origin
31479 (method git-fetch)
31480 (uri
31481 (git-reference
31482 (url "https://github.com/arthurgleckler/validate-html")
31483 (commit commit)))
31484 (file-name (git-file-name name version))
31485 (sha256
31486 (base32 "0b2b5dm85jwgkqvga23r3vfya07vxv2n7a3a6r1pxpk8asqlw41c"))))
31487 (build-system emacs-build-system)
31488 (home-page "https://github.com/arthurgleckler/validate-html")
31489 (synopsis "Run the W3C HTML Validator directly from Emacs")
31490 (description
31491 "@command{emacs-validate-html} installs the command @code{validate-html},
31492 which sends the current buffer to the World Wide Web Consortium’s HTML
31493 Validator service and displays the results in a buffer in Compilation mode.")
31494 (license license:gpl3+))))
31495
31496 (define-public emacs-volatile-highlights
31497 ;; XXX: Upstream does not tag releases. Commit below matches version bump.
31498 (let ((commit "9a20091f0ce7fc0a6b3e641a6a46d5f3ac4d8392"))
31499 (package
31500 (name "emacs-volatile-highlights")
31501 (version "1.15")
31502 (source (origin
31503 (method git-fetch)
31504 (uri (git-reference
31505 (url "http://github.com/k-talo/volatile-highlights.el")
31506 (commit commit)))
31507 (file-name (git-file-name name version))
31508 (sha256
31509 (base32
31510 "1dsa6769lphyyv7yg92vkkpk395w52q4m7hdn8xy7s6lh5c6a955"))))
31511 (build-system emacs-build-system)
31512 (home-page "http://github.com/k-talo/volatile-highlights.el")
31513 (synopsis "Emacs minor mode for visual feedback on some operations")
31514 (description "@code{volatile-highlights-mode} brings visual feedback to
31515 some operations by highlighting portions relating to the operations. All of
31516 highlights made by this library will be removed when any new operation is
31517 executed.")
31518 (license license:gpl3+))))
31519
31520 (define-public emacs-global-tags
31521 (let ((commit "06db25d91cc8bfb5e24e02adc04de1226c7e742d")
31522 (revision "0"))
31523 (package
31524 (name "emacs-global-tags")
31525 (version (git-version "0.7" revision commit))
31526 (home-page "https://git.launchpad.net/global-tags.el/")
31527 (source (origin
31528 (method git-fetch)
31529 (uri (git-reference
31530 (url home-page)
31531 (commit commit)))
31532 (file-name (git-file-name name version))
31533 (sha256
31534 (base32
31535 "1q30cbqq0h1gfwlcbnx9s930li7w7a0y8sx2ivbvvyyc2j5gsk4j"))))
31536 (build-system emacs-build-system)
31537 (propagated-inputs
31538 (list emacs-async emacs-ht))
31539 (synopsis "Testeable Emacs Lisp API that wraps around GNU Global")
31540 (description "This package provides a testeable Emacs Lisp API that
31541 wraps GNU Global calls and integration to editor using this API with
31542 project.el and xref.el.")
31543 (license license:gpl3+))))
31544
31545 (define-public emacs-seq
31546 (package
31547 (name "emacs-seq")
31548 (version "2.23")
31549 (source
31550 (origin
31551 (method url-fetch)
31552 (uri (string-append "https://elpa.gnu.org/packages/seq-" version ".tar"))
31553 (sha256
31554 (base32 "1lbxnrzq88z8k9dyylg2636pg9vc8bzfprs1hxwp9ah0zkvsn52p"))))
31555 (build-system emacs-build-system)
31556 (home-page "https://elpa.gnu.org/packages/seq.html")
31557 (synopsis "Sequence manipulation functions")
31558 (description
31559 "This Emacs package provides sequence manipulation functions that
31560 complement basic functions provided by @file{subr.el}. All its functions
31561 are prefixed with @code{seq-} and work on lists, strings, and vectors.")
31562 (license license:gpl3+)))
31563
31564 (define-public emacs-setup
31565 (package
31566 (name "emacs-setup")
31567 (version "1.3.0")
31568 (source
31569 (origin
31570 (method url-fetch)
31571 (uri (string-append "https://elpa.gnu.org/packages/setup-"
31572 version ".tar"))
31573 (sha256
31574 (base32 "0r13ry73jm31j8fq7v1sh0k113fr4blfkiz85696bdpah2pnca87"))))
31575 (build-system emacs-build-system)
31576 (home-page "https://git.sr.ht/~pkal/setup")
31577 (synopsis "Helpful configuration macro")
31578 (description
31579 "The @code{setup} macro simplifies repetitive configuration patterns, by
31580 providing context-sensitive local macros in @code{setup} bodies. These macros
31581 can be mixed with regular elisp code without any issues, allowing for
31582 flexible and terse configurations. The list of local macros can be
31583 extended by the user via @code{setup-define}. A list of currently known
31584 local macros are documented in the docstring for @code{setup}.")
31585 (license license:gpl3+)))
31586
31587 (define-public emacs-tomelr
31588 (package
31589 (name "emacs-tomelr")
31590 (version "0.4.3")
31591 (source
31592 (origin
31593 (method git-fetch)
31594 (uri (git-reference
31595 (url "https://github.com/kaushalmodi/tomelr/")
31596 (commit (string-append "v" version))))
31597 (sha256
31598 (base32 "03iih7arjlfg8gdp4v2xglas9z519q1s11l28igr8l0m5y0pdrnk"))
31599 (file-name (git-file-name name version))))
31600 (build-system emacs-build-system)
31601 (propagated-inputs (list emacs-map emacs-seq))
31602 (home-page "https://github.com/kaushalmodi/tomelr/")
31603 (synopsis "Emacs-Lisp library for converting S-expressions to TOML")
31604 (description
31605 "This package provides the @code{tomelr-encode} function to convert a Lisp
31606 data expression in Alist or Plist format to a TOML string.")
31607 (license license:gpl3+)))
31608
31609 (define-public emacs-ed-mode
31610 ;; XXX: Upstream did not tag any commits yet.
31611 (let ((commit "69f4fb34eca8df6a3bfe24bd8d8075551f0264ac")
31612 (revision "0"))
31613 (package
31614 (name "emacs-ed-mode")
31615 (version (git-version "0" revision commit))
31616 (source
31617 (origin
31618 (method git-fetch)
31619 (uri
31620 (git-reference
31621 (url "https://github.com/ryanprior/ed-mode")
31622 (commit commit)))
31623 (file-name (git-file-name name version))
31624 (sha256
31625 (base32 "058siccx6znw1bcp820bll0jg300xz8w1wf97zr1fa6jwfxyhhvi"))))
31626 (build-system emacs-build-system)
31627 (home-page "https://github.com/ryanprior/ed-mode")
31628 (synopsis "Emacs ed emulation")
31629 (description
31630 "@code{ed-mode} lets you interact with Emacs buffers like you would do
31631 with the ed editor.")
31632 (license license:gpl3+))))
31633
31634 (define-public emacs-alsamixer-el
31635 (package
31636 (name "emacs-alsamixer-el")
31637 (version "0.2.1")
31638 (source
31639 (origin
31640 (method git-fetch)
31641 (uri
31642 (git-reference
31643 (url "https://github.com/remvee/alsamixer-el")
31644 (commit version)))
31645 (file-name (git-file-name name version))
31646 (sha256
31647 (base32 "0c40vycphv5nf374rp8pnzvi50vlmgab3wrdq92hyprjw76gwxhk"))))
31648 (build-system emacs-build-system)
31649 (home-page "https://github.com/remvee/alsamixer-el")
31650 (synopsis "Emacs interface to amixer")
31651 (description "@code{emacs-alsamixer-el} provides basic commands to control
31652 audio volume via amixer.")
31653 (license license:gpl3+)))
31654
31655 (define-public emacs-fennel-mode
31656 (package
31657 (name "emacs-fennel-mode")
31658 (version "0.4.1")
31659 (source
31660 (origin
31661 (method git-fetch)
31662 (uri (git-reference
31663 (url "https://gitlab.com/technomancy/fennel-mode")
31664 (commit version)))
31665 (sha256
31666 (base32 "0dwas3ivhxdyw6njkcadc8c17cirq325cmby04qls8zkmrvlil1w"))))
31667 (build-system emacs-build-system)
31668 (home-page "https://gitlab.com/technomancy/fennel-mode")
31669 (synopsis "Emacs major-mode for editing Fennel code")
31670 (description
31671 "Fennel mode provides font-lock, indentation, navigation, and REPL for
31672 Fennel code within Emacs.")
31673 (license license:gpl3+)))
31674
31675 (define-public emacs-org-modern
31676 (package
31677 (name "emacs-org-modern")
31678 (version "0.3")
31679 (source
31680 (origin
31681 (method git-fetch)
31682 (uri (git-reference
31683 (url "https://github.com/minad/org-modern")
31684 (commit version)))
31685 (sha256
31686 (base32 "187fxw2rg0kw1d2binpa32ckp67r4v10j6ypr077g9qn6nkmyvvn"))
31687 (file-name (git-file-name name version))))
31688 (build-system emacs-build-system)
31689 (home-page "https://github.com/minad/org-modern")
31690 (synopsis "Modern Org Style")
31691 (description
31692 "@code{emacs-org-modern} implements a modern style for your Org
31693 buffers using font locking and text properties. The package styles
31694 headlines, keywords, tables and source blocks.")
31695 (license license:gpl3+)))
31696
31697 (define-public emacs-pyimport
31698 (let ((commit "a6f63cf7ed93f0c0f7c207e6595813966f8852b9")
31699 (revision "0"))
31700 (package
31701 (name "emacs-pyimport")
31702 (version (git-version "1.1" revision commit))
31703 (source
31704 (origin
31705 (method git-fetch)
31706 (uri
31707 (git-reference
31708 (url "https://github.com/Wilfred/pyimport")
31709 (commit commit)))
31710 (file-name (git-file-name name version))
31711 (sha256
31712 (base32 "1q5gqhvh4zq5dy8vns694warcz48j1hdnxg16sjck4gsi9xivbvs"))))
31713 (build-system emacs-build-system)
31714 (inputs
31715 (list python-pyflakes))
31716 (propagated-inputs
31717 (list emacs-dash emacs-s emacs-shut-up))
31718 (arguments
31719 (list #:phases
31720 #~(modify-phases %standard-phases
31721 (add-after 'unpack 'patch-pyflakes-executable
31722 (lambda* (#:key inputs #:allow-other-keys)
31723 (let ((pyflakes (search-input-file inputs "/bin/pyflakes")))
31724 (make-file-writable "pyimport.el")
31725 (substitute* "pyimport.el"
31726 (("\"pyflakes")
31727 (string-append "\"" pyflakes)))))))))
31728 (home-page "https://github.com/Wilfred/pyimport")
31729 (synopsis "Manage Python imports from Emacs")
31730 (description
31731 "@code{emacs-pyimport} manages python imports from Emacs via @code{python-pyflakes}.")
31732 (license license:gpl3+)))) ; License is in pyimport.el
31733
31734 (define-public emacs-straight-el
31735 (let ((commit "4517e118ee43f849f708025dbb2cf4f281793121")
31736 (revision "0"))
31737 (package
31738 (name "emacs-straight-el")
31739 (version (git-version "0" revision commit))
31740 (source
31741 (origin
31742 (method git-fetch)
31743 (uri
31744 (git-reference
31745 (url "https://github.com/raxod502/straight.el")
31746 (commit commit)))
31747 (file-name (git-file-name name version))
31748 (sha256
31749 (base32 "0idhgh203rac9c046286gir9rq0lgnlllzj4b4hrjpd3idg9v0r8"))))
31750 (build-system emacs-build-system)
31751 (arguments
31752 (list
31753 #:tests? #t
31754 #:test-command
31755 #~(list "emacs" "-Q" "--batch"
31756 "-L" "."
31757 "--load" "ert"
31758 "--load" "tests/straight-test.el"
31759 "--eval" "(progn (require 'straight-ert-print-hack) (ert-run-tests-batch-and-exit))")
31760 #:phases
31761 #~(modify-phases %standard-phases
31762 (add-after 'unpack 'patch-git-executable
31763 (lambda* (#:key inputs #:allow-other-keys)
31764 (make-file-writable "straight.el")
31765 (substitute* "straight.el"
31766 (("\"git\"")
31767 (string-append "\""
31768 (search-input-file inputs "/bin/git")
31769 "\"")))))
31770 (add-after 'check 'delete-tests
31771 ;; "tests" directory includes bogus ".el" files that can make
31772 ;; `patch-el-files' phase fail.
31773 (lambda _
31774 (delete-file-recursively "tests"))))))
31775 (native-inputs
31776 (list texinfo))
31777 (inputs
31778 (list git))
31779 (propagated-inputs
31780 (list emacs-magit))
31781 (home-page "https://github.com/raxod502/straight.el/")
31782 (synopsis "Purely functional package manager for the Emacs hacker")
31783 (description
31784 "@code{emacs-straight-el} is a purely functional package manager for the Emacs
31785 hacker.")
31786 (license license:expat))))
31787
31788 (define-public emacs-osm
31789 (package
31790 (name "emacs-osm")
31791 (version "0.6")
31792 (home-page "https://github.com/minad/osm")
31793 (source
31794 (origin
31795 (method git-fetch)
31796 (uri (git-reference (url home-page) (commit version)))
31797 (file-name (git-file-name name version))
31798 (sha256
31799 (base32 "0aiq2z9vv4jsl0s0x9vpjgp0mnn27wanhirzj3h80ivgiphzs7l5"))))
31800 (build-system emacs-build-system)
31801 (arguments
31802 `(#:phases (modify-phases %standard-phases
31803 (add-after 'unpack 'set-curl-file-name
31804 (lambda* (#:key inputs #:allow-other-keys)
31805 (substitute* "osm.el"
31806 (("\"curl( ?)\"" _ space)
31807 (string-append "\""
31808 (search-input-file inputs "/bin/curl")
31809 space "\""))))))))
31810 (inputs (list curl))
31811 (synopsis "OpenStreetMap viewer for Emacs")
31812 (description
31813 "This package provides an OpenStreetMap viewer for Emacs, featuring
31814 zoomable and moveable map display, display of tracks and POIs from GPX files,
31815 parallel fetching of tiles with cURL, and more.")
31816 (license license:gpl3+)))
31817
31818 (define-public emacs-corfu-terminal
31819 ;; Upstream does not tag releases, version taken from package header.
31820 (let ((commit "7c5a8a1c07b6c1a41b358b083d5bf7773701d26b")
31821 (revision "0"))
31822 (package
31823 (name "emacs-corfu-terminal")
31824 (version (git-version "0.4" revision commit))
31825 (source
31826 (origin
31827 (method git-fetch)
31828 (uri
31829 (git-reference
31830 (url "https://codeberg.org/akib/emacs-corfu-terminal")
31831 (commit commit)))
31832 (file-name (git-file-name name version))
31833 (sha256
31834 (base32 "0pk5vfcz8w4hiqrwzwpxdjzlbhla0bw7a1h6v0mqxad0j9y7v3nw"))))
31835 (build-system emacs-build-system)
31836 (propagated-inputs (list emacs-corfu emacs-popon))
31837 (home-page "https://codeberg.org/akib/emacs-corfu-terminal/")
31838 (synopsis "Replace corfu child frames with popups")
31839 (description
31840 "This package replaces the child frames @code{emacs-corfu} uses
31841 with popups, which also work in the terminal.")
31842 (license license:gpl3+))))
31843
31844 (define-public emacs-corfu-doc-terminal
31845 ;; Upstream does not tag releases, version taken from package header.
31846 (let ((commit "d8945c64b52d76e864b767b3048674f222daf80b")
31847 (revision "0"))
31848 (package
31849 (name "emacs-corfu-doc-terminal")
31850 (version (git-version "0.5" revision commit))
31851 (source
31852 (origin
31853 (method git-fetch)
31854 (uri
31855 (git-reference
31856 (url "https://codeberg.org/akib/emacs-corfu-doc-terminal")
31857 (commit commit)))
31858 (file-name (git-file-name name version))
31859 (sha256
31860 (base32 "0j0dd8np5x93wic22bc5i9h7bq2gj700n4fh11dzzgsj14lv2r5k"))))
31861 (build-system emacs-build-system)
31862 (propagated-inputs
31863 (list emacs-corfu emacs-corfu-doc emacs-corfu-terminal emacs-popon))
31864 (home-page "https://codeberg.org/akib/emacs-corfu-doc-terminal/")
31865 (synopsis "Replace corfu docmentation child frames with popups")
31866 (description
31867 "This package replaces the child frames @code{emacs-corfu-doc} uses
31868 with popups, which also work in the terminal.")
31869 (license license:gpl3+))))
31870
31871 (define-public emacs-popon
31872 ;; Upstream does not tag releases. The commit below matches the version
31873 ;; bump.
31874 (let ((commit "d16cb747d356eab3f1bc4061ecee473732f7b8bb"))
31875 (package
31876 (name "emacs-popon")
31877 (version "0.4")
31878 (source
31879 (origin
31880 (method git-fetch)
31881 (uri
31882 (git-reference
31883 (url "https://codeberg.org/akib/emacs-popon")
31884 (commit commit)))
31885 (file-name (git-file-name name version))
31886 (sha256
31887 (base32 "1i5rp0gvcdqakzaznsh0lqzvlq5kif9q2grq4l80gl75dmqdpym7"))))
31888 (build-system emacs-build-system)
31889 (home-page "https://codeberg.org/akib/emacs-popon/")
31890 (synopsis "Pop floating text on a window")
31891 (description
31892 "@code{emacs-popon} allows you to pop text on a window, what we call
31893 a popon. Popons are window-local and sticky, they don't move while
31894 scrolling, and they even don't go away when switching buffer, but you
31895 can bind a popon to a specific buffer to only show on that buffer.")
31896 (license license:gpl3+))))
31897
31898 (define-public emacs-bitbake-modes
31899 (package
31900 (name "emacs-bitbake-modes")
31901 (version "0.5.3")
31902 (source
31903 (origin
31904 (method git-fetch)
31905 (uri (git-reference
31906 (url "https://bitbucket.org/olanilsson/bitbake-modes")
31907 (commit (string-append "v" version))))
31908 (sha256
31909 (base32 "1580cfpfmsjwiq6v2vsqjwhzj9m4lrhhf3nffmbzp36r6q5n8611"))
31910 (file-name (git-file-name name version))))
31911 (build-system emacs-build-system)
31912 (propagated-inputs (list emacs-mmm-mode))
31913 (home-page "https://bitbucket.org/olanilsson/bitbake-modes")
31914 (synopsis "Emacs major modes for bitbake")
31915 (description
31916 "@code{emacs-bitbake-modes} is a collection of major modes and tools that can
31917 be useful when working with the bitbake files in Yocto and OpenEmbedded
31918 projects.")
31919 (license license:gpl3+)))