gnu: emacs-auctex: Update to 13.0.6.
[jackhill/guix/guix.git] / gnu / packages / emacs-xyz.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
3 ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
5 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Alex Kost <alezost@gmail.com>
6 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
8 ;;; Copyright © 2016, 2017, 2018, 2019 Chris Marusich <cmmarusich@gmail.com>
9 ;;; Copyright © 2015, 2016, 2018, 2020 Christopher Lemmer Webber <cwebber@dustycloud.org>
10 ;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com>
11 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
12 ;;; Copyright © 2016 David Thompson <davet@gnu.org>
13 ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
14 ;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
15 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
16 ;;; Copyright © 2016, 2019 Alex Griffin <a@ajgrf.com>
17 ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
18 ;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
19 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
20 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
21 ;;; Copyright © 2017, 2018, 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
22 ;;; Copyright © 2017, 2018, 2019, 2020, 2021 Clément Lassieur <clement@lassieur.org>
23 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
24 ;;; Copyright © 2017, 2018 Kyle Meyer <kyle@kyleam.com>
25 ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
26 ;;; Copyright © 2017 George Clemmer <myglc2@gmail.com>
27 ;;; Copyright © 2017, 2018 Feng Shu <tumashu@163.com>
28 ;;; Copyright © 2017, 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 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 Amar Singh <nly@disroot.org>
51 ;;; Copyright © 2019 Baptiste Strazzulla <bstrazzull@hotmail.fr>
52 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
53 ;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
54 ;;; Copyright © 2019, 2020 Amin Bandali <bandali@gnu.org>
55 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
56 ;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
57 ;;; Copyright © 2019 Stephen Webber <montokapro@gmail.com>
58 ;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
59 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
60 ;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
61 ;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
62 ;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com>
63 ;;; Copyright © 2020, 2021 Masaya Tojo <masaya@tojo.tokyo>
64 ;;; Copyright © 2020, 2021 Martin Becze <mjbecze@riseup.net>
65 ;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
66 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
67 ;;; Copyright © 2020 6033fe7de85d <6033fe7de85d@airmail.cc>
68 ;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
69 ;;; Copyright © 2020 Jérémy Korwin-Zmijowski <jeremy@korwin-zmijowski.fr>
70 ;;; Copyright © 2020 Alberto Eleuterio Flores Guerrero <barbanegra+guix@posteo.mx>
71 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
72 ;;; Copyright © 2020 pinoaffe <pinoaffe@airmail.cc>
73 ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
74 ;;; Copyright © 2020 Ryan Desfosses <rdes@protonmail.com>
75 ;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
76 ;;; Copyright © 2020 Fredrik Salomonsson <plattfot@gmail.com>
77 ;;; Copyright © 2020 Ryan Desfosses <rdes@protonmail.com>
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 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 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 Nicolò Balzarotti <nicolo@nixo.xyz>
89 ;;; Copyright © 2020 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 Alexandr 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 Stefan Reichör <stefan@xsteve.at>
98 ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
99 ;;;
100 ;;; This file is part of GNU Guix.
101 ;;;
102 ;;; GNU Guix is free software; you can redistribute it and/or modify it
103 ;;; under the terms of the GNU General Public License as published by
104 ;;; the Free Software Foundation; either version 3 of the License, or (at
105 ;;; your option) any later version.
106 ;;;
107 ;;; GNU Guix is distributed in the hope that it will be useful, but
108 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
109 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
110 ;;; GNU General Public License for more details.
111 ;;;
112 ;;; You should have received a copy of the GNU General Public License
113 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
114
115 (define-module (gnu packages emacs-xyz)
116 #:use-module ((guix licenses) #:prefix license:)
117 #:use-module (guix packages)
118 #:use-module (guix cvs-download)
119 #:use-module (guix download)
120 #:use-module (guix bzr-download)
121 #:use-module (guix git-download)
122 #:use-module (guix hg-download)
123 #:use-module (guix build-system gnu)
124 #:use-module (guix build-system cmake)
125 #:use-module (guix build-system copy)
126 #:use-module (guix build-system emacs)
127 #:use-module (guix build-system glib-or-gtk)
128 #:use-module (guix build-system perl)
129 #:use-module (guix build-system trivial)
130 #:use-module (gnu packages)
131 #:use-module (gnu packages admin)
132 #:use-module (gnu packages audio)
133 #:use-module (gnu packages bash)
134 #:use-module (gnu packages cmake)
135 #:use-module (gnu packages code)
136 #:use-module (gnu packages cpp)
137 #:use-module (gnu packages curl)
138 #:use-module (gnu packages databases)
139 #:use-module (gnu packages dictionaries)
140 #:use-module (gnu packages djvu)
141 #:use-module (gnu packages ebook)
142 #:use-module (gnu packages emacs)
143 #:use-module (gnu packages guile)
144 #:use-module (gnu packages gtk)
145 #:use-module (gnu packages gnome)
146 #:use-module (gnu packages haskell-apps)
147 #:use-module (gnu packages ibus)
148 #:use-module (gnu packages java)
149 #:use-module (gnu packages ncurses)
150 #:use-module (gnu packages python)
151 #:use-module (gnu packages python-xyz)
152 #:use-module (gnu packages telephony)
153 #:use-module (gnu packages terminals)
154 #:use-module (gnu packages tex)
155 #:use-module (gnu packages texinfo)
156 #:use-module (gnu packages tcl)
157 #:use-module (gnu packages tls)
158 #:use-module (gnu packages pkg-config)
159 #:use-module (gnu packages xorg)
160 #:use-module (gnu packages lesstif)
161 #:use-module (gnu packages llvm)
162 #:use-module (gnu packages image)
163 #:use-module (gnu packages linux)
164 #:use-module (gnu packages libevent)
165 #:use-module (gnu packages lisp-xyz)
166 #:use-module (gnu packages lua)
167 #:use-module (gnu packages music)
168 #:use-module (gnu packages version-control)
169 #:use-module (gnu packages imagemagick)
170 #:use-module (gnu packages w3m)
171 #:use-module (gnu packages web)
172 #:use-module (gnu packages wget)
173 #:use-module (gnu packages autotools)
174 #:use-module (gnu packages base)
175 #:use-module (gnu packages compression)
176 #:use-module (gnu packages node)
177 #:use-module (gnu packages xml)
178 #:use-module (gnu packages glib)
179 #:use-module (gnu packages acl)
180 #:use-module (gnu packages mail)
181 #:use-module (gnu packages messaging)
182 #:use-module (gnu packages package-management)
183 #:use-module (gnu packages perl)
184 #:use-module (gnu packages pdf)
185 #:use-module (gnu packages ruby)
186 #:use-module (gnu packages rust-apps)
187 #:use-module (gnu packages scheme)
188 #:use-module (gnu packages speech)
189 #:use-module (gnu packages xiph)
190 #:use-module (gnu packages mp3)
191 #:use-module (gnu packages gettext)
192 #:use-module (gnu packages fribidi)
193 #:use-module (gnu packages gd)
194 #:use-module (gnu packages fontutils)
195 #:use-module (gnu packages password-utils)
196 #:use-module (gnu packages pulseaudio)
197 #:use-module (gnu packages sphinx)
198 #:use-module (gnu packages xdisorg)
199 #:use-module (gnu packages shells)
200 #:use-module (gnu packages sqlite)
201 #:use-module (gnu packages ghostscript)
202 #:use-module (gnu packages gnupg)
203 #:use-module (gnu packages video)
204 #:use-module (gnu packages haskell-xyz)
205 #:use-module (gnu packages wordnet)
206 #:use-module (gnu packages photo)
207 #:use-module (gnu packages uml)
208 #:use-module (gnu packages finance)
209 #:use-module (guix utils)
210 #:use-module (srfi srfi-1)
211 #:use-module (ice-9 match))
212
213 ;;;
214 ;;; Emacs hacking.
215 ;;;
216
217 (define-public emacs-geiser
218 (package
219 (name "emacs-geiser")
220 (version "0.12")
221 (source
222 (origin
223 (method git-fetch)
224 (uri (git-reference
225 (url "https://gitlab.com/jaor/geiser/")
226 (commit version)))
227 (file-name (git-file-name name version))
228 (sha256
229 (base32 "0n718xpys7v94zaf9lpmsx97qgn6qxif1acr718wyvpmfr4hiv08"))))
230 (build-system gnu-build-system)
231 (arguments
232 '(#:phases
233 (modify-phases %standard-phases
234 (add-after 'install 'post-install
235 (lambda* (#:key outputs #:allow-other-keys)
236 (symlink "geiser-install.el"
237 (string-append (assoc-ref outputs "out")
238 "/share/emacs/site-lisp/"
239 "geiser-autoloads.el"))
240 #t)))))
241 (inputs
242 `(("guile" ,guile-2.2)))
243 (native-inputs
244 `(("emacs" ,emacs-minimal)
245 ("autoconf" ,autoconf)
246 ("automake" ,automake)
247 ("texinfo" ,texinfo)))
248 (home-page "https://nongnu.org/geiser/")
249 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
250 (description
251 "Geiser is a collection of Emacs major and minor modes that conspire with
252 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
253 continuously running Scheme interpreter takes the center of the stage in
254 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
255 implementation, Emacs and, ultimately, the schemer, giving them access to live
256 metadata.")
257 (license license:bsd-3)))
258
259 (define-public emacs-ac-geiser
260 (let ((commit "93818c936ee7e2f1ba1b315578bde363a7d43d05")
261 (revision "0"))
262 (package
263 (name "emacs-ac-geiser")
264 (version (git-version "0.1" revision commit))
265 (source
266 (origin
267 (uri (git-reference
268 (url "https://github.com/xiaohanyu/ac-geiser")
269 (commit commit)))
270 (method git-fetch)
271 (sha256
272 (base32 "00n2qa26yilaj837n1yp6lbqa4gf30nkkbvanl7m9ih7k48ssqmw"))
273 (file-name (git-file-name name version))))
274 (build-system emacs-build-system)
275 (propagated-inputs
276 `(("geiser" ,emacs-geiser)
277 ("auto-complete" ,emacs-auto-complete)))
278 (synopsis "Auto-complete backend for geiser")
279 (description
280 "This package provides an auto-complete source for Scheme projects
281 using geiser.")
282 (license license:bsd-3)
283 (home-page "https://github.com/xiaohanyu/ac-geiser"))))
284
285 (define-public emacs-geiser-gauche
286 (package
287 (name "emacs-geiser-gauche")
288 (version "0.0.2")
289 (source
290 (origin
291 (method git-fetch)
292 (uri (git-reference
293 (url "https://gitlab.com/emacs-geiser/gauche.git")
294 (commit version)))
295 (file-name (git-file-name name version))
296 (sha256
297 (base32 "0rxncnzx7qgcpvc8nz0sd8r0hwrplazzraahdwhbpq0q6z8ywqgg"))))
298 (build-system emacs-build-system)
299 (arguments
300 `(#:phases
301 (modify-phases %standard-phases
302 (add-after 'install 'install-scheme
303 (lambda* (#:key outputs #:allow-other-keys)
304 (install-file
305 "geiser-gauche.scm"
306 (string-append
307 (assoc-ref outputs "out")
308 "/share/emacs/site-lisp"))
309 #t)))))
310 (native-inputs
311 `(("geiser" ,emacs-geiser)))
312 (home-page "https://gitlab.com/emacs-geiser/gauche")
313 (synopsis "Gauche Scheme support for Geiser")
314 (description
315 "This package adds support for the Gauche Scheme implementation to Geiser,
316 a generic Scheme interaction mode for the GNU Emacs editor.")
317 (license license:expat)))
318
319 (define-public emacs-hyperbole
320 (package
321 (name "emacs-hyperbole")
322 (version "7.1.3")
323 (source
324 (origin
325 (method url-fetch)
326 (uri (string-append "https://elpa.gnu.org/packages/"
327 "hyperbole-" version ".tar"))
328 (sha256
329 (base32 "0bizibn4qgxqp89fyik6p47s9hss1g932mg8k7pznn3kkhj5c8rh"))
330 (patches
331 (search-patches "emacs-hyperbole-toggle-messaging.patch"))))
332 (build-system emacs-build-system)
333 (arguments
334 `(#:include '("DEMO"
335 "DEMO-ROLO.otl"
336 "HY-ABOUT"
337 "\\.el$"
338 "\\.info$"
339 "\\.kotl$")
340 #:phases
341 (modify-phases %standard-phases
342 ;; Fix build issues about missing "domainname" and "hpmap:dir-user"
343 ;; parent dir.
344 (add-after 'unpack 'fix-build
345 (lambda* (#:key inputs #:allow-other-keys)
346 (substitute* "hypb.el"
347 (("/bin/domainname")
348 (string-append (assoc-ref inputs "inetutils")
349 "/bin/dnsdomainname")))
350 (substitute* "hyperbole.el"
351 (("\\(hyperb:check-dir-user\\)") ""))
352 #t)))))
353 (inputs
354 `(("inetutils" ,inetutils)))
355 (home-page "https://www.gnu.org/software/hyperbole/")
356 (synopsis "The Everyday Hypertextual Information Manager")
357 (description
358 "GNU Hyperbole, or just Hyperbole, is a programmable hypertextual
359 information management system. It offers rapid views and interlinking of all
360 kinds of textual information, utilizing Emacs for editing. In particular,
361 Hyperbole lets you quickly create and activate hyperlink buttons, build
362 outlines, manage all your contacts, your windows and frames, and search across
363 buffers, directory trees, or the web.")
364 (license license:gpl3+)))
365
366 (define-public emacs-paredit
367 (package
368 (name "emacs-paredit")
369 (version "24")
370 (source (origin
371 (method url-fetch)
372 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
373 version ".el"))
374 (sha256
375 (base32
376 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
377 (build-system emacs-build-system)
378 (home-page "http://mumble.net/~campbell/emacs/paredit/")
379 (synopsis "Emacs minor mode for editing parentheses")
380 (description
381 "ParEdit (paredit.el) is a minor mode for performing structured editing
382 of S-expression data. The typical example of this would be Lisp or Scheme
383 source code.
384
385 ParEdit helps **keep parentheses balanced** and adds many keys for moving
386 S-expressions and moving around in S-expressions. Its behavior can be jarring
387 for those who may want transient periods of unbalanced parentheses, such as
388 when typing parentheses directly or commenting out code line by line.")
389 (license license:gpl3+)))
390
391 (define-public emacs-project
392 (package
393 (name "emacs-project")
394 (version "0.5.4")
395 (source
396 (origin
397 (method url-fetch)
398 (uri (string-append "https://elpa.gnu.org/packages/project-" version ".tar"))
399 (sha256
400 (base32 "0arjvhzzcf8b80w94yvpgfdlhsjwf5jk1r7vcai5a4dg3bi9cxyb"))))
401 (build-system emacs-build-system)
402 (propagated-inputs `(("emacs-xref" ,emacs-xref)))
403 (home-page "http://elpa.gnu.org/packages/project.html")
404 (synopsis "Operations on the current project")
405 (description
406 "This library contains generic infrastructure for dealing with projects,
407 some utility functions, and commands using that infrastructure.")
408 (license license:gpl3+)))
409
410 (define-public git-modes
411 (package
412 (name "emacs-git-modes")
413 (version "1.2.8")
414 (source (origin
415 (method git-fetch)
416 (uri (git-reference
417 (url "https://github.com/magit/git-modes")
418 (commit version)))
419 (file-name (git-file-name name version))
420 (sha256
421 (base32
422 "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"))))
423 (build-system emacs-build-system)
424 (home-page "https://github.com/magit/git-modes")
425 (synopsis "Emacs major modes for Git configuration files")
426 (description
427 "This package provides Emacs major modes for editing various Git
428 configuration files, such as .gitattributes, .gitignore, and .git/config.")
429 (license license:gpl3+)))
430
431 (define-public emacs-with-editor
432 (package
433 (name "emacs-with-editor")
434 (version "3.0.2")
435 (source
436 (origin
437 (method git-fetch)
438 (uri (git-reference
439 (url "https://github.com/magit/with-editor")
440 (commit (string-append "v" version))))
441 (file-name (git-file-name name version))
442 (sha256
443 (base32 "0hw6i5r3adkm4988badi94825lywkrh3sddiff4z04kj1nj15d0k"))))
444 (build-system emacs-build-system)
445 (arguments
446 `(#:phases
447 (modify-phases %standard-phases
448 (add-before 'install 'make-info
449 (lambda _
450 (invoke "makeinfo" "--no-split"
451 "-o" "with-editor.info" "with-editor.texi"))))))
452 (native-inputs
453 `(("texinfo" ,texinfo)))
454 (propagated-inputs
455 `(("emacs-async" ,emacs-async)))
456 (home-page "https://github.com/magit/with-editor")
457 (synopsis "Emacs library for using Emacsclient as EDITOR")
458 (description
459 "This package provides an Emacs library to use the Emacsclient as
460 @code{$EDITOR} of child processes, making sure they know how to call home.
461 For remote processes a substitute is provided, which communicates with Emacs
462 on stdout instead of using a socket as the Emacsclient does.")
463 (license license:gpl3+)))
464
465 (define-public emacs-libgit
466 (let ((commit "0ef8b13aef011a98b7da756e4f1ce3bb18e4d55a")
467 (revision "1"))
468 (package
469 (name "emacs-libgit")
470 (version (git-version "20200515" revision commit))
471 (source (origin
472 (method git-fetch)
473 (uri (git-reference
474 (url "https://github.com/magit/libegit2")
475 (commit commit)))
476 (file-name (git-file-name name version))
477 (sha256
478 (base32
479 "0pnjr3bg6y6354dfjjxfj0g51swzgl1fncpprah75x4k94rd369f"))
480 (patches (search-patches
481 ;; Submitted for inclusion upstream (see:
482 ;; https://github.com/magit/libegit2/pull/96).
483 "emacs-libgit-use-system-libgit2.patch"))))
484 ;; Use the cmake-build-system as it provides support for cross builds.
485 (build-system cmake-build-system)
486 (arguments
487 `(#:configure-flags '("-DUSE_SYSTEM_LIBGIT2=x")
488 ;; Add the emacs-build-system byte compilation and install phases.
489 #:imported-modules (,@%cmake-build-system-modules
490 (guix build emacs-build-system)
491 (guix build emacs-utils))
492 #:modules ((guix build cmake-build-system)
493 ((guix build emacs-build-system) #:prefix emacs:)
494 (guix build emacs-utils)
495 (guix build utils))
496 #:phases
497 (modify-phases %standard-phases
498 (add-after 'unpack 'set-libgit--module-file
499 (lambda* (#:key outputs #:allow-other-keys)
500 (let ((out (assoc-ref outputs "out")))
501 (make-file-writable "libgit.el")
502 (emacs-substitute-variables "libgit.el"
503 ("libgit--module-file"
504 (string-append out "/share/emacs/site-lisp/libegit2.so")))
505 #t)))
506 (add-before 'install 'prepare-for-install
507 (lambda _
508 (let ((s (string-append "../" ,name "-" ,version "-checkout")))
509 (copy-file "libegit2.so" (string-append s "/libegit2.so"))
510 (chdir s)
511 #t)))
512 (replace 'install
513 (lambda* (#:key outputs #:allow-other-keys)
514 (let ((install (assoc-ref emacs:%standard-phases 'install)))
515 (install #:outputs outputs
516 #:include (cons "\\.so$"
517 emacs:%default-include)))))
518 (add-after 'install 'make-autoloads
519 (assoc-ref emacs:%standard-phases 'make-autoloads))
520 (add-after 'make-autoloads 'enable-autoloads-compilation
521 (assoc-ref emacs:%standard-phases 'enable-autoloads-compilation))
522 (add-after 'enable-autoloads-compilation 'patch-el-files
523 (assoc-ref emacs:%standard-phases 'patch-el-files))
524 (add-after 'patch-el-files 'emacs-build
525 (assoc-ref emacs:%standard-phases 'build))
526 (add-after 'emacs-build 'validate-compiled-autoloads
527 (assoc-ref emacs:%standard-phases 'validate-compiled-autoloads)))))
528 (native-inputs
529 `(("pkg-config" ,pkg-config)
530 ("emacs" ,emacs-no-x)
531 ("git" ,git-minimal)))
532 (inputs
533 `(("libgit2" ,libgit2)))
534 (home-page "https://github.com/magit/libegit2")
535 (synopsis "Emacs bindings for libgit2")
536 (description "This is an experimental module written in C providing
537 libgit2 bindings for Emacs, intended to boost the performance of Magit.")
538 ;; The LICENSE file says GPL v2+, but libgit.el says GPL v3+.
539 (license license:gpl3+))))
540
541 (define-public emacs-magit
542 ;; There hasn't been an official release since 2018-11-16.
543 (let ((commit "7f486d47fe7042edba8d9a855a4c2c301a30bc6b")
544 (revision "6"))
545 (package
546 (name "emacs-magit")
547 (version (git-version "2.90.1" revision commit))
548 (source
549 (origin
550 (method git-fetch)
551 (uri (git-reference
552 (url "https://github.com/magit/magit")
553 (commit commit)))
554 (file-name (git-file-name name version))
555 (sha256
556 (base32 "05kyc5y5wa1p3h8j7mbgvfc4zcj998zi26lnnmksj9wnvahzxfms"))))
557 (build-system emacs-build-system)
558 (arguments
559 `(#:emacs ,emacs-no-x ;module support is required
560 #:tests? #t
561 #:test-command '("make" "test")
562 #:phases
563 (modify-phases %standard-phases
564 (add-after 'unpack 'build-info-manual
565 (lambda _
566 (invoke "make" "info")
567 ;; Copy info files to the lisp directory, which acts as
568 ;; the root of the project for the emacs-build-system.
569 (for-each (lambda (f)
570 (install-file f "lisp"))
571 (find-files "Documentation" "\\.info$"))
572 (chdir "lisp")
573 #t))
574 (add-after 'build-info-manual 'set-magit-version
575 (lambda _
576 (make-file-writable "magit.el")
577 (emacs-substitute-variables "magit.el"
578 ("magit-version" ,version))
579 #t))
580 (add-after 'set-magit-version 'patch-exec-paths
581 (lambda* (#:key inputs #:allow-other-keys)
582 (let ((perl (assoc-ref inputs "perl")))
583 (make-file-writable "magit-sequence.el")
584 (emacs-substitute-variables "magit-sequence.el"
585 ("magit-perl-executable" (string-append perl "/bin/perl")))
586 #t)))
587 (add-before 'check 'configure-git
588 (lambda _
589 ;; Otherwise some tests fail with error "unable to auto-detect
590 ;; email address".
591 (setenv "HOME" (getcwd))
592 (invoke "git" "config" "--global" "user.name" "toto")
593 (invoke "git" "config" "--global" "user.email"
594 "toto@toto.com")))
595 (add-after 'configure-git 'disable-tramp-test
596 (lambda _
597 ;; There is an issue causing TRAMP to fail in the build
598 ;; environment. Setting the tramp-remote-shell parameter of
599 ;; the sudo-method to the file name of the shell didn't help.
600 (chdir "..")
601 (substitute* "t/magit-tests.el"
602 (("^\\(ert-deftest magit-toplevel:tramp.*" all)
603 (string-append all " (skip-unless nil)")))
604 #t))
605 (add-before 'install 'enter-lisp-directory
606 (lambda _
607 (chdir "lisp")
608 #t)))))
609 (native-inputs
610 `(("texinfo" ,texinfo)))
611 (inputs
612 `(("git" ,git)
613 ("perl" ,perl)))
614 (propagated-inputs
615 `(("emacs-dash" ,emacs-dash)
616 ("emacs-libgit" ,emacs-libgit)
617 ("emacs-transient" ,emacs-transient)
618 ("emacs-with-editor" ,emacs-with-editor)))
619 (home-page "https://magit.vc/")
620 (synopsis "Emacs interface for the Git version control system")
621 (description
622 "With Magit, you can inspect and modify your Git repositories
623 with Emacs. You can review and commit the changes you have made to
624 the tracked files, for example, and you can browse the history of past
625 changes. There is support for cherry picking, reverting, merging,
626 rebasing, and other common Git operations.")
627 (license license:gpl3+))))
628
629 (define-public emacs-magit-svn
630 (let ((commit "9e33ceee32f665db59909e1c00a667ccdd04178f"))
631 (package
632 (name "emacs-magit-svn")
633 (version (git-version "2.2.1" "2" commit))
634 (source (origin
635 (method git-fetch)
636 (uri (git-reference
637 (url "https://github.com/magit/magit-svn")
638 (commit commit)))
639 (file-name (git-file-name name version))
640 (sha256
641 (base32
642 "1mlqz8dh6jy5rv72lgkxv253dgh73fmbaidskicypapvbl3lr6xy"))))
643 (build-system emacs-build-system)
644 (propagated-inputs `(("dash" ,emacs-dash)
645 ("with-editor" ,emacs-with-editor)
646 ("magit" ,emacs-magit)
647 ("transient" ,emacs-transient)))
648 (home-page "https://github.com/magit/magit-svn")
649 (synopsis "Git-SVN extension to Magit")
650 (description
651 "This package is an extension to Magit, the Git Emacs mode, providing
652 support for Git-SVN.")
653 (license license:gpl3+))))
654
655 (define-public emacs-magit-popup
656 (package
657 (name "emacs-magit-popup")
658 (version "2.13.3")
659 (source
660 (origin
661 (method git-fetch)
662 (uri (git-reference
663 (url "https://github.com/magit/magit-popup")
664 (commit (string-append "v" version))))
665 (file-name (git-file-name name version))
666 (sha256
667 (base32 "0znp6gx6vpcsybg774ab06mdgxb7sfk3gki1yp2qhkanav13i6q1"))))
668 (build-system emacs-build-system)
669 (arguments
670 `(#:phases
671 (modify-phases %standard-phases
672 (add-before 'install 'make-info
673 (lambda _
674 (invoke "make" "info"))))))
675 (native-inputs
676 `(("texinfo" ,texinfo)))
677 (propagated-inputs
678 `(("emacs-dash" ,emacs-dash)))
679 (home-page "https://github.com/magit/magit-popup")
680 (synopsis "Define prefix-infix-suffix command combos")
681 (description
682 "This library implements a generic interface for toggling switches and
683 setting options and then invoking an Emacs command which does something with
684 these arguments. The prototypical use is for the command to call an external
685 process, passing on the arguments as command line arguments.")
686 (license license:gpl3+)))
687
688 (define-public emacs-magit-annex
689 (let ((commit "ef5dce6267e9118a5eca82a22bcad0b67826c23a")
690 (revision "1"))
691 (package
692 (name "emacs-magit-annex")
693 (version (git-version "1.7.1" revision commit))
694 (source (origin
695 (method git-fetch)
696 (uri (git-reference
697 (url "https://github.com/magit/magit-annex")
698 (commit commit)))
699 (file-name (git-file-name name version))
700 (sha256
701 (base32
702 "0vzkydgl889cq173zjl89g2vrddb9abc4a8gljiz3b4a7n5b1nrd"))))
703 (build-system emacs-build-system)
704 (propagated-inputs
705 `(("magit" ,emacs-magit)
706 ("transient" ,emacs-transient)))
707 (home-page "https://github.com/magit/magit-annex/")
708 (synopsis "Git-annex support for Magit")
709 (description
710 "Magit-annex adds a few git-annex operations to the Magit interface.")
711 (license license:gpl3+))))
712
713 (define-public emacs-minions
714 (package
715 (name "emacs-minions")
716 (version "0.3.4")
717 (source
718 (origin
719 (method git-fetch)
720 (uri (git-reference
721 (url "https://github.com/tarsius/minions")
722 (commit (string-append "v" version))))
723 (file-name (git-file-name name version))
724 (sha256
725 (base32 "1rvsfg9aabvyzzxd38kvjwkm9675zcmrfhzj5x6wj0ba3n0k34q5"))))
726 (build-system emacs-build-system)
727 (propagated-inputs
728 `(("emacs-dash" ,emacs-dash)))
729 (home-page "https://github.com/tarsius/minions")
730 (synopsis "Minor-mode menu for the mode line")
731 (description
732 "This package implements a menu that lists enabled minor-modes, as well
733 as commonly but not currently enabled minor-modes. It can be used to toggle
734 local and global minor-modes, to access mode-specific menus, and to get help
735 about modes.
736
737 This menu is intended as a replacement for the incomplete yet wide list of
738 enabled minor-modes that is displayed in the mode line by default. To use the
739 menu like this, enable Minions mode.
740
741 Alternatively the menu can be bound globally, for example:
742 @code{(global-set-key [S-down-mouse-3] 'minions-minor-modes-menu)}.")
743 (license license:gpl3+)))
744
745 (define-public emacs-moody
746 (package
747 (name "emacs-moody")
748 (version "0.5.4")
749 (source
750 (origin
751 (method git-fetch)
752 (uri (git-reference
753 (url "https://github.com/tarsius/moody")
754 (commit (string-append "v" version))))
755 (file-name (git-file-name name version))
756 (sha256
757 (base32 "0n8p864yj5m3n7f9qiq9hy24dwfvv0a0wchx2818rppff6vfq3hf"))))
758 (build-system emacs-build-system)
759 (home-page "https://github.com/tarsius/moody")
760 (synopsis "Tabs and ribbons for Emacs mode-line")
761 (description
762 "@code{emacs-moody} provides utilities for displaying elements of
763 the mode line as tabs and ribbons. It also provides replacements for a few
764 built-in elements. The biggest difference to similar packages is that
765 this one is much simpler and much more consistent. When using this package,
766 then only the color of the mode line changes when a window becomes in-/active.")
767 (license license:gpl3+)))
768
769 (define-public emacs-theme-magic
770 ;; No tagged release upstream, but the commit below correspond to the 0.2.3
771 ;; release.
772 (let ((commit "844c4311bd26ebafd4b6a1d72ddcc65d87f074e3")
773 (revision "0"))
774 (package
775 (name "emacs-theme-magic")
776 (version "0.2.3")
777 (source
778 (origin
779 (method git-fetch)
780 (uri (git-reference
781 (url "https://github.com/jcaw/theme-magic")
782 (commit commit)))
783 (file-name (git-file-name name version))
784 (sha256
785 (base32 "10gkg7jh1s1484gm66a87zr7x8vmv00s7gfd0w2pj47nqf98g8hz"))))
786 (build-system emacs-build-system)
787 (arguments
788 `(
789 ;; Include Pywal interaction scripts.
790 #:include (cons "^python/" %default-include)
791 #:phases
792 (modify-phases %standard-phases
793 (add-after 'unpack 'patch-exec-paths
794 (lambda* (#:key inputs #:allow-other-keys)
795 (let ((files '("theme-magic.el" "python/wal_change_colors.py"))
796 (python (assoc-ref inputs "python"))
797 (python-pywal (assoc-ref inputs "python-pywal")))
798 (substitute* files
799 (("\"python\"") (string-append "\"" python "/bin/python3\""))
800 (("\"wal\"") (string-append "\"" python-pywal "/bin/wal\""))))
801 #t)))))
802 (inputs
803 `(("python" ,python)
804 ("python-pywal" ,python-pywal)))
805 (home-page "https://github.com/jcaw/theme-magic")
806 (synopsis "Generate and apply color palettes based on your Emacs theme")
807 (description
808 "This package provides a command to extract the colors from your Emacs
809 theme and apply them to the rest of Linux with Pywal. Pywal only applies your
810 theme to the current session.")
811 (license license:gpl3+))))
812
813 (define-public emacs-theme-sorcery
814 (let ((revision "0")
815 (commit "5a1c4445b9e6e09589a299a9962a6973272a0c2f"))
816 (package
817 (name "emacs-theme-sorcery")
818 (version "1.0")
819 (source
820 (origin
821 (method git-fetch)
822 (uri (git-reference
823 (url "https://github.com/mtreca/emacs-theme-sorcery")
824 (commit commit)))
825 (file-name (git-file-name name version))
826 (sha256
827 (base32 "1b858049n6nw4qf60fmszjrhl80x7ssh32f7glj722kwy7404kdh"))))
828 (build-system emacs-build-system)
829 (propagated-inputs
830 `(("emacs-autothemer" ,emacs-autothemer)))
831 (home-page "https://github.com/mtreca/emacs-theme-sorcery")
832 (synopsis "Dark and low-contrast Emacs theme")
833 (description "Sorcery is a dark and low-contrast Emacs theme inspired by
834 Apprentice and Sourcerer.")
835 (license license:gpl3+))))
836
837 (define-public emacs-treepy
838 (package
839 (name "emacs-treepy")
840 (version "0.1.2")
841 (source (origin
842 (method git-fetch)
843 (uri (git-reference
844 (url "https://github.com/volrath/treepy.el")
845 (commit version)))
846 (file-name (git-file-name name version))
847 (sha256
848 (base32
849 "0pmrpij80m5kgcr8bw36r8wllgppasw08vn3ghwvis9srpaq75cn"))))
850 (build-system emacs-build-system)
851 (home-page
852 "https://github.com/volrath/treepy.el")
853 (synopsis "Tree traversal tools")
854 (description
855 "Generic tools for recursive and iterative tree traversal based on
856 clojure.walk and clojure.zip respectively.")
857 (license license:gpl3+)))
858
859 (define-public emacs-typing
860 (let ((commit "a2ef25dde2d8eb91bd9c0c6164cb5208208647fa")
861 (revision "0"))
862 (package
863 (name "emacs-typing")
864 (version (git-version "1.1.4" revision commit))
865 (source
866 (origin
867 (method git-fetch)
868 (uri (git-reference
869 (url "https://github.com/kensanata/typing")
870 (commit commit)))
871 (file-name (git-file-name name version))
872 (sha256
873 (base32
874 "1dbh0srbf54lgd60ia79y9cfnq3kxlgw01qzdjs9mk3nfazzpgnv"))))
875 (build-system emacs-build-system)
876 (home-page "https://github.com/kensanata/typing/")
877 (synopsis "Emacs game where you have to type fast")
878 (description "The Typing of Emacs is a game for Emacs that
879 forces you to type words correctly as fast as possible, otherwise
880 you will die. The game builds the list of words from the active buffer.")
881 (license license:gpl2+))))
882
883 (define-public emacs-graphql
884 (package
885 (name "emacs-graphql")
886 (version "0.1.1")
887 (source (origin
888 (modules '((guix build utils)))
889 ;; Remove examples file with references to external packages as
890 ;; they do not exist at compilation time.
891 (snippet
892 '(begin (delete-file "examples.el")
893 #t))
894 (method git-fetch)
895 (uri (git-reference
896 (url "https://github.com/vermiculus/graphql.el")
897 (commit version)))
898 (file-name (git-file-name name version))
899 (sha256
900 (base32
901 "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw"))))
902 (build-system emacs-build-system)
903 (home-page
904 "https://github.com/vermiculus/graphql.el")
905 (synopsis "GraphQL utilities")
906 (description
907 "GraphQL.el provides a generally-applicable domain-specific language for
908 creating and executing GraphQL queries against your favorite web services.
909 GraphQL is a data query language and runtime designed and used to request and
910 deliver data to mobile and web apps.")
911 (license license:gpl3+)))
912
913 (define-public emacs-graphql-mode
914 ;; No tagged commit. No "Version" keyword either.
915 (let ((commit "9bed568ec86242dbe30bdbab324aa0eb2cd9bf08")
916 (revision "1"))
917 (package
918 (name "emacs-graphql-mode")
919 (version (git-version "0" revision commit))
920 (source
921 (origin
922 (method git-fetch)
923 (uri (git-reference
924 (url "https://github.com/davazp/graphql-mode")
925 (commit commit)))
926 (file-name (git-file-name name version))
927 (sha256
928 (base32 "0x9y7qq6y0zg8ncamzvk68ccmdyzh7xsj0xs0ykyl20d5wdpplj4"))))
929 (build-system emacs-build-system)
930 (home-page "https://github.com/davazp/graphql-mode")
931 (synopsis "Emacs mode to edit GraphQL schema and queries")
932 (description
933 "This package implements a major mode to edit GraphQL schemas and
934 query. The basic functionality includes syntax highlight and indentation.
935 Additionally, it is able to send GraphQL queries to an end-point URL.
936
937 Files with the @file{.graphql} and @file{.gql} extensions are
938 automatically opened with this mode.")
939 (license license:gpl3+))))
940
941 (define-public emacs-ghub
942 (package
943 (name "emacs-ghub")
944 (version "3.4.1")
945 (source
946 (origin
947 (method git-fetch)
948 (uri (git-reference
949 (url "https://github.com/magit/ghub")
950 (commit (string-append "v" version))))
951 (file-name (git-file-name name version))
952 (sha256
953 (base32 "07iy4203ppvzkh67sb0v968hnypnvy4dpfy0qpqrp8zmc455dxq5"))))
954 (build-system emacs-build-system)
955 (arguments
956 `(#:phases
957 (modify-phases %standard-phases
958 (add-before 'install 'make-info
959 (lambda _
960 (invoke "make" "info"))))))
961 (native-inputs
962 `(("texinfo" ,texinfo)))
963 (propagated-inputs
964 `(("dash" ,emacs-dash)
965 ("emacs-let-alist" ,emacs-let-alist)
966 ("treepy" ,emacs-treepy)))
967 (home-page "https://github.com/magit/ghub")
968 (synopsis "Emacs client libraries for the APIs of various Git forges")
969 (description
970 "Ghub provides basic support for using the APIs of various Git forges from
971 Emacs packages. It supports the REST APIs of Github, Github GraphQL, Gitlab,
972 Gitea, Gogs and Bitbucket. It abstracts access to API resources using only a
973 handful of functions that are not resource-specific.")
974 (license license:gpl3+)))
975
976 (define-public emacs-typit
977 ;; Last release is from 2017.
978 (let ((commit "231cb7df43253b84323520b8ed70f128d37003af")
979 (revision "1"))
980 (package
981 (name "emacs-typit")
982 (version (git-version "0.2.1" revision commit))
983 (source
984 (origin
985 (method git-fetch)
986 (uri (git-reference
987 (url "https://github.com/mrkkrp/typit")
988 (commit commit)))
989 (file-name (git-file-name name version))
990 (sha256
991 (base32 "1savrxs7xl92ifyxpxkkzv2didr7lb405h0dwz1bs1wldr5fb53f"))))
992 (build-system emacs-build-system)
993 (arguments
994 `(#:phases
995 (modify-phases %standard-phases
996 (add-after 'install 'install-dictionaries
997 (lambda* (#:key outputs #:allow-other-keys)
998 (let* ((out (assoc-ref outputs "out"))
999 (site-lisp
1000 (string-append
1001 out "/share/emacs/site-lisp/dict")))
1002 (mkdir-p site-lisp)
1003 (copy-recursively "dict" site-lisp)
1004 #t))))))
1005 (propagated-inputs
1006 `(("emacs-f" ,emacs-f)
1007 ("emacs-mmt" ,emacs-mmt)))
1008 (home-page "https://github.com/mrkkrp/typit")
1009 (synopsis "Typing game for Emacs with two difficulties")
1010 (description "Emacs Typit is a typing game for Emacs. Words that are
1011 picked randomly from the most frequent words in language you're practicing,
1012 until time is up.")
1013 (license license:gpl3+))))
1014
1015 (define-public emacs-scribble-mode
1016 (let ((commit "217945d54de5e4bb207033f2116baa28f5c5ecf2")
1017 (revision "2"))
1018 (package
1019 (name "emacs-scribble-mode")
1020 (version (git-version "0.1" revision commit))
1021 (source (origin
1022 (method git-fetch)
1023 (uri (git-reference
1024 (url "https://github.com/emacs-pe/scribble-mode")
1025 (commit commit)))
1026 (file-name (git-file-name name version))
1027 (sha256
1028 (base32
1029 "1s5ccw1a5ack01wd94ywfcrar9j98agchwdh30q7iyxr0d2z4sii"))))
1030 (build-system emacs-build-system)
1031 (home-page "https://github.com/emacs-pe/scribble-mode")
1032 (synopsis "Emacs mode for editing the Scribble documentation syntax.")
1033 (description
1034 "This package provides basic syntax highlighting and editing support
1035 for editing Racket's Scribble documentation syntax in Emacs.")
1036 (license license:gpl3+))))
1037
1038 (define-public emacs-shroud
1039 (package
1040 (name "emacs-shroud")
1041 (version "1.105")
1042 (source
1043 (origin
1044 (method git-fetch)
1045 (uri (git-reference
1046 (url "https://git.savannah.gnu.org/git/emacs-shroud.git")
1047 (commit version)))
1048 (file-name (git-file-name name version))
1049 (sha256
1050 (base32 "0q2pb3w8s833fjhkzicciw2php4lsnismad1dnwgp2lcway757ra"))))
1051 (build-system gnu-build-system)
1052 (native-inputs
1053 `(("autoconf" ,autoconf)
1054 ("automake" ,automake)
1055 ("texinfo" ,texinfo)
1056 ("perl" ,perl)
1057 ("emacs-minimal" ,emacs-minimal)))
1058 (propagated-inputs
1059 `(("emacs-bui" ,emacs-bui)
1060 ("emacs-dash" ,emacs-dash)
1061 ("emacs-f" ,emacs-f)
1062 ("emacs-s" ,emacs-s)
1063 ("gnupg" ,gnupg)
1064 ("shroud" ,shroud)))
1065 (home-page "https://www.nongnu.org/emacs-shroud")
1066 (synopsis "Emacs interface to the Shroud password manager")
1067 (description
1068 "This package provides an Emacs interface to the Shroud password manager,
1069 using the Buffers User Interface library. You can view, copy, and edit secrets
1070 from within Emacs.")
1071 (license license:gpl3+)))
1072
1073 (define-public emacs-solidity
1074 ;; This commit fixes a spacing issue and adds new keywords.
1075 (let ((commit "d166a86b83907e0cfd64c191e9dfce4b44a9843e")
1076 (revision "0"))
1077 (package
1078 (name "emacs-solidity")
1079 (version (git-version "0.1.10" revision commit))
1080 (source
1081 (origin
1082 (method git-fetch)
1083 (uri (git-reference
1084 (url "https://github.com/ethereum/emacs-solidity")
1085 (commit commit)))
1086 (file-name (git-file-name name version))
1087 (sha256
1088 (base32 "19hgvsrqch2vp49ag6m76bi5qxd20v95z0ib838rib9as15b17wq"))))
1089 (build-system emacs-build-system)
1090 (propagated-inputs
1091 `(("emacs-company" ,emacs-company)
1092 ("emacs-flycheck" ,emacs-flycheck)))
1093 (home-page "https://github.com/ethereum/emacs-solidity")
1094 (synopsis "Major mode for writing Solidity code")
1095 (description
1096 "This is a simple language mode for the Solidity language. It is
1097 a constant work in progress as the language itself also progresses.")
1098 (license license:gpl3+))))
1099
1100 (define-public emacs-unpackaged-el
1101 (let ((commit "746801a677ada6cd6fa076e423aa0953779f3fad")
1102 (revision "3"))
1103 (package
1104 (name "emacs-unpackaged-el")
1105 (version (git-version "0" revision commit))
1106 (source
1107 (origin
1108 (method git-fetch)
1109 (uri (git-reference
1110 (url "https://github.com/alphapapa/unpackaged.el")
1111 (commit commit)))
1112 (file-name (git-file-name name version))
1113 (sha256
1114 (base32
1115 "0jvb2ci0h0lj368qhbff3pzkxj3nhlligpbkjzi525k9rkjgm7l8"))))
1116 (build-system emacs-build-system)
1117 (propagated-inputs
1118 `(("emacs-dash" ,emacs-dash)
1119 ("emacs-org" ,emacs-org)
1120 ("emacs-s" ,emacs-s)
1121 ("emacs-hydra" ,emacs-hydra)
1122 ("emacs-use-package" ,emacs-use-package)))
1123 (arguments
1124 `(#:phases
1125 (modify-phases %standard-phases
1126 (add-after 'unpack 'require-hydra
1127 (lambda _
1128 (substitute* "unpackaged.el"
1129 ((";;; Code:") ";;; Code:\n(require 'hydra)"))
1130 #t)))))
1131 (home-page "https://github.com/alphapapa/unpackaged.el")
1132 (synopsis "Useful snippets of Emacs Lisp code")
1133 (description "This package provides Emacs Lisp utilities for a variety
1134 of tasks, including version control, task management, and regex-based
1135 replacement.")
1136 (license license:gpl3+))))
1137
1138 (define-public emacs-haskell-mode
1139 (package
1140 (name "emacs-haskell-mode")
1141 (version "17.2")
1142 (source
1143 (origin
1144 (method git-fetch)
1145 (uri (git-reference
1146 (url "https://github.com/haskell/haskell-mode")
1147 (commit version)))
1148 (file-name (git-file-name name version))
1149 (sha256
1150 (base32 "0zxbacqzr84krmhqpvzndnvlcjh1gs1x20ys0dykgd7chyhci5j5"))))
1151 (propagated-inputs
1152 `(("emacs-dash" ,emacs-dash)))
1153 (native-inputs
1154 `(("emacs" ,emacs-minimal)
1155 ("emacs-el-search" ,emacs-el-search)
1156 ("emacs-stream" ,emacs-stream)
1157 ("texinfo" ,texinfo)))
1158 (build-system gnu-build-system)
1159 (arguments
1160 `(#:make-flags (list (string-append "EMACS="
1161 (assoc-ref %build-inputs "emacs")
1162 "/bin/emacs"))
1163 #:modules ((ice-9 match)
1164 (srfi srfi-26)
1165 ,@%gnu-build-system-modules)
1166 #:phases
1167 (modify-phases %standard-phases
1168 (delete 'configure)
1169 (add-before 'build 'pre-build
1170 (lambda* (#:key inputs #:allow-other-keys)
1171 (define (el-dir store-dir)
1172 (match (find-files store-dir "\\.el$")
1173 ((f1 f2 ...) (dirname f1))
1174 (_ "")))
1175
1176 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
1177 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
1178
1179 (setenv "SHELL" "sh")
1180 (setenv "EMACSLOADPATH"
1181 (string-concatenate
1182 (map (match-lambda
1183 (((? emacs-prefix? name) . dir)
1184 (string-append (el-dir dir) ":"))
1185 (_ ""))
1186 inputs)))
1187 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
1188 #t)))
1189 (add-before 'check 'delete-failing-tests
1190 ;; XXX: these tests require GHC executable, which would be a big
1191 ;; native input.
1192 (lambda _
1193 (with-directory-excursion "tests"
1194 ;; File `haskell-indent-tests.el' fails with
1195 ;; `haskell-indent-put-region-in-literate-2'
1196 ;; on Emacs 27.1+
1197 ;; XXX: https://github.com/haskell/haskell-mode/issues/1714
1198 (for-each delete-file
1199 '("haskell-indent-tests.el"
1200 "haskell-customize-tests.el"
1201 "inferior-haskell-tests.el")))
1202 #t))
1203 (replace 'install
1204 (lambda* (#:key outputs #:allow-other-keys)
1205 (let* ((out (assoc-ref outputs "out"))
1206 (el-dir (string-append out "/share/emacs/site-lisp"))
1207 (doc (string-append
1208 out "/share/doc/haskell-mode-" ,version))
1209 (info (string-append out "/share/info")))
1210 (define (copy-to-dir dir files)
1211 (for-each (lambda (f)
1212 (install-file f dir))
1213 files))
1214
1215 (with-directory-excursion "doc"
1216 (invoke "makeinfo" "haskell-mode.texi")
1217 (install-file "haskell-mode.info" info))
1218 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
1219 (copy-to-dir el-dir (find-files "." "\\.elc?"))
1220 #t))))))
1221 (home-page "https://github.com/haskell/haskell-mode")
1222 (synopsis "Haskell mode for Emacs")
1223 (description
1224 "This is an Emacs mode for editing, debugging and developing Haskell
1225 programs.")
1226 (license license:gpl3+)))
1227
1228 (define-public emacs-dante
1229 (let ((commit "38b589417294c7ea44bf65b73b8046d950f9531b")
1230 (revision "1"))
1231 (package
1232 (name "emacs-dante")
1233 (version (git-version "1.6" revision commit))
1234 (source (origin
1235 (method git-fetch)
1236 (uri (git-reference
1237 (url "https://github.com/jyp/dante")
1238 (commit commit)))
1239 (sha256
1240 (base32
1241 "1mnmn635552zlwd4zr68jbvdjipl6gi4mi6wiyck28fsmq8kw96h"))
1242 (file-name (git-file-name name version))))
1243 (build-system emacs-build-system)
1244 (propagated-inputs
1245 `(("emacs-dash" ,emacs-dash)
1246 ("emacs-f" ,emacs-f)
1247 ("emacs-flycheck" ,emacs-flycheck)
1248 ("emacs-haskell-mode" ,emacs-haskell-mode)
1249 ("emacs-s" ,emacs-s)
1250 ("emacs-company" ,emacs-company)
1251 ("emacs-lcr" ,emacs-lcr)))
1252 (home-page "https://github.com/jyp/dante")
1253 (synopsis "Minor mode for interactive Haskell")
1254 (description
1255 "This package provides a minor mode for Haskell development that
1256 supports type hints, definition-jumping, completion, and more.")
1257 (license license:gpl3+))))
1258
1259 (define-public emacs-flycheck
1260 ;; Last release version was more than 500 commits ago.
1261 (let ((commit "9bcf6b665e15db94870bebc81dc8248c3eec20d3")
1262 (revision "2"))
1263 (package
1264 (name "emacs-flycheck")
1265 (version (git-version "31" revision commit))
1266 (source
1267 (origin
1268 (method git-fetch)
1269 (uri (git-reference
1270 (url "https://github.com/flycheck/flycheck/")
1271 (commit commit)))
1272 (sha256
1273 (base32 "015ixss5bjr7gvhj8mkw5x2x1hy6fvvsjarr2xpv0gskkkngs7pg"))
1274 (file-name (git-file-name name version))))
1275 (build-system emacs-build-system)
1276 (propagated-inputs
1277 `(("emacs-dash" ,emacs-dash)))
1278 (native-inputs
1279 `(("emacs-shut-up" ,emacs-shut-up)))
1280 (arguments
1281 `(#:phases
1282 (modify-phases %standard-phases
1283 (add-after 'unpack 'change-flycheck-version
1284 (lambda _
1285 (substitute* "flycheck.el"
1286 (("\\(pkg-info-version-info 'flycheck\\)")
1287 (string-append "\"" ,version "\"")))
1288 #t)))
1289 ;; TODO: many failing tests
1290 #:tests? #f
1291 #:test-command '("emacs" "-Q" "--batch" "-L" "."
1292 "--load" "test/flycheck-test"
1293 "--load" "test/run.el"
1294 "-f" "flycheck-run-tests-main")))
1295 (home-page "https://www.flycheck.org")
1296 (synopsis "On-the-fly syntax checking")
1297 (description
1298 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
1299 replacement for the older Flymake extension which is part of GNU Emacs, with
1300 many improvements and additional features.
1301
1302 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
1303 checking for over 30 programming and markup languages with more than 70
1304 different tools. It highlights errors and warnings inline in the buffer, and
1305 provides an optional IDE-like error list.")
1306 (license license:gpl3+)))) ;+GFDLv1.3+ for the manual
1307
1308 (define-public emacs-flymake-shellcheck
1309 ;; No tag, version grabbed from source .el file.
1310 (let ((commit "ac534e9ef15c82ac86ae65fe5004d29dbc8c92c7")
1311 (revision "1"))
1312 (package
1313 (name "emacs-flymake-shellcheck")
1314 (version (git-version "0.1" revision commit))
1315 (source
1316 (origin
1317 (method git-fetch)
1318 (uri (git-reference
1319 (url "https://github.com/federicotdn/flymake-shellcheck")
1320 (commit commit)))
1321 (file-name (git-file-name name version))
1322 (sha256
1323 (base32 "04yfb4sy41spjzk9mhm4gy0h8vnjx09p2g6nm1yzgd9a5ph9sqgl"))))
1324 (build-system emacs-build-system)
1325 (home-page "https://github.com/federicotdn/flymake-shellcheck")
1326 (synopsis "Flymake backend for Bash/Sh powered by ShellCheck")
1327 (description
1328 "This package provides a backend for Flymake to use the
1329 tool ShellCheck for static analyzing @command{bash} and @command{sh}
1330 scripts.")
1331 (license license:gpl3+))))
1332
1333 (define-public emacs-a
1334 (package
1335 (name "emacs-a")
1336 (version "0.1.1")
1337 (source (origin
1338 (method git-fetch)
1339 (uri (git-reference
1340 (url "https://github.com/plexus/a.el")
1341 (commit (string-append "v" version))))
1342 (file-name (git-file-name name version))
1343 (sha256
1344 (base32
1345 "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"))))
1346 (build-system emacs-build-system)
1347 (home-page "https://github.com/plexus/a.el/")
1348 (synopsis
1349 "Emacs library for dealing with association lists and hash tables")
1350 (description "@code{emacs-a} provides Emacs Lisp functions for dealing
1351 with associative structures in a uniform and functional way. These functions
1352 can take association lists, hash tables, and in some cases vectors (where the
1353 index is considered the key).")
1354 (license license:gpl3+)))
1355
1356 (define-public emacs-ace-jump-mode
1357 (package
1358 (name "emacs-ace-jump-mode")
1359 (version "2.0")
1360 (home-page "https://github.com/winterTTr/ace-jump-mode")
1361 (source (origin
1362 (method git-fetch)
1363 (uri (git-reference
1364 (url home-page)
1365 (commit (string-append "v" version))))
1366 (sha256
1367 (base32
1368 "1bwvzh056ls2v7y26a0s4j5mj582dmds04lx4x6iqihs04ss74bb"))
1369 (file-name (git-file-name name version))))
1370 (build-system emacs-build-system)
1371 (synopsis "Cursor location minor mode for fast navigation")
1372 (description "Ace-jump-mode is a fast/direct cursor location minor
1373 mode. It creates an N-Branch search tree internally and marks all
1374 the possible position with predefined keys in within the whole Emacs
1375 view. This allows you to move to the character, word, or line almost
1376 directly.")
1377 (license license:gpl3+)))
1378
1379 (define-public emacs-anaphora
1380 (package
1381 (name "emacs-anaphora")
1382 (version "1.0.4")
1383 (source
1384 (origin
1385 (method git-fetch)
1386 (uri (git-reference
1387 (url "https://github.com/rolandwalker/anaphora")
1388 (commit (string-append "v" version))))
1389 (file-name (git-file-name name version))
1390 (sha256
1391 (base32
1392 "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"))))
1393 (build-system emacs-build-system)
1394 (home-page "https://github.com/rolandwalker/anaphora/")
1395 (synopsis "Anaphoric expressions for Emacs Lisp")
1396 (description "@code{emacs-anaphora} implements anaphoric expressions for
1397 Emacs Lisp.
1398
1399 Anaphoric expressions implicitly create one or more temporary variables which
1400 can be referred to during the expression. This technique can improve clarity
1401 in certain cases. It also enables recursion for anonymous functions.")
1402 (license license:public-domain)))
1403
1404 (define-public emacs-xr
1405 (package
1406 (name "emacs-xr")
1407 (version "1.21")
1408 (source
1409 (origin
1410 (method url-fetch)
1411 (uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar"))
1412 (sha256
1413 (base32 "0mc10d33lsqs0ihcja8w78jzh2pk0dfm9m86kap6r3hi6wkr1cmi"))))
1414 (build-system emacs-build-system)
1415 (home-page "https://elpa.gnu.org/packages/xr.html")
1416 (synopsis "Convert string regexp to rx notation")
1417 (description
1418 "This is an inverse companion to the @code{rx} package for translating
1419 regexps in string form to the @code{rx} notation. Its chief uses are:
1420
1421 @itemize
1422 @item Migrating existing code to @code{rx} form, for better readability and
1423 maintainability
1424 @item Understanding complex regexp strings and finding errors in them
1425 @end itemize
1426
1427 In addition to Emacs regexps, this package can also parse and troubleshoot
1428 skip set strings, which are arguments to @code{skip-chars-forward} and
1429 @code{skip-chars-backward}.")
1430 (license license:gpl3+)))
1431
1432 (define-public emacs-ample-regexps
1433 (let ((commit "153969ce547afe410b8986f01c9ed4087c9cd20b")
1434 (revision "2"))
1435 (package
1436 (name "emacs-ample-regexps")
1437 (version (git-version "0.1" revision commit))
1438 (source
1439 (origin
1440 (method git-fetch)
1441 (uri (git-reference
1442 (url "https://github.com/immerrr/ample-regexps.el")
1443 (commit commit)))
1444 (file-name (git-file-name name version))
1445 (sha256
1446 (base32
1447 "0dkp7bcd7h2ds40wyszy11nmh7c2jxrwy04ayz7pbxh53ir7s2k0"))))
1448 (build-system emacs-build-system)
1449 (native-inputs
1450 `(("ert-runner" ,emacs-ert-runner)))
1451 (arguments
1452 `(#:tests? #t
1453 #:test-command '("ert-runner" "-l" "ample-regexps")))
1454 (home-page "https://github.com/immerrr/ample-regexps.el")
1455 (synopsis "Compose and reuse Emacs regexps")
1456 (description
1457 "This package allows common parts of regexps to be easily picked out
1458 and reused.")
1459 (license license:gpl3+))))
1460
1461 (define-public emacs-airline-themes
1462 (package
1463 (name "emacs-airline-themes")
1464 (version "1.8")
1465 (source
1466 (origin
1467 (method git-fetch)
1468 (uri (git-reference
1469 (url "https://github.com/AnthonyDiGirolamo/airline-themes")
1470 (commit version)))
1471 (file-name (git-file-name name version))
1472 (sha256
1473 (base32 "1jx17g8a6pxkw4zlx3fwhqgxfzcf3019k8fklykamfrkharzsc2l"))))
1474 (build-system emacs-build-system)
1475 (propagated-inputs
1476 `(("emacs-powerline" ,emacs-powerline)))
1477 (home-page "https://github.com/AnthonyDiGirolamo/airline-themes")
1478 (synopsis "Vim-airline themes for Emacs Powerline")
1479 (description
1480 "This is a port of the themes in Vim-airline to Emacs Powerline.")
1481 (license license:expat)))
1482
1483 (define-public emacs-ample-theme
1484 (let ((commit "536966adf882446165a1f756830028faa792c7a9")
1485 (revision "1"))
1486 (package
1487 (name "emacs-ample-theme")
1488 (version (git-version "0.0.0" revision commit))
1489 (source (origin
1490 (method git-fetch)
1491 (uri (git-reference
1492 (url "https://github.com/jordonbiondo/ample-theme")
1493 (commit commit)))
1494 (file-name (git-file-name name version))
1495 (sha256
1496 (base32
1497 "07bpv8dag40qjnm5000pgzpazj4whfxf93x2vprz26sg3mjfx0nf"))))
1498 (build-system emacs-build-system)
1499 (home-page "https://github.com/jordonbiondo/ample-theme")
1500 (synopsis "Theme for Emacs providing dark, light, and flat versions")
1501 (description "Ample themes is a collection of three themes sharing a
1502 similar pallet with a light, dark and flat versions with a focus on being easy
1503 on the eyes during night and day. They only support GUI and 256 colour
1504 terminals.")
1505 (license license:gpl3+))))
1506
1507 (define-public emacs-reformatter
1508 (package
1509 (name "emacs-reformatter")
1510 (version "0.6")
1511 (source
1512 (origin
1513 (method git-fetch)
1514 (uri (git-reference
1515 (url "https://github.com/purcell/reformatter.el")
1516 (commit version)))
1517 (file-name (git-file-name name version))
1518 (sha256
1519 (base32 "1dfn7c3gpavpiwd73v2pasd8wd8b62dczhg9iv1cgh8vaqlsf92x"))))
1520 (build-system emacs-build-system)
1521 (home-page "https://github.com/purcell/reformatter.el")
1522 (synopsis "Define commands which run reformatters on the current buffer")
1523 (description
1524 "This library lets elisp authors easily define an idiomatic command to
1525 reformat the current buffer using a command-line program, together with an
1526 optional minor mode which can apply this command automatically on save.")
1527 (license license:gpl3+)))
1528
1529 (define-public emacs-relative-buffers
1530 (let ((release "0.0.1")
1531 (revision "0")
1532 (commit "9762fe268e9ff150dcec2e2e45d862d82d5c4008"))
1533 (package
1534 (name "emacs-relative-buffers")
1535 (version (git-version release revision commit))
1536 (source
1537 (origin
1538 (method git-fetch)
1539 (uri (git-reference
1540 (url "https://github.com/emacsattic/relative-buffers")
1541 (commit commit)))
1542 (file-name (git-file-name name version))
1543 (sha256
1544 (base32 "0fzhwbpyndwrmxip9zlcwkrr675l5pzwcygi45hv7w1hn39w0hxp"))
1545 (snippet
1546 '(begin
1547 ;; Delete the Cask test runners.
1548 (for-each delete-file '("Cask" "test/test-helper.el"))
1549 #t))))
1550 (build-system emacs-build-system)
1551 (arguments
1552 `(#:tests? #t
1553 #:test-command '("ert-runner")))
1554 (native-inputs
1555 `(("ert-runner" ,emacs-ert-runner)))
1556 (propagated-inputs
1557 `(("emacs-dash" ,emacs-dash)
1558 ("emacs-f" ,emacs-f)
1559 ("emacs-s" ,emacs-s)))
1560 (home-page "https://github.com/emacsattic/relative-buffers")
1561 (synopsis "Minor mode to rename buffers by project structure")
1562 (description
1563 "This package provides a minor mode for renaming buffers according to
1564 project structure. For Python buffers, that will be the whole module name.
1565 For temporary files and directories, that will be the relative path from the
1566 project root.")
1567 (license license:gpl3+))))
1568
1569 (define-public emacs-relint
1570 (package
1571 (name "emacs-relint")
1572 (version "1.19")
1573 (source
1574 (origin
1575 (method url-fetch)
1576 (uri (string-append "https://elpa.gnu.org/packages/"
1577 "relint-" version ".tar"))
1578 (sha256
1579 (base32 "14z3i01pq5ljhjf5yfcjw7hxljcrwjnizkrdc1qyh9b6h3ic1bbi"))))
1580 (build-system emacs-build-system)
1581 (propagated-inputs `(("emacs-xr" ,emacs-xr)))
1582 (home-page "https://github.com/mattiase/relint")
1583 (synopsis "Elisp regexp mistake finder")
1584 (description
1585 "Relint (regular expression lint) scans Elisp files for mistakes in
1586 regexps, including deprecated syntax and bad practice. It also checks the
1587 regexp-like arguments to @code{skip-chars-forward} and
1588 @code{skip-chars-backward}.")
1589 (license license:gpl3+)))
1590
1591 (define-public emacs-bug-hunter
1592 (let ((commit "b88d981afa9154b236c5a3a83b50d5889d46c6a7")
1593 (revision "1"))
1594 (package
1595 (name "emacs-bug-hunter")
1596 (version (git-version "1.3.1" revision commit))
1597 (source
1598 (origin
1599 (method git-fetch)
1600 (uri (git-reference
1601 (url "https://github.com/Malabarba/elisp-bug-hunter")
1602 (commit commit)))
1603 (file-name (git-file-name name commit))
1604 (sha256
1605 (base32
1606 "134fj493sdn93pyyac8rpz1fzahzmayvphsrmqp3wvgysmfqm38l"))))
1607 (build-system emacs-build-system)
1608 (home-page "https://github.com/Malabarba/elisp-bug-hunter")
1609 (synopsis "Hunt down errors by bisecting elisp files")
1610 (description
1611 "The Bug Hunter is an Emacs library that finds the source of an error
1612 or unexpected behavior inside an elisp configuration file (typically
1613 @file{init.el} or @file{.emacs}).")
1614 (license license:gpl3+))))
1615
1616 \f
1617 ;;;
1618 ;;; Web browsing.
1619 ;;;
1620
1621 (define-public emacs-w3m
1622 ;; Emacs-w3m follows a "rolling release" model.
1623 (package
1624 (name "emacs-w3m")
1625 (version "2018-11-11")
1626 (source (origin
1627 (method cvs-fetch)
1628 (uri (cvs-reference
1629 (root-directory
1630 ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot")
1631 (module "emacs-w3m")
1632 (revision version)))
1633 (file-name (string-append name "-" version "-checkout"))
1634 (sha256
1635 (base32
1636 "0nvahdbjs12zg7zsk4gql02mvnv56cf1rwj2f5p42lwp3xvswiwp"))))
1637 (build-system gnu-build-system)
1638 (native-inputs `(("autoconf" ,autoconf)
1639 ("texinfo" ,texinfo)
1640 ("emacs" ,emacs-minimal)))
1641 (inputs `(("w3m" ,w3m)
1642 ("imagemagick" ,imagemagick)))
1643 (arguments
1644 `(#:modules ((guix build gnu-build-system)
1645 (guix build utils)
1646 (guix build emacs-utils))
1647 #:imported-modules (,@%gnu-build-system-modules
1648 (guix build emacs-utils))
1649 #:configure-flags
1650 (let ((out (assoc-ref %outputs "out")))
1651 (list (string-append "--with-lispdir="
1652 out "/share/emacs/site-lisp")
1653 (string-append "--with-icondir="
1654 out "/share/images/emacs-w3m")
1655 ;; Leave .el files uncompressed, otherwise GC can't
1656 ;; identify run-time dependencies. See
1657 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
1658 "--without-compress-install"))
1659 #:tests? #f ; no check target
1660 #:phases
1661 (modify-phases %standard-phases
1662 (add-after 'unpack 'autoconf
1663 (lambda _
1664 (invoke "autoconf")))
1665 (add-before 'configure 'support-emacs!
1666 (lambda _
1667 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
1668 ;; unsupported.
1669 (substitute* "configure"
1670 (("EMACS_FLAVOR=unsupported")
1671 "EMACS_FLAVOR=emacs"))
1672 #t))
1673 (add-before 'build 'patch-exec-paths
1674 (lambda* (#:key inputs outputs #:allow-other-keys)
1675 (let ((out (assoc-ref outputs "out"))
1676 (w3m (assoc-ref inputs "w3m"))
1677 (imagemagick (assoc-ref inputs "imagemagick"))
1678 (coreutils (assoc-ref inputs "coreutils")))
1679 (make-file-writable "w3m.el")
1680 (emacs-substitute-variables "w3m.el"
1681 ("w3m-command" (string-append w3m "/bin/w3m"))
1682 ("w3m-touch-command"
1683 (string-append coreutils "/bin/touch"))
1684 ("w3m-icon-directory"
1685 (string-append out "/share/images/emacs-w3m")))
1686 (make-file-writable "w3m-image.el")
1687 (emacs-substitute-variables "w3m-image.el"
1688 ("w3m-imagick-convert-program"
1689 (string-append imagemagick "/bin/convert"))
1690 ("w3m-imagick-identify-program"
1691 (string-append imagemagick "/bin/identify")))
1692 #t)))
1693 (replace 'install
1694 (lambda* (#:key outputs #:allow-other-keys)
1695 (invoke "make" "install" "install-icons")
1696 (with-directory-excursion
1697 (string-append (assoc-ref outputs "out")
1698 "/share/emacs/site-lisp")
1699 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
1700 (symlink "w3m-load.el" "w3m-autoloads.el")
1701 #t))))))
1702 (home-page "http://emacs-w3m.namazu.org/")
1703 (synopsis "Simple Web browser for Emacs based on w3m")
1704 (description
1705 "Emacs-w3m is an emacs interface for the w3m web browser.")
1706 (license license:gpl2+)))
1707
1708 (define-public emacs-wget
1709 (package
1710 (name "emacs-wget")
1711 (version "0.5.0")
1712 (source (origin
1713 (method url-fetch)
1714 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
1715 version ".orig.tar.gz"))
1716 (sha256
1717 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
1718 (build-system gnu-build-system)
1719 (inputs `(("wget" ,wget)))
1720 (native-inputs `(("emacs" ,emacs-minimal)))
1721 (arguments
1722 `(#:modules ((guix build gnu-build-system)
1723 (guix build utils)
1724 (guix build emacs-utils))
1725 #:imported-modules (,@%gnu-build-system-modules
1726 (guix build emacs-utils))
1727 #:tests? #f ; no check target
1728 #:phases
1729 (modify-phases %standard-phases
1730 (replace 'configure
1731 (lambda* (#:key outputs #:allow-other-keys)
1732 (substitute* "Makefile"
1733 (("/usr/local") (assoc-ref outputs "out"))
1734 (("/site-lisp/emacs-wget") "/site-lisp"))
1735 #t))
1736 (add-before 'build 'patch-exec-paths
1737 (lambda* (#:key inputs outputs #:allow-other-keys)
1738 (let ((wget (assoc-ref inputs "wget")))
1739 (emacs-substitute-variables "wget.el"
1740 ("wget-command" (string-append wget "/bin/wget"))))
1741 #t))
1742 (add-after 'install 'post-install
1743 (lambda* (#:key outputs #:allow-other-keys)
1744 (emacs-generate-autoloads
1745 "wget" (string-append (assoc-ref outputs "out")
1746 "/share/emacs/site-lisp/"))
1747 #t)))))
1748 (home-page "https://www.emacswiki.org/emacs/EmacsWget")
1749 (synopsis "Simple file downloader for Emacs based on wget")
1750 (description
1751 "Emacs-wget is an emacs interface for the wget file downloader.")
1752 (license license:gpl2+)))
1753
1754 (define-public emacs-eww-lnum
1755 (package
1756 (name "emacs-eww-lnum")
1757 (version "1.1")
1758 (source (origin
1759 (method git-fetch)
1760 (uri (git-reference
1761 (url "https://github.com/m00natic/eww-lnum")
1762 (commit version)))
1763 (file-name (git-file-name name version))
1764 (sha256
1765 (base32
1766 "0gs6bi3s2sszc6v2b26929azmn5513kvyin99n4d0ark1jdbjmv2"))))
1767 (build-system emacs-build-system)
1768 (home-page "https://github.com/m00natic/eww-lnum")
1769 (synopsis "Conkeror-like functionality for Eww")
1770 (description "This is extension to the Emacs browser Eww that adds
1771 Conkeror-like functionality. In short, currently visible links, forms,
1772 buttons are temporarily assigned numbers with which the former can be
1773 immediately activated. Also filtering can be applied so selection can be
1774 incrementally confined in Isearch manner.")
1775 (license license:gpl3+)))
1776
1777
1778 \f
1779 ;;;
1780 ;;; Multimedia.
1781 ;;;
1782
1783 (define emacs-emms-print-metadata
1784 (package
1785 (name "emacs-emms-print-metadata")
1786 (version "6.3")
1787 (source
1788 (origin
1789 (method url-fetch)
1790 (uri (string-append "https://elpa.gnu.org/packages/"
1791 "emms-" version ".tar"))
1792 (sha256
1793 (base32 "12cfq503li0gcqmm5bmqz8yjvfdif5xvz0l9vx3g5jl6ljygwgmf"))))
1794 (build-system gnu-build-system)
1795 (arguments
1796 `(#:make-flags '("emms-print-metadata")
1797 #:tests? #f ; No tests.
1798 #:phases
1799 (modify-phases %standard-phases
1800 (delete 'configure)
1801 (replace 'install
1802 (lambda* (#:key outputs #:allow-other-keys)
1803 (let* ((out (assoc-ref outputs "out")))
1804 (install-file "src/emms-print-metadata"
1805 (string-append out "/bin"))
1806 (install-file "emms-print-metadata.1"
1807 (string-append out "/share/man/man1"))
1808 #t))))))
1809 (inputs
1810 `(("taglib" ,taglib)))
1811 (home-page "https://www.gnu.org/software/emms/")
1812 (synopsis "The Emacs Multimedia System")
1813 (description
1814 "EMMS is the Emacs Multimedia System. It is a small front-end which
1815 can control one of the supported external players. Thus, it supports
1816 whatever formats are supported by your music player. It also
1817 supports tagging and playlist management, all behind a clean and
1818 light user interface.")
1819 (license license:gpl3+)))
1820
1821 (define-public emacs-emms
1822 (package
1823 (inherit emacs-emms-print-metadata)
1824 (name "emacs-emms")
1825 (build-system emacs-build-system)
1826 (arguments
1827 `(#:phases
1828 (modify-phases %standard-phases
1829 (add-after 'unpack 'set-external-programs
1830 ;; Specify the absolute file names of the various programs
1831 ;; so that everything works out-of-the-box. (tinytag missing)
1832 (lambda* (#:key inputs outputs #:allow-other-keys)
1833 (let ((out (assoc-ref outputs "out"))
1834 (emms-print-metadata (assoc-ref inputs "emms-print-metadata"))
1835 (flac (assoc-ref inputs "flac"))
1836 (vorbis (assoc-ref inputs "vorbis-tools"))
1837 (alsa (assoc-ref inputs "alsa-utils"))
1838 (mpg321 (assoc-ref inputs "mpg321"))
1839 (mp3info (assoc-ref inputs "mp3info"))
1840 (mutagen (assoc-ref inputs "mutagen"))
1841 (exiftool (assoc-ref inputs "perl-image-exiftool"))
1842 (opus (assoc-ref inputs "opus-tools")))
1843 (emacs-substitute-variables "emms-player-mpg321-remote.el"
1844 ("emms-player-mpg321-remote-command"
1845 (string-append mpg321 "/bin/mpg321")))
1846 (substitute* "emms-player-simple.el"
1847 (("\"ogg123\"")
1848 (string-append "\"" vorbis "/bin/ogg123\"")))
1849 (substitute* "emms-player-simple.el"
1850 (("\"mpg321\"")
1851 (string-append "\"" mpg321 "/bin/mpg321\"")))
1852 (emacs-substitute-variables "emms-info-ogginfo.el"
1853 ("emms-info-ogginfo-program-name"
1854 (string-append vorbis "/bin/ogginfo")))
1855 (emacs-substitute-variables "emms-info-opusinfo.el"
1856 ("emms-info-opusinfo-program-name"
1857 (string-append opus "/bin/opusinfo")))
1858 (emacs-substitute-variables "emms-info-libtag.el"
1859 ("emms-info-libtag-program-name"
1860 (string-append emms-print-metadata "/bin/emms-print-metadata")))
1861 (emacs-substitute-variables "emms-info-mp3info.el"
1862 ("emms-info-mp3info-program-name"
1863 (string-append mp3info "/bin/mp3info")))
1864 (emacs-substitute-variables "emms-info-metaflac.el"
1865 ("emms-info-metaflac-program-name"
1866 (string-append flac "/bin/metaflac")))
1867 (emacs-substitute-variables "emms-source-file.el"
1868 ("emms-source-file-gnu-find" (which "find")))
1869 (substitute* "emms-volume-amixer.el"
1870 (("\"amixer\"")
1871 (string-append "\"" alsa "/bin/amixer\"")))
1872 (substitute* "emms-tag-editor.el"
1873 (("\"mid3v2\"")
1874 (string-append "\"" mutagen "/bin/mid3v2\""))
1875 (("\"vorbiscomment\"")
1876 (string-append "\"" vorbis "/bin/vorbiscomment\"")))
1877 (substitute* "emms-info-exiftool.el"
1878 (("\"exiftool\"")
1879 (string-append "\"" exiftool "/bin/exiftool\"")))
1880 #t))))))
1881 (inputs
1882 `(("emms-print-metadata" ,emacs-emms-print-metadata)
1883 ("alsa-utils" ,alsa-utils)
1884 ("flac" ,flac) ;for metaflac
1885 ("vorbis-tools" ,vorbis-tools)
1886 ("mpg321" ,mpg321)
1887 ("mp3info" ,mp3info)
1888 ("mutagen" ,python-mutagen)
1889 ("perl-image-exiftool" ,perl-image-exiftool)
1890 ("opus-tools" ,opus-tools)))))
1891
1892 (define-public emacs-emms-mode-line-cycle
1893 (package
1894 (name "emacs-emms-mode-line-cycle")
1895 (version "0.2.5")
1896 (source
1897 (origin
1898 (method git-fetch)
1899 (uri (git-reference
1900 (url "https://github.com/momomo5717/emms-mode-line-cycle")
1901 (commit version)))
1902 (file-name (git-file-name name version))
1903 (sha256
1904 (base32
1905 "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp"))))
1906 (build-system emacs-build-system)
1907 (propagated-inputs
1908 `(("emms" ,emacs-emms)))
1909 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1910 (synopsis "Display the EMMS mode line as a ticker")
1911 (description
1912 "This is a minor mode for updating the EMMS mode-line string cyclically
1913 within a specified width. It is useful for displaying long track titles.")
1914 (license license:gpl3+)))
1915
1916 \f
1917 ;;;
1918 ;;; Miscellaneous.
1919 ;;;
1920
1921 (define-public emacs-ace-link
1922 (package
1923 (name "emacs-ace-link")
1924 (version "0.5.0")
1925 (source
1926 (origin
1927 (method git-fetch)
1928 (uri (git-reference
1929 (url "https://github.com/abo-abo/ace-link")
1930 (commit version)))
1931 (file-name (git-file-name name version))
1932 (sha256
1933 (base32
1934 "147dz79vg4ym5wg3d544bw2khdb2j3hr73rw4qfm64wf0q2dj0vk"))))
1935 (build-system emacs-build-system)
1936 (propagated-inputs
1937 `(("emacs-avy" ,emacs-avy)))
1938 (home-page "https://github.com/abo-abo/ace-link")
1939 (synopsis "Quickly follow links in Emacs")
1940 (description
1941 "Currently, to jump to a link in a @code{Info-mode}, @code{help-mode},
1942 @code{woman-mode}, @code{org-mode}, @code{eww-mode}, @code{compilation-mode},
1943 @code{goto-address-mode} buffer, you can tab through the links to select the
1944 one you want. This is an O(N) operation, where the N is the amount of links.
1945 This package turns this into an O(1) operation. It does so by assigning a
1946 letter to each link using avy.")
1947 (license license:gpl3+)))
1948
1949 (define-public emacs-auto-sudoedit
1950 (package
1951 (name "emacs-auto-sudoedit")
1952 (version "1.0.0")
1953 (source
1954 (origin
1955 (method git-fetch)
1956 (uri (git-reference
1957 (url "https://github.com/ncaq/auto-sudoedit")
1958 (commit (string-append "v" version))))
1959 (file-name (git-file-name name version))
1960 (sha256
1961 (base32 "10p0hc95j382km8655pqld9wxg10j1f36czzppkdd6a55cxarv9f"))))
1962 (propagated-inputs
1963 `(("emacs-f" ,emacs-f)))
1964 (build-system emacs-build-system)
1965 (home-page "https://github.com/ncaq/auto-sudoedit")
1966 (synopsis "Automatically re-open read-only files with sudo")
1967 (description
1968 "This package automatically reopens a file or directory with
1969 @command{sudo} if it cannot write to it.")
1970 (license license:expat)))
1971
1972 (define-public emacs-bbdb
1973 (package
1974 (name "emacs-bbdb")
1975 (version "3.2")
1976 (source
1977 (origin
1978 (method url-fetch)
1979 (uri (string-append "https://elpa.gnu.org/packages/"
1980 "bbdb-" version ".tar"))
1981 (sha256
1982 (base32 "1p56dg0mja2b2figy7yhdx714zd5j6njzn0k07zjka3jc06izvjx"))))
1983 (build-system emacs-build-system)
1984 (arguments
1985 ;; XXX: The following file cannot be byte-compiled, because et requires
1986 ;; `vm-autoloads', from the VM package, with is neither in Emacs nor
1987 ;; packaged in Guix. So, don't bother for now.
1988 `(#:exclude '("bbdb-vm\\.el")))
1989 (home-page "http://elpa.gnu.org/packages/bbdb.html")
1990 (synopsis "Contact management utility for Emacs")
1991 (description
1992 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1993 an address book for email and snail mail addresses, phone numbers and the
1994 like. It can be linked with various Emacs mail clients (Message and Mail
1995 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1996 (license license:gpl3+)))
1997
1998 (define-public emacs-counsel-bbdb
1999 (package
2000 (name "emacs-counsel-bbdb")
2001 (version "0.0.4")
2002 (source
2003 (origin
2004 (method git-fetch)
2005 (uri (git-reference
2006 (url "https://github.com/redguardtoo/counsel-bbdb")
2007 (commit version)))
2008 (file-name (git-file-name name version))
2009 (sha256
2010 (base32 "0bki658mvlchqf3prkzxz4217a95cxm58c1qmf84yp2n8h6gd0d8"))))
2011 (build-system emacs-build-system)
2012 (propagated-inputs `(("emacs-ivy" ,emacs-ivy)))
2013 (home-page "https://github.com/redguardtoo/counsel-bbdb")
2014 (synopsis "Ivy interface for BBDB")
2015 (description "This Ivy extension enables the use of @code{ivy-mode} to input
2016 email addresses from BBDB efficiently. The main functions are:
2017 @table @code
2018 @item counsel-bbdb-complete-mail to input email addresses;
2019 @item counsel-bbdb-reload' to reload contacts from BBDB database;
2020 @item counsel-bbdb-expand-mail-alias to expand mail alias.
2021 @end table
2022 Since @code{counsel-bbdb} is based on @code{ivy-mode}, all Ivy key bindings
2023 are supported. For example, after @samp{C-u M-x counsel-bbdb-complete-mail},
2024 you can press @samp{C-M-n} to input multiple email addresses.")
2025 (license license:gpl3+)))
2026
2027 (define-public emacs-bluetooth
2028 (package
2029 (name "emacs-bluetooth")
2030 (version "0.2")
2031 (source
2032 (origin
2033 (method url-fetch)
2034 (uri (string-append "https://elpa.gnu.org/packages/"
2035 "bluetooth-" version ".el"))
2036 (sha256
2037 (base32 "1dq04p6ms0zx4awlypp4crkz7dzal4xg8ac7p8fqacz196rczssp"))))
2038 (build-system emacs-build-system)
2039 (inputs
2040 `(("bluez" ,bluez)
2041 ("dbus" ,dbus)))
2042 (propagated-inputs
2043 `(("emacs-dash" ,emacs-dash)))
2044 (home-page "https://gitlab.com/rstocker/emacs-bluetooth")
2045 (synopsis "Manage Bluetooth devices using Emacs")
2046 (description
2047 "This package implements basic Bluetooth management functionality, such
2048 as connecting and disconnecting devices, setting properties and aliases,
2049 putting the adapter in discovery mode and controlling its power supply. It
2050 also includes a pairing agent.")
2051 (license license:gpl3+)))
2052
2053 (define-public emacs-aggressive-indent
2054 (package
2055 (name "emacs-aggressive-indent")
2056 (version "1.8.3")
2057 (source (origin
2058 (method url-fetch)
2059 (uri (string-append "https://elpa.gnu.org/packages/"
2060 "aggressive-indent-" version ".el"))
2061 (sha256
2062 (base32
2063 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
2064 (build-system emacs-build-system)
2065 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
2066 (synopsis "Minor mode to aggressively keep your code always indented")
2067 (description
2068 "@code{aggressive-indent-mode} is a minor mode that keeps your code
2069 always indented. It reindents after every change, making it more reliable
2070 than @code{electric-indent-mode}.")
2071 (license license:gpl2+)))
2072
2073 (define-public emacs-gcmh
2074 ;; No tagged release upstream, but the commit below correspond to the 0.2.1
2075 ;; release.
2076 (let ((commit "0089f9c3a6d4e9a310d0791cf6fa8f35642ecfd9"))
2077 (package
2078 (name "emacs-gcmh")
2079 (version "0.2.1")
2080 (source
2081 (origin
2082 (method git-fetch)
2083 (uri (git-reference
2084 (url "https://gitlab.com/koral/gcmh")
2085 (commit commit)))
2086 (sha256
2087 (base32 "0yh1ap8phv3x44rp0yr6z884xqw2apanbx4c0acqglvj0gaaqx25"))
2088 (file-name (git-file-name name version))))
2089 (build-system emacs-build-system)
2090 (home-page "https://gitlab.com/koral/gcmh")
2091 (synopsis "Emacs Garbage Collector Magic Hack")
2092 (description
2093 "This package enforces a sneaky @dfn{garbage collector} (GC) strategy
2094 to minimize GC interference with the activity. During normal use a high GC
2095 threshold is set. When idling GC is immediately triggered and a low threshold
2096 is set.")
2097 (license license:gpl3+))))
2098
2099 (define-public emacs-ctrlf
2100 (package
2101 (name "emacs-ctrlf")
2102 (version "1.3")
2103 (source
2104 (origin
2105 (method git-fetch)
2106 (uri (git-reference
2107 (url "https://github.com/raxod502/ctrlf")
2108 (commit (string-append "v" version))))
2109 (file-name (git-file-name name version))
2110 (sha256
2111 (base32 "06wq6scqy2ax0h6aahy2r7hn3bbmkzl4w99bkrc3cqd4ij78sc8g"))))
2112 (build-system emacs-build-system)
2113 (home-page "https://github.com/raxod502/ctrlf/")
2114 (synopsis "Single-buffer text search in Emacs")
2115 (description "CTRLF (pronounced @emph{control F}) is an intuitive and
2116 efficient solution for single-buffer text search in Emacs, replacing packages
2117 such as Isearch, Swiper, and helm-swoop. It takes inspiration from the
2118 widely-adopted and battle-tested @samp{Ctrl+F} interfaces in programs such as
2119 web browsers, but follows the flow and keybindings of Isearch.")
2120 (license license:expat)))
2121
2122 (define-public emacs-dhall-mode
2123 ;; There is no proper release. The base version is extracted from the
2124 ;; "Version" keyword in the main file.
2125 (let ((revision "1")
2126 (commit "484bcf8f78f1183ef45c3b04a362bb73690c6b9b"))
2127 (package
2128 (name "emacs-dhall-mode")
2129 (version (git-version "0.1.3" revision commit))
2130 (source
2131 (origin
2132 (method git-fetch)
2133 (uri
2134 (git-reference
2135 (url "https://github.com/psibi/dhall-mode")
2136 (commit commit)))
2137 (file-name (git-file-name name version))
2138 (sha256
2139 (base32 "1wggg8jlzg9rph4jhxp6yiri178rnasbv38838i973kjgqjxrl76"))))
2140 (build-system emacs-build-system)
2141 (propagated-inputs
2142 `(("emacs-reformatter" ,emacs-reformatter)))
2143 (home-page "https://github.com/psibi/dhall-mode")
2144 (synopsis "Major mode for working with Dhall configuration language")
2145 (description
2146 "Dhall-mode provides an Emacs Major mode for working with the Dhall
2147 configuration language. It features:
2148
2149 @itemize
2150 @item Syntax highlighting
2151 @item Multiline support for String
2152 @item Basic indentation, commenting
2153 @item Automatic formatting on save using dhall-format.
2154 @item Error highlighting.
2155 @end itemize")
2156 (license license:gpl3+))))
2157
2158 (define-public emacs-link-hint
2159 ;; Last release was in 2015.
2160 (let ((commit "d74a483652486260c052941fedeadddb1ea71f88")
2161 (revision "1"))
2162 (package
2163 (name "emacs-link-hint")
2164 (version (git-version "0.1" revision commit))
2165 (source
2166 (origin
2167 (method git-fetch)
2168 (uri (git-reference
2169 (url "https://github.com/noctuid/link-hint.el")
2170 (commit commit)))
2171 (file-name (git-file-name name version))
2172 (sha256
2173 (base32
2174 "0dghxd165fbds6czy9bfwpid3i4irgp3q08n9mg57sfifi0cmij0"))))
2175 (build-system emacs-build-system)
2176 (propagated-inputs
2177 `(("emacs-avy" ,emacs-avy)))
2178 (home-page "https://github.com/noctuid/link-hint.el")
2179 (synopsis "Vimperator-style link-hinting in Emacs")
2180 (description "This package provides commands for visiting and acting on
2181 links.")
2182 (license license:gpl3+))))
2183
2184 (define-public emacs-ag
2185 (package
2186 (name "emacs-ag")
2187 (version "0.48")
2188 (source (origin
2189 (method git-fetch)
2190 (uri (git-reference
2191 (url "https://github.com/Wilfred/ag.el")
2192 (commit version)))
2193 (file-name (git-file-name name version))
2194 (sha256
2195 (base32
2196 "1p918y24vcn2pdliaymd210xp9fvhd4a1srqbv2lfiqrh59yjidx"))))
2197 (build-system emacs-build-system)
2198 (arguments
2199 `(#:phases
2200 (modify-phases %standard-phases
2201 (add-before 'install 'make-info
2202 (lambda _
2203 (with-directory-excursion "docs"
2204 (invoke "make" "info"))))
2205 (add-after 'install 'install-info
2206 (lambda* (#:key outputs #:allow-other-keys)
2207 (let* ((out (assoc-ref outputs "out"))
2208 (info (string-append out "/share/info")))
2209 (install-file "docs/_build/texinfo/agel.info" info)
2210 #t))))))
2211 (native-inputs
2212 `(("python-sphinx" ,python-sphinx)
2213 ("texinfo" ,texinfo)))
2214 (propagated-inputs
2215 `(("dash" ,emacs-dash)
2216 ("s" ,emacs-s)
2217 ;; We need to use 'ag' as the executable on remote systems.
2218 ("the-silver-searcher" ,the-silver-searcher)))
2219 (home-page "https://github.com/Wilfred/ag.el")
2220 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
2221 (description "This package provides the ability to use the silver
2222 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
2223 include version control system awareness, use of Perl compatible regular
2224 expressions, editing the search results directly and searching file names
2225 rather than the contents of files.")
2226 (license license:gpl3+)))
2227
2228 (define-public emacs-async
2229 (package
2230 (name "emacs-async")
2231 (home-page "https://github.com/jwiegley/emacs-async")
2232 (version "1.9.4")
2233 (source (origin
2234 (method git-fetch)
2235 (uri (git-reference
2236 (url home-page)
2237 (commit (string-append "v" version))))
2238 (file-name (git-file-name name version))
2239 (sha256
2240 (base32
2241 "0hhpyxb3d531jb2f3wvzx25183f0anm8nxv6mh0p825q2gkm6ly7"))))
2242 (build-system emacs-build-system)
2243 (synopsis "Asynchronous processing in Emacs")
2244 (description
2245 "This package provides the ability to call asynchronous functions and
2246 processes. For example, it can be used to run dired commands (for copying,
2247 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
2248 as a library for other Emacs packages.")
2249 (license license:gpl3+)))
2250
2251 (define-public emacs-auctex
2252 (package
2253 (name "emacs-auctex")
2254 (version "13.0.6")
2255 (source
2256 (origin
2257 (method url-fetch)
2258 (uri (string-append "https://elpa.gnu.org/packages/"
2259 "auctex-" version ".tar"))
2260 (sha256
2261 (base32 "00wp388rh2nnk8fam53kilykg90jylps31qxv9ijy1lsp1hqdjys"))))
2262 (build-system emacs-build-system)
2263 ;; We use 'emacs' because AUCTeX requires dbus at compile time
2264 ;; ('emacs-minimal' does not provide dbus).
2265 (arguments
2266 `(#:emacs ,emacs
2267 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
2268 #:exclude '("^tests/" "^latex/README")
2269 #:phases
2270 (modify-phases %standard-phases
2271 (add-after 'unpack 'configure
2272 (lambda* (#:key inputs #:allow-other-keys)
2273 (emacs-substitute-variables "preview.el"
2274 ("preview-gs-command"
2275 (string-append (assoc-ref inputs "ghostscript") "/bin/gs")))
2276 (substitute* "preview.el"
2277 (("\"dvipng ")
2278 (string-append "\"" (assoc-ref inputs "texlive")
2279 "/bin/dvipng "))
2280 (("\"dvips ")
2281 (string-append "\"" (assoc-ref inputs "texlive")
2282 "/bin/dvips "))
2283 (("\"pdf2dsc ")
2284 (string-append "\"" (assoc-ref inputs "ghostscript")
2285 "/bin/pdf2dsc ")))))
2286 (add-after 'install 'install-doc
2287 (lambda* (#:key outputs #:allow-other-keys)
2288 (let* ((out (assoc-ref outputs "out"))
2289 (etc-dir (string-append out "/share/" ,name "/"
2290 ,version "/etc")))
2291 (with-directory-excursion "doc"
2292 (setenv "HOME" (getenv "TMPDIR")) ; for mktextfm
2293 (invoke "pdftex" "tex-ref")
2294 (install-file "tex-ref.pdf"
2295 (string-append etc-dir "/refcards")))
2296 #t))))))
2297 (native-inputs
2298 `(("perl" ,perl)))
2299 (inputs
2300 `(("ghostscript" ,ghostscript)
2301 ("texlive" ,(texlive-union (list texlive-amsfonts)))))
2302 (home-page "https://www.gnu.org/software/auctex/")
2303 (synopsis "Integrated environment for TeX")
2304 (description
2305 "AUCTeX is a comprehensive customizable integrated environment for
2306 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
2307 or XEmacs.")
2308 (license license:gpl3+)))
2309
2310 (define-public emacs-autothemer
2311 (package
2312 (name "emacs-autothemer")
2313 (version "0.2.2")
2314 (source
2315 (origin
2316 (method git-fetch)
2317 (uri (git-reference
2318 (url "https://github.com/sebastiansturm/autothemer")
2319 (commit version)))
2320 (file-name (git-file-name name version))
2321 (sha256
2322 (base32
2323 "0cd2pqh6k32sjidkcd8682y4l6mx52xw4a05f38kk8nsrk28m74k"))))
2324 (build-system emacs-build-system)
2325 (propagated-inputs
2326 `(("emacs-dash" ,emacs-dash)))
2327 (home-page "https://github.com/sebastiansturm/autothemer")
2328 (synopsis "Conveniently create Emacs themes")
2329 (description
2330 "Autothemer provides a thin layer on top of @code{deftheme} and
2331 @code{custom-theme-set-faces} that creates a new custom color theme, based on
2332 a set of simplified face specifications and a user-supplied color palette")
2333 (license license:gpl3+)))
2334
2335 (define-public emacs-howm
2336 (package
2337 (name "emacs-howm")
2338 (version "1.4.7")
2339 (source
2340 (origin
2341 (method url-fetch)
2342 (uri (string-append "https://howm.sourceforge.jp/a/"
2343 "howm-" version ".tar.gz"))
2344 (sha256
2345 (base32 "11k0dzwyn7ly34g0zcd6i0i8qwyv9di8m6fx805axrxykxb0qan2"))))
2346 (build-system gnu-build-system)
2347 (native-inputs
2348 `(("emacs" ,emacs-minimal)))
2349 (arguments
2350 `(#:configure-flags
2351 (list (string-append "--with-howmdir=" %output
2352 "/share/emacs/site-lisp/"))
2353 #:modules ((guix build gnu-build-system)
2354 ((guix build emacs-build-system) #:prefix emacs:)
2355 (guix build utils))
2356 #:imported-modules (,@%gnu-build-system-modules
2357 (guix build emacs-build-system)
2358 (guix build emacs-utils))
2359 #:phases
2360 (modify-phases %standard-phases
2361 (add-after 'install 'make-autoloads
2362 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
2363 (home-page "https://howm.osdn.jp/")
2364 (synopsis "Note-taking tool for Emacs")
2365 (description "Howm is a note-taking tool for Emacs. Like
2366 code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
2367 searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
2368 (license license:gpl1+)))
2369
2370 (define-public emacs-bm
2371 (package
2372 (name "emacs-bm")
2373 (version "201905")
2374 (source
2375 (origin
2376 (method git-fetch)
2377 (uri (git-reference
2378 (url "https://github.com/joodland/bm")
2379 (commit version)))
2380 (file-name (git-file-name name version))
2381 (sha256
2382 (base32 "180b3rc13asrmsdh7v405d54jkrininvaj52xhp71vw91ng51dkn"))))
2383 (build-system emacs-build-system)
2384 (home-page "https://github.com/joodland/bm")
2385 (synopsis "Visual bookmarks for Emacs")
2386 (description "This package provides visible, buffer local bookmarks and
2387 the ability to jump forward and backward to the next bookmark.")
2388 (license license:gpl2+)))
2389
2390 (define-public emacs-calfw
2391 (package
2392 (name "emacs-calfw")
2393 (version "1.6")
2394 (source
2395 (origin
2396 (method git-fetch)
2397 (uri (git-reference
2398 (url "https://github.com/kiwanami/emacs-calfw")
2399 (commit (string-append "v" version))))
2400 (file-name (git-file-name name version))
2401 (sha256
2402 (base32
2403 "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"))))
2404 (build-system emacs-build-system)
2405 (propagated-inputs
2406 `(("emacs-howm" ,emacs-howm)))
2407 (home-page "https://github.com/kiwanami/emacs-calfw/")
2408 (synopsis "Calendar framework for Emacs")
2409 (description
2410 "This package displays a calendar view with various schedule data in the
2411 Emacs buffer.")
2412 (license license:gpl3+)))
2413
2414 (define-public emacs-caps-lock
2415 (package
2416 (name "emacs-caps-lock")
2417 (version "1.0")
2418 (source
2419 (origin
2420 (method url-fetch)
2421 (uri (string-append "https://elpa.gnu.org/packages/"
2422 "caps-lock-" version ".el"))
2423 (sha256
2424 (base32 "1i4hwam81p4dr0bk8257fkiz4xmv6knkjxj7a00fa35kgx5blpva"))))
2425 (build-system emacs-build-system)
2426 (home-page "http://elpa.gnu.org/packages/caps-lock.html")
2427 (synopsis "Caps Lock as a minor mode")
2428 (description
2429 "This package provides a minor mode to emulate the behavior of a Caps
2430 Lock key.")
2431 (license license:gpl3+)))
2432
2433 (define-public emacs-chronometrist
2434 (package
2435 (name "emacs-chronometrist")
2436 (version "0.6.5")
2437 (source
2438 (origin
2439 (method git-fetch)
2440 (uri (git-reference
2441 (url "https://github.com/contrapunctus-1/chronometrist")
2442 (commit (string-append "v" version))))
2443 (file-name (git-file-name name version))
2444 (sha256
2445 (base32 "1k7r5rc6vzrnhp9j5bkv45yzqz7zbqrkiry4fzc8w6f36pcw862f"))))
2446 (build-system emacs-build-system)
2447 (arguments
2448 `(#:phases
2449 (modify-phases %standard-phases
2450 (add-after 'unpack 'chdir-elisp
2451 ;; Elisp directory is not in root of the source.
2452 (lambda _
2453 (chdir "elisp")
2454 #t))
2455 (add-after 'install 'install-doc
2456 ;; Documentation consists of several Markdown files.
2457 (lambda* (#:key outputs #:allow-other-keys)
2458 (let* ((out (assoc-ref outputs "out"))
2459 (doc (string-append out
2460 "/share/doc/emacs-chronometrist-"
2461 ,version)))
2462 (with-directory-excursion "../doc"
2463 (for-each (lambda (f) (install-file f doc))
2464 (cons* "../UNLICENSE"
2465 "../WTFPL"
2466 (find-files "." "\\.md$")))))
2467 #t)))))
2468 (propagated-inputs
2469 `(("emacs-anaphora" ,emacs-anaphora)
2470 ("emacs-dash" ,emacs-dash)
2471 ("emacs-s" ,emacs-s)
2472 ("emacs-ts" ,emacs-ts)))
2473 (home-page "https://github.com/contrapunctus-1/chronometrist")
2474 (synopsis "Time tracker for Emacs")
2475 (description "Chronometrist is a time tracker in Emacs, largely modelled
2476 after the Android application, @emph{A Time Tracker}.
2477
2478 Its features are:
2479 @itemize
2480 @item Simple and efficient to use,
2481 @item Displays useful information about your time usage,
2482 @item Support for both mouse and keyboard,
2483 @item Human errors in tracking are easily fixed by editing a plain text file,
2484 @item Hooks to let you perform arbitrary actions when starting/stopping tasks.
2485 @end itemize")
2486 ;; Software is dual-licensed.
2487 (license (list license:unlicense license:wtfpl2))))
2488
2489 (define-public emacs-direnv
2490 (package
2491 (name "emacs-direnv")
2492 (version "2.1.0")
2493 (source
2494 (origin
2495 (method git-fetch)
2496 (uri (git-reference
2497 (url "https://github.com/wbolster/emacs-direnv")
2498 (commit version)))
2499 (file-name (git-file-name name version))
2500 (sha256
2501 (base32 "0xkqn4604k2imas6azy1www56br8ls4iv9a44pxcd8h94j1fp44d"))))
2502 (build-system emacs-build-system)
2503 (propagated-inputs
2504 `(("dash" ,emacs-dash)
2505 ("with-editor" ,emacs-with-editor)))
2506 (home-page "https://github.com/wbolster/emacs-direnv")
2507 (synopsis "Direnv integration for Emacs")
2508 (description
2509 "This package provides support for invoking direnv to get the environment
2510 for the current file and updating the environment within Emacs to match.
2511
2512 Direnv can be invoked manually, and a global minor mode is included that will
2513 update the environment when the active buffer changes.
2514
2515 Using emacs-direnv means that programs started from Emacs will use the
2516 environment set through Direnv.")
2517 (license license:gpl3+)))
2518
2519 (define-public emacs-elf-mode
2520 (package
2521 (name "emacs-elf-mode")
2522 (version "0.1.0")
2523 (source
2524 (origin
2525 (method git-fetch)
2526 (uri
2527 (git-reference
2528 (url "https://github.com/abo-abo/elf-mode")
2529 (commit version)))
2530 (file-name (git-file-name name version))
2531 (sha256
2532 (base32 "0cbvjbk2893ag1iy8ggixpirfiyhssm7fii96hb9jqdz874cdl0k"))))
2533 (build-system emacs-build-system)
2534 (home-page "https://github.com/abo-abo/elf-mode")
2535 (synopsis "Show symbol list when opening a binary file in Emacs")
2536 (description "This Emacs package provides a command showing the symbols
2537 that the binary uses instead of the actual binary contents.")
2538 (license license:gpl3+)))
2539
2540 (define-public emacs-form-feed
2541 (package
2542 (name "emacs-form-feed")
2543 (version "0.2.2")
2544 (source
2545 (origin
2546 (method git-fetch)
2547 (uri (git-reference
2548 (url "https://github.com/wasamasa/form-feed")
2549 (commit version)))
2550 (file-name (git-file-name name version))
2551 (sha256
2552 (base32 "171jna631b2iqcimfsik9c66gii8nc0zdb58m077w00rn7rcxbh2"))))
2553 (build-system emacs-build-system)
2554 (home-page "https://github.com/wasamasa/form-feed")
2555 (synopsis "Display ^L glyphs as horizontal lines")
2556 (description
2557 "This package provides a minor mode @code{form-feed-mode} to display page
2558 delimiters which usually appear as ^L glyphs on a single line as horizontal
2559 lines spanning the entire window. The minor mode is suitable for inclusion
2560 into mode hooks and is intended to be used that way.")
2561 (license license:gpl3+)))
2562
2563 (define-public emacs-ggtags
2564 (package
2565 (name "emacs-ggtags")
2566 (version "0.8.13")
2567 (source
2568 (origin
2569 (method url-fetch)
2570 (uri (string-append "https://elpa.gnu.org/packages/ggtags-"
2571 version ".el"))
2572 (sha256
2573 (base32
2574 "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
2575 (build-system emacs-build-system)
2576 (inputs
2577 `(("global" ,global)))
2578 (arguments
2579 `(#:phases
2580 (modify-phases %standard-phases
2581 (add-after 'unpack 'configure
2582 (lambda* (#:key inputs #:allow-other-keys)
2583 (chmod "ggtags.el" #o644)
2584 (emacs-substitute-variables "ggtags.el"
2585 ("ggtags-executable-directory"
2586 (string-append (assoc-ref inputs "global") "/bin")))
2587 #t)))))
2588 (home-page "https://github.com/leoliu/ggtags")
2589 (synopsis "Frontend to the GNU Global source code tagging system")
2590 (description "@code{ggtags} provides a frontend to the GNU Global source
2591 code tagging system.
2592
2593 Features:
2594
2595 @itemize
2596 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
2597 @item Automatically update Global's tag files when needed with tuning for
2598 large source trees.
2599 @item Intuitive navigation among multiple matches with mode-line display of
2600 current match, total matches and exit status.
2601 @item Read tag with completion.
2602 @item Show definition at point.
2603 @item Jump to #include files.
2604 @item Support search history and saving a search to register/bookmark.
2605 @item Query replace.
2606 @item Manage Global's environment variables on a per-project basis.
2607 @item Highlight (definition) tag at point.
2608 @item Abbreviated display of file names.
2609 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
2610 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
2611 @code{pygments} backend.
2612 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
2613 @code{cscope} etc.
2614 @item Support projects on remote hosts (e.g. via @code{tramp}).
2615 @item Support eldoc.
2616 @item Search @code{GTAGSLIBPATH} for references and symbols.
2617 @end itemize\n")
2618 (license license:gpl3+)))
2619
2620 (define-public emacs-go-mode
2621 (package
2622 (name "emacs-go-mode")
2623 (version "1.5.0")
2624 (source (origin
2625 (method git-fetch)
2626 (uri (git-reference
2627 (url "https://github.com/dominikh/go-mode.el")
2628 (commit (string-append "v" version))))
2629 (file-name (git-file-name name version))
2630 (sha256
2631 (base32
2632 "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"))))
2633 (build-system emacs-build-system)
2634 (arguments
2635 `(#:phases
2636 (modify-phases %standard-phases
2637 (add-after 'unpack 'make-writable
2638 (lambda _
2639 (for-each make-file-writable (find-files "." "\\.el$"))
2640 #t)))))
2641 (home-page "https://github.com/dominikh/go-mode.el")
2642 (synopsis "Go mode for Emacs")
2643 (description
2644 "This package provides go-mode, an Emacs mode for working with software
2645 written in the Go programming language.")
2646 (license license:bsd-3)))
2647
2648 (define-public emacs-google-maps
2649 ;; There has been no new release tag since 2013.
2650 (let ((commit "2eb16ff609f5a9f8d02c15238a111fbb7db6c146")
2651 (revision "1"))
2652 (package
2653 (name "emacs-google-maps")
2654 (version (git-version "1.0.0" revision commit))
2655 (source
2656 (origin
2657 (method git-fetch)
2658 (uri (git-reference
2659 (url "https://github.com/jd/google-maps.el")
2660 (commit commit)))
2661 (file-name (git-file-name name version))
2662 (sha256
2663 (base32 "1bl0dnksbf14d0xcnvdy9qpvzc5c8jwkxpmfvgayj6djikxnw2md"))))
2664 (build-system emacs-build-system)
2665 (home-page "https://github.com/jd/google-maps.el")
2666 (synopsis "Access Google Maps from Emacs")
2667 (description "The @code{google-maps} package displays Google Maps
2668 directly inside Emacs. It requires a Google Map Static API key to function.")
2669 (license license:gpl3+))))
2670
2671 (define-public emacs-graphviz-dot-mode
2672 (package
2673 (name "emacs-graphviz-dot-mode")
2674 (version "0.4.2")
2675 (source
2676 (origin
2677 (method git-fetch)
2678 (uri (git-reference
2679 (url "https://github.com/ppareit/graphviz-dot-mode")
2680 (commit (string-append "v" version))))
2681 (file-name (git-file-name name version))
2682 (sha256
2683 (base32 "1v1p85wk73nfsvv66qf90flgf9dqhmv15z1r7q4zmc4ifklqn08m"))))
2684 (build-system emacs-build-system)
2685 (arguments
2686 `(#:phases
2687 (modify-phases %standard-phases
2688 (add-before 'install 'make-info
2689 (lambda* (#:key inputs #:allow-other-keys)
2690 (with-directory-excursion "texinfo"
2691 (substitute* "Makefile"
2692 (("\\/usr\\/bin\\/gzip")
2693 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
2694 (invoke "make"
2695 "clean"
2696 "info"
2697 (string-append "TEXINFODIR="
2698 (assoc-ref inputs "texinfo")
2699 "/bin")))))
2700 (add-after 'install 'install-info
2701 (lambda* (#:key outputs #:allow-other-keys)
2702 (let* ((out (assoc-ref outputs "out"))
2703 (info (string-append out "/share/info")))
2704 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
2705 #t))))))
2706 (native-inputs
2707 `(("gzip" ,gzip)
2708 ("texinfo" ,texinfo)))
2709 (propagated-inputs
2710 `(("emacs-company" ,emacs-company)))
2711 (home-page "http://ppareit.github.com/graphviz-dot-mode")
2712 (synopsis "Major mode for editing Graphviz DOT files")
2713 (description
2714 "This Emacs package helps you to create @file{.dot} or @file{.gv} files
2715 using the DOT syntax, and use Graphviz to convert these files to diagrams.")
2716 (license license:gpl2+)))
2717
2718 (define-public emacs-imenu-list
2719 (let ((commit "b50222378412fbe321622a84cb2b036e084c697a")
2720 (revision "1")
2721 (version "0.9"))
2722 (package
2723 (name "emacs-imenu-list")
2724 (version (git-version version revision commit))
2725 (source
2726 (origin
2727 (method git-fetch)
2728 (uri
2729 (git-reference
2730 (url "https://github.com/bmag/imenu-list")
2731 (commit commit)))
2732 (file-name (git-file-name name version))
2733 (sha256
2734 (base32 "1936dd41fa05ndzf2bwhllvjz97iz0rflkazjipr7dvz5q072wj2"))))
2735 (build-system emacs-build-system)
2736 (home-page "https://github.com/bmag/imenu-list")
2737 (synopsis
2738 "Automatically tracks the current buffer's imenu entries")
2739 (description
2740 "This Emacs minor mode creates an automatically updated buffer called
2741 @code{*Ilist*} that is populated with the current buffer's imenu entries.
2742 This buffer is typically shown as a sidebar (Emacs vertically splits the
2743 window).")
2744 (license license:gpl3+))))
2745
2746 (define-public emacs-mmm-mode
2747 (package
2748 (name "emacs-mmm-mode")
2749 (version "0.5.8")
2750 (source
2751 (origin
2752 (method url-fetch)
2753 (uri (string-append "https://elpa.gnu.org/packages/"
2754 "mmm-mode-" version ".tar"))
2755 (sha256
2756 (base32 "05ckf4zapdpvnd3sqpw6kxaa567zh536a36m9qzx3sqyjbyn5fb4"))))
2757 (build-system emacs-build-system)
2758 (home-page "https://github.com/purcell/mmm-mode")
2759 (synopsis "Allow multiple major modes in an Emacs buffer")
2760 (description
2761 "MMM Mode is a minor mode that allows multiple major modes to coexist in
2762 a single buffer.")
2763 (license license:gpl3+)))
2764
2765 (define-public emacs-mmt
2766 (package
2767 (name "emacs-mmt")
2768 (version "0.2.0")
2769 (source
2770 (origin
2771 (method git-fetch)
2772 (uri (git-reference
2773 (url "https://github.com/mrkkrp/mmt")
2774 (commit version)))
2775 (file-name (git-file-name name version))
2776 (sha256
2777 (base32 "13vbfc5597v0gd87qyhn10f93nb477vjpg3jlpphbax9fvkf4gav"))))
2778 (build-system emacs-build-system)
2779 (home-page "https://github.com/mrkkrp/mmt")
2780 (synopsis "Classic tools to write Emacs Lisp macros")
2781 (description "Emacs MMT is a package that contains classic tools for Emacs
2782 Lisp developers who want to write macros with convenience.")
2783 (license license:gpl3+)))
2784
2785 (define-public emacs-tablist
2786 (package
2787 (name "emacs-tablist")
2788 (version "1.0")
2789 (source (origin
2790 (method git-fetch)
2791 (uri (git-reference
2792 (url "https://github.com/politza/tablist")
2793 (commit (string-append "v" version))))
2794 (file-name (git-file-name name version))
2795 (sha256
2796 (base32
2797 "0pzsdg0rm59daw34ppss79cg05z9wnr8nkmdcc48nkd0p69ip2yy"))))
2798 (build-system emacs-build-system)
2799 (home-page "https://github.com/politza/tablist")
2800 (synopsis "Extension for @code{tabulated-list-mode}")
2801 (description "Tablist is the Emacs package that provides several
2802 additional features to @code{tabulated-list-mode}: it adds marks,
2803 filters, new key bindings and faces. It can be enabled by
2804 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
2805 (license license:gpl3+)))
2806
2807 (define-public emacs-djvu
2808 (package
2809 (name "emacs-djvu")
2810 (version "1.1.1")
2811 (source
2812 (origin
2813 (method url-fetch)
2814 (uri (string-append "https://elpa.gnu.org/packages/"
2815 "djvu-" version ".el"))
2816 (sha256
2817 (base32 "0z2qk1v4qkvcwl27ycqfb8vyszq5v6b8ci29b4la00yaki16p04i"))))
2818 (build-system emacs-build-system)
2819 (inputs `(("djview" ,djview)
2820 ("djvulibre" ,djvulibre)))
2821 (arguments
2822 `(#:phases
2823 (modify-phases %standard-phases
2824 (add-after 'unpack 'configure
2825 (lambda* (#:key inputs outputs #:allow-other-keys)
2826 (let ((file "djvu.el")
2827 (djview (assoc-ref inputs "djview"))
2828 (djvulibre (assoc-ref inputs "djvulibre")))
2829 ;; Specify the absolute executable locations.
2830 (chmod file #o644)
2831 (substitute* file
2832 (("\"djvused\"") (string-append "\"" djvulibre "/bin/djvused\""))
2833 (("\"djvm\"") (string-append "\"" djvulibre "/bin/djvm\""))
2834 (("\"ddjvu\"") (string-append "\"" djvulibre "/bin/ddjvu\"")))
2835 (emacs-substitute-variables file
2836 ("djvu-djview-command" (string-append djview "/bin/djview"))))
2837 #t)))))
2838 (home-page "http://elpa.gnu.org/packages/djvu.html")
2839 (synopsis "Edit and view Djvu files via djvused")
2840 (description
2841 "This package is a front end for the command-line program djvused from
2842 DjVuLibre, see @url{http://djvu.sourceforge.net/}.")
2843 (license license:gpl3+)))
2844
2845 (define-public emacs-pabbrev
2846 (package
2847 (name "emacs-pabbrev")
2848 (version "4.2.1")
2849 (source
2850 (origin
2851 (method url-fetch)
2852 (uri (string-append "https://elpa.gnu.org/packages/"
2853 "pabbrev-" version ".el"))
2854 (sha256
2855 (base32 "19v5adk61y8fpigw7k6wz6dj79jwr450hnbi7fj0jvb21cvjmfxh"))))
2856 (build-system emacs-build-system)
2857 (home-page "http://elpa.gnu.org/packages/pabbrev.html")
2858 (synopsis "Predictive abbreviation expansion")
2859 (description
2860 "The code provides a abbreviation expansion for Emacs. It is
2861 fairly similar to Dabbrev expansion, which works based on the contents
2862 of the current buffer (or other buffers).
2863
2864 Predictive abbreviation expansion works based on the previously
2865 written text. Unlike dynamic abbreviation, the text is analysed
2866 during idle time, while Emacs is doing nothing else.")
2867 (license license:gpl3+)))
2868
2869 (define-public emacs-pdf-tools
2870 ;; XXX: Development branch fixes an incompatibility with Emacs 27+. See
2871 ;; <https://github.com/politza/pdf-tools/issues/616>.
2872 (let ((commit "c510442ab89c8a9e9881230eeb364f4663f59e76")
2873 (revision "1"))
2874 (package
2875 (name "emacs-pdf-tools")
2876 (version (git-version "0.90" revision commit))
2877 (source
2878 (origin
2879 (method git-fetch)
2880 (uri (git-reference
2881 (url "https://github.com/politza/pdf-tools")
2882 (commit commit)))
2883 (file-name (git-file-name name version))
2884 (sha256
2885 (base32 "17z3cpn76g9dp62drjrgrqpp1bgf4gl5k5gspylskpvd4kj4bq4d"))))
2886 (build-system gnu-build-system)
2887 (arguments
2888 `(#:tests? #f ; there are no tests
2889 #:modules ((guix build gnu-build-system)
2890 ((guix build emacs-build-system) #:prefix emacs:)
2891 (guix build utils)
2892 (guix build emacs-utils))
2893 #:imported-modules (,@%gnu-build-system-modules
2894 (guix build emacs-build-system)
2895 (guix build emacs-utils))
2896 #:phases
2897 (modify-phases %standard-phases
2898 ;; Build server side using 'gnu-build-system'.
2899 (add-after 'unpack 'enter-server-dir
2900 (lambda _ (chdir "server") #t))
2901 (add-after 'enter-server-dir 'autogen
2902 (lambda _
2903 (invoke "bash" "autogen.sh")))
2904
2905 ;; Build emacs side using 'emacs-build-system'.
2906 (add-after 'compress-documentation 'enter-lisp-dir
2907 (lambda _ (chdir "../lisp") #t))
2908 (add-after 'enter-lisp-dir 'emacs-patch-variables
2909 (lambda* (#:key outputs #:allow-other-keys)
2910 (for-each make-file-writable (find-files "."))
2911
2912 ;; Set path to epdfinfo program.
2913 (emacs-substitute-variables "pdf-info.el"
2914 ("pdf-info-epdfinfo-program"
2915 (string-append (assoc-ref outputs "out")
2916 "/bin/epdfinfo")))
2917 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
2918 ;; upgrading" that pdf-tools tries to perform.
2919 (emacs-substitute-variables "pdf-tools.el"
2920 ("pdf-tools-handle-upgrades" '()))))
2921 (add-after 'emacs-patch-variables 'emacs-add-source-to-load-path
2922 (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
2923 (add-after 'emacs-add-source-to-load-path 'emacs-install
2924 (assoc-ref emacs:%standard-phases 'install))
2925 (add-after 'emacs-install 'emacs-build
2926 (assoc-ref emacs:%standard-phases 'build))
2927 (add-after 'emacs-install 'emacs-make-autoloads
2928 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
2929 (native-inputs
2930 `(("autoconf" ,autoconf)
2931 ("automake" ,automake)
2932 ("pkg-config" ,pkg-config)
2933 ("emacs" ,emacs-minimal)))
2934 (inputs
2935 `(("poppler" ,poppler)
2936 ("cairo" ,cairo)
2937 ("glib" ,glib)
2938 ("libpng" ,libpng)
2939 ("zlib" ,zlib)))
2940 (propagated-inputs
2941 `(("tablist" ,emacs-tablist)))
2942 (home-page "https://github.com/politza/pdf-tools")
2943 (synopsis "Emacs support library for PDF files")
2944 (description
2945 "PDF Tools is, among other things, a replacement of DocView for PDF
2946 files. The key difference is that pages are not pre-rendered by
2947 e.g. ghostscript and stored in the file-system, but rather created on-demand
2948 and stored in memory.")
2949 (license license:gpl3+))))
2950
2951 (define-public emacs-dash
2952 (package
2953 (name "emacs-dash")
2954 (version "2.18.1")
2955 (source (origin
2956 (method git-fetch)
2957 (uri (git-reference
2958 (url "https://github.com/magnars/dash.el")
2959 (commit version)))
2960 (file-name (git-file-name name version))
2961 (sha256
2962 (base32
2963 "1cvfd36vv0wqb16bnqqxh99hy2yks0j2i4l8qjkg3bxjgk7ldmva"))))
2964 (build-system emacs-build-system)
2965 (arguments `(#:tests? #t))
2966 (home-page "https://github.com/magnars/dash.el")
2967 (synopsis "Modern list library for Emacs")
2968 (description "This package provides a modern list API library for Emacs.")
2969 (license license:gpl3+)))
2970
2971 (define-public emacs-bui
2972 (package
2973 (name "emacs-bui")
2974 (version "1.2.1")
2975 (source (origin
2976 (method git-fetch)
2977 (uri (git-reference
2978 (url "https://notabug.org/alezost/emacs-bui.git")
2979 (commit (string-append "v" version))))
2980 (file-name (git-file-name name version))
2981 (sha256
2982 (base32
2983 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
2984 (build-system emacs-build-system)
2985 (propagated-inputs
2986 `(("dash" ,emacs-dash)))
2987 (home-page "https://notabug.org/alezost/emacs-bui")
2988 (synopsis "Buffer interface library for Emacs")
2989 (description
2990 "BUI (Buffer User Interface) is a library for making @code{list} and
2991 @code{info} interfaces to display an arbitrary data of the same
2992 type, for example: packages, buffers, files, etc.")
2993 (license license:gpl3+)))
2994
2995 (define-public emacs-guix
2996 (let* ((commit "a694fdbcedb6edd2239a31d326e475c763ee32f8")
2997 (revision "3"))
2998 (package
2999 (name "emacs-guix")
3000 (version (git-version "0.5.2" revision commit))
3001 (source (origin
3002 (method git-fetch)
3003 (uri (git-reference
3004 ;; TODO: Use the official version when it has a new home
3005 (url "https://github.com/jsoo1/guix.el")
3006 (commit commit)))
3007 (file-name (git-file-name name version))
3008 (sha256
3009 (base32
3010 "1pqw7zbgxzwpig4xr0izc3z8h80c72i6bl5yi12br0d7aq6dbkvj"))))
3011 (build-system gnu-build-system)
3012 (native-inputs
3013 `(("autoconf" ,autoconf)
3014 ("automake" ,automake)
3015 ("pkg-config" ,pkg-config)
3016 ("texinfo" ,texinfo)
3017 ("emacs" ,emacs-minimal)))
3018 (inputs
3019 `(("guile"
3020 ,@(assoc-ref (package-native-inputs guix) "guile"))
3021 ("guix" ,guix)))
3022 (propagated-inputs
3023 `(("geiser" ,emacs-geiser)
3024 ("guile-gcrypt" ,guile-gcrypt)
3025 ("dash" ,emacs-dash)
3026 ("bui" ,emacs-bui)
3027 ("edit-indirect" ,emacs-edit-indirect)
3028 ("magit-popup" ,emacs-magit-popup)))
3029 (home-page "https://emacs-guix.gitlab.io/website/")
3030 (synopsis "Emacs interface for GNU Guix")
3031 (description
3032 "Emacs-Guix provides a visual interface, tools and features for the GNU
3033 Guix package manager. Particularly, it allows you to do various package
3034 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
3035 @code{M-x guix-help} command.")
3036 (license license:gpl3+))))
3037
3038 (define-public emacs-build-farm
3039 (package
3040 (name "emacs-build-farm")
3041 (version "0.2.2")
3042 (source (origin
3043 (method git-fetch)
3044 (uri (git-reference
3045 (url "https://notabug.org/alezost/emacs-build-farm.git")
3046 (commit (string-append "v" version))))
3047 (file-name (git-file-name name version))
3048 (sha256
3049 (base32
3050 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
3051 (build-system emacs-build-system)
3052 (propagated-inputs
3053 `(("bui" ,emacs-bui)
3054 ("magit-popup" ,emacs-magit-popup)))
3055 (home-page "https://notabug.org/alezost/emacs-build-farm")
3056 (synopsis "Emacs interface for Hydra and Cuirass build farms")
3057 (description
3058 "This Emacs package provides an interface for Hydra and
3059 Cuirass (build farms used by Nix and Guix). It allows you to look at
3060 various data related to the build farm projects, jobsets, builds and
3061 evaluations. The entry point is @code{M-x build-farm} command.")
3062 (license license:gpl3+)))
3063
3064 (define-public emacs-d-mode
3065 (package
3066 (name "emacs-d-mode")
3067 (version "2.0.10")
3068 (source
3069 (origin
3070 (method git-fetch)
3071 (uri (git-reference
3072 (url "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
3073 (commit version)))
3074 (file-name (git-file-name name version))
3075 (sha256
3076 (base32 "0915kb9jcaixgindhj85fmykkhvj31ckp1yg6746fznwdgfrlifv"))))
3077 (build-system emacs-build-system)
3078 (propagated-inputs
3079 `(("emacs-undercover" ,emacs-undercover)))
3080 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
3081 (synopsis "Emacs major mode for editing D code")
3082 (description "This package provides an Emacs major mode for highlighting
3083 code written in the D programming language. This mode is currently known to
3084 work with Emacs 24 and 25.")
3085 (license license:gpl2+)))
3086
3087 (define-public emacs-extempore-mode
3088 ;; Use the latest commit at time of packaging. There are no releases or tags.
3089 (let ((commit "09518ae6650d7be33a4633a4c0f31b7130d04c6e")
3090 (revision "1"))
3091 (package
3092 (name "emacs-extempore-mode")
3093 (version (git-version "0.0.0" revision commit))
3094 (source
3095 (origin
3096 (method git-fetch)
3097 (uri (git-reference
3098 (url "https://github.com/extemporelang/extempore-emacs-mode")
3099 (commit commit)))
3100 (file-name (git-file-name name version))
3101 (sha256
3102 (base32 "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp"))))
3103 (build-system emacs-build-system)
3104 (home-page "https://github.com/extemporelang/extempore-emacs-mode")
3105 (synopsis "Emacs major mode for Extempore source files")
3106 (description
3107 "This package provides a major mode for editing Extempore code. It can
3108 create an Extempore REPL, connect the current @code{extempore-mode} buffer to a
3109 running Extempore process, and more.")
3110 (license license:bsd-2))))
3111
3112 (define-public emacs-kakoune
3113 ;; Package has no release. Version is extracted from "Version:" keyword in
3114 ;; main file.
3115 (let ((commit "d73d14e69ea38076af50cc69f846808383ff539d")
3116 (revision "0"))
3117 (package
3118 (name "emacs-kakoune")
3119 (version (git-version "0.1" revision commit))
3120 (source
3121 (origin
3122 (method git-fetch)
3123 (uri (git-reference
3124 (url "https://github.com/jmorag/kakoune.el")
3125 (commit commit)))
3126 (file-name (git-file-name name version))
3127 (sha256
3128 (base32 "0nk6jdy1y5mc3ryd0smiqghrk6iv34d5grc7f7migmshlbq0np92"))))
3129 (build-system emacs-build-system)
3130 (propagated-inputs
3131 `(("emacs-expand-region" ,emacs-expand-region)
3132 ("emacs-multiple-cursors" ,emacs-multiple-cursors)
3133 ("emacs-ryo-modal" ,emacs-ryo-modal)))
3134 (home-page "https://github.com/jmorag/kakoune.el")
3135 (synopsis "Emacs simple simulation, but not emulation, of Kakoune")
3136 (description "This package provides many, but not all of the editing
3137 primitives in the Kakoune editor. Unlike Evil mode for Vim, this is a very
3138 shallow emulation, which seeks to do as little work as possible, leveraging
3139 Emacs native editing commands and the work of other packages wherever
3140 possible.")
3141 (license license:expat))))
3142
3143 (define-public emacs-kana
3144 ;; Package has no release. Version is extracted from "Version:" keyword in
3145 ;; main file.
3146 (let ((commit "b239c3c3c6124b46ff720cca7b80ecbafd7fa489")
3147 (revision "0"))
3148 (package
3149 (name "emacs-kana")
3150 (version (git-version "1.0.0" revision commit))
3151 (source
3152 (origin
3153 (method git-fetch)
3154 (uri (git-reference
3155 (url "https://github.com/chenyanming/kana")
3156 (commit commit)))
3157 (file-name (git-file-name name version))
3158 (sha256
3159 (base32 "0vrrl1kniq4h111jvnapvx3wybvsl3alfaygw634mmryr3h7pwi8"))))
3160 (build-system emacs-build-system)
3161 (home-page "https://github.com/chenyanming/kana")
3162 (synopsis "Learn Japanese Kana in Emacs")
3163 (description
3164 "This Emacs mode displays Hiragana and Katakana flashcards. It can use
3165 functionality from Emacs Kanji mode if it is installed.")
3166 (license license:gpl3+))))
3167
3168 (define-public emacs-kanji
3169 ;; Package has no release. Version is extracted from "Version:" keyword in
3170 ;; main file.
3171 (let ((commit "5e9d5b72468ece11cfb81b729be6babf63ede425")
3172 (revision "0"))
3173 (package
3174 (name "emacs-kanji")
3175 (version (git-version "1.0" revision commit))
3176 (source
3177 (origin
3178 (method git-fetch)
3179 (uri (git-reference
3180 (url "https://github.com/wsgac/kanji-mode")
3181 (commit commit)))
3182 (file-name (git-file-name name version))
3183 (sha256
3184 (base32 "1zh7klqaza840q5f44zzh1wrnd6sqa2k93z3dgx3yhhsxfd1dxvy"))))
3185 (build-system emacs-build-system)
3186 (home-page "https://github.com/wsgac/kanji-mode")
3187 (synopsis "Emacs minor mode for displaying Japanese Kanji stroke order")
3188 (description
3189 "This minor mode displays the stroke order of the Kanji sign under
3190 cursor in a transient buffer. It has a built-in collection of SVG images
3191 depicting stroke orders for all Kanji. The collection is a slightly modified
3192 and limited version of the images provided by the KanjiVG project.")
3193 (license license:gpl3+))))
3194
3195 (define-public emacs-kbd
3196 ;; Package has no release. Version is extracted from "Version:" keyword in
3197 ;; main file.
3198 (let ((commit "a7f4c9b9770fa6a58895c5f121df82652bb1b737")
3199 (revision "0"))
3200 (package
3201 (name "emacs-kbd")
3202 (version (git-version "0.0.1" revision commit))
3203 (source
3204 (origin
3205 (method git-fetch)
3206 (uri (git-reference
3207 (url "https://github.com/slotThe/kbd-mode")
3208 (commit commit)))
3209 (file-name (git-file-name name version))
3210 (sha256
3211 (base32 "0jv9yfsncgf96308c041hvps3jlc151xb0aipm0vasbma3x83ygm"))))
3212 (build-system emacs-build-system)
3213 (arguments
3214 `(#:phases
3215 (modify-phases %standard-phases
3216 (add-after 'unpack 'enter-lisp-directory
3217 (lambda _ (chdir "lisp") #t)))))
3218 (home-page "https://github.com/slotThe/kbd-mode")
3219 (synopsis "Minor mode for syntax highlighting kmonad's @file{.kbd} files")
3220 (description
3221 "This minor mode provides syntax highlighting for Lisp-like DSL used in
3222 kmonad's configuration files (@file{.kbd}).")
3223 (license license:gpl3+))))
3224
3225 (define-public emacs-keycast
3226 (package
3227 (name "emacs-keycast")
3228 (version "1.0.4")
3229 (source
3230 (origin
3231 (method git-fetch)
3232 (uri (git-reference
3233 (url "https://github.com/tarsius/keycast.git")
3234 (commit (string-append "v" version))))
3235 (file-name (git-file-name name version))
3236 (sha256
3237 (base32 "1g9arjdhdpvsw47ny9gi5k758ya37yza4mr0rhbf02yvrqyfsrgr"))))
3238 (build-system emacs-build-system)
3239 (home-page "https://github.com/tarsius/keycast")
3240 (synopsis "Show current command and its key in the mode line")
3241 (description
3242 "This package provides Keycast mode. Once enabled, that mode shows the
3243 current command and its key or mouse binding in the mode line, and updates
3244 them whenever another command is invoked.")
3245 (license license:gpl3+)))
3246
3247 (define-public emacs-keyfreq
3248 (package
3249 (name "emacs-keyfreq")
3250 (version "20160516.716")
3251 (source
3252 (origin
3253 (method url-fetch)
3254 (uri (string-append "http://melpa.org/packages/keyfreq-"
3255 version ".el"))
3256 (sha256
3257 (base32
3258 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
3259 (build-system emacs-build-system)
3260 (home-page "https://github.com/dacap/keyfreq")
3261 (synopsis "Track Emacs command frequencies")
3262 (description "@code{emacs-keyfeq} tracks and shows how many times you used
3263 a command.")
3264 (license license:gpl3+)))
3265
3266 (define-public emacs-olivetti
3267 (package
3268 (name "emacs-olivetti")
3269 (version "1.11.3")
3270 (source
3271 (origin
3272 (method git-fetch)
3273 (uri (git-reference
3274 (url "https://github.com/rnkn/olivetti")
3275 (commit (string-append "v" version))))
3276 (file-name (git-file-name name version))
3277 (sha256
3278 (base32 "0zcph7l0hxisbvsyzb1dw3paq5a5sjp5lrq5nq9zggvgc6zvx7sh"))))
3279 (build-system emacs-build-system)
3280 (home-page "https://github.com/rnkn/olivetti")
3281 (synopsis "Emacs minor mode for a nice writing environment")
3282 (description "This package provides an Emacs minor mode that puts writing
3283 in the center.")
3284 (license license:gpl3+)))
3285
3286 (define-public emacs-undo-tree
3287 (package
3288 (name "emacs-undo-tree")
3289 (version "0.7.5")
3290 (source
3291 (origin
3292 (method url-fetch)
3293 (uri (string-append "https://elpa.gnu.org/packages/"
3294 "undo-tree-" version ".el"))
3295 (sha256
3296 (base32 "00admi87gqm0akhfqm4dcp9fw8ihpygy030955jswkha4zs7lw2p"))))
3297 (build-system emacs-build-system)
3298 (home-page "https://www.dr-qubit.org/undo-tree.html")
3299 (synopsis "Treat undo history as a tree")
3300 (description
3301 "Tree-like interface to Emacs undo system, providing
3302 graphical tree presentation of all previous states of buffer that
3303 allows easily move between them.")
3304 (license license:gpl3+)))
3305
3306 (define-public emacs-undo-fu
3307 ;; There are no tagged releases upstream on gitlab, instead we are using
3308 ;; the most recent commit.
3309 (let ((commit "c0806c1903c5a0e4c69b6615cdc3366470a9b8ca")
3310 (revision "0"))
3311 (package
3312 (name "emacs-undo-fu")
3313 (version (git-version "0.4" revision commit))
3314 (source
3315 (origin
3316 (method git-fetch)
3317 (uri (git-reference
3318 (url "https://gitlab.com/ideasman42/emacs-undo-fu")
3319 (commit commit)))
3320 (file-name (git-file-name name version))
3321 (sha256
3322 (base32 "1n594aakmcgyl7qbda86v4wsx8clm62ypiv3h559xz3x72h7mr3j"))))
3323 (build-system emacs-build-system)
3324 (home-page "https://gitlab.com/ideasman42/emacs-undo-fu")
3325 (synopsis "Simple, stable linear undo with redo for Emacs")
3326 (description
3327 "This is a light weight wrapper for Emacs built-in undo system,
3328 adding convenient undo/redo without losing access to the full undo history,
3329 allowing you to visit all previous states of the document if you need.")
3330 (license license:gpl3+))))
3331
3332 (define-public emacs-undo-fu-session
3333 ;; There are no tagged releases upstream on gitlab, instead we are using the
3334 ;; most recent commit.
3335 (let ((commit "56cdd3538a058c6916bdf2d9010c2179f2505829")
3336 (revision "0"))
3337 (package
3338 (name "emacs-undo-fu-session")
3339 (version (git-version "0.2" revision commit))
3340 (source
3341 (origin
3342 (method git-fetch)
3343 (uri (git-reference
3344 (url "https://gitlab.com/ideasman42/emacs-undo-fu-session")
3345 (commit commit)))
3346 (file-name (git-file-name name version))
3347 (sha256
3348 (base32 "04wq1alrzzlidcb4mjb5j7pg68pks1vgv7kvvmi6dzb3l602mb2a"))))
3349 (build-system emacs-build-system)
3350 (arguments
3351 `(#:tests? #t
3352 #:test-command '("emacs" "--batch" "-l" "undo-fu-session.el"
3353 "-l" "undo-fu-session-test.el")
3354 #:phases
3355 (modify-phases %standard-phases
3356 (add-before 'check 'set-home
3357 (lambda _
3358 (setenv "HOME" "/tmp")
3359 #t)))))
3360 (home-page "https://gitlab.com/ideasman42/emacs-undo-fu-session")
3361 (synopsis "Save & recover undo steps between Emacs sessions")
3362 (description "This package writes undo/redo information upon file save
3363 which is restored where possible when the file is loaded again.")
3364 (license license:gpl3+))))
3365
3366 (define-public emacs-s
3367 (package
3368 (name "emacs-s")
3369 (version "1.12.0")
3370 (source
3371 (origin
3372 (method git-fetch)
3373 (uri (git-reference
3374 (url "https://github.com/magnars/s.el")
3375 (commit version)))
3376 (file-name (git-file-name name version))
3377 (sha256
3378 (base32 "1g8mqd13llj007al4nlxxx4z2lcsg3wk970mgjn0avwrhjjgdmmv"))))
3379 (build-system emacs-build-system)
3380 (arguments
3381 `(#:tests? #t
3382 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
3383 #:test-command '("./run-tests.sh")))
3384 (home-page "https://github.com/magnars/s.el")
3385 (synopsis "Emacs string manipulation library")
3386 (description "This package provides an Emacs library for manipulating
3387 strings.")
3388 (license license:gpl3+)))
3389
3390 (define-public emacs-symon
3391 (package
3392 (name "emacs-symon")
3393 (version "20160630")
3394 (source
3395 (origin
3396 (method git-fetch)
3397 (uri (git-reference
3398 (url "https://github.com/zk-phi/symon")
3399 (commit version)))
3400 (file-name (git-file-name name version))
3401 (sha256
3402 (base32 "1q7di9s8k710nx98wnqnbkkhdimrn0jf6z4xkm4c78l6s5idjwlz"))))
3403 (build-system emacs-build-system)
3404 (home-page "https://github.com/zk-phi/symon")
3405 (synopsis "Tiny graphical system monitor")
3406 (description
3407 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
3408 (license license:gpl2+)))
3409
3410 (define-public emacs-sx
3411 (let ((version "20191229")
3412 (revision "0")
3413 (commit "e9d1093c97507a6d7b4f4710ef65200dae725e5f"))
3414 (package
3415 (name "emacs-sx")
3416 (version (git-version version revision commit))
3417 (source
3418 (origin
3419 (method git-fetch)
3420 (uri (git-reference
3421 (url "https://github.com/vermiculus/sx.el")
3422 (commit commit)))
3423 (file-name (git-file-name name version))
3424 (sha256
3425 (base32 "0m90ddwm8j0y6d1ppqhd2gil1107k202blw6mzm5bdambn4nfqkf"))))
3426 (build-system emacs-build-system)
3427 (propagated-inputs
3428 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
3429 (home-page "https://github.com/vermiculus/sx.el")
3430 (synopsis "Emacs StackExchange client")
3431 (description
3432 "Emacs StackExchange client. Ask and answer questions on
3433 Stack Overflow, Super User, and other StackExchange sites.")
3434 (license license:gpl3+))))
3435
3436 (define-public emacs-toc-org
3437 (package
3438 (name "emacs-toc-org")
3439 (version "1.1.0")
3440 (source
3441 (origin
3442 (method git-fetch)
3443 (uri (git-reference
3444 (url "https://github.com/snosov1/toc-org")
3445 (commit version)))
3446 (file-name (git-file-name name version))
3447 (sha256
3448 (base32 "0lk0rji85a1c0c5r9an0fdvsm4n4jyixsknmr8ywha3lfmc2p0l8"))))
3449 (build-system emacs-build-system)
3450 (home-page "https://github.com/snosov1/toc-org")
3451 (synopsis "Table of Contents generator for Emacs Org mode")
3452 (description
3453 "This package generates a table of contents when saving in Org and
3454 Markdown files.")
3455 (license license:gpl2+)))
3456
3457 (define-public emacs-toml-mode
3458 (let ((version "0.1.3")
3459 (revision "0")
3460 (commit "f6c61817b00f9c4a3cab1bae9c309e0fc45cdd06"))
3461 (package
3462 (name "emacs-toml-mode")
3463 (version (git-version version revision commit))
3464 (source
3465 (origin
3466 (method git-fetch)
3467 (uri (git-reference
3468 (url "https://github.com/dryman/toml-mode.el")
3469 (commit commit)))
3470 (file-name (git-file-name name version))
3471 (sha256
3472 (base32 "05b4ksay85c8y5ncax0qsvnmplwsfiw24z16a58gkarjz938hb57"))))
3473 (build-system emacs-build-system)
3474 (home-page "https://github.com/dryman/toml-mode.el")
3475 (synopsis "Emacs major mode for editing TOML files")
3476 (description
3477 ;; XXX: Ideally we'd use @acronym for "TOML", but Guile's Texinfo
3478 ;; parser does not currently support @comma{}, making it impossible
3479 ;; to use commas in the @acronym arguments.
3480 "This package provides a major mode for editing files in @dfn{TOML}
3481 (Tom's Obvious, Minimal Language) data format.")
3482 (license license:gpl3+))))
3483
3484 (define-public emacs-twittering-mode
3485 (package
3486 (name "emacs-twittering-mode")
3487 (version "3.1.0")
3488 (source
3489 (origin
3490 (method url-fetch)
3491 (uri (string-append "mirror://sourceforge/twmode"
3492 "/twittering-mode-" version
3493 "/twittering-mode-" version ".tar.xz"))
3494 (sha256
3495 (base32 "02imis1gxz90lah0b5n37j2hlsaw5igss11d85vpsm5d1bgw8j28"))))
3496 (build-system emacs-build-system)
3497 (home-page "http://twmode.sourceforge.net")
3498 (synopsis "Emacs major mode for Twitter")
3499 (description
3500 "Twittering mode is an Emacs major mode for Twitter.
3501 You can check timelines, tweet, mark posts as favorites and so on with
3502 Emacs.")
3503 (license license:gpl2+)))
3504
3505 (define-public emacs-f
3506 (package
3507 (name "emacs-f")
3508 (version "0.20.0")
3509 (source (origin
3510 (method git-fetch)
3511 (uri (git-reference
3512 (url "https://github.com/rejeep/f.el")
3513 (commit (string-append "v" version))))
3514 (file-name (git-file-name name version))
3515 (sha256
3516 (base32
3517 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
3518 (build-system emacs-build-system)
3519 (propagated-inputs
3520 `(("emacs-s" ,emacs-s)
3521 ("emacs-dash" ,emacs-dash)))
3522 (home-page "https://github.com/rejeep/f.el")
3523 (synopsis "Emacs API for working with files and directories")
3524 (description "This package provides an Emacs library for working with
3525 files and directories.")
3526 (license license:gpl3+)))
3527
3528 (define-public emacs-fountain-mode
3529 (package
3530 (name "emacs-fountain-mode")
3531 (version "3.4.1")
3532 (source
3533 (origin
3534 (method git-fetch)
3535 (uri (git-reference
3536 (url "https://github.com/rnkn/fountain-mode")
3537 (commit (string-append "v" version))))
3538 (file-name (git-file-name name version))
3539 (sha256
3540 (base32 "14zhbcfqyp093kd1bxl7f2hf5l5995qmgpmnxfgw9qcc781crj73"))))
3541 (build-system emacs-build-system)
3542 (home-page "https://github.com/rnkn/fountain-mode")
3543 (synopsis "Major mode for screenwriting in Fountain markup")
3544 (description "Fountain Mode is a scriptwriting program for GNU Emacs
3545 using the Fountain plain text markup format.")
3546 (license license:gpl3+)))
3547
3548 (define-public emacs-fringe-helper
3549 (let ((commit "ef4a9c023bae18ec1ddd7265f1f2d6d2e775efdd")
3550 (revision "1"))
3551 (package
3552 (name "emacs-fringe-helper")
3553 (version (git-version "1.0.1" revision commit))
3554 (source
3555 (origin
3556 (method git-fetch)
3557 (uri (git-reference
3558 (url "https://github.com/nschum/fringe-helper.el")
3559 (commit commit)))
3560 (file-name (git-file-name name version))
3561 (sha256
3562 (base32 "0ra9rc53l1gvkqank8apasl3r7wz2yfjrcvmfk3wpxhh24ppxv9d"))))
3563 (build-system emacs-build-system)
3564 (arguments
3565 `(#:tests? #t
3566 #:test-command '("emacs" "--batch"
3567 "-l" "tests.el"
3568 "-f" "ert-run-tests-batch-and-exit")))
3569 (home-page "https://github.com/nschum/fringe-helper.el")
3570 (synopsis "Helper functions for fringe bitmaps")
3571 (description
3572 "This package allows fringe bitmaps to be defined with a visual string
3573 representation.")
3574 (license license:gpl2+))))
3575
3576 (define-public emacs-git-gutter
3577 (package
3578 (name "emacs-git-gutter")
3579 (version "0.91")
3580 (source
3581 (origin
3582 (method git-fetch)
3583 (uri (git-reference
3584 (url "https://github.com/syohex/emacs-git-gutter")
3585 (commit version)))
3586 (file-name (git-file-name name version))
3587 (sha256
3588 (base32 "0zc9f73app1d7j4yb10sy4xidh5252ncyxlvr5kh0kiqk88ck6j9"))))
3589 (build-system emacs-build-system)
3590 (home-page "https://github.com/syohex/emacs-git-gutter")
3591 (synopsis "See and manage hunks of text in a version control system")
3592 (description
3593 "This package is an Emacs minor mode for displaying and interacting with
3594 hunks of text managed in a version control system. Added modified and deleted
3595 areas can be indicated with symbols on the edge of the buffer, and commands
3596 can be used to move between and perform actions on these hunks.
3597
3598 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
3599 display and behaviour is easily customisable.")
3600 (license license:gpl3+)))
3601
3602 (define-public emacs-git-gutter-fringe
3603 (let ((commit "16226caab44174301f1659f7bf8cc67a76153445")
3604 (revision "1"))
3605 (package
3606 (name "emacs-git-gutter-fringe")
3607 (version (git-version "0.23" revision commit))
3608 (source
3609 (origin
3610 (method git-fetch)
3611 (uri (git-reference
3612 (url "https://github.com/emacsorphanage/git-gutter-fringe")
3613 (commit commit)))
3614 (file-name (git-file-name name version))
3615 (sha256
3616 (base32 "1y77gjl0yznamdj0f55d418zb75k22izisjg7ikvrfsl2yfqf3pm"))))
3617 (build-system emacs-build-system)
3618 (propagated-inputs
3619 `(("emacs-git-gutter" ,emacs-git-gutter)
3620 ("emacs-fringe-helper" ,emacs-fringe-helper)))
3621 (home-page "https://github.com/emacsorphanage/git-gutter-fringe")
3622 (synopsis "See and manage hunks of text in a version control system")
3623 (description
3624 "This package extends @code{git-gutter} to use the fringe area of a
3625 window.")
3626 (license license:gpl3+))))
3627
3628 (define-public emacs-git-link
3629 (package
3630 (name "emacs-git-link")
3631 (version "0.7.5")
3632 (source
3633 (origin
3634 (method git-fetch)
3635 (uri (git-reference
3636 (url "https://github.com/sshaw/git-link")
3637 (commit (string-append "v" version))))
3638 (file-name (git-file-name name version))
3639 (sha256
3640 (base32 "04xa6lp8wkjb6zs096bf4sz124grcjj15xv1h009bmn2j95rggj6"))))
3641 (build-system emacs-build-system)
3642 (arguments
3643 `(#:tests? #t
3644 #:test-command '("make" "test")))
3645 (home-page "https://github.com/sshaw/git-link")
3646 (synopsis "Create links for files and commits in GitHub/GitLab/etc. repos")
3647 (description
3648 "@code{git-link} returns the URL for the current buffer's file location
3649 at the current line number or active region. @code{git-link-commit} returns
3650 the URL for a commit. URLs are added to the kill ring.")
3651 (license license:gpl3+)))
3652
3653 (define-public emacs-apheleia
3654 (package
3655 (name "emacs-apheleia")
3656 (version "1.0")
3657 (source
3658 (origin
3659 (method git-fetch)
3660 (uri (git-reference
3661 (url "https://github.com/raxod502/apheleia")
3662 (commit (string-append "v" version))))
3663 (file-name (git-file-name name version))
3664 (sha256
3665 (base32 "04pls7zahy4jfkikv6fvd9vfpm4glhyanmmkx79hgi9pwdv966rf"))))
3666 (build-system emacs-build-system)
3667 (home-page "https://github.com/raxod502/apheleia")
3668 (synopsis "Reformat buffer stably")
3669 (description
3670 "This package allows for a buffer to be reformatted without moving point,
3671 so that running a formatting tool like @code{Prettier} or @code{Black} upon
3672 saving won't move point back to the beginning of the buffer.")
3673 (license license:gpl3+)))
3674
3675 (define-public emacs-git-timemachine
3676 (package
3677 (name "emacs-git-timemachine")
3678 (version "4.11")
3679 (source
3680 (origin
3681 (method git-fetch)
3682 (uri (git-reference
3683 (url "https://gitlab.com/pidu/git-timemachine.git")
3684 (commit version)))
3685 (file-name (git-file-name name version))
3686 (sha256
3687 (base32
3688 "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n"))))
3689 (build-system emacs-build-system)
3690 (propagated-inputs
3691 `(("emacs-transient" ,emacs-transient)))
3692 (home-page "https://gitlab.com/pidu/git-timemachine")
3693 (synopsis "Step through historic versions of Git-controlled files")
3694 (description "This package enables you to step through historic versions
3695 of files under Git version control from within Emacs.")
3696 (license license:gpl3+)))
3697
3698 (define-public emacs-minitest
3699 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
3700 (revision "1"))
3701 (package
3702 (name "emacs-minitest")
3703 (version (git-version "0.8.0" revision commit))
3704 (source (origin
3705 (method git-fetch)
3706 (uri (git-reference
3707 (url "https://github.com/arthurnn/minitest-emacs")
3708 (commit commit)))
3709 (file-name (git-file-name name commit))
3710 (sha256
3711 (base32
3712 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
3713 (build-system emacs-build-system)
3714 (arguments
3715 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
3716 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
3717 (propagated-inputs
3718 `(("emacs-dash" ,emacs-dash)
3719 ("emacs-f" ,emacs-f)))
3720 (home-page "https://github.com/arthurnn/minitest-emacs")
3721 (synopsis "Emacs minitest mode")
3722 (description
3723 "The minitest mode provides commands to run the tests for the current
3724 file or line, as well as rerunning the previous tests, or all the tests for a
3725 project.
3726
3727 This package also includes relevant snippets for yasnippet.")
3728 (license license:expat))))
3729
3730 (define-public emacs-gdscript-mode
3731 (package
3732 (name "emacs-gdscript-mode")
3733 (version "1.4.0")
3734 (source
3735 (origin
3736 (method git-fetch)
3737 (uri (git-reference
3738 (url "https://github.com/godotengine/emacs-gdscript-mode")
3739 (commit version)))
3740 (file-name (git-file-name name version))
3741 (sha256
3742 (base32 "09q0himrz7a6xgz0jmcl85qc5xhk5fwi6d2vw1n8qaiavm96ksdy"))))
3743 (build-system emacs-build-system)
3744 (home-page "https://github.com/godotengine/emacs-gdscript-mode")
3745 (synopsis "GDScript support and syntax highlighting in Emacs")
3746 (description
3747 "This package adds support for the GDScript programming language from the
3748 Godot game engine in Emacs. It features all the essentials, e.g., syntax
3749 highlighting, code folding, indentation, automatic pairing, auto-completion,
3750 and code formatting.")
3751 (license license:gpl3+)))
3752
3753 (define-public emacs-el-mock
3754 (package
3755 (name "emacs-el-mock")
3756 (version "1.25.1")
3757 (source
3758 (origin
3759 (method git-fetch)
3760 (uri (git-reference
3761 (url "https://github.com/rejeep/el-mock.el")
3762 (commit (string-append "v" version))))
3763 (file-name (git-file-name name version))
3764 (sha256
3765 (base32 "13mv1rhgkwiww2wh5w926jz7idppp492wir1vdl245c5x50dh4f7"))))
3766 (build-system emacs-build-system)
3767 (home-page "https://github.com/rejeep/el-mock.el")
3768 (synopsis "Tiny mock and stub framework in Emacs Lisp")
3769 (description
3770 "Emacs Lisp Mock is a library for mocking and stubbing using readable
3771 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
3772 Expectations, but it can be used in other contexts.")
3773 (license license:gpl3+)))
3774
3775 (define-public emacs-ecukes
3776 (package
3777 (name "emacs-ecukes")
3778 (version "0.6.17")
3779 (home-page "https://github.com/ecukes/ecukes")
3780 (source
3781 (origin
3782 (method git-fetch)
3783 (uri (git-reference
3784 (url home-page)
3785 (commit (string-append "v" version))))
3786 (file-name (git-file-name name version))
3787 (sha256
3788 (base32 "1isscwz4h3nx62lwfrj899lp2yc27zk1ndgr441d848495ccmshn"))))
3789 (build-system emacs-build-system)
3790 (arguments
3791 `(#:include (cons* "^feature/" "^reporters/" "^templates/" %default-include)))
3792 (propagated-inputs
3793 `(("emacs-ansi" ,emacs-ansi)
3794 ("emacs-commander" ,emacs-commander)
3795 ("emacs-dash" ,emacs-dash)
3796 ("emacs-espuds" ,emacs-espuds)
3797 ("emacs-f" ,emacs-f)
3798 ("emacs-s" ,emacs-s)))
3799 (synopsis "Cucumber for Emacs")
3800 (description
3801 "This package provides Ecukes, a Cucumber-inspired integration testing
3802 tool for Emacs. Ecukes is not a complete clone of Cucumber and is not
3803 intended to be.")
3804 (license license:gpl3+)))
3805
3806 (define-public emacs-espuds
3807 (package
3808 (name "emacs-espuds")
3809 (version "0.3.3")
3810 (source
3811 (origin
3812 (method git-fetch)
3813 (uri (git-reference
3814 (url "https://github.com/ecukes/espuds")
3815 (commit (string-append "v" version))))
3816 (file-name (git-file-name name version))
3817 (sha256
3818 (base32 "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg"))))
3819 (build-system emacs-build-system)
3820 (propagated-inputs
3821 `(("emacs-s" ,emacs-s)
3822 ("emacs-dash" ,emacs-dash)
3823 ("emacs-f" ,emacs-f)))
3824 (home-page "https://github.com/ecukes/espuds")
3825 (synopsis "Common step definitions for Ecukes")
3826 (description "Espuds is a collection of the most commonly used step
3827 definitions for testing with the Ecukes framework.")
3828 (license license:gpl3+)))
3829
3830 (define-public emacs-spark
3831 (let ((version "20160503") ; no proper tag, use date of commit
3832 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
3833 (revision "1"))
3834 (package
3835 (name "emacs-spark")
3836 (version (git-version version revision commit))
3837 (source
3838 (origin
3839 (method git-fetch)
3840 (uri (git-reference
3841 (url "https://github.com/alvinfrancis/spark")
3842 (commit commit)))
3843 (file-name (git-file-name name version))
3844 (sha256
3845 (base32
3846 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
3847 (build-system emacs-build-system)
3848 (home-page "https://github.com/alvinfrancis/spark")
3849 (synopsis "Sparkline generation library for Emacs Lisp")
3850 (description "@code{emacs-spark} is a sparkline generation library for
3851 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
3852 port of @code{cl-spark} to Emacs Lisp.")
3853 (license license:expat))))
3854
3855 (define-public emacs-es-mode
3856 (package
3857 (name "emacs-es-mode")
3858 (version "4.3.0")
3859 (source
3860 (origin
3861 (method git-fetch)
3862 (uri (git-reference
3863 (url "https://github.com/dakrone/es-mode")
3864 (commit version)))
3865 (file-name (git-file-name name version))
3866 (sha256
3867 (base32 "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg"))))
3868 (build-system emacs-build-system)
3869 (propagated-inputs
3870 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
3871 ;; to be rendered incorrectly
3872 `(("emacs-dash" ,emacs-dash)
3873 ("emacs-org" ,emacs-org)
3874 ("emacs-spark" ,emacs-spark)))
3875 (home-page "https://github.com/dakrone/es-mode")
3876 (synopsis "Major mode for editing Elasticsearch queries")
3877 (description "@code{es-mode} includes highlighting, completion and
3878 indentation support for Elasticsearch queries. Also supported are
3879 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
3880 be processed through @code{jq}, or in the case of aggregations, can be
3881 rendered in to a table. In addition, there is an @code{es-command-center}
3882 mode, which displays information about Elasticsearch clusters.")
3883 (license license:gpl3+)))
3884
3885 (define-public emacs-expand-region
3886 (package
3887 (name "emacs-expand-region")
3888 (version "0.11.0")
3889 (source
3890 (origin
3891 (method git-fetch)
3892 (uri (git-reference
3893 (url "https://github.com/magnars/expand-region.el")
3894 (commit version)))
3895 (file-name (git-file-name name version))
3896 (sha256
3897 (base32 "0h40dhc3kn8fq86xnwi5lz7ql8my8737y7wkqr897p15y90swr35"))))
3898 (build-system emacs-build-system)
3899 (home-page "https://github.com/magnars/expand-region.el")
3900 (synopsis "Increase selected region by semantic units")
3901 (description
3902 "Expand region increases the selected region by semantic units. Just
3903 keep pressing the key until it selects what you want. There's also
3904 @code{er/contract-region} if you expand too far.")
3905 (license license:gpl3+)))
3906
3907 (define-public emacs-explain-pause-mode
3908 (let ((commit "2356c8c3639cbeeb9751744dbe737267849b4b51")
3909 (revision "0"))
3910 (package
3911 (name "emacs-explain-pause-mode")
3912 (version (git-version "0.1" revision commit))
3913 (source (origin
3914 (method git-fetch)
3915 (uri (git-reference
3916 (url "https://github.com/lastquestion/explain-pause-mode")
3917 (commit commit)))
3918 (file-name (git-file-name name version))
3919 (sha256
3920 (base32
3921 "0frnfwqal9mrnrz6q4v7vcai26ahaw81894arff1yjw372pfgv7v"))))
3922 (build-system emacs-build-system)
3923 (native-inputs
3924 `(("emacs" ,emacs-buttercup)))
3925 (arguments
3926 '(#:tests? #t
3927 ;; Don't run case-tests as they will fail to create sockets because
3928 ;; the path is too long
3929 #:test-command '("make" "byte-compile" "unit-tests")
3930 ;; Parallel testing will cause the tests to run before
3931 ;; byte-compilation is finished
3932 #:parallel-tests? #f))
3933 (home-page "https://github.com/lastquestion/explain-pause-mode")
3934 (synopsis "Top-like interface to determine why Emacs paused")
3935 (description
3936 "This package monitors Emacs function calls and records their execution
3937 time. This information can be reviewed to determine what is causing the user
3938 interface to pause.")
3939 (license license:gpl3+))))
3940
3941 (define-public emacs-fill-column-indicator
3942 (package
3943 (name "emacs-fill-column-indicator")
3944 (version "1.90")
3945 (source
3946 (origin
3947 (method git-fetch)
3948 (uri (git-reference
3949 (url "https://github.com/alpaker/Fill-Column-Indicator")
3950 (commit version)))
3951 (file-name (git-file-name name version))
3952 (sha256
3953 (base32 "0snjznxdwwfdgccdcvrnk467416r244r2r5qcm2sga8l0ha9gw9z"))))
3954 (build-system emacs-build-system)
3955 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
3956 (synopsis "Graphically indicate the fill column")
3957 (description
3958 "Fill-column-indicator graphically indicates the location of the fill
3959 column by drawing a thin line down the length of the editing window.")
3960 (license license:gpl3+)))
3961
3962 (define-public emacs-grep-a-lot
3963 (package
3964 (name "emacs-grep-a-lot")
3965 (version "1.0.7")
3966 (source
3967 (origin
3968 (method git-fetch)
3969 (uri (git-reference
3970 (url "https://github.com/ZungBang/emacs-grep-a-lot")
3971 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
3972 (file-name (git-file-name name version))
3973 (sha256
3974 (base32 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
3975 (build-system emacs-build-system)
3976 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
3977 (synopsis "Enables multiple grep buffers in Emacs")
3978 (description
3979 "This Emacs package allows managing multiple grep buffers.")
3980 (license license:gpl3+)))
3981
3982 (define-public emacs-fd
3983 (package
3984 (name "emacs-fd")
3985 (version "0.1.0")
3986 (source (origin
3987 (method git-fetch)
3988 (uri (git-reference
3989 (url "https://github.com/yqrashawn/fd-dired")
3990 (commit version)))
3991 (file-name (git-file-name name version))
3992 (sha256
3993 (base32
3994 "1fas0fpvym2lyzybwm44gly9jz6a2fpp72yxnwfbqqjkfgk9910y"))))
3995 (build-system emacs-build-system)
3996 (home-page "https://github.com/yqrashawn/fd-dired")
3997 (synopsis "Dired-mode interface for fd result")
3998 (description "This package provides a dired-mode interface for fd's
3999 result.")
4000 (license license:gpl3+)))
4001
4002 (define-public emacs-rg
4003 (package
4004 (name "emacs-rg")
4005 (version "2.0.2")
4006 (source
4007 (origin
4008 (method git-fetch)
4009 (uri (git-reference
4010 (url "https://github.com/dajva/rg.el")
4011 (commit version)))
4012 (file-name (git-file-name name version))
4013 (sha256
4014 (base32 "15qcnsnbni0aincm9pxpfhff3c5ivd5zs2s2qchjzhcn4kdm6kxr"))))
4015 (build-system emacs-build-system)
4016 (arguments
4017 '(#:phases
4018 (modify-phases %standard-phases
4019 (add-after 'unpack 'remove-rg-path
4020 ;; Remove the path to ripgrep so that it works on remote systems.
4021 (lambda _
4022 (let ((file "rg.el"))
4023 (chmod file #o644)
4024 (emacs-substitute-sexps file
4025 ("(defcustom rg-executable" "rg"))))))))
4026 (propagated-inputs
4027 `(("emacs-s" ,emacs-s)
4028 ("emacs-transient" ,emacs-transient)
4029 ("emacs-wgrep" ,emacs-wgrep)
4030 ("ripgrep" ,ripgrep)))
4031 (home-page "https://rgel.readthedocs.io/en/latest/")
4032 (synopsis "Search tool based on @code{ripgrep}")
4033 (description
4034 "@code{rg} is an Emacs search package based on the @code{ripgrep} command
4035 line tool. It allows one to interactively search based on the editing context
4036 then refine or modify the search results.")
4037 (license license:gpl3+)))
4038
4039 (define-public emacs-inf-ruby
4040 (package
4041 (name "emacs-inf-ruby")
4042 (version "2.5.2")
4043 (source
4044 (origin
4045 (method git-fetch)
4046 (uri (git-reference
4047 (url "https://github.com/nonsequitur/inf-ruby")
4048 (commit version)))
4049 (file-name (git-file-name name version))
4050 (sha256
4051 (base32 "0a1hhvfbl6mq8rjsi77fg9fh5a91hi5scjrg9rjqc5ffbql67y0v"))))
4052 (build-system emacs-build-system)
4053 (home-page "https://github.com/nonsequitur/inf-ruby")
4054 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
4055 (description
4056 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
4057 for easy interaction with a ruby subprocess. Features include support for
4058 detecting specific uses of Ruby, e.g. when using rails, and using a
4059 appropriate console.")
4060 (license license:gpl3+)))
4061
4062 (define-public emacs-znc
4063 (package
4064 (name "emacs-znc")
4065 (version "0.0.2")
4066 (source
4067 (origin
4068 (method url-fetch)
4069 (uri (string-append "https://marmalade-repo.org/packages/znc-"
4070 version ".el"))
4071 (sha256
4072 (base32
4073 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
4074 (build-system emacs-build-system)
4075 (home-page "https://github.com/sshirokov/ZNC.el")
4076 (synopsis "Make ERC and ZNC get along better")
4077 (description
4078 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
4079 IRC bouncer with ERC.")
4080 (license license:expat)))
4081
4082 (define-public emacs-erc-status-sidebar
4083 (let ((commit "ea4189a1dbfe60117359c36e681ad7c389e2968c")
4084 (revision "1"))
4085 (package
4086 (name "emacs-erc-status-sidebar")
4087 (version (git-version "0.1" revision commit))
4088 (source
4089 (origin
4090 (method git-fetch)
4091 (uri (git-reference
4092 (url "https://github.com/drewbarbs/erc-status-sidebar")
4093 (commit commit)))
4094 (file-name (git-file-name name version))
4095 (sha256
4096 (base32 "1hwlhzgx03z8891sblz56zdp8zj0izh72kxykgcnz5rrkyc3vfi3"))))
4097 (build-system emacs-build-system)
4098 (home-page "https://github.com/drewbarbs/erc-status-sidebar")
4099 (synopsis "Hexchat-like activity overview for ERC channels")
4100 (description
4101 "This package provides a Hexchat-like status bar for joined channels in
4102 ERC, an Emacs client for IRC (Internet Relay Chat). It relies on the
4103 @code{erc-track} module, and displays all the same information
4104 @code{erc-track} does in the mode line, but in an alternative format.")
4105 (license license:gpl3+))))
4106
4107 (define-public emacs-shut-up
4108 (package
4109 (name "emacs-shut-up")
4110 (version "0.3.3")
4111 (source
4112 (origin
4113 (method git-fetch)
4114 (uri (git-reference
4115 (url "https://github.com/cask/shut-up")
4116 (commit (string-append "v" version))))
4117 (file-name (git-file-name name version))
4118 (sha256
4119 (base32 "1bnmrwrhra6cpc3jjgwwzrydj5ps7q2dlkh2ag4j7rkyv4dlk351"))))
4120 (build-system emacs-build-system)
4121 (home-page "https://github.com/cask/shut-up")
4122 (synopsis "Silence Emacs")
4123 (description "This package silences most output of Emacs when running an
4124 Emacs shell script.")
4125 (license license:expat)))
4126
4127 (define-public emacs-undercover
4128 (package
4129 (name "emacs-undercover")
4130 (version "0.8.0")
4131 (source
4132 (origin
4133 (method git-fetch)
4134 (uri (git-reference
4135 (url "https://github.com/sviridov/undercover.el")
4136 (commit (string-append "v" version))))
4137 (file-name (git-file-name name version))
4138 (sha256
4139 (base32 "19d3373fy635vbfwr1yhxirwqn68qzny9byv74smxws4ly04mr02"))))
4140 (build-system emacs-build-system)
4141 (propagated-inputs
4142 `(("emacs-dash" ,emacs-dash)
4143 ("emacs-shut-up" ,emacs-shut-up)))
4144 (home-page "https://github.com/sviridov/undercover.el")
4145 (synopsis "Test coverage library for Emacs Lisp")
4146 (description
4147 "Undercover is a test coverage library for software written in Emacs
4148 Lisp.")
4149 (license license:expat)))
4150
4151 (define-public emacs-paren-face
4152 (package
4153 (name "emacs-paren-face")
4154 (version "1.0.7")
4155 (source
4156 (origin
4157 (method git-fetch)
4158 (uri (git-reference
4159 (url "https://github.com/tarsius/paren-face")
4160 (commit version)))
4161 (file-name (git-file-name name version))
4162 (sha256
4163 (base32 "1zyrrrr8rmksr3rfsv96psk1z15wbbx1bvcfp3hf5ciyc2n79000"))))
4164 (build-system emacs-build-system)
4165 (home-page "https://github.com/tarsius/paren-face")
4166 (synopsis "Face for parentheses in Lisp modes")
4167 (description
4168 "This library defines a face named @code{parenthesis} used just for
4169 parentheses. The intended purpose of this face is to make parentheses less
4170 visible in Lisp code by dimming them. Lispers probably don't need to be
4171 constantly made aware of the existence of the parentheses. Dimming them might
4172 be even more useful for people new to Lisp who have not yet learned to
4173 subconsciously blend out the parentheses.")
4174 (license license:gpl3+)))
4175
4176 (define-public emacs-page-break-lines
4177 (package
4178 (name "emacs-page-break-lines")
4179 (version "0.14")
4180 (source
4181 (origin
4182 (method git-fetch)
4183 (uri (git-reference
4184 (url "https://github.com/purcell/page-break-lines")
4185 (commit version)))
4186 (file-name (git-file-name name version))
4187 (sha256
4188 (base32 "0plfyzmh93x1r3zgfjyx23cc7vi1pcniipclzlms1iwfkl7zsqvp"))))
4189 (build-system emacs-build-system)
4190 (home-page "https://github.com/purcell/page-break-lines")
4191 (synopsis "Display page breaks as tidy horizontal lines")
4192 (description
4193 "This library provides a global mode which displays form feed characters
4194 as horizontal rules.")
4195 (license license:gpl3+)))
4196
4197 (define-public emacs-simple-httpd
4198 (package
4199 (name "emacs-simple-httpd")
4200 (version "1.5.1")
4201 (source
4202 (origin
4203 (method git-fetch)
4204 (uri (git-reference
4205 (url "https://github.com/skeeto/emacs-web-server")
4206 (commit version)))
4207 (file-name (git-file-name name version))
4208 (sha256
4209 (base32 "0dpn92rg813c4pq7a1vzj3znyxzp2lmvxqz6pzcqi0l2xn5r3wvb"))))
4210 (build-system emacs-build-system)
4211 (home-page "https://github.com/skeeto/emacs-web-server")
4212 (synopsis "HTTP server in pure Emacs Lisp")
4213 (description
4214 "This package provides a simple HTTP server written in Emacs Lisp to
4215 serve files and directory listings.")
4216 (license license:unlicense)))
4217
4218 (define-public emacs-skewer-mode
4219 (package
4220 (name "emacs-skewer-mode")
4221 (version "1.8.0")
4222 (source
4223 (origin
4224 (method git-fetch)
4225 (uri (git-reference
4226 (url "https://github.com/skeeto/skewer-mode")
4227 (commit version)))
4228 (file-name (git-file-name name version))
4229 (sha256
4230 (base32 "1ha7jl7776pk1bki5zj2q0jy66450mn8xr3aqjc0m9kj3gc9qxgw"))))
4231 (build-system emacs-build-system)
4232 (propagated-inputs
4233 `(("emacs-simple-httpd" ,emacs-simple-httpd)
4234 ("emacs-js2-mode" ,emacs-js2-mode)))
4235 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
4236 (home-page "https://github.com/skeeto/skewer-mode")
4237 (synopsis "Live web development in Emacs")
4238 (description
4239 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
4240 a web browser. Expressions are sent on-the-fly from an editing buffer to be
4241 evaluated in the browser, just like Emacs does with an inferior Lisp process
4242 in Lisp modes.")
4243 (license license:unlicense)))
4244
4245 (define-public emacs-litable
4246 (let ((commit "b0278f3f8dcff424bfbdfdefb545b1fbff33206f"))
4247 (package
4248 (name "emacs-litable")
4249 (version (git-version "0.1" "0" commit))
4250 (source (origin
4251 (method git-fetch)
4252 (uri (git-reference
4253 (url "https://github.com/Fuco1/litable")
4254 (commit commit)))
4255 (file-name (git-file-name name version))
4256 (sha256
4257 (base32
4258 "0bny40hv9a024n01clxns351cs4j4ifhgcc7m4743xncqf612p7g"))))
4259 (build-system emacs-build-system)
4260 (propagated-inputs
4261 `(("emacs-dash" ,emacs-dash)))
4262 (home-page "https://github.com/Fuco1/litable/")
4263 (synopsis "Dynamic evaluation replacement with Emacs")
4264 (description "This package provides dynamic evaluation in Emacs.")
4265 (license license:gpl3+))))
4266
4267 (define-public emacs-literate-calc-mode
4268 (let ((commit "a50e897a816cb5580ad6ec867eeaae212e0e4798")
4269 (revision "1"))
4270 (package
4271 (name "emacs-literate-calc-mode")
4272 (version (git-version "0.1" revision commit))
4273 (source
4274 (origin
4275 (method git-fetch)
4276 (uri (git-reference
4277 (url "https://github.com/sulami/literate-calc-mode.el")
4278 (commit commit)))
4279 (file-name (git-file-name name version))
4280 (sha256
4281 (base32 "0z6y5f1rj28lbr30m6g4a9l6ahs66whi8861g4cx9xzhs84nwv5g"))))
4282 (build-system emacs-build-system)
4283 (propagated-inputs
4284 `(("emacs-s" ,emacs-s)))
4285 (home-page "https://github.com/sulami/literate-calc-mode.el")
4286 (synopsis "Literate programming for Emacs Calc")
4287 (description
4288 "This library provides literate programming for Calc. There is both
4289 a major and a minor mode. The major mode does some basic syntax highlighting,
4290 while the minor mode only evaluates all Calc statements while typing. In
4291 particular, the minor mode works quite well with Org or Markdown modes, or
4292 other markup language major modes.")
4293 (license license:gpl3+))))
4294
4295 (define-public emacs-standard-dirs
4296 (package
4297 (name "emacs-standard-dirs")
4298 (version "2.0.0")
4299 (home-page "https://github.com/lafrenierejm/standard-dirs.el")
4300 (source
4301 (origin
4302 (method git-fetch)
4303 (uri (git-reference
4304 (url home-page)
4305 (commit version)))
4306 (file-name (git-file-name name version))
4307 (sha256
4308 (base32 "0r814qcrhvx4qlx4sdzwdmrhiryslqclx0bnpp0qcrbx6g8qfl25"))))
4309 (build-system emacs-build-system)
4310 (propagated-inputs
4311 `(("emacs-f" ,emacs-f)
4312 ("emacs-s" ,emacs-s)))
4313 (synopsis "Platform-specific paths for config, cache, and other data")
4314 (description
4315 "This package provides platform-specific paths for reading and writing
4316 configuration, cache, and other data.")
4317 (license license:gpl3+)))
4318
4319 (define-public emacs-string-inflection
4320 (package
4321 (name "emacs-string-inflection")
4322 (version "1.0.12")
4323 (source (origin
4324 (method git-fetch)
4325 (uri (git-reference
4326 (url "https://github.com/akicho8/string-inflection")
4327 (commit (string-append "v" version))))
4328 (file-name (git-file-name name version))
4329 (sha256
4330 (base32
4331 "0f3nkfdpngax4zfw75jca2wywwh31ha6ywddh4125lbxi3y6m7s9"))))
4332 (build-system emacs-build-system)
4333 (native-inputs
4334 `(("ert-runner" ,emacs-ert-runner)))
4335 (arguments
4336 `(#:tests? #t
4337 #:test-command '("ert-runner")))
4338 (home-page "https://github.com/akicho8/string-inflection")
4339 (synopsis "Convert symbol names between different naming conventions")
4340 (description
4341 "This Emacs package provides convenient methods for manipulating the
4342 naming style of a symbol. It supports different naming conventions such as:
4343
4344 @enumerate
4345 @item camel case
4346 @item Pascal case
4347 @item all upper case
4348 @item lower case separated by underscore
4349 @item etc...
4350 @end enumerate\n")
4351 (license license:gpl2+)))
4352
4353 (define-public emacs-stripe-buffer
4354 (package
4355 (name "emacs-stripe-buffer")
4356 (version "0.2.5")
4357 (source
4358 (origin
4359 (method git-fetch)
4360 (uri (git-reference
4361 (url "https://github.com/sabof/stripe-buffer")
4362 (commit version)))
4363 (file-name (git-file-name name version))
4364 (sha256
4365 (base32 "035ym1c1vzg6hjsnd258z4dkrfc11lj4c0y4gpgybhk54dq3w9dk"))))
4366 (build-system emacs-build-system)
4367 (home-page "https://github.com/sabof/stripe-buffer/")
4368 (synopsis "Add stripes to list buffers")
4369 (description
4370 "This Emacs package adds faces to add stripes to list buffers and org
4371 tables.")
4372 (license license:gpl2+)))
4373
4374 (define-public emacs-org-beautify-theme
4375 ;; Latest release (0.4) is not tagged, use commit hash.
4376 (let ((commit "df6a1114fda313e1689363e196c8284fbe2a2738")
4377 (revision "0"))
4378 (package
4379 (name "emacs-org-beautify-theme")
4380 (version "0.4")
4381 (source
4382 (origin
4383 (method git-fetch)
4384 (uri (git-reference
4385 (url "https://github.com/jonnay/org-beautify-theme")
4386 (commit commit)))
4387 (file-name (git-file-name name version))
4388 (sha256
4389 (base32 "1lkz7736swimad12khwbbqc4gxjydgr1k45p4mx03s25pv1w920y"))))
4390 (build-system emacs-build-system)
4391 (home-page "https://github.com/jonnay/org-beautify-theme")
4392 (synopsis "Theme to make Org mode look more beautiful")
4393 (description
4394 "The theme adds padding between headings, increases the size of titles,
4395 strike through completed TODO headings, changes Org blocks, changes Org check
4396 boxes, and more.")
4397 (license license:gpl3+))))
4398
4399 (define-public emacs-org-rich-yank
4400 (package
4401 (name "emacs-org-rich-yank")
4402 (version "0.2.1")
4403 (source
4404 (origin
4405 (method git-fetch)
4406 (uri (git-reference
4407 (url "https://github.com/unhammer/org-rich-yank")
4408 (commit (string-append "v" version))))
4409 (file-name (git-file-name name version))
4410 (sha256
4411 (base32 "0gxb0fnh5gxjmld0hnk5hli0cvdd8gjd27m30bk2b80kwldxlq1z"))))
4412 (build-system emacs-build-system)
4413 (home-page "https://github.com/unhammer/org-rich-yank")
4414 (synopsis "Automatically surround source code pasted into Org with
4415 @code{#+BEGIN_SRC} blocks")
4416 (description
4417 "This package provides a utility function for Org buffers that makes a
4418 @code{_SRC} block with the appropriate language annotation for code that has
4419 been copied from an Emacs major mode.")
4420 (license license:gpl2+)))
4421
4422 (define-public emacs-org-fancy-priorities
4423 (let ((commit "819bb993b71e7253cefef7047306ab4e0f9d0a86")
4424 (revision "1"))
4425 (package
4426 (name "emacs-org-fancy-priorities")
4427 (version (git-version "1.1" revision commit))
4428 (source
4429 (origin
4430 (method git-fetch)
4431 (uri (git-reference
4432 (url "https://github.com/harrybournis/org-fancy-priorities.git")
4433 (commit commit)))
4434 (file-name (git-file-name name version))
4435 (sha256
4436 (base32
4437 "13cyzlx0415i953prq6ch7r5iy23c1pz116bdxi5yqags4igh4wv"))))
4438 (build-system emacs-build-system)
4439 (home-page "https://github.com/harrybournis/org-fancy-priorities")
4440 (synopsis "Display org priorities as custom strings")
4441 (description
4442 "This package provides a minor mode that displays Org priorities as
4443 custom strings. This mode does not change your files in any way, it only
4444 displays the priority part of a heading as your preferred string value.")
4445 (license license:expat))))
4446
4447 (define-public emacs-org-fragtog
4448 (package
4449 (name "emacs-org-fragtog")
4450 (version "0.3.1")
4451 (source
4452 (origin
4453 (method git-fetch)
4454 (uri (git-reference
4455 (url "https://github.com/io12/org-fragtog.git")
4456 (commit version)))
4457 (file-name (git-file-name name version))
4458 (sha256
4459 (base32 "1szkx3n9gk6799rxv0jb3096pn2ssz82536x9a98xqwbimy4kvn6"))))
4460 (build-system emacs-build-system)
4461 (propagated-inputs
4462 `(("emacs-org" ,emacs-org)))
4463 (home-page "https://github.com/io12/org-fragtog")
4464 (synopsis "Toggle Org mode LaTeX fragments preview at cursor")
4465 (description
4466 "Org mode supports inline image previews of LaTeX fragments. This
4467 package automates this, so fragment previews are disabled for editing when
4468 your cursor steps onto them, and re-enabled when the cursor leaves.")
4469 (license license:gpl3+)))
4470
4471 (define-public emacs-ob-erlang
4472 (let ((revision "1")
4473 (commit "f1a8c665b8f7d0ab32267a9961de8eed872e6333"))
4474 (package
4475 (name "emacs-ob-erlang")
4476 (version (git-version "20180827" revision commit))
4477 (source (origin
4478 (method git-fetch)
4479 (uri (git-reference
4480 (url "https://github.com/xfwduke/ob-erlang")
4481 (commit commit)))
4482 (file-name (git-file-name name version))
4483 (sha256
4484 (base32
4485 "0b5zajqiy6955yvlqwy92prrqy89lqchsv4ss2ylws3p4s14rhij"))))
4486 (build-system emacs-build-system)
4487 (home-page "https://github.com/xfwduke/ob-erlang/")
4488 (synopsis "Org-babel support for Erlang")
4489 (description "This package adds support for working with Erlang code
4490 blocks with @code{org-babel} in @code{org-mode}.")
4491 (license license:gpl3+))))
4492
4493 (define-public emacs-ob-restclient
4494 (let ((commit "f7449b2068498fe9d8ab9589e0a638148861533f"))
4495 (package
4496 (name "emacs-ob-restclient")
4497 (version (git-version "0.02" "2" commit))
4498 (source
4499 (origin
4500 (method git-fetch)
4501 (uri (git-reference
4502 (url "https://github.com/alf/ob-restclient.el")
4503 (commit commit)))
4504 (file-name (git-file-name name version))
4505 (sha256
4506 (base32 "0s3931w9ab3yfml2pmq71rw21yf6hpg7m3vihxyy3vs6zli1cvmq"))))
4507 (propagated-inputs
4508 `(("emacs-restclient" ,emacs-restclient)))
4509 (build-system emacs-build-system)
4510 (home-page "https://github.com/alf/ob-restclient.el")
4511 (synopsis "Org-babel functionality for @code{restclient-mode}")
4512 (description
4513 "This package integrates @code{restclient-mode} with Org.")
4514 (license license:gpl3+))))
4515
4516 (define-public emacs-org-now
4517 (let ((commit "8f6b277a73f1c66e58ccb4b7f40d406851befc91"))
4518 (package
4519 (name "emacs-org-now")
4520 (version (git-version "0.1-pre" "1" commit))
4521 (source
4522 (origin
4523 (method git-fetch)
4524 (uri (git-reference
4525 (url "https://github.com/alphapapa/org-now")
4526 (commit commit)))
4527 (file-name (git-file-name name version))
4528 (sha256
4529 (base32 "117zzkryznznk6h4i1jqzdn888nl019xrgxm2gza0lndx8dxsg2c"))))
4530 (propagated-inputs
4531 `(("emacs-dash" ,emacs-dash)))
4532 (build-system emacs-build-system)
4533 (home-page "https://github.com/alphapapa/org-now")
4534 (synopsis "Show current Org tasks in a sidebar")
4535 (description
4536 "This package provides commands to show Org headings in a sidebar
4537 window while working on them. After defining one heading as the \"now\"
4538 heading, other headings can be refiled to it with one command, and back to
4539 their original location with another.")
4540 (license license:gpl3+))))
4541
4542 (define-public emacs-rich-minority
4543 (package
4544 (name "emacs-rich-minority")
4545 (version "1.0.3")
4546 (source
4547 (origin
4548 (method git-fetch)
4549 (uri (git-reference
4550 (url "https://github.com/Malabarba/rich-minority")
4551 (commit version)))
4552 (file-name (git-file-name name version))
4553 (sha256
4554 (base32
4555 "1kn7c9qr9ykj68iqffzzmjsr6aazwac8cxb7j960sjb282rq0yyj"))))
4556 (build-system emacs-build-system)
4557 (home-page "https://github.com/Malabarba/rich-minority")
4558 (synopsis "Clean-up and beautify the list of minor modes")
4559 (description
4560 "This Emacs package hides and/or highlights minor modes in the
4561 mode-line.")
4562 (license license:gpl2+)))
4563
4564 (define-public emacs-robe
4565 (package
4566 (name "emacs-robe")
4567 (version "0.8.2")
4568 (source
4569 (origin
4570 (method git-fetch)
4571 (uri (git-reference
4572 (url "https://github.com/dgutov/robe")
4573 (commit version)))
4574 (file-name (git-file-name name version))
4575 (sha256
4576 (base32 "0qw18wi54yg971n4wnjqkd8lqj5lbs9ra8bvmngif2bzhqlfdsbn"))))
4577 (build-system emacs-build-system)
4578 (arguments
4579 '(#:include (cons "^lib\\/" %default-include)))
4580 (propagated-inputs
4581 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
4582 (home-page "https://github.com/dgutov/robe")
4583 (synopsis "Ruby code assistance tool for Emacs")
4584 (description
4585 "Robe can provide information on loaded classes and modules in Ruby code,
4586 as well as where methods are defined. This allows the user to jump to method
4587 definitions, modules and classes, display method documentation and provide
4588 method and constant name completion.")
4589 (license license:gpl3+)))
4590
4591 (define-public emacs-robot-mode
4592 (let ((commit "32846e7e80ae3471b7c07f9709dcaa4f9b9ed4a0")
4593 (revision "1"))
4594 (package
4595 (name "emacs-robot-mode")
4596 (version (git-version "0.0.0" revision commit))
4597 (source (origin
4598 (method git-fetch)
4599 (uri (git-reference
4600 ;; A better maintained fork of robot-mode.
4601 (url "https://github.com/jvalkeejarvi/robot-mode")
4602 (commit commit)))
4603 (file-name (git-file-name name version))
4604 (sha256
4605 (base32
4606 "1i8wf7m0gml8zvvmlgppjzv78b432686p1qdbzgclc7qfcvzag0d"))))
4607 (build-system emacs-build-system)
4608 (propagated-inputs `(("emacs-s" ,emacs-s)))
4609 (home-page "https://github.com/jvalkeejarvi/robot-mode")
4610 (synopsis "Emacs mode for Robot Framework")
4611 (description "This major mode facilitates editing Robot Framework source
4612 files with features such as syntax highlighting, comments, finding keywords,
4613 completing keywords and smart indentation.")
4614 (license license:gpl3+))))
4615
4616 (define-public emacs-roguel-ike
4617 ;; Tagged branch is outdated.
4618 (let ((revision "0")
4619 (commit "706dcb0687e8016d7d776f9d9e5ace9fdbbca43c"))
4620 (package
4621 (name "emacs-roguel-ike")
4622 (version (git-version "0.1.0" revision commit))
4623 (source
4624 (origin
4625 (method git-fetch)
4626 (uri (git-reference
4627 (url "https://github.com/stevenremot/roguel-ike")
4628 (commit commit)))
4629 (file-name (git-file-name name version))
4630 (sha256
4631 (base32 "0rgv4y9aa5cc2ddz3y5z8d22xmr8kf5c60h0r3g8h91jmcw3rb4z"))))
4632 (build-system emacs-build-system)
4633 (propagated-inputs
4634 `(("emacs-popup" ,emacs-popup)))
4635 (arguments
4636 `(#:include (cons* "^roguel-ike/" "^roguel-ike-lib/" %default-include)
4637 #:phases
4638 (modify-phases %standard-phases
4639 (add-before 'check 'set-test-environment
4640 (lambda _
4641 (setenv "HOME" "/tmp")
4642 #t)))))
4643 (home-page "https://github.com/stevenremot/roguel-ike.git")
4644 (synopsis "Coffee-break roguelike for Emacs")
4645 (description
4646 "Roguel-ike is an attempt to develop a coffee-break roguelike for
4647 Emacs. The complete game would allow the player to create various characters
4648 and to make them fulfill challenges like arena fight and short dungeon
4649 explorations.")
4650 (license license:gpl3+))))
4651
4652 (define-public emacs-rspec
4653 (let ((commit "66ea7cc9699d6edc6115daa024818adbd85efc20")
4654 (revision "1"))
4655 (package
4656 (name "emacs-rspec")
4657 (version (git-version "1.11" revision commit))
4658 (source
4659 (origin
4660 (method git-fetch)
4661 (uri (git-reference
4662 (url "https://github.com/pezra/rspec-mode")
4663 (commit commit)))
4664 (file-name (git-file-name name version))
4665 (sha256
4666 (base32 "0b11s8r0pi7ah54km4yg4fqff8wkk409d25qnlwm1l94pdwjd1c8"))))
4667 (build-system emacs-build-system)
4668 (arguments
4669 `(#:include (cons "^snippets\\/rspec-mode\\/" %default-include)
4670 #:tests? #t
4671 #:test-command '("make" "test")))
4672 (home-page "https://github.com/pezra/rspec-mode")
4673 (synopsis "Provides a rspec mode for working with RSpec")
4674 (description
4675 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
4676 verify the spec associated with the current buffer, or entire project, as well
4677 as moving between the spec files, and corresponding code files.
4678
4679 Also included are keybindings for spec files and Dired buffers, as well as
4680 snippets for yasnippet.")
4681 (license license:gpl3+))))
4682
4683 (define-public emacs-smart-mode-line
4684 (package
4685 (name "emacs-smart-mode-line")
4686 (version "2.13")
4687 (source
4688 (origin
4689 (method git-fetch)
4690 (uri (git-reference
4691 (url "https://github.com/Malabarba/smart-mode-line")
4692 (commit version)))
4693 (file-name (git-file-name name version))
4694 (sha256
4695 (base32 "164b697xm1rwcggv37dymhf3npbyh2bs59z8b6m5x35lb4c3lf8b"))))
4696 (build-system emacs-build-system)
4697 (propagated-inputs
4698 `(("emacs-rich-minority" ,emacs-rich-minority)))
4699 (home-page "https://github.com/Malabarba/smart-mode-line")
4700 (synopsis "Color-coded smart mode-line")
4701 (description
4702 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
4703 read from small to large monitors by using colors, a prefix feature, and smart
4704 truncation.")
4705 (license license:gpl2+)))
4706
4707 (define-public emacs-sqlite
4708 ;; XXX: There is no tagged commit.
4709 (let ((commit "dad42b8bbca4994be1871343dd18fd6528ee5797")
4710 (revision "0"))
4711 (package
4712 (name "emacs-sqlite")
4713 (build-system emacs-build-system)
4714 (version (git-version "1.0" revision commit))
4715 (source
4716 (origin
4717 (method git-fetch)
4718 (uri (git-reference
4719 (url "https://gitlab.com/cnngimenez/sqlite.el")
4720 (commit commit)))
4721 (file-name (git-file-name name version))
4722 (sha256
4723 (base32 "06ln4vijl8kii3nzc5cscgsadx1fqgxksflijd3ain83bn8g4wrd"))))
4724 (home-page "https://gitlab.com/cnngimenez/sqlite.el")
4725 (synopsis "SQLite interface for Emacs Lisp")
4726 (description "Emacs SQLite is a simple SQLite interface for connecting
4727 and retrieving information using the SQLite program through Elisp programming.
4728 It is not intended as a user interface.")
4729 (license license:gpl3+))))
4730
4731 (define-public emacs-sr-speedbar
4732 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
4733 (revision "0"))
4734 (package
4735 (name "emacs-sr-speedbar")
4736 (version (git-version "20161025" revision commit))
4737 (source
4738 (origin
4739 (method git-fetch)
4740 (uri (git-reference
4741 (url "https://github.com/emacsorphanage/sr-speedbar")
4742 (commit commit)))
4743 (file-name (git-file-name name version))
4744 (sha256
4745 (base32
4746 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
4747 (build-system emacs-build-system)
4748 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
4749 (synopsis "Same frame Emacs @code{speedbar}")
4750 (description
4751 "This Emacs package allows you to show @code{M-x speedbar} in the
4752 same frame (in an extra window). You can customize the initial width of
4753 the speedbar window.")
4754 (license license:gpl3+))))
4755
4756 (define-public emacs-shell-switcher
4757 (package
4758 (name "emacs-shell-switcher")
4759 (version "1.0.1")
4760 (source
4761 (origin
4762 (method git-fetch)
4763 (uri (git-reference
4764 (url "https://github.com/DamienCassou/shell-switcher")
4765 (commit (string-append "v" version))))
4766 (file-name (git-file-name name version))
4767 (sha256
4768 (base32 "0ia7sdip4hl27avckv3qpqgm3k4ynvp3xxq1cy53bqfzzx0gcria"))))
4769 (build-system emacs-build-system)
4770 (home-page "https://github.com/DamienCassou/shell-switcher")
4771 (synopsis "Provide fast switching between shell buffers")
4772 (description
4773 "This package provides commands to quickly switch between shell buffers.")
4774 (license license:gpl3+)))
4775
4776 (define-public emacs-shx
4777 (package
4778 (name "emacs-shx")
4779 (version "1.5.0")
4780 (source (origin
4781 (method git-fetch)
4782 (uri (git-reference
4783 (url "https://github.com/riscy/shx-for-emacs")
4784 (commit (string-append "v" version))))
4785 (file-name (git-file-name name version))
4786 (sha256
4787 (base32 "1cb5w6p9gnfxgh8qp7yj2f5ibpk1b4b5af3ynldaaj6yfpa8hqzn"))))
4788 (build-system emacs-build-system)
4789 (arguments
4790 `(#:tests? #t
4791 #:test-command
4792 '("emacs" "--batch" "--quiet"
4793 "--script" "test/script.el")))
4794 (home-page "https://github.com/riscy/shx-for-emacs")
4795 (synopsis "Extras for the comint-mode shell")
4796 (description
4797 "This package extends @code{comint-mode}: it parses markup in the output
4798 stream, enabling plots and graphics to be embedded, and adds command-line
4799 functions which plug into Emacs (e.g. use @code{:e <filename>} to edit a
4800 file).")
4801 (license license:gpl3+)))
4802
4803 (define-public emacs-names
4804 (let ((commit "d8baba5360e5253938a25d3e005455b6d2d86971")
4805 (version "20151201.0")
4806 (revision "8"))
4807 (package
4808 (name "emacs-names")
4809 (version (git-version version revision commit))
4810 (source
4811 (origin
4812 (method git-fetch)
4813 (uri (git-reference
4814 (url "https://github.com/Malabarba/names")
4815 (commit commit)))
4816 (file-name (git-file-name name version))
4817 (sha256
4818 (base32
4819 "11wyha2q8y7bzqq3jrzix8n97ywvsibvddrahqcps1a1yqk4hzfz"))))
4820 (build-system emacs-build-system)
4821 (home-page "https://github.com/Malabarba/names/")
4822 (synopsis "Namespace implementation for Emacs Lisp")
4823 (description
4824 "This package provides a macro that writes your namespaces for you.")
4825 (license license:gpl3+))))
4826
4827 (define-public emacs-evil-leader
4828 (package
4829 (name "emacs-evil-leader")
4830 (version "0.4.3")
4831 (source
4832 (origin
4833 (method git-fetch)
4834 (uri
4835 (git-reference
4836 (url "https://github.com/cofi/evil-leader")
4837 (commit version)))
4838 (file-name (git-file-name name version))
4839 (sha256
4840 (base32 "1k2zinchs0jjllp8zkpggckyy63dkyi5yig3p46vh4w45jdzysk5"))))
4841 (inputs
4842 `(("emacs-evil" ,emacs-evil)))
4843 (build-system emacs-build-system)
4844 (home-page "https://github.com/cofi/evil-leader")
4845 (synopsis "Implement <leader> feature from Vim")
4846 (description
4847 "Evil Leader provides the @code{<leader>} feature from Vim that provides
4848 an easy way to bind keys under a configurable prefix key.")
4849 (license license:gpl3+)))
4850
4851 (define-public emacs-evil-textobj-syntax
4852 (let ((commit "2d9ba8c75c754b409aea7469f46a5cfa52a872f3")
4853 (version "0")
4854 (revision "1"))
4855 (package
4856 (name "emacs-evil-textobj-syntax")
4857 (version (git-version version revision commit))
4858 (source
4859 (origin
4860 (method git-fetch)
4861 (uri (git-reference
4862 (url "https://github.com/laishulu/evil-textobj-syntax/")
4863 (commit commit)))
4864 (file-name (git-file-name name version))
4865 (sha256
4866 (base32
4867 "031p5i3274dazp7rz6m5y38shfgszm1clmkcf58qfqlvy978ammc"))))
4868 (build-system emacs-build-system)
4869 (propagated-inputs `(("emacs-evil" ,emacs-evil)
4870 ("emacs-names" ,emacs-names)))
4871 (home-page "https://github.com/laishulu/evil-textobj-syntax/")
4872 (synopsis "Text objects based on syntax highlighting")
4873 (description
4874 "This package provides text objects for @code{evil-mode} with
4875 boundaries defined by syntax highlighting.")
4876 (license license:gpl3+))))
4877
4878 (define-public emacs-flycheck-flow
4879 (let ((commit "9e8e52cfc98af6a23fd906f9cb5d5d470d8cf82d")
4880 (version "1.1")
4881 (revision "1"))
4882 (package
4883 (name "emacs-flycheck-flow")
4884 (version (git-version version revision commit))
4885 (source
4886 (origin
4887 (method git-fetch)
4888 (uri (git-reference
4889 (url "https://github.com/lbolla/emacs-flycheck-flow")
4890 (commit commit)))
4891 (file-name (git-file-name name version))
4892 (sha256
4893 (base32
4894 "14qldlisbmxzammr500gyha2hiv2xgyzfc6mysqii06kbcqn1ik1"))))
4895 (build-system emacs-build-system)
4896 (propagated-inputs
4897 `(("emacs-flycheck" ,emacs-flycheck)))
4898 (home-page "https://github.com/lbolla/emacs-flycheck-flow")
4899 (synopsis "Flow support for @code{flycheck-mode}")
4900 (description
4901 "This package allows @code{flycheck-mode} to provide syntax-checking
4902 for Flow files.")
4903 (license license:gpl3+))))
4904
4905 (define-public emacs-flycheck-grammalecte
4906 (package
4907 (name "emacs-flycheck-grammalecte")
4908 (version "1.3")
4909 (source
4910 (origin
4911 (method git-fetch)
4912 (uri (git-reference
4913 (url "https://git.umaneti.net/flycheck-grammalecte/")
4914 (commit (string-append "v" version))))
4915 (file-name (git-file-name name version))
4916 (sha256
4917 (base32 "0ih0nakal36is0dci82gx4ijrvnpz9jpw1adprfara2cf8dx4rk6"))))
4918 (build-system emacs-build-system)
4919 (arguments
4920 `(#:include (cons "\\.py$" %default-include)
4921 #:exclude '("^test-profile.el$")
4922 #:emacs ,emacs ;need libxml support
4923 #:phases
4924 (modify-phases %standard-phases
4925 (add-after 'unpack 'specify-python-location
4926 ;; Hard-code python3 executable location in the library.
4927 (lambda* (#:key inputs #:allow-other-keys)
4928 (let ((python3 (string-append (assoc-ref inputs "python")
4929 "/bin/python3")))
4930 (substitute* "flycheck-grammalecte.el"
4931 (("\"python3") (string-append "\"" python3)))
4932 (substitute* '("conjugueur.py" "flycheck-grammalecte.py")
4933 (("/usr/bin/env python3?") python3))
4934 #t)))
4935 (add-after 'unpack 'specify-grammalecte-location
4936 (lambda* (#:key inputs #:allow-other-keys)
4937 (make-file-writable "flycheck-grammalecte.el")
4938 (emacs-substitute-variables "flycheck-grammalecte.el"
4939 ("flycheck-grammalecte-grammalecte-directory"
4940 (string-append (assoc-ref inputs "grammalecte")
4941 "/lib/python"
4942 ,(version-major+minor (package-version python))
4943 "/site-packages/grammalecte")))
4944 #t))
4945 (add-after 'unpack 'do-not-phone-home
4946 ;; The package wants to check upstream Grammalecte version to
4947 ;; decide if an update is in order. Always return version
4948 ;; installed so it doesn't phone home and doesn't install anything.
4949 (lambda _
4950 (substitute* "flycheck-grammalecte.el"
4951 (("\\(flycheck-grammalecte--grammalecte-upstream-version\\)")
4952 ,(format #f "\"~a\"" (package-version grammalecte)))))))))
4953 (inputs
4954 `(("grammalecte" ,grammalecte)
4955 ("python" ,python)))
4956 (propagated-inputs
4957 `(("emacs-flycheck" ,emacs-flycheck)))
4958 (home-page "https://git.umaneti.net/flycheck-grammalecte/")
4959 (synopsis "Integrate Grammalecte with Flycheck")
4960 (description
4961 "Integrate the French grammar and typography checker Grammalecte with
4962 Flycheck to automatically look for mistakes in your writings. It also
4963 provides an easy way to find synonyms and antonyms for a given word (to avoid
4964 repetitions for example).")
4965 (license license:gpl3+)))
4966
4967 (define-public emacs-flycheck-guile
4968 (package
4969 (name "emacs-flycheck-guile")
4970 (version "0.2")
4971 (source
4972 (origin
4973 (method git-fetch)
4974 (uri
4975 (git-reference
4976 (url "https://github.com/flatwhatson/flycheck-guile")
4977 (commit version)))
4978 (file-name (git-file-name name version))
4979 (sha256
4980 (base32 "0cs5r0ik6a3bl1k3imjl0r8y1i69kx9x9m9cgxj470qk34brwyj5"))))
4981 (propagated-inputs
4982 `(("emacs-flycheck" ,emacs-flycheck)
4983 ("emacs-geiser" ,emacs-geiser)))
4984 (build-system emacs-build-system)
4985 (home-page "https://github.com/flatwhatson/flycheck-guile")
4986 (synopsis "GNU Guile support for Flycheck")
4987 (description
4988 "This package provides a Flycheck checker for GNU Guile using @code{guild
4989 compile}.")
4990 (license license:gpl3+)))
4991
4992 (define-public emacs-flycheck-ledger
4993 (package
4994 (name "emacs-flycheck-ledger")
4995 (version "0.5")
4996 (source
4997 (origin
4998 (method git-fetch)
4999 (uri (git-reference
5000 (url "https://github.com/purcell/flycheck-ledger")
5001 (commit version)))
5002 (file-name (git-file-name name version))
5003 (sha256
5004 (base32 "1djrj3is0dzrl2703bw7bclf33dp4xqmy144q7xj5pvpb9v3kf50"))))
5005 (inputs `(("ledger" ,ledger)))
5006 (arguments
5007 `(#:phases
5008 (modify-phases %standard-phases
5009 (add-after 'unpack 'configure
5010 (lambda* (#:key inputs outputs #:allow-other-keys)
5011 (let ((ledger (assoc-ref inputs "ledger")))
5012 ;; Specify the absolute executable location of ledger.
5013 (substitute* "flycheck-ledger.el"
5014 (("\"ledger\"") (string-append "\"" ledger "\""))))
5015 #t)))))
5016 (propagated-inputs
5017 `(("emacs-flycheck" ,emacs-flycheck)))
5018 (build-system emacs-build-system)
5019 (home-page "https://github.com/purcell/flycheck-ledger")
5020 (synopsis "Ledger support for Flycheck")
5021 (description
5022 "This Flycheck checker uses the output of @code{ledger balance} on the
5023 current file to find errors such as unbalanced transactions and syntax
5024 errors.")
5025 (license license:gpl3+)))
5026
5027 (define-public emacs-flycheck-rust
5028 (package
5029 (name "emacs-flycheck-rust")
5030 (version "1.1")
5031 (source
5032 (origin
5033 (method git-fetch)
5034 (uri
5035 (git-reference
5036 (url "https://github.com/flycheck/flycheck-rust")
5037 (commit version)))
5038 (file-name (git-file-name name version))
5039 (sha256
5040 (base32 "1fh6j5w2387nh2fwwjphkhq17cgj5m2q5k0fhidvgc2w65lzbr1r"))))
5041 (propagated-inputs
5042 `(("emacs-dash" ,emacs-dash)
5043 ("emacs-flycheck" ,emacs-flycheck)
5044 ("emacs-let-alist" ,emacs-let-alist)))
5045 (build-system emacs-build-system)
5046 (home-page "https://github.com/flycheck/flycheck-rust")
5047 (synopsis "Rust/Cargo support for Flycheck")
5048 (description
5049 "This Flycheck extension configures Flycheck automatically for
5050 the current Cargo project.")
5051 (license license:gpl3+)))
5052
5053 (define-public emacs-elisp-demos
5054 (package
5055 (name "emacs-elisp-demos")
5056 (version "2020.02.19")
5057 (source
5058 (origin
5059 (method git-fetch)
5060 (uri (git-reference
5061 (url "https://github.com/xuchunyang/elisp-demos")
5062 (commit version)))
5063 (file-name (git-file-name name version))
5064 (sha256
5065 (base32
5066 "0mckgaz92v3y2vlkggx9kd51fd1mahylw39c42l51dyv8wscm7sc"))))
5067 (build-system emacs-build-system)
5068 (arguments
5069 `(#:include '("\\.el$" "\\.org$")
5070 #:tests? #t
5071 #:test-command '("make" "test")))
5072 (home-page "https://github.com/xuchunyang/elisp-demos/")
5073 (synopsis "Enhance @code{*Help*} buffers with additional examples")
5074 (description
5075 "This package injects example uses of Elisp functions into their
5076 respective @code{*Help*} buffers.")
5077 (license license:gpl3+)))
5078
5079 (define-public emacs-docker-compose-mode
5080 (package
5081 (name "emacs-docker-compose-mode")
5082 (version "1.1.0")
5083 (source
5084 (origin
5085 (method git-fetch)
5086 (uri (git-reference
5087 (url "https://github.com/meqif/docker-compose-mode")
5088 (commit version)))
5089 (file-name (git-file-name name version))
5090 (sha256
5091 (base32
5092 "1fbcxwfvm33xcdj3cs26d9i1zyrryyjjkv7sc3mfxd45nq8d3ivj"))))
5093 (build-system emacs-build-system)
5094 (propagated-inputs
5095 `(("emacs-dash" ,emacs-dash)
5096 ("emacs-f" ,emacs-f)
5097 ("emacs-yaml-mode" ,emacs-yaml-mode)))
5098 (home-page "https://github.com/meqif/docker-compose-mode/")
5099 (synopsis "Major mode for editing @file{docker-compose} files")
5100 (description
5101 "This is a major mode for @file{docker-compose} files that provides
5102 completion of relevant keywords.")
5103 (license license:expat)))
5104
5105 (define-public emacs-dvc
5106 (let ((revision "591") ;no tags or official releases
5107 (guix-revision "1"))
5108 (package
5109 (name "emacs-dvc")
5110 (version (string-append "0.0.0-" guix-revision "." revision))
5111 (source
5112 (origin
5113 (method bzr-fetch)
5114 (uri (bzr-reference
5115 (url "lp:dvc")
5116 (revision revision)))
5117 (sha256
5118 (base32
5119 "03pqn493w70wcpgaxvqnfgynxghw114l9pyiv3r414d84vzhan6h"))
5120 (file-name (string-append name "-" version "-checkout"))))
5121 (build-system gnu-build-system)
5122 (arguments
5123 `(#:configure-flags
5124 (list (string-append "--with-lispdir=" (assoc-ref %outputs "out")
5125 "/share/emacs/site-lisp/"))
5126 #:tests? #f ;no test suite
5127 #:phases
5128 (modify-phases %standard-phases
5129 (add-before 'build 'set-home
5130 ;; Something in dvc-bookmarks.el attempts to write config files in
5131 ;; $HOME during the autoload generation.
5132 (lambda _ (setenv "HOME" (getenv "TMPDIR")) #t))
5133 (add-before 'build 'fix-texinfo
5134 ;; See https://bugs.launchpad.net/dvc/+bug/1264383.
5135 (lambda _
5136 (substitute* "texinfo/dvc-intro.texinfo"
5137 (("@itemx update ``to''")
5138 "@item update ``to''")
5139 (("@itemx brief")
5140 "@item brief")
5141 (("@itemx full")
5142 "@item full")
5143 (("@itemx drop")
5144 "@item drop")
5145 (("@itemx left file")
5146 "@item left file"))
5147 #t)))))
5148 (native-inputs
5149 `(("autoconf" ,autoconf)
5150 ("automake" ,automake) ;for aclocal
5151 ("emacs" ,emacs-minimal)
5152 ("texinfo" ,texinfo)))
5153 (home-page "http://xsteve.at/prg/emacs_dvc/index.html")
5154 (synopsis "Emacs front-end for various distributed version control systems.")
5155 (description "DVC is a legacy Emacs front-end for a number of
5156 distributed version control systems. It currently supports GNU Arch, GNU
5157 Bazaar, git, Mercurial, and Monotone. It also provides some integration with
5158 Gnus, e.g., for applying patches received by email.")
5159 (license license:gpl2+))))
5160
5161 (define-public emacs-sudo-edit
5162 (package
5163 (name "emacs-sudo-edit")
5164 (version "0.1.1")
5165 (source
5166 (origin
5167 (method git-fetch)
5168 (uri (git-reference
5169 (url "https://github.com/nflath/sudo-edit")
5170 (commit (string-append "v" version))))
5171 (file-name (git-file-name name version))
5172 (sha256
5173 (base32 "1hncxbg5lvywzkwvdmzvrz71midy4samjq2vvxxhz90z1y5l8l29"))))
5174 (build-system emacs-build-system)
5175 (native-inputs
5176 `(("emacs-undercover" ,emacs-undercover)))
5177 (arguments
5178 `(#:emacs ,emacs
5179 #:phases
5180 (modify-phases %standard-phases
5181 (add-before 'check 'fix-makefile
5182 (lambda _
5183 (substitute* "Makefile"
5184 (("\\$\\(CASK\\) exec ") ""))
5185 #t)))
5186 #:tests? #t
5187 #:test-command '("make" "test")))
5188 (home-page "https://github.com/nflath/sudo-edit/")
5189 (synopsis "Open files as another user")
5190 (description
5191 "This package allows editing files as another user, including the root
5192 user.")
5193 (license license:gpl3+)))
5194
5195 (define-public emacs-miniedit
5196 (package
5197 (name "emacs-miniedit")
5198 (version "2.0")
5199 (source
5200 (origin
5201 (method git-fetch)
5202 (uri (git-reference
5203 (url "https://github.com/emacsmirror/miniedit")
5204 (commit version)))
5205 (file-name (git-file-name name version))
5206 (sha256
5207 (base32
5208 "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq"))))
5209 (build-system emacs-build-system)
5210 (home-page "https://github.com/emacsmirror/miniedit/")
5211 (synopsis "Enhanced editing for minibuffer fields")
5212 (description
5213 "This package provides a function that can be called from the
5214 minibuffer to enable editing the minibuffer input in another buffer with
5215 @code{text-mode} enabled.")
5216 (license license:gpl2+)))
5217
5218 (define-public emacs-ob-ipython
5219 (package
5220 (name "emacs-ob-ipython")
5221 (version "20180224")
5222 (source (origin
5223 (method git-fetch)
5224 (uri (git-reference
5225 (commit "7147455230841744fb5b95dcbe03320313a77124")
5226 (url "https://github.com/gregsexton/ob-ipython")))
5227 (file-name (git-file-name name version))
5228 (sha256
5229 (base32
5230 "1a10fc2jk37ni5sjjvf87s5nyaz2a6h2mlj5dxh4dhv5sd3bb85p"))))
5231 (build-system emacs-build-system)
5232 (propagated-inputs
5233 `(("emacs-f" ,emacs-f)))
5234 (home-page "http://www.gregsexton.org")
5235 (synopsis "Org-Babel functions for IPython evaluation")
5236 (description "This package adds support to Org-Babel for evaluating Python
5237 source code using IPython.")
5238 (license license:gpl3+)))
5239
5240 (define-public emacs-debbugs
5241 (package
5242 (name "emacs-debbugs")
5243 (version "0.27")
5244 (source
5245 (origin
5246 (method url-fetch)
5247 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
5248 version ".tar"))
5249 (sha256
5250 (base32 "1zn9p9vmfv5ihrp8d06b6abs48q225v42cgwa01s39hld6zg6wbv"))))
5251 (build-system emacs-build-system)
5252 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
5253 (propagated-inputs
5254 `(("emacs-async" ,emacs-async)))
5255 (home-page "https://elpa.gnu.org/packages/debbugs.html")
5256 (synopsis "Access the Debbugs bug tracker in Emacs")
5257 (description
5258 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
5259 Tracker} from within Emacs.
5260
5261 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
5262 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
5263 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
5264 @code{M-x debbugs-org} and related commands.
5265
5266 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
5267 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
5268 (license license:gpl3+)))
5269
5270 (define-public emacs-ert-expectations
5271 (package
5272 (name "emacs-ert-expectations")
5273 (version "0.2")
5274 (source
5275 (origin
5276 (method url-fetch)
5277 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
5278 (sha256
5279 (base32
5280 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
5281 (build-system emacs-build-system)
5282 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
5283 (synopsis "Simple unit test framework for Emacs Lisp")
5284 (description "@code{emacs-ert-expectations} is a simple unit test
5285 framework for Emacs Lisp to be used with @code{ert}.")
5286 (license license:gpl3+)))
5287
5288 (define-public emacs-deferred
5289 (package
5290 (name "emacs-deferred")
5291 (version "0.5.1")
5292 (home-page "https://github.com/kiwanami/emacs-deferred")
5293 (source (origin
5294 (method git-fetch)
5295 (uri (git-reference
5296 (url home-page)
5297 (commit (string-append "v" version))))
5298 (file-name (git-file-name name version))
5299 (sha256
5300 (base32
5301 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))))
5302 (build-system emacs-build-system)
5303 (arguments
5304 `(#:phases
5305 (modify-phases %standard-phases
5306 (add-after 'unpack 'set-shell
5307 ;; Setting the SHELL environment variable is required for the tests
5308 ;; to find sh.
5309 (lambda _
5310 (setenv "SHELL" (which "sh"))
5311 #t))
5312 (add-before 'check 'fix-makefile
5313 (lambda _
5314 (substitute* "Makefile"
5315 (("\\$\\(CASK\\) exec ") ""))
5316 #t)))
5317 #:tests? #t
5318 #:test-command '("make" "test")))
5319 (native-inputs
5320 `(("emacs-ert-expectations" ,emacs-ert-expectations)
5321 ("emacs-undercover" ,emacs-undercover)
5322 ("ert-runner" ,emacs-ert-runner)))
5323 (synopsis "Simple asynchronous functions for Emacs Lisp")
5324 (description
5325 "The @code{deferred.el} library provides support for asynchronous tasks.
5326 The API is almost the same as that of
5327 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
5328 for asynchronous tasks.")
5329 (license license:gpl3+)))
5330
5331 (define-public emacs-butler
5332 (package
5333 (name "emacs-butler")
5334 (version "0.2.4")
5335 (home-page "https://github.com/AshtonKem/Butler")
5336 (source (origin
5337 (method git-fetch)
5338 (uri (git-reference
5339 (url home-page)
5340 (commit version)))
5341 (file-name (git-file-name name version))
5342 (sha256
5343 (base32
5344 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))))
5345 (build-system emacs-build-system)
5346 (propagated-inputs
5347 `(("emacs-deferred" ,emacs-deferred)))
5348 (synopsis "Emacs client for Jenkins")
5349 (description
5350 "Butler provides an interface to connect to Jenkins continuous
5351 integration servers. Users can specify a list of server in the
5352 @code{butler-server-list} variable and then use @code{M-x butler-status} to
5353 view the build status of those servers' build jobs, and possibly to trigger
5354 build jobs.")
5355 (license license:gpl3+)))
5356
5357 (define-public emacs-tup-mode
5358 (package
5359 (name "emacs-tup-mode")
5360 (version "1.3.1")
5361 (source
5362 (origin
5363 (method git-fetch)
5364 (uri (git-reference
5365 (url "https://github.com/ejmr/tup-mode")
5366 (commit (string-append "v" version))))
5367 (file-name (git-file-name name version))
5368 (sha256
5369 (base32 "0asd024n5v23wdsg1959sszq568wg3a1bp4jrk0cllfji1z0n78y"))))
5370 (build-system emacs-build-system)
5371 (home-page "https://github.com/ejmr/tup-mode")
5372 (synopsis "Major mode for editing ``tupfiles'' used by the Tup build system")
5373 (description
5374 "Tup mode provides syntax highlighting for all of the elements of
5375 tupfiles, such as rule definitions, user-defined variables, macros, flags, bin
5376 variables, and so on. The mode also allows you to execute Tup commands.")
5377 (license license:gpl3+)))
5378
5379 (define-public emacs-company
5380 (package
5381 (name "emacs-company")
5382 (version "0.9.13")
5383 (source
5384 (origin
5385 (method url-fetch)
5386 (uri (string-append "https://elpa.gnu.org/packages/"
5387 "company-" version ".tar"))
5388 (sha256
5389 (base32 "1c9x9wlzzsn7vrsm57l2l44nqx455saa6wrm853szzg09qn8dlnw"))))
5390 (build-system emacs-build-system)
5391 (home-page "https://company-mode.github.io/")
5392 (synopsis "Modular text completion framework")
5393 (description
5394 "Company is a modular completion mechanism. Modules for retrieving
5395 completion candidates are called back-ends, modules for displaying them are
5396 front-ends. Company comes with many back-ends, e.g., @code{company-elisp}.
5397 These are distributed in separate files and can be used individually.")
5398 (license license:gpl3+)))
5399
5400 (define-public emacs-company-box
5401 ;; There is no release yet. Version is extracted from the main
5402 ;; file.
5403 (let ((version "0.0.1")
5404 (revision "0")
5405 (commit "be37a9a30dc112ab172af21af694e2cb04a74f85"))
5406 (package
5407 (name "emacs-company-box")
5408 (version (git-version version revision commit))
5409 (source
5410 (origin
5411 (method git-fetch)
5412 (uri (git-reference
5413 (url "https://github.com/sebastiencs/company-box")
5414 (commit commit)))
5415 (file-name (git-file-name name version))
5416 (sha256
5417 (base32 "13fgmdy51gqdwijqfvb784pirx4lgva0y7ysi0c3fcx8f82cdj59"))))
5418 (build-system emacs-build-system)
5419 (propagated-inputs
5420 `(("emacs-company" ,emacs-company)
5421 ("emacs-dash" ,emacs-dash)
5422 ("emacs-frame-local" ,emacs-frame-local)))
5423 (home-page "https://github.com/sebastiencs/company-box")
5424 (synopsis "Company front-end with icons")
5425 (description
5426 "Company box is a Company front-end. It supports different
5427 colors for different backends, associates icons to functions,
5428 variables... and their backends, and displays candidate's
5429 documentation. It is not limited by the current window size or
5430 buffer's text properties.
5431
5432 This package is not compatible with a TTY.")
5433 (license license:gpl3+))))
5434
5435 (define-public emacs-company-posframe
5436 (package
5437 (name "emacs-company-posframe")
5438 (version "0.5.0")
5439 (source (origin
5440 (method git-fetch)
5441 (uri (git-reference
5442 (url "https://github.com/tumashu/company-posframe")
5443 (commit (string-append "v" version))))
5444 (file-name (git-file-name name version))
5445 (sha256
5446 (base32
5447 "05ays6xkqbxcfplvx7wfc2slflmwc3aw7vkixvabk0ilvisndvgm"))))
5448 (build-system emacs-build-system)
5449 (propagated-inputs
5450 `(("emacs-company" ,emacs-company)
5451 ("emacs-posframe" ,emacs-posframe)))
5452 (home-page "https://github.com/tumashu/company-posframe")
5453 (synopsis "Use a posframe for @code{emacs-company}'s candidate menu")
5454 (description
5455 "Allows @code{emacs-company} to use child frames for its candidate menus.
5456
5457 @code{emacs-company-posframe} is fast enough for daily use and supports CJK
5458 languages.")
5459 (license license:gpl3+)))
5460
5461 (define-public emacs-irony-mode
5462 (package
5463 (name "emacs-irony-mode")
5464 (version "1.4.0")
5465 (home-page "https://github.com/Sarcasm/irony-mode")
5466 (source (origin
5467 (method git-fetch)
5468 (uri (git-reference
5469 (url (string-append home-page ".git"))
5470 (commit (string-append "v" version))))
5471 (file-name (git-file-name name version))
5472 (sha256
5473 (base32
5474 "0n2nfcq58md1p2xdhq1smh8v7lsyj0ci7ma5xyd6bkg5rvhsh10i"))))
5475 (build-system emacs-build-system)
5476 (inputs `(("server" ,emacs-irony-mode-server)))
5477 (arguments `(#:phases
5478 (modify-phases %standard-phases
5479 (add-after 'unpack 'configure
5480 (lambda* (#:key inputs #:allow-other-keys)
5481 (chmod "irony.el" #o644)
5482 (emacs-substitute-variables "irony.el"
5483 ("irony-server-install-prefix"
5484 (assoc-ref inputs "server")))
5485 #t)))))
5486 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
5487 (description "Irony-mode provides Clang-assisted syntax checking and
5488 completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
5489 provide syntax checking and autocompletion on compiler level which is very
5490 resistant against false positives. It also integrates well with other
5491 packages like @code{eldoc-mode} and especially @code{company-mode} as
5492 described on the homepage.")
5493 (license license:gpl3+)))
5494
5495 (define-public emacs-irony-mode-server
5496 (package (inherit emacs-irony-mode)
5497 (name "emacs-irony-mode-server")
5498 (inputs
5499 `(("clang" ,clang)))
5500 (arguments
5501 `(#:phases
5502 (modify-phases %standard-phases
5503 (replace 'configure
5504 (lambda* (#:key outputs #:allow-other-keys)
5505 (let ((out (assoc-ref outputs "out")))
5506 (invoke "cmake"
5507 "server"
5508 (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
5509 (build-system cmake-build-system)
5510 (synopsis "Server for the Emacs @dfn{irony mode}")))
5511
5512 (define-public emacs-company-irony
5513 (package
5514 (name "emacs-company-irony")
5515 (version "1.1.0")
5516 (source (origin
5517 (method git-fetch)
5518 (uri (git-reference
5519 (url "https://github.com/Sarcasm/company-irony")
5520 (commit (string-append "v" version))))
5521 (sha256 (base32
5522 "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"))
5523 (file-name (git-file-name name version))))
5524 (build-system emacs-build-system)
5525 (inputs
5526 `(("emacs-irony-mode" ,emacs-irony-mode)
5527 ("emacs-company" ,emacs-company)))
5528 (synopsis "C++ completion backend for Company using irony-mode")
5529 (description "This backend for company-mode allows for C++ code completion
5530 with irony-mode using clang-tooling.")
5531 (home-page "https://github.com/Sarcasm/company-irony")
5532 (license license:gpl3+)))
5533
5534 (define-public emacs-flycheck-irony
5535 (package
5536 (name "emacs-flycheck-irony")
5537 (version "0.1.0")
5538 (source (origin
5539 (method git-fetch)
5540 (uri (git-reference
5541 (url "https://github.com/Sarcasm/flycheck-irony")
5542 (commit (string-append "v" version))))
5543 (file-name (git-file-name name version))
5544 (sha256
5545 (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))))
5546 (build-system emacs-build-system)
5547 (inputs
5548 `(("irony-mode" ,emacs-irony-mode)
5549 ("flycheck-mode" ,emacs-flycheck)
5550 ("emacs-company" ,emacs-company)))
5551 (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
5552 (description "This package provides a frontend for Flycheck that lets
5553 irony-mode do the syntax checking.")
5554 (home-page "https://github.com/Sarcasm/flycheck-irony")
5555 (license license:gpl3+)))
5556
5557 (define-public emacs-irony-eldoc
5558 (package
5559 (name "emacs-irony-eldoc")
5560 (version (package-version emacs-irony-mode))
5561 (source
5562 (origin
5563 (method git-fetch)
5564 (uri (git-reference
5565 (url "https://github.com/ikirill/irony-eldoc")
5566 (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
5567 (file-name (git-file-name name version))
5568 (sha256
5569 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))))
5570 (build-system emacs-build-system)
5571 (inputs
5572 `(("irony-mode" ,emacs-irony-mode)))
5573 (synopsis "Eldoc integration for irony-mode")
5574 (description "Irony-eldoc is an eldoc extension that shows documentation
5575 for the current function or variable in the minibuffer.")
5576 (home-page "https://github.com/ikirill/irony-eldoc")
5577 (license license:gpl3+)))
5578
5579 (define-public emacs-company-quickhelp
5580 ;; XXX: release version 2.3.0 is on an unmaintained branch for some reason,
5581 ;; so we use the latest 2.2.0 commit instead
5582 (let ((commit "479676cade80a9f03802ca3d956591820ed5c537")
5583 (revision "1"))
5584 (package
5585 (name "emacs-company-quickhelp")
5586 (version (git-version "2.2.0" revision commit))
5587 (source
5588 (origin
5589 (method git-fetch)
5590 (uri (git-reference
5591 (url "https://github.com/expez/company-quickhelp")
5592 (commit commit)))
5593 (file-name (git-file-name name version))
5594 (sha256
5595 (base32 "0hbqpnaf4hnin3nmdzmfj3v22kk9a97b6zssqs96ns36d9h52xcp"))))
5596 (build-system emacs-build-system)
5597 (propagated-inputs
5598 `(("emacs-pos-tip" ,emacs-pos-tip)
5599 ("emacs-company" ,emacs-company)))
5600 (home-page "https://github.com/expez/company-quickhelp")
5601 (synopsis "Popup documentation for completion candidates")
5602 (description "@code{company-quickhelp} shows documentation for the
5603 completion candidate when using the Company text completion framework.")
5604 (license license:gpl3+))))
5605
5606 (define-public emacs-math-symbol-lists
5607 (package
5608 (name "emacs-math-symbol-lists")
5609 (version "1.3")
5610 (source
5611 (origin
5612 (method git-fetch)
5613 (uri (git-reference
5614 (url "https://github.com/vspinu/math-symbol-lists")
5615 (commit (string-append "v" version))))
5616 (file-name (git-file-name name version))
5617 (sha256
5618 (base32 "1r2i600356k8g0l53s4b5xc24flpka664i8f23zbj4h7gk1g2787"))))
5619 (build-system emacs-build-system)
5620 (home-page "https://github.com/vspinu/math-symbol-lists")
5621 (synopsis "Lists of Unicode math symbols and @code{LaTeX} commands")
5622 (description "This is a storage package used by completion engines like
5623 @code{company-math}.")
5624 (license license:gpl3+)))
5625
5626 (define-public emacs-company-coq
5627 (package
5628 (name "emacs-company-coq")
5629 (version "1.0.1")
5630 (source
5631 (origin
5632 (method git-fetch)
5633 (uri
5634 (git-reference
5635 (url "https://github.com/cpitclaudel/company-coq")
5636 (commit version)))
5637 (file-name (git-file-name name version))
5638 (sha256
5639 (base32 "0dxi4h8xqq5647k7h89s4pi8nwyj3brlhsckrv3p3b1g4dr6mk3b"))))
5640 (inputs
5641 `(("emacs-company" ,emacs-company)
5642 ("emacs-company-math" ,emacs-company-math)
5643 ("emacs-dash" ,emacs-dash)
5644 ("emacs-yasnippet" ,emacs-yasnippet)))
5645 (build-system emacs-build-system)
5646 (home-page "https://github.com/cpitclaudel/company-coq")
5647 (synopsis "Emacs extensions for Proof General's Coq mode")
5648 (description "This package includes a collection of Company mode backends
5649 for Proof-General's Coq mode, and many useful extensions to Proof-General. It
5650 features:
5651
5652 @itemize
5653 @item Prettification of operators, types, and subscripts,
5654 @item Auto-completion,
5655 @item Insertion of cases,
5656 @item Fully explicit intros,
5657 @item Outlines, code folding, and jumping to definition,
5658 @item Help with errors,
5659 @item and more.
5660 @end itemize")
5661 (license license:gpl3+)))
5662
5663 (define-public emacs-company-math
5664 (package
5665 (name "emacs-company-math")
5666 (version "1.4")
5667 (source
5668 (origin
5669 (method git-fetch)
5670 (uri (git-reference
5671 (url "https://github.com/vspinu/company-math")
5672 (commit (string-append "v" version))))
5673 (file-name (git-file-name name version))
5674 (sha256
5675 (base32 "1y1fw926insgdl7ib9ynxjrxf3p6wfjkfxvf5vgdca7267cvcll1"))))
5676 (build-system emacs-build-system)
5677 (propagated-inputs
5678 `(("emacs-math-symbol-lists" ,emacs-math-symbol-lists)
5679 ("emacs-company" ,emacs-company)))
5680 (home-page "https://github.com/vspinu/company-math")
5681 (synopsis "Completion backends for math symbols and @code{LaTeX} tags")
5682 (description
5683 "This package provides a backend for use with Company mode allowing for
5684 completion of common math symbols.")
5685 (license license:gpl3+)))
5686
5687 (define-public emacs-compdef
5688 (let ((commit "67104a38763cc819644f711248b170a43bce151b")
5689 (revision "2"))
5690 (package
5691 (name "emacs-compdef")
5692 (version (git-version "0.2" revision commit))
5693 (source
5694 (origin
5695 (method git-fetch)
5696 (uri (git-reference
5697 (url "https://gitlab.com/jjzmajic/compdef.git")
5698 (commit commit)))
5699 (file-name (git-file-name name version))
5700 (sha256
5701 (base32 "1f6y6cr67gps9jp5hd20xszfd3k26v70g6z4g5db6wdkvlnc2wkg"))))
5702 (build-system emacs-build-system)
5703 (home-page "https://gitlab.com/jjzmajic/compdef")
5704 (synopsis "Set local completion backends")
5705 (description "This package provides a function to cleanly set local
5706 completion backends according to mode, and integrates with
5707 @code{use-package}.")
5708 (license license:gpl3+))))
5709
5710 (define-public emacs-icomplete-vertical
5711 (package
5712 (name "emacs-icomplete-vertical")
5713 (version "0.3")
5714 (source
5715 (origin
5716 (method git-fetch)
5717 (uri (git-reference
5718 (url "https://github.com/oantolin/icomplete-vertical")
5719 (commit version)))
5720 (file-name (git-file-name name version))
5721 (sha256
5722 (base32 "02v190pb802vck7di39jyf5prvmfsgcxln8mgwsls2b4clx9da97"))))
5723 (build-system emacs-build-system)
5724 (home-page "https://github.com/oantolin/icomplete-vertical")
5725 (synopsis "Display Icomplete candidates vertically")
5726 (description
5727 "This package defines a global minor mode to display Icomplete
5728 completion candidates vertically.")
5729 (license license:gpl3+)))
5730
5731 (define-public emacs-handle
5732 (let ((commit "51c050bc1c6e5caf0eb47ecd985daea1db7241ab")
5733 (revision "2"))
5734 (package
5735 (name "emacs-handle")
5736 (version (git-version "0.1" revision commit))
5737 (source
5738 (origin
5739 (method git-fetch)
5740 (uri (git-reference
5741 (url "https://gitlab.com/jjzmajic/handle.git")
5742 (commit commit)))
5743 (file-name (git-file-name name version))
5744 (sha256
5745 (base32 "14f15qzfmwdslml4rv37zb5d1lsjf0jibriz636hb7q7knx1n4sg"))))
5746 (build-system emacs-build-system)
5747 (propagated-inputs
5748 `(("emacs-parent-mode" ,emacs-parent-mode)))
5749 (home-page "https://gitlab.com/jjzmajic/handle")
5750 (synopsis "Handle generic functions across related major modes")
5751 (description "This package provides generic functions that specialize on
5752 major modes and intended purpose rather than on arguments. Different
5753 callables for tasks like expression evaluation, definition-jumping, and more
5754 can now be grouped accordingly and tried in sequence until one of them
5755 succeeds.")
5756 (license license:gpl3+))))
5757
5758 (define-public emacs-nswbuff
5759 (package
5760 (name "emacs-nswbuff")
5761 (version "1.2.1")
5762 (source
5763 (origin
5764 (method git-fetch)
5765 (uri (git-reference
5766 (url "https://github.com/joostkremers/nswbuff")
5767 (commit version)))
5768 (file-name (git-file-name name version))
5769 (sha256
5770 (base32 "1sswhr52rp8c4v4fv30sww1gadbdrlk3l35j8xmqfw6hbgzxb5dn"))))
5771 (build-system emacs-build-system)
5772 (home-page "https://github.com/joostkremers/nswbuff")
5773 (synopsis "Quickly switch between buffers")
5774 (description "This package allows for navigating between buffers within
5775 a customizable list.")
5776 (license license:gpl3+)))
5777
5778 (define-public emacs-phi-search
5779 (let ((commit "9a089b8271cb1cff9640848850298c9ec855286c")
5780 (revision "1"))
5781 (package
5782 (name "emacs-phi-search")
5783 (version (git-version "20160630" revision commit))
5784 (source
5785 (origin
5786 (method git-fetch)
5787 (uri (git-reference
5788 (url "https://github.com/zk-phi/phi-search")
5789 (commit commit)))
5790 (file-name (git-file-name name version))
5791 (sha256
5792 (base32 "1gr5plcbrfdc4pglfj905s89hf8x0kc083h30wcnd81bnw9jwz1x"))))
5793 (build-system emacs-build-system)
5794 (home-page "https://github.com/zk-phi/phi-search")
5795 (synopsis "Interactive search compatible with @code{multiple-cursors}")
5796 (description "This package can be used with @code{multiple-cursors} to
5797 provide an incremental search that moves all fake cursors in sync.")
5798 (license license:gpl2+))))
5799
5800 (define-public emacs-phi-search-mc
5801 (let ((commit "7aa671910f766437089aec26c3aa7814222d1356")
5802 (revision "1"))
5803 (package
5804 (name "emacs-phi-search-mc")
5805 (version (git-version "2.2.1" revision commit))
5806 (source
5807 (origin
5808 (method git-fetch)
5809 (uri (git-reference
5810 (url "https://github.com/knu/phi-search-mc.el")
5811 (commit commit)))
5812 (file-name (git-file-name name version))
5813 (sha256
5814 (base32 "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd"))))
5815 (build-system emacs-build-system)
5816 (propagated-inputs
5817 `(("emacs-phi-search" ,emacs-phi-search)
5818 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
5819 (home-page "https://github.com/knu/phi-search-mc.el")
5820 (synopsis "Extend @code{phi-search} with additional
5821 @code{multiple-cursors} functionality")
5822 (description "This package provides further integration between
5823 @code{multiple-cursors} and @code{phi-search}, a package that allows for
5824 interactive searches to move multiple fake cursors.")
5825 (license license:bsd-2))))
5826
5827 (define-public emacs-multiple-cursors
5828 (package
5829 (name "emacs-multiple-cursors")
5830 (version "1.4.0")
5831 (source
5832 (origin
5833 (method git-fetch)
5834 (uri (git-reference
5835 (url "https://github.com/magnars/multiple-cursors.el")
5836 (commit version)))
5837 (file-name (git-file-name name version))
5838 (sha256
5839 (base32 "1ijgvzv5r44xqvz751fd5drbvrspapw6xwv47582w255j363r6ss"))))
5840 (build-system emacs-build-system)
5841 (home-page "https://github.com/magnars/multiple-cursors.el")
5842 (synopsis "Multiple cursors for Emacs")
5843 (description
5844 "This package adds support to Emacs for editing text with multiple
5845 simultaneous cursors.")
5846 (license license:gpl3+)))
5847
5848 (define-public emacs-multifiles
5849 ;; There is no tag and no "Version:" keyword. Using the latest release
5850 ;; instead.
5851 (let ((commit "dddfe64b8e1c1cd1f9ccc1f03405477fc0d53897")
5852 (revision "1"))
5853 (package
5854 (name "emacs-multifiles")
5855 (version (git-version "0" revision commit))
5856 (source
5857 (origin
5858 (method git-fetch)
5859 (uri (git-reference
5860 (url "https://github.com/magnars/multifiles.el")
5861 (commit commit)))
5862 (file-name (git-file-name name version))
5863 (sha256
5864 (base32 "065l04ylplng1vgykkbn2vnkcs3sn1k2cikx1ha2q8wmgx6bkvai"))))
5865 (build-system emacs-build-system)
5866 (propagated-inputs
5867 `(("emacs-dash" ,emacs-dash)))
5868 (home-page "https://github.com/magnars/multifiles.el")
5869 (synopsis "Edit multiple files in a single Emacs buffer")
5870 (description
5871 "This package allows one to view and edit parts of multiple files in
5872 one Emacs buffer.")
5873 (license license:gpl3+))))
5874
5875 (define-public emacs-mc-extras
5876 (let ((commit "053abc52181b8718559d7361a587bbb795faf164")
5877 (revision "1"))
5878 (package
5879 (name "emacs-mc-extras")
5880 (version (git-version "1.2.4" revision commit))
5881 (source
5882 (origin
5883 (method git-fetch)
5884 (uri (git-reference
5885 (url "https://github.com/knu/mc-extras.el")
5886 (commit commit)))
5887 (file-name (git-file-name name version))
5888 (sha256
5889 (base32 "16y48qrd20m20vypvys5jp4v4gc1qrqlkm75s1pk1r68i9zrw481"))))
5890 (build-system emacs-build-system)
5891 (propagated-inputs
5892 `(("emacs-multiple-cursors" ,emacs-multiple-cursors)))
5893 (home-page "https://github.com/knu/mc-extras.el")
5894 (synopsis "Extra functions for manipulating multiple cursors")
5895 (description
5896 "This package provides additional functions for
5897 @code{multiple-cursors}, including functions for marking s-expressions,
5898 comparing characters, removing cursors, and more.")
5899 (license license:bsd-2))))
5900
5901 (define-public emacs-typo
5902 (package
5903 (name "emacs-typo")
5904 (version "1.1")
5905 (home-page "https://github.com/jorgenschaefer/typoel")
5906 (source (origin
5907 (method git-fetch)
5908 (uri (git-reference
5909 (url home-page)
5910 (commit (string-append "v" version))))
5911 (file-name (git-file-name name version))
5912 (sha256
5913 (base32
5914 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))))
5915 (build-system emacs-build-system)
5916 (synopsis "Minor mode for typographic editing")
5917 (description
5918 "This package provides two Emacs modes, @code{typo-mode} and
5919 @code{typo-global-mode}. These modes automatically insert Unicode characters
5920 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
5921 automatically inserts a Unicode opening or closing quotation mark, depending
5922 on context.")
5923 (license license:gpl3+)))
5924
5925 (define-public emacs-company-lsp
5926 (package
5927 (name "emacs-company-lsp")
5928 (version "2.1.0")
5929 (source (origin
5930 (method git-fetch)
5931 (uri (git-reference
5932 (url "https://github.com/tigersoldier/company-lsp")
5933 (commit version)))
5934 (file-name (git-file-name name version))
5935 (sha256
5936 (base32
5937 "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"))))
5938 (build-system emacs-build-system)
5939 (propagated-inputs
5940 `(("emacs-dash" ,emacs-dash)
5941 ("emacs-lsp-mode" ,emacs-lsp-mode)
5942 ("emacs-company" ,emacs-company)
5943 ("emacs-s" ,emacs-s)
5944 ("emacs-dash" ,emacs-dash)))
5945 (native-inputs
5946 `(("emacs-buttercup" ,emacs-buttercup)))
5947 (arguments
5948 `(#:tests? #t
5949 #:test-command '("buttercup" "-L" ".")))
5950 (home-page "https://github.com/tigersoldier/company-lsp")
5951 (synopsis "Completion for @code{lsp-mode}")
5952 (description
5953 "This package provides completion features that are not possible with
5954 @code{lsp-mode} and @code{company-capf} alone, including support for trigger
5955 characters and asynchronous fetching of completion candidates.")
5956 (license license:gpl3+)))
5957
5958 (define-public emacs-scala-mode
5959 (package
5960 (name "emacs-scala-mode")
5961 (version "1.1.0")
5962 (source
5963 (origin
5964 (method git-fetch)
5965 (uri (git-reference
5966 (url "https://github.com/hvesalai/emacs-scala-mode")
5967 (commit (string-append "v" version))))
5968 (file-name (git-file-name name version))
5969 (sha256
5970 (base32 "1072lsin7dxadc0xyhy42wd0cw549axbbd4dy95wfmfcc1xbzjwv"))))
5971 (build-system emacs-build-system)
5972 (home-page "https://github.com/hvesalai/emacs-scala-mode")
5973 (synopsis "Emacs major mode for Scala")
5974 (description
5975 "This package provides basic Emacs support for the Scala language,
5976 including: local indenting of code, comments and multi-line strings, motion
5977 commands and highlighting.")
5978 ;; There are no copyright headers in the source code. The LICENSE file
5979 ;; indicates GPL3.
5980 (license license:gpl3)))
5981
5982 (define-public emacs-sbt-mode
5983 (package
5984 (name "emacs-sbt-mode")
5985 (version "2.0.0")
5986 (source
5987 (origin
5988 (method git-fetch)
5989 (uri (git-reference
5990 (url "https://github.com/hvesalai/emacs-sbt-mode")
5991 (commit (string-append "v" version))))
5992 (file-name (git-file-name name version))
5993 (sha256
5994 (base32 "0lv9ridzk9x6rkf7lj21srnszypyq04vqg05vl10zhpz1yqlnbjd"))))
5995 (build-system emacs-build-system)
5996 (home-page "https://github.com/hvesalai/emacs-sbt-mode")
5997 (synopsis "Basic functionality for interacting with sbt inside Emacs")
5998 (description
5999 "This mode provides basic functionality required for successfully
6000 interacting with sbt inside Emacs. The core functionality includes
6001 interacting with the sbt shell and Scala console, compiling code and
6002 navigation to errors.")
6003 (license license:gpl3+)))
6004
6005 (define-public emacs-scheme-complete
6006 ;; Upstream does not provide tags. The commit below corresponds to the
6007 ;; exact version update. Version is extracted from main file.
6008 (let ((commit "5c0a16684a3be7021d67067b2955f1c3e17a320a"))
6009 (package
6010 (name "emacs-scheme-complete")
6011 (version "0.9.9")
6012 (source
6013 (origin
6014 (method git-fetch)
6015 (uri (git-reference
6016 (url "https://github.com/ashinn/scheme-complete")
6017 (commit commit)))
6018 (file-name (git-file-name name version))
6019 (sha256
6020 (base32 "1smxr5bkzbfrjx21vhrj1wagmqx5yd92i997dbgs16iaqbzzr7cz"))))
6021 (build-system emacs-build-system)
6022 (home-page "https://github.com/ashinn/scheme-complete")
6023 (synopsis "Smart tab completion for Scheme in Emacs")
6024 (description
6025 "This file provides a single function, @code{scheme-smart-complete},
6026 which you can use for intelligent, context-sensitive completion for any Scheme
6027 implementation in Emacs. To use it just load this file and bind that function
6028 to a key in your preferred mode.")
6029 (license license:public-domain))))
6030
6031 (define-public emacs-scel
6032 (let ((version "20170629")
6033 (revision "1")
6034 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
6035 (package
6036 (name "emacs-scel")
6037 (version (git-version version revision commit))
6038 (source
6039 (origin
6040 (method git-fetch)
6041 (uri (git-reference
6042 (url "https://github.com/supercollider/scel")
6043 (commit commit)))
6044 (file-name (git-file-name name version))
6045 (sha256
6046 (base32
6047 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
6048 (build-system emacs-build-system)
6049 (arguments
6050 `(#:modules ((guix build emacs-build-system)
6051 ((guix build cmake-build-system) #:prefix cmake:)
6052 (guix build utils))
6053 #:imported-modules (,@%emacs-build-system-modules
6054 (guix build cmake-build-system))
6055 #:phases
6056 (modify-phases %standard-phases
6057 (add-after 'unpack 'configure
6058 (lambda* (#:key outputs #:allow-other-keys)
6059 (substitute* "el/CMakeLists.txt"
6060 (("share/emacs/site-lisp/SuperCollider")
6061 (string-append
6062 "share/emacs/site-lisp")))
6063 ((assoc-ref cmake:%standard-phases 'configure)
6064 #:outputs outputs
6065 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
6066 (add-after 'add-source-to-load-path 'add-el-dir-to-emacs-load-path
6067 (lambda _
6068 (setenv "EMACSLOADPATH"
6069 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
6070 #t))
6071 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
6072 (inputs
6073 `(("supercollider" ,supercollider)))
6074 (native-inputs
6075 `(("cmake" ,cmake-minimal)))
6076 (home-page "https://github.com/supercollider/scel")
6077 (synopsis "SuperCollider Emacs interface")
6078 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
6079 SuperCollider is a platform for audio synthesis and algorithmic composition.")
6080 (license license:gpl2+))))
6081
6082 (define-public emacs-company-auctex
6083 (let ((commit "48c42c58ce2f0e693301b0cb2d085055410c1b25")
6084 (revision "1"))
6085 (package
6086 (name "emacs-company-auctex")
6087 (version (git-version "0" revision commit))
6088 (source (origin
6089 (method git-fetch)
6090 (uri (git-reference
6091 (url "https://github.com/alexeyr/company-auctex")
6092 (commit commit)))
6093 (file-name (git-file-name name version))
6094 (sha256
6095 (base32
6096 "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8"))))
6097 (build-system emacs-build-system)
6098 (propagated-inputs
6099 `(("emacs-yasnippet" ,emacs-yasnippet)
6100 ("emacs-auctex" ,emacs-auctex)
6101 ("emacs-company" ,emacs-company)))
6102 (home-page "https://github.com/alexeyr/company-auctex/")
6103 (synopsis "Completion for @code{AUCTeX}")
6104 (description
6105 "This package provides a group of backends permitting auto-completion
6106 for @code{AUCTeX}.")
6107 (license license:gpl3+))))
6108
6109 (define-public emacs-mit-scheme-doc
6110 (package
6111 (name "emacs-mit-scheme-doc")
6112 (version "20140203")
6113 (source
6114 (origin
6115 (modules '((guix build utils)))
6116 (snippet
6117 ;; keep only file of interest
6118 '(begin
6119 (for-each delete-file '("dot-emacs.el" "Makefile"))
6120 (install-file "6.945-config/mit-scheme-doc.el" ".")
6121 (delete-file-recursively "6.945-config")
6122 #t))
6123 (file-name (string-append name "-" version ".tar.bz2"))
6124 (method url-fetch)
6125 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
6126 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
6127 (sha256
6128 (base32
6129 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
6130 (build-system emacs-build-system)
6131 (inputs `(("mit-scheme" ,mit-scheme)))
6132 (arguments
6133 `(#:phases
6134 (modify-phases %standard-phases
6135 (add-after 'unpack 'configure-doc
6136 (lambda* (#:key inputs #:allow-other-keys)
6137 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
6138 (doc-dir (string-append mit-scheme-dir "/share/doc/"
6139 "mit-scheme-"
6140 ,(package-version mit-scheme))))
6141 (substitute* "mit-scheme-doc.el"
6142 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
6143 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
6144 (home-page "https://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
6145 (synopsis "MIT-Scheme documentation lookup for Emacs")
6146 (description
6147 "This package provides a set of Emacs functions to search definitions of
6148 identifiers in the MIT-Scheme documentation.")
6149 (license license:gpl2+)))
6150
6151 (define-public emacs-constants
6152 (package
6153 (name "emacs-constants")
6154 (version "2.6")
6155 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
6156 (source
6157 (origin
6158 (method git-fetch)
6159 (uri (git-reference
6160 (url "https://github.com/fedeinthemix/emacs-constants")
6161 (commit (string-append "v" version))))
6162 (file-name (git-file-name name version))
6163 (sha256
6164 (base32 "0f5sh6b45a8p9kancjp9jk44ws8ww6x50a0i6zgyyvr7dbvii1a0"))))
6165 (build-system emacs-build-system)
6166 (synopsis "Enter definition of constants into an Emacs buffer")
6167 (description
6168 "This package provides functions for inserting the definition of natural
6169 constants and units into an Emacs buffer.")
6170 (license license:gpl2+)))
6171
6172 (define-public emacs-tagedit
6173 (package
6174 (name "emacs-tagedit")
6175 (version "1.4.0")
6176 (source
6177 (origin
6178 (method git-fetch)
6179 (uri (git-reference
6180 (url "https://github.com/magnars/tagedit")
6181 (commit version)))
6182 (file-name (git-file-name name version))
6183 (sha256
6184 (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb"))))
6185 (build-system emacs-build-system)
6186 (propagated-inputs
6187 `(("emacs-s" ,emacs-s)
6188 ("emacs-dash" ,emacs-dash)))
6189 (home-page "https://github.com/magnars/tagedit")
6190 (synopsis "Some paredit-like features for html-mode")
6191 (description
6192 "This package provides a collection of paredit-like functions for editing
6193 in @code{html-mode}.")
6194 (license license:gpl3+)))
6195
6196 (define-public emacs-slime
6197 (package
6198 (name "emacs-slime")
6199 (version "2.26.1")
6200 (source
6201 (origin
6202 (method git-fetch)
6203 (uri (git-reference
6204 (url "https://github.com/slime/slime")
6205 (commit (string-append "v" version))))
6206 (file-name (git-file-name name version))
6207 (sha256
6208 (base32 "1a25ixb7q4svqabxnhwkk43v47mbsh13qwm7qlazkd3zkr8j3cli"))))
6209 (build-system emacs-build-system)
6210 (native-inputs
6211 `(("texinfo" ,texinfo)))
6212 (arguments
6213 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
6214 #:exclude '("^slime-tests.el" "^contrib/test/"
6215 "^contrib/Makefile$" "^contrib/README.md$")
6216 #:phases
6217 (modify-phases %standard-phases
6218 (add-after 'unpack 'make-git-checkout-writable
6219 (lambda _
6220 (for-each make-file-writable (find-files "."))
6221 #t))
6222 (add-before 'install 'configure
6223 (lambda* _
6224 (emacs-substitute-variables "slime.el"
6225 ("inferior-lisp-program" "sbcl"))
6226 #t))
6227 (add-before 'install 'install-doc
6228 (lambda* (#:key outputs #:allow-other-keys)
6229 (let* ((out (assoc-ref outputs "out"))
6230 (info-dir (string-append out "/share/info"))
6231 (doc-dir (string-append out "/share/doc/"
6232 ,name "-" ,version))
6233 (doc-files '("doc/slime-refcard.pdf"
6234 "README.md" "NEWS" "PROBLEMS"
6235 "CONTRIBUTING.md")))
6236 (with-directory-excursion "doc"
6237 (substitute* "Makefile"
6238 (("infodir=/usr/local/info")
6239 (string-append "infodir=" info-dir)))
6240 (invoke "make" "html/index.html")
6241 (invoke "make" "slime.info")
6242 (install-file "slime.info" info-dir)
6243 (copy-recursively "html" (string-append doc-dir "/html")))
6244 (for-each (lambda (f)
6245 (install-file f doc-dir)
6246 (delete-file f))
6247 doc-files)
6248 (delete-file-recursively "doc")
6249 #t))))))
6250 (home-page "https://github.com/slime/slime")
6251 (synopsis "Superior Lisp Interaction Mode for Emacs")
6252 (description
6253 "SLIME extends Emacs with support for interactive programming in
6254 Common Lisp. The features are centered around @command{slime-mode},
6255 an Emacs minor mode that complements the standard @command{lisp-mode}.
6256 While lisp-mode supports editing Lisp source files, @command{slime-mode}
6257 adds support for interacting with a running Common Lisp process
6258 for compilation, debugging, documentation lookup, and so on.")
6259 (license (list license:gpl2+ license:public-domain))))
6260
6261 (define-public emacs-popup
6262 (package
6263 (name "emacs-popup")
6264 (version "0.5.8")
6265 (source
6266 (origin
6267 (method git-fetch)
6268 (uri (git-reference
6269 (url "https://github.com/auto-complete/popup-el")
6270 (commit (string-append "v" version))))
6271 (file-name (git-file-name name version))
6272 (sha256
6273 (base32 "0qrsz4z9q2bfq9xv4n94mvyslm232v2ql9r1fjycx7rnmpqggiwl"))))
6274 (build-system emacs-build-system)
6275 (home-page "https://github.com/auto-complete/popup-el")
6276 (synopsis "Visual Popup User Interface for Emacs")
6277 (description
6278 "Popup.el is a visual popup user interface library for Emacs.
6279 This provides a basic API and common UI widgets such as popup tooltips
6280 and popup menus.")
6281 (license license:gpl3+)))
6282
6283 (define-public emacs-python-black
6284 (package
6285 (name "emacs-python-black")
6286 (version "1.0.0")
6287 (source
6288 (origin
6289 (method git-fetch)
6290 (uri (git-reference
6291 (url "https://github.com/wbolster/emacs-python-black")
6292 (commit version)))
6293 (file-name (git-file-name name version))
6294 (sha256
6295 (base32
6296 "0fjnd85nlkck156dj6cahk8chhgkbgl2kwywqzi8bl4yj700m4dk"))))
6297 (build-system emacs-build-system)
6298 (propagated-inputs
6299 `(("emacs-dash" ,emacs-dash)
6300 ("emacs-reformatter" ,emacs-reformatter)
6301 ("python-black-macchiato" ,python-black-macchiato)))
6302 (arguments `(#:tests? #f))
6303 (home-page "https://github.com/wbolster/emacs-python-black")
6304 (synopsis "Reformat Python code via @code{python-black}")
6305 (description
6306 "This package makes it easy to reformat Python code using
6307 @code{python-black} and @code{python-black-macchiato} for entire and partial
6308 buffers, respectively.")
6309 (license license:bsd-3)))
6310
6311 (define-public emacs-py-isort
6312 (package
6313 (name "emacs-py-isort")
6314 (version "2016.1")
6315 (source
6316 (origin
6317 (method git-fetch)
6318 (uri (git-reference
6319 (url "https://github.com/paetzke/py-isort.el")
6320 (commit (string-append "v" version))))
6321 (file-name (git-file-name name version))
6322 (sha256
6323 (base32 "08i55gv392wc12x8v3dca0dmz8a8p9ljsqhyajsb6qv1k120wqhx"))))
6324 (build-system emacs-build-system)
6325 (arguments
6326 `(#:tests? #f)) ;tests fail with "emacs: standard input is not a tty"
6327 (propagated-inputs
6328 `(("python-isort" ,python-isort)))
6329 (home-page "https://github.com/paetzke/py-isort.el")
6330 (synopsis "Sort the imports in Python buffers")
6331 (description
6332 "This package provides commands and a minor mode to sort Python imports
6333 using @code{python-isort}.")
6334 (license license:gpl3+)))
6335
6336 (define-public emacs-python-environment
6337 (package
6338 (name "emacs-python-environment")
6339 (version "0.0.2")
6340 (source
6341 (origin
6342 (method git-fetch)
6343 (uri (git-reference
6344 (url "https://github.com/tkf/emacs-python-environment/")
6345 (commit version)))
6346 (file-name (git-file-name name version))
6347 (sha256
6348 (base32 "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk"))))
6349 (build-system emacs-build-system)
6350 (propagated-inputs
6351 `(("emacs-deferred" ,emacs-deferred)))
6352 (home-page "https://github.com/tkf/emacs-python-environment")
6353 (synopsis "Provides a @code{virtualenv} API in Emacs Lisp")
6354 (description
6355 "This package permits automated installation of tools written in Python.")
6356 (license license:gpl3+)))
6357
6358 (define-public emacs-jedi
6359 (package
6360 (name "emacs-jedi")
6361 (version "0.2.8")
6362 (source (origin
6363 (method git-fetch)
6364 (uri (git-reference
6365 (url "https://github.com/tkf/emacs-jedi/")
6366 (commit (string-append "v" version))))
6367 (file-name (git-file-name name version))
6368 (sha256
6369 (base32
6370 "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"))))
6371 (build-system emacs-build-system)
6372 (native-inputs
6373 `(("emacs-mocker" ,emacs-mocker)))
6374 (propagated-inputs
6375 `(("emacs-auto-complete" ,emacs-auto-complete)
6376 ("emacs-python-environment" ,emacs-python-environment)
6377 ("emacs-epc" ,emacs-epc)))
6378 (home-page "https://github.com/tkf/emacs-jedi")
6379 (synopsis "Provides Python completion in Emacs")
6380 (description
6381 "This package provides completion in Python buffers and also helps find
6382 the locations of docstrings, arguments, and functions.")
6383 (license license:gpl3+)))
6384
6385 (define-public emacs-company-jedi
6386 (package
6387 (name "emacs-company-jedi")
6388 (version "0.04")
6389 (source (origin
6390 (method git-fetch)
6391 (uri (git-reference
6392 (url "https://github.com/syohex/emacs-company-jedi")
6393 (commit version)))
6394 (file-name (git-file-name name version))
6395 (sha256
6396 (base32
6397 "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1"))))
6398 (build-system emacs-build-system)
6399 (propagated-inputs
6400 `(("emacs-jedi" ,emacs-jedi)
6401 ("emacs-company" ,emacs-company)))
6402 (home-page "https://github.com/syohex/emacs-company-jedi")
6403 (synopsis "Provides Python completion in @code{company-mode}")
6404 (description
6405 "This package provides a Company backend for Python.")
6406 (license license:gpl3+)))
6407
6408 (define-public emacs-puppet-mode
6409 (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
6410 (revision "1"))
6411 (package
6412 (name "emacs-puppet-mode")
6413 ;; The last release, 0.3 was several years ago, and there have been many
6414 ;; commits since
6415 (version (git-version "0.3" revision commit))
6416 (source
6417 (origin
6418 (method url-fetch)
6419 (uri (string-append
6420 "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
6421 commit "/puppet-mode.el"))
6422 (sha256
6423 (base32
6424 "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
6425 (build-system emacs-build-system)
6426 (home-page "https://github.com/voxpupuli/puppet-mode")
6427 (synopsis "Emacs major mode for the Puppet configuration language")
6428 (description
6429 "This package provides support for the Puppet configuration language,
6430 including syntax highlighting, indentation of expressions and statements,
6431 linting of manifests and integration with Puppet Debugger.")
6432 ;; Also incorporates work covered by the Apache License, Version 2.0
6433 (license license:gpl3+))))
6434
6435 (define-public emacs-god-mode
6436 (package
6437 (name "emacs-god-mode")
6438 (version "2.17.0")
6439 (source
6440 (origin
6441 (method git-fetch)
6442 (uri (git-reference
6443 (url "https://github.com/chrisdone/god-mode")
6444 (commit version)))
6445 (file-name (git-file-name name version))
6446 (sha256
6447 (base32
6448 "1d2nrj35fzhnycchi0b7m5mbk5fyq7bgpbkkvc5xzqafclrsnapi"))))
6449 (build-system emacs-build-system)
6450 (home-page "https://github.com/chrisdone/god-mode")
6451 (synopsis "Minor mode for entering commands without modifier keys")
6452 (description
6453 "This package provides a global minor mode for entering Emacs commands
6454 without modifier keys. It's similar to Vim's separation of commands and
6455 insertion mode. When enabled all keys are implicitly prefixed with
6456 @samp{C-} (among other helpful shortcuts).")
6457 (license license:gpl3+)))
6458
6459 (define-public emacs-jinja2-mode
6460 (package
6461 (name "emacs-jinja2-mode")
6462 (version "0.2")
6463 (source
6464 (origin
6465 (method git-fetch)
6466 (uri (git-reference
6467 (url "https://github.com/paradoxxxzero/jinja2-mode")
6468 (commit (string-append "v" version))))
6469 (file-name (git-file-name name version))
6470 (sha256
6471 (base32 "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381"))))
6472 (build-system emacs-build-system)
6473 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
6474 (synopsis "Major mode for jinja2")
6475 (description
6476 "Emacs major mode for jinja2 with: syntax highlighting,
6477 sgml/html integration, and indentation (working with sgml).")
6478 (license license:gpl3+)))
6479
6480 (define-public emacs-company-cabal
6481 ;; The latest version is 0.3.0, but no release has been provided after 0.2.1.
6482 (let ((commit "62112a7259e24bd6c08885629a185afe512b7d3d")
6483 (revision "1"))
6484 (package
6485 (name "emacs-company-cabal")
6486 (version (git-version "0.3.0" revision commit))
6487 (source (origin
6488 (method git-fetch)
6489 (uri (git-reference
6490 (url "https://github.com/iquiw/company-cabal/")
6491 (commit commit)))
6492 (file-name (git-file-name name version))
6493 (sha256
6494 (base32
6495 "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg"))))
6496 (build-system emacs-build-system)
6497 (propagated-inputs
6498 `(("emacs-company" ,emacs-company)))
6499 (arguments
6500 `(#:include (cons "^tools\\/" %default-include)))
6501 (home-page "https://github.com/iquiw/company-cabal/")
6502 (synopsis "Company completion for Haskell Cabal files")
6503 (description
6504 "This package allows for completion of field names, section names,
6505 field values, and more within @code{haskell-cabal-mode}.")
6506 (license license:gpl3+))))
6507
6508 (define-public emacs-rfcview
6509 (package
6510 (name "emacs-rfcview")
6511 (version "0.13")
6512 (home-page "http://www.loveshack.ukfsn.org/emacs")
6513 (source (origin
6514 (method url-fetch)
6515 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
6516 (sha256
6517 (base32
6518 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
6519 (build-system emacs-build-system)
6520 (synopsis "Prettify Request for Comments (RFC) documents")
6521 (description "The Internet Engineering Task Force (IETF) and the Internet
6522 Society (ISOC) publish various Internet-related protocols and specifications
6523 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
6524 documents. RFCs and STDs are published in a simple text form. This package
6525 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
6526 read these documents in Emacs. It prettifies the text and adds
6527 hyperlinks/menus for easier navigation. It also provides functions for
6528 browsing the index of RFC documents and fetching them from remote servers or
6529 local directories.")
6530 (license license:gpl3+)))
6531
6532 (define-public emacs-ffap-rfc-space
6533 (package
6534 (name "emacs-ffap-rfc-space")
6535 (version "12")
6536 (home-page "https://user42.tuxfamily.org/ffap-rfc-space/index.html")
6537 (source (origin
6538 (method url-fetch)
6539 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
6540 (sha256
6541 (base32
6542 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
6543 (build-system emacs-build-system)
6544 (synopsis "Make ffap recognize an RFC with a space before its number")
6545 (description "The Internet Engineering Task Force (IETF) and the
6546 Internet Society (ISOC) publish various Internet-related protocols and
6547 specifications as \"Request for Comments\" (RFC) documents. The
6548 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
6549 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
6550 and load the appropriate RFC from a remote server. However, it fails
6551 to recognize a name like \"RFC 1234\". This package enhances ffap so
6552 that it correctly finds RFCs even when a space appears before the
6553 number.")
6554 (license license:gpl3+)))
6555
6556 (define-public emacs-feature-mode
6557 (let ((version "20190801")
6558 (revision "1")
6559 (commit "11ae1671629bfedaa553c7b819676d64eb320992"))
6560 (package
6561 (name "emacs-feature-mode")
6562 (version (git-version version revision commit))
6563 (source (origin
6564 (method git-fetch)
6565 (uri (git-reference
6566 (url "https://github.com/michaelklishin/cucumber.el")
6567 (commit commit)))
6568 (file-name (git-file-name name version))
6569 (sha256
6570 (base32
6571 "0yd4gkxz9xcbgibfgr8apsid3f83nmg5jgqk5nql0linj5gymc28"))))
6572 (build-system emacs-build-system)
6573 (arguments
6574 `(#:include (cons* "^features\\/" "snippets\\/" "^support\\/"
6575 %default-include)))
6576 (home-page "https://github.com/michaelklishin/cucumber.el/")
6577 (synopsis "Emacs mode for editing Gherkin plain text user stories")
6578 (description "Major mode for editing Gherkin (popularized by the
6579 Cucumber tool) user stories. Also known by the name @code{cucumber.el}.")
6580 (license license:gpl2+))))
6581
6582 (define-public emacs-org-bullets
6583 (package
6584 (name "emacs-org-bullets")
6585 (version "0.2.4")
6586 (source
6587 (origin
6588 (method git-fetch)
6589 (uri (git-reference
6590 (url "https://github.com/sabof/org-bullets")
6591 (commit version)))
6592 (file-name (git-file-name name version))
6593 (sha256
6594 (base32 "10nr4sjffnqbllv6gmak6pviyynrb7pi5nvrq331h5alm3xcpq0w"))))
6595 (build-system emacs-build-system)
6596 (home-page "https://github.com/sabof/org-bullets")
6597 (synopsis "Show bullets in org-mode as UTF-8 characters")
6598 (description
6599 "This package provides an Emacs minor mode causing bullets in
6600 @code{org-mode} to be rendered as UTF-8 characters.")
6601 (license license:gpl3+)))
6602
6603 (define-public emacs-org-appear
6604 (let ((commit "19ea96e6e2ce01b8583b25a6e5579f1be207a119")
6605 (revision "1"))
6606 (package
6607 (name "emacs-org-appear")
6608 (version (git-version "0.0.1" revision commit)) ;no upstream release
6609 (source (origin
6610 (method git-fetch)
6611 (uri (git-reference
6612 (url "https://github.com/awth13/org-appear")
6613 (commit commit)))
6614 (file-name (git-file-name name version))
6615 (sha256
6616 (base32
6617 "064kdb3z4zr9sa7qi5921cqh8vj226ifl8x1bkc59qd9a1p34ghd"))))
6618 (build-system emacs-build-system)
6619 (home-page "https://github.com/awth13/org-appear")
6620 (synopsis "Make invisible parts of Org fragments appear visible")
6621 (description "This package enables automatic visibility toggling of
6622 org-mode elements depending on cursor position. Hidden fragment parts appear
6623 when the cursor enters a fragment and disappear when it leaves.")
6624 (license license:expat))))
6625
6626 (define-public emacs-org-drill
6627 (package
6628 (name "emacs-org-drill")
6629 (version "2.7.0")
6630 (source
6631 (origin
6632 (method git-fetch)
6633 (uri (git-reference
6634 (url "https://gitlab.com/phillord/org-drill")
6635 (commit version)))
6636 (file-name (git-file-name name version))
6637 (sha256
6638 (base32 "13y302lyscdqrba1sfx60yf5ji2xi7fbsvjsjbw7hiz63kg6rccy"))))
6639 (build-system emacs-build-system)
6640 (propagated-inputs
6641 `(("emacs-org" ,emacs-org)
6642 ("emacs-persist" ,emacs-persist)))
6643 (home-page "https://gitlab.com/phillord/org-drill")
6644 (synopsis "Flash card memorization system using Org mode")
6645 (description
6646 "This package uses spaced repetition algorithms to conduct interactive
6647 drill sessions to aid in memorization. In these sessions you are shown flash
6648 cards created in Org mode.")
6649 (license license:gpl3+)))
6650
6651 (define-public emacs-anki-editor
6652 ;; Last release was in 2018.
6653 (let ((commit "546774a453ef4617b1bcb0d1626e415c67cc88df")
6654 (revision "0")
6655 (version "0.3.3"))
6656 (package
6657 (name "emacs-anki-editor")
6658 (version (git-version version revision commit))
6659 (source
6660 (origin
6661 (method git-fetch)
6662 (uri (git-reference
6663 (url "https://github.com/louietan/anki-editor")
6664 (commit commit)))
6665 (file-name (git-file-name name version))
6666 (sha256
6667 (base32 "1if610hq5j8rbjh1caw5bwbgnsn231awwxqbpwvrh966kdxzl4qf"))))
6668 (build-system emacs-build-system)
6669 (propagated-inputs
6670 `(("emacs-dash" ,emacs-dash)
6671 ("emacs-request" ,emacs-request)))
6672 (home-page "https://github.com/louietan/anki-editor")
6673 (synopsis "Minor mode for making Anki cards with Org mode")
6674 (description
6675 "This package is for people who use Anki as a spaced repetition system
6676 (SRS) but would like to make cards in Org mode.")
6677 (license license:gpl3+))))
6678
6679 (define-public emacs-org-mime
6680 (package
6681 (name "emacs-org-mime")
6682 (version "0.2.1")
6683 (source
6684 (origin
6685 (method git-fetch)
6686 (uri (git-reference
6687 (url "https://github.com/org-mime/org-mime")
6688 (commit version)))
6689 (file-name (git-file-name name version))
6690 (sha256
6691 (base32 "0vchyd80ybvr6317dwm50nxcgxfrpc0bz6259vnrh24p5sb8shbj"))))
6692 (build-system emacs-build-system)
6693 (home-page "https://github.com/org-mime/org-mime")
6694 (synopsis "Send HTML email using Org mode HTML export")
6695 (description
6696 "This program sends HTML email using Org-mode HTML export.
6697 This approximates a WYSiWYG HTML mail editor from within Emacs, and can be
6698 useful for sending tables, fontified source code, and inline images in
6699 email.")
6700 (license license:gpl3+)))
6701
6702 (define-public emacs-org-msg
6703 ;; No git tags. The commit below corresponds to the release of version 3.3.
6704 (let ((commit "89e746c0a864031eef940758230bc7263a6f2289"))
6705 (package
6706 (name "emacs-org-msg")
6707 (version "3.3")
6708 (source
6709 (origin
6710 (method git-fetch)
6711 (uri (git-reference
6712 (url "https://github.com/jeremy-compostella/org-msg")
6713 (commit commit)))
6714 (file-name (git-file-name name version))
6715 (sha256
6716 (base32 "15gd5zbxvdallyra9lmpb9i1r2mmwz0j0i0ra7j9imnbfiz3ln9r"))))
6717 (build-system emacs-build-system)
6718 (propagated-inputs
6719 `(("emacs-htmlize" ,emacs-htmlize)))
6720 (home-page "https://github.com/jeremy-compostella/org-msg")
6721 (synopsis "Mix Org mode and Message mode to compose emails")
6722 (description
6723 "OrgMsg is a GNU Emacs global minor mode mixing up Org mode and your
6724 Mail User Agent Mode (Message, mu4e, or Notmuch) to compose and reply to
6725 emails in a Outlook HTML friendly style.")
6726 (license license:gpl3+))))
6727
6728 (define-public emacs-org-superstar
6729 (package
6730 (name "emacs-org-superstar")
6731 (version "1.5.0")
6732 (source
6733 (origin
6734 (method git-fetch)
6735 (uri (git-reference
6736 (url "https://github.com/integral-dw/org-superstar-mode")
6737 (commit (string-append "v" version))))
6738 (file-name (git-file-name name version))
6739 (sha256
6740 (base32 "12inin2p6pm6vbv3yc06fx343dsp0vp07fjb35w088akhikmqh2a"))))
6741 (build-system emacs-build-system)
6742 (propagated-inputs
6743 `(("emacs-org" ,emacs-org)))
6744 (home-page "https://github.com/integral-dw/org-superstar-mode")
6745 (synopsis "Prettify headings and plain lists in Org mode")
6746 (description "This package prettifies headings and plain lists in
6747 Org mode. It is a direct descendant of @code{org-bullets}, with most
6748 of the code base completely rewritten.
6749
6750 Currently, this package prettifies Org heading lines by:
6751 @itemize
6752 @item replacing trailing bullets by UTF-8 bullets,
6753 @item hiding leading stars, customizing their look or removing them from vision,
6754 @item applying a custom face to the header bullet,
6755 @item applying a custom face to the leading bullets,
6756 @item using double-bullets for inline tasks,
6757 @item (optional) using special bullets for TODO keywords.
6758 @end itemize
6759
6760 It also prettifies Org plain list bullets by:
6761 @itemize
6762 @item replacing each bullet type (*, + and -) with UTF-8 bullets,
6763 @item applying a custom face to item bullets.
6764 @end itemize
6765
6766 Features degrade gracefully when viewed from terminal.")
6767 (license license:gpl3+)))
6768
6769 (define-public emacs-org-pomodoro
6770 ;; Last release version was from 2016.
6771 (let ((commit "aa07c11318f91219336197e62c47bc7a3d090479")
6772 (revision "1"))
6773 (package
6774 (name "emacs-org-pomodoro")
6775 (version (git-version "2.1.0" revision commit))
6776 (source
6777 (origin
6778 (method git-fetch)
6779 (uri (git-reference
6780 (url "https://github.com/marcinkoziej/org-pomodoro")
6781 (commit commit)))
6782 (file-name (git-file-name name version))
6783 (sha256
6784 (base32 "0nbprh2nhnmb7ngp9ndr6zr37ashcsvpi5slv7a37x1dl7j6w1k4"))))
6785 (build-system emacs-build-system)
6786 (propagated-inputs
6787 `(("emacs-alert" ,emacs-alert)))
6788 (arguments
6789 `(#:include (cons "^resources\\/" %default-include)
6790 #:tests? #t
6791 #:test-command '("emacs" "--batch"
6792 "-l" "org-pomodoro-tests.el"
6793 "-f" "ert-run-tests-batch-and-exit")
6794 #:phases
6795 (modify-phases %standard-phases
6796 (add-before 'check 'make-tests-writable
6797 (lambda _
6798 (make-file-writable "org-pomodoro-tests.el")
6799 #t))
6800 (add-before 'check 'add-require
6801 (lambda _
6802 (emacs-batch-edit-file "org-pomodoro-tests.el"
6803 `(progn (progn (goto-char (point-min))
6804 (re-search-forward
6805 "ert-deftest")
6806 (beginning-of-line)
6807 (forward-line -1)
6808 (insert "(require 'org-pomodoro)"))
6809 (basic-save-buffer)))
6810 #t)))))
6811 (home-page "https://github.com/marcinkoziej/org-pomodoro")
6812 (synopsis "Pomodoro technique for org-mode")
6813 (description "@code{emacs-org-pomodoro} adds very basic support for
6814 Pomodoro technique in Emacs org-mode.
6815
6816 Run @code{M-x org-pomodoro} for the task at point or select one of the
6817 last tasks that you clocked time for. Each clocked-in pomodoro starts
6818 a timer of 25 minutes and after each pomodoro a break timer of 5
6819 minutes is started automatically. Every 4 breaks a long break is
6820 started with 20 minutes. All values are customizable.")
6821 (license license:gpl3+))))
6822
6823 (define-public emacs-org-sidebar
6824 (package
6825 (name "emacs-org-sidebar")
6826 (version "0.3.2")
6827 (source
6828 (origin
6829 (method git-fetch)
6830 (uri (git-reference
6831 (url "https://github.com/alphapapa/org-sidebar")
6832 (commit version)))
6833 (file-name (git-file-name name version))
6834 (sha256
6835 (base32 "1r8kp954ciin4j7j7j8ihdkryf5x09s3ryl7bi9h2j6xqc1ij4wq"))))
6836 (build-system emacs-build-system)
6837 (propagated-inputs
6838 `(("emacs-dash" ,emacs-dash)
6839 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
6840 ("emacs-org" ,emacs-org)
6841 ("emacs-org-ql" ,emacs-org-ql)
6842 ("emacs-s" ,emacs-s)))
6843 (home-page "https://github.com/alphapapa/org-sidebar")
6844 (synopsis "Helpful sidebar for Org buffers")
6845 (description "This package provides a sidebar for Org buffers. At the
6846 top is a chronological list of scheduled and deadlined tasks in the current
6847 buffer (similar to the Org agenda ,but without all its features), and below
6848 that is a list of all other non-done to-do items. If the buffer is narrowed,
6849 the sidebar only shows items in the narrowed portion; this allows seeing an
6850 overview of tasks in a subtree.")
6851 (license license:gpl3+)))
6852
6853 (define-public emacs-org-trello
6854 (package
6855 (name "emacs-org-trello")
6856 (version "0.8.1")
6857 (source
6858 (origin
6859 (method git-fetch)
6860 (uri (git-reference
6861 (url "https://github.com/org-trello/org-trello")
6862 (commit version)))
6863 (file-name (git-file-name name version))
6864 (sha256
6865 (base32
6866 "02gx3kv4mkij69ln8x8wf9n28x17pbb4kv85v78d3lxph7ykqimc"))))
6867 (build-system emacs-build-system)
6868 (propagated-inputs
6869 `(("emacs-dash" ,emacs-dash)
6870 ("emacs-deferred" ,emacs-deferred)
6871 ("emacs-f" ,emacs-f)
6872 ("emacs-helm" ,emacs-helm)
6873 ("emacs-request" ,emacs-request)
6874 ("emacs-s" ,emacs-s)))
6875 (home-page "https://org-trello.github.io")
6876 (synopsis "Emacs minor mode for interacting with Trello")
6877 (description "This package provides an Emacs minor mode to extend
6878 @code{org-mode} with Trello abilities. Trello is an online project
6879 organizer.")
6880 (license license:gpl3+)))
6881
6882 (define-public emacs-org-tanglesync
6883 (let ((commit "d99181f173b4e55b4e835d99fcd415e62beb047f")
6884 (revision "2"))
6885 (package
6886 (name "emacs-org-tanglesync")
6887 (version (git-version "0.6" revision commit))
6888 (source
6889 (origin
6890 (method git-fetch)
6891 (uri (git-reference
6892 (url "https://github.com/mtekman/org-tanglesync.el")
6893 (commit commit)))
6894 (file-name (git-file-name name version))
6895 (sha256
6896 (base32 "0x94gy1bgfd1f3p9w2bfrqj11bwy9ql0cpi1gw6srpj7kykx0lml"))))
6897 (build-system emacs-build-system)
6898 (propagated-inputs
6899 `(("emacs-org" ,emacs-org)))
6900 (home-page "https://github.com/mtekman/org-tanglesync.el")
6901 (synopsis "Sync Org source blocks with tangled external files")
6902 (description "This package automatically pulls changes from source code
6903 to their corresponding tangled blocks.")
6904 (license license:gpl3+))))
6905
6906 (define-public emacs-company-flow
6907 (let ((commit "76ef585c70d2a3206c2eadf24ba61e59124c3a16")
6908 (revision "1"))
6909 (package
6910 (name "emacs-company-flow")
6911 (version (git-version "0.1.0" revision commit))
6912 (source (origin
6913 (method git-fetch)
6914 (uri (git-reference
6915 (url "https://github.com/aaronjensen/company-flow/")
6916 (commit commit)))
6917 (file-name (git-file-name name version))
6918 (sha256
6919 (base32
6920 "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw"))))
6921 (build-system emacs-build-system)
6922 (propagated-inputs
6923 `(("emacs-company" ,emacs-company)
6924 ("emacs-dash" ,emacs-dash)))
6925 (home-page "https://github.com/aaronjensen/company-flow/")
6926 (synopsis "Flow backend for @code{company-mode}")
6927 (description
6928 "This package provides completion for JavaScript files utilizing Flow.")
6929 (license license:gpl3+))))
6930
6931 (define-public emacs-habitica
6932 (let ((commit "c45c602ddf9d6cbb0e3baf5cb3e1b7ef90f2759d")
6933 (revision "1"))
6934 (package
6935 (name "emacs-habitica")
6936 (version (git-version "1.0" revision commit))
6937 (source
6938 (origin
6939 (method git-fetch)
6940 (uri (git-reference
6941 (url "https://github.com/abrochard/emacs-habitica")
6942 (commit commit)))
6943 (file-name (git-file-name name version))
6944 (sha256
6945 (base32
6946 "0wgnzn3z98bl28jgqi7xklw9fwx2wwgihj3mq0jb8ah4vn70d0j3"))))
6947 (build-system emacs-build-system)
6948 (home-page "https://github.com/abrochard/emacs-habitica")
6949 (synopsis "Emacs interface for Habitica")
6950 (description "Emacs extension for @uref{https://habitica.com/, Habitica},
6951 a RPG style habit tracker and todo list.")
6952 (license license:gpl3+))))
6953
6954 (define-public emacs-atom-one-dark-theme
6955 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
6956 (revision "0"))
6957 (package
6958 (name "emacs-atom-one-dark-theme")
6959 (version (git-version "0.4.0" revision commit))
6960 (source (origin
6961 (method git-fetch)
6962 (uri (git-reference
6963 (url "https://github.com/jonathanchu/atom-one-dark-theme")
6964 (commit commit)))
6965 (sha256
6966 (base32
6967 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
6968 (file-name (git-file-name name version))))
6969 (build-system emacs-build-system)
6970 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
6971 (synopsis "Atom One Dark color theme for Emacs")
6972 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
6973 (license license:gpl3+))))
6974
6975 (define-public emacs-zenburn-theme
6976 (package
6977 (name "emacs-zenburn-theme")
6978 (version "2.7.0")
6979 (source
6980 (origin
6981 (method git-fetch)
6982 (uri (git-reference
6983 (url "https://github.com/bbatsov/zenburn-emacs")
6984 (commit (string-append "v" version))))
6985 (file-name (git-file-name name version))
6986 (sha256
6987 (base32 "1991s1gz2i3jchf0yvcsjjb5flwn13ifbnnfkqqrxxvy2imfh18q"))))
6988 (build-system emacs-build-system)
6989 (home-page "https://github.com/bbatsov/zenburn-emacs")
6990 (synopsis "Low contrast color theme for Emacs")
6991 (description
6992 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
6993 It is built on top of the custom theme support in Emacs 24 or later.")
6994 (license license:gpl3+)))
6995
6996 (define-public emacs-moe-theme-el
6997 (let ((commit "6e086d855d6bb446bbd1090742815589a81a915f")
6998 (version "1.0")
6999 (revision "1"))
7000 (package
7001 (name "emacs-moe-theme-el")
7002 (version (git-version version revision commit))
7003 (source
7004 (origin
7005 (method git-fetch)
7006 (uri (git-reference
7007 (url "https://github.com/kuanyui/moe-theme.el")
7008 (commit commit)))
7009 (file-name (git-file-name name version))
7010 (sha256
7011 (base32 "0xj4wfd7h4jqnr193pizm9frf6lmwjr0dsdv2l9mqh9k691z1dnc"))))
7012 (build-system emacs-build-system)
7013 (home-page "https://github.com/kuanyui/moe-theme.el")
7014 (synopsis "Anime-inspired color themes")
7015 (description
7016 "This package provides vibrant color schemes with light and dark
7017 variants.")
7018 (license license:gpl3+))))
7019
7020 (define-public emacs-solarized-theme
7021 (package
7022 (name "emacs-solarized-theme")
7023 (version "1.3.1")
7024 (source
7025 (origin
7026 (method git-fetch)
7027 (uri (git-reference
7028 (url "https://github.com/bbatsov/solarized-emacs/")
7029 (commit (string-append "v" version))))
7030 (file-name (git-file-name name version))
7031 (sha256
7032 (base32 "15ql8xcixgm7mbs7rsbybwszanqibq057j5b5ds89a31dw7zxf1g"))))
7033 (build-system emacs-build-system)
7034 (propagated-inputs
7035 `(("emacs-dash" ,emacs-dash)))
7036 (home-page "https://github.com/bbatsov/solarized-emacs")
7037 (synopsis "Port of the Solarized theme for Emacs")
7038 (description
7039 "Solarized for Emacs is a port of the Solarized theme for Vim. This
7040 package provides a light and a dark variant.")
7041 (license license:gpl3+)))
7042
7043 (define-public emacs-poet-theme
7044 (let ((commit "d84f7b259cc9b6ff8d442cf4c38bd6c7065ff8f4")
7045 (revision "0"))
7046 (package
7047 (name "emacs-poet-theme")
7048 (version (git-version "0" revision commit))
7049 (source
7050 (origin
7051 (method git-fetch)
7052 (uri (git-reference
7053 (url "https://github.com/kunalb/poet")
7054 (commit commit)))
7055 (file-name (git-file-name name version))
7056 (sha256
7057 (base32
7058 "0a84jdaj619mb59a46dmkk2sfs42rylqk9ryl1drgs8d3lia79mz"))))
7059 (build-system emacs-build-system)
7060 (home-page "https://github.com/kunalb/poet/")
7061 (synopsis "Emacs theme for prose")
7062 (description
7063 "Emacs has very good support for multiple fonts in a single file. Poet
7064 uses this support to make it much more convenient to write prose within Emacs,
7065 with particular attention paid to @code{org-mode} and @code{markdown-mode}.
7066 Code blocks, tables, etc are formatted in monospace text with the appropriate
7067 backgrounds.")
7068 (license license:expat))))
7069
7070 (define-public emacs-ahungry-theme
7071 (package
7072 (name "emacs-ahungry-theme")
7073 (version "1.10.0")
7074 (source
7075 (origin (method url-fetch)
7076 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
7077 version ".tar"))
7078 (sha256
7079 (base32
7080 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
7081 (build-system emacs-build-system)
7082 (home-page "https://github.com/ahungry/color-theme-ahungry")
7083 (synopsis "Ahungry color theme for Emacs")
7084 (description "Ahungry theme for Emacs provides bright and bold colors.
7085 If you load it from a terminal, you will be able to make use of the
7086 transparent background. If you load it from a GUI, it will default to a
7087 dark background.")
7088 (license license:gpl3+)))
7089
7090 (define-public emacs-gruvbox-theme
7091 (package
7092 (name "emacs-gruvbox-theme")
7093 (version "1.28.0")
7094 (source (origin
7095 (method git-fetch)
7096 (uri (git-reference
7097 (url "https://github.com/greduan/emacs-theme-gruvbox")
7098 (commit version)))
7099 (file-name (git-file-name name version))
7100 (sha256
7101 (base32
7102 "00qq92gp1g55pzm97rh7k0dgxy44pxziridl8kqm4rbpi31r7k9p"))))
7103 (build-system emacs-build-system)
7104 (propagated-inputs
7105 `(("emacs-autothemer" ,emacs-autothemer)))
7106 (home-page "https://github.com/greduan/emacs-theme-gruvbox")
7107 (synopsis "Gruvbox is a retro groove color scheme ported from Vim")
7108 (description
7109 "Gruvbox is heavily inspired by badwolf, jellybeans and solarized.
7110
7111 Designed as a bright theme with pastel 'retro groove' colors and light/dark
7112 mode switching in the way of solarized. The main focus when developing gruvbox
7113 is to keep colors easily distinguishable, contrast enough and still pleasant
7114 for the eyes.")
7115 (license license:expat))) ; MIT license
7116
7117 (define-public emacs-spacegray-theme
7118 (let ((commit "9826265c2bceb2ebc1c5e16a45021da0253ace97")
7119 (revision "0"))
7120 (package
7121 (name "emacs-spacegray-theme")
7122 (version (git-version "0" revision commit))
7123 (source (origin
7124 (method git-fetch)
7125 (uri (git-reference
7126 (url "https://github.com/bruce/emacs-spacegray-theme")
7127 (commit commit)))
7128 (file-name (git-file-name name version))
7129 (sha256
7130 (base32
7131 "0aplwmm17ypbns5blc4rf5rr6dasj0zp5ibykpfl43fh4bd8z89n"))))
7132 (build-system emacs-build-system)
7133 (home-page "https://github.com/bruce/emacs-spacegray-theme")
7134 (synopsis "Port of Sublime Text's Spacegray theme for Emacs")
7135 (description
7136 "@code{spacegray-theme} is an Emacs port of the Spacegray theme from
7137 Sublime Text. It features a dark blue/gray background and soft blue, green,
7138 orange and red as accent colors.")
7139 (license license:expat)))) ; MIT license
7140
7141 (define-public emacs-2048-game
7142 (package
7143 (name "emacs-2048-game")
7144 (version "20151026.1233")
7145 (source
7146 (origin
7147 (method url-fetch)
7148 (uri (string-append "https://melpa.org/packages/2048-game-"
7149 version ".el"))
7150 (sha256
7151 (base32
7152 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
7153 (build-system emacs-build-system)
7154 (home-page "https://hg.sr.ht/~zck/game-2048")
7155 (synopsis "Implementation of the game 2048 in Emacs Lisp")
7156 (description
7157 "This program is an implementation of 2048 for Emacs.
7158 The goal of this game is to create a tile with value 2048. The size of the
7159 board and goal value can be customized.")
7160 (license license:gpl3+)))
7161
7162 (define-public emacs-chess
7163 (package
7164 (name "emacs-chess")
7165 (version "2.0.5")
7166 (source
7167 (origin
7168 (method url-fetch)
7169 (uri (string-append "https://elpa.gnu.org/packages/"
7170 "chess-" version ".tar"))
7171 (sha256
7172 (base32 "1a4iwjdh6k348df6qywjws9z9f862d62m0b2sz57z4xhywiyxpr7"))))
7173 (build-system emacs-build-system)
7174 (arguments
7175 `(#:phases
7176 (modify-phases %standard-phases
7177 (add-after 'install 'install-pieces
7178 (lambda* (#:key outputs #:allow-other-keys)
7179 (let* ((out (assoc-ref outputs "out"))
7180 (pieces
7181 (string-append out "/share/emacs/site-lisp/pieces")))
7182 (mkdir-p pieces)
7183 (copy-recursively "pieces" pieces)
7184 #t))))))
7185 (home-page "https://elpa.gnu.org/packages/chess.html")
7186 (synopsis "Play chess in GNU Emacs")
7187 (description
7188 "Chess is an Emacs Lisp library and several clients on top of the
7189 underlying library functionality for performing various activities related to
7190 the game of chess.")
7191 (license license:gpl3+)))
7192
7193 (define-public emacs-4clojure
7194 ;; There is no release. Base version is extracted from Version keyword in
7195 ;; the main file.
7196 (let ((commit "4eccf8c7d4341a36c269451838114b27836699f9")
7197 (revision "1"))
7198 (package
7199 (name "emacs-4clojure")
7200 (version (git-version "0.2.1" revision commit))
7201 (source
7202 (origin
7203 (method git-fetch)
7204 (uri (git-reference
7205 (url "https://github.com/emacsorphanage/4clojure")
7206 (commit commit)))
7207 (file-name (git-file-name name version))
7208 (sha256
7209 (base32 "19x653lzc1dxil4ix257hciidbdmbhaxhs6qhlkwi9ygjrlrgvnk"))))
7210 (build-system emacs-build-system)
7211 (propagated-inputs
7212 `(("emacs-request" ,emacs-request)))
7213 (home-page "https://github.com/emacsorphanage/4clojure/")
7214 (synopsis "Open and evaluate 4clojure questions in Emacs")
7215 (description "Emacs 4clojure interacts with
7216 @url{http://www.4clojure.com, 4clojure} problems. You can open a specific
7217 question and move to the next or previous one. You can also verify your
7218 answers.")
7219 (license license:gpl3+))))
7220
7221 (define-public emacs-base16-theme
7222 (package
7223 (name "emacs-base16-theme")
7224 (version "2.2")
7225 (source
7226 (origin
7227 (method git-fetch)
7228 (uri (git-reference
7229 (url "https://github.com/belak/base16-emacs")
7230 (commit version)))
7231 (file-name (git-file-name name version))
7232 (sha256
7233 (base32 "01w89g413s1da6rf94y1xnhw79cjy2bqb01yfjs58cy492cm0vr6"))))
7234 (build-system emacs-build-system)
7235 (home-page "https://github.com/belak/base16-emacs")
7236 (synopsis "Base16 color themes for Emacs")
7237 (description
7238 "Base16 provides carefully chosen syntax highlighting and a default set
7239 of sixteen colors suitable for a wide range of applications. Base16 is not a
7240 single theme but a set of guidelines with numerous implementations.")
7241 (license license:expat)))
7242
7243 (define-public emacs-solaire-mode
7244 (package
7245 (name "emacs-solaire-mode")
7246 (version "1.0.9")
7247 (source
7248 (origin
7249 (method git-fetch)
7250 (uri (git-reference
7251 (url "https://github.com/hlissner/emacs-solaire-mode")
7252 (commit (string-append "v" version))))
7253 (file-name (git-file-name name version))
7254 (sha256
7255 (base32 "011m4r7s6i9lgjymh7jgq5jwwrpz4vmpvp3c8d4ix96v5hi04kzg"))))
7256 (build-system emacs-build-system)
7257 (home-page "https://github.com/hlissner/emacs-solaire-mode")
7258 (synopsis "Change background of file-visiting buffers in Emacs")
7259 (description
7260 "@code{solaire-mode} is inspired by editors which visually distinguish
7261 code-editing windows from sidebars, popups, terminals, ecetera. It changes the
7262 background of file-visiting buffers (and certain aspects of the UI) to make
7263 them easier to distinguish from other, less important buffers.")
7264 (license license:expat)))
7265
7266 (define-public emacs-embark
7267 (package
7268 (name "emacs-embark")
7269 (version "0.10")
7270 (source
7271 (origin
7272 (method git-fetch)
7273 (uri (git-reference
7274 (url "https://github.com/oantolin/embark")
7275 (commit version)))
7276 (sha256
7277 (base32 "063hc0hganws11vjdk3ic0mxm9i0vpw6s7hzbgxvja0gjkdxjldz"))
7278 (file-name (git-file-name name version))))
7279 (build-system emacs-build-system)
7280 (propagated-inputs
7281 `(("emacs-avy" ,emacs-avy)
7282 ("emacs-consult" ,emacs-consult)))
7283 (home-page "https://github.com/oantolin/embark")
7284 (synopsis "Emacs mini-buffer actions rooted in keymaps")
7285 (description
7286 "This package provides a sort of right-click contextual menu for Emacs
7287 offering you relevant @emph{actions} to use on a @emph{target} determined by
7288 the context.
7289
7290 In the minibuffer, the target is the current best completion candidate. In
7291 the @code{*Completions*} buffer the target is the completion at point.
7292 n a regular buffer, the target is the region if active, or else the file,
7293 symbol or URL at point.
7294
7295 The type of actions offered depend on the type of the target. For files you
7296 get offered actions like deleting, copying, renaming, visiting in another
7297 window, running a shell command on the file, etc. For buffers the actions
7298 include switching to or killing the buffer. For package names the actions
7299 include installing, removing or visiting the homepage.")
7300 (license license:gpl3+)))
7301
7302 (define-public emacs-prescient
7303 (package
7304 (name "emacs-prescient")
7305 (version "5.1")
7306 (source
7307 (origin
7308 (method git-fetch)
7309 (uri (git-reference
7310 (url "https://github.com/raxod502/prescient.el")
7311 (commit (string-append "v" version))))
7312 (file-name (git-file-name name version))
7313 (sha256
7314 (base32 "0d6kbczkamhhcmc8bf01q6k1x0g7dwjihwllzsldgga3dclyh4ks"))))
7315 (build-system emacs-build-system)
7316 (propagated-inputs
7317 `(("emacs-company" ,emacs-company)
7318 ("emacs-ivy" ,emacs-ivy)
7319 ("emacs-selectrum" ,emacs-selectrum)))
7320 (home-page "https://github.com/raxod502/prescient.el/")
7321 (synopsis "Emacs library for sorting and filtering candidates")
7322 (description
7323 "Prescient is a library for sorting and filtering, as well as extensions
7324 for Ivy and Company that make use of the library.")
7325 (license license:expat)))
7326
7327 (define-public emacs-selectrum
7328 (package
7329 (name "emacs-selectrum")
7330 (version "3.1")
7331 (source
7332 (origin
7333 (method git-fetch)
7334 (uri (git-reference
7335 (url "https://github.com/raxod502/selectrum")
7336 (commit (string-append "v" version))))
7337 (file-name (git-file-name name version))
7338 (sha256
7339 (base32 "02jrki6vzyfyi1bbslki5pk2348flh9dz18jkc4y7p60bvbr52cb"))))
7340 (build-system emacs-build-system)
7341 (home-page "https://github.com/raxod502/selectrum/")
7342 (synopsis "Incremental narrowing in Emacs")
7343 (description "Selectrum is a solution for incremental narrowing in
7344 Emacs, replacing Helm, Ivy, and IDO. Its design philosophy is based
7345 on choosing the right abstractions and prioritizing consistency and
7346 predictability over special-cased improvements for particular cases.
7347 As such, Selectrum follows existing Emacs conventions where they exist
7348 and are reasonable, and it declines to implement features which have
7349 marginal benefit compared to the additional complexity of a new
7350 interface.")
7351 (license license:expat)))
7352
7353 (define-public emacs-orderless
7354 (package
7355 (name "emacs-orderless")
7356 (version "0.5")
7357 (source
7358 (origin
7359 (method git-fetch)
7360 (uri (git-reference
7361 (url "https://github.com/oantolin/orderless")
7362 (commit version)))
7363 (sha256
7364 (base32 "032lfwflkpaxbcxl4jf438vapswsdagipjczcn30sc4dfdh3p42c"))
7365 (file-name (git-file-name name version))))
7366 (build-system emacs-build-system)
7367 (home-page "https://github.com/oantolin/orderless")
7368 (synopsis "Emacs completion style that matches multiple regexps in any order")
7369 (description "This package provides an orderless completion style that
7370 divides the pattern into space-separated components, and matches candidates
7371 that match all of the components in any order. Each component can match in
7372 any one of several ways: literally, as a regexp, as an initialism, in the flex
7373 style, or as multiple word prefixes.")
7374 (license license:gpl3+)))
7375
7376 (define-public emacs-consult
7377 (package
7378 (name "emacs-consult")
7379 (version "0.6")
7380 (source
7381 (origin
7382 (method git-fetch)
7383 (uri (git-reference
7384 (url "https://github.com/minad/consult")
7385 (commit version)))
7386 (sha256
7387 (base32 "09n3q3dyi83s4fk4z7csnjicbxd69ws4zp4371c1lbxcvvq2fdnd"))
7388 (file-name (git-file-name name version))))
7389 (build-system emacs-build-system)
7390 (propagated-inputs
7391 `(("emacs-flycheck" ,emacs-flycheck)
7392 ("emacs-selectrum" ,emacs-selectrum)))
7393 (home-page "https://github.com/minad/consult")
7394 (synopsis "Consulting completing-read")
7395 (description "This package provides various handy commands based on the
7396 Emacs completion function completing-read, which allows to quickly select from a
7397 list of candidates.")
7398 (license license:gpl3+)))
7399
7400 (define-public emacs-marginalia
7401 (package
7402 (name "emacs-marginalia")
7403 (version "0.4")
7404 (source
7405 (origin
7406 (method git-fetch)
7407 (uri (git-reference
7408 (url "https://github.com/minad/marginalia")
7409 (commit version)))
7410 (file-name (git-file-name name version))
7411 (sha256
7412 (base32 "0piwzxp1zmwp876kyca0xcgyxgn8bn4wh5fnn88dkvdzi8mcgmkh"))))
7413 (build-system emacs-build-system)
7414 (home-page "https://github.com/minad/marginalia")
7415 (synopsis "Marginalia in the minibuffer completions")
7416 (description
7417 "This package provides Marginalia mode which adds marginalia to the
7418 minibuffer completions. Marginalia are marks or annotations placed at the
7419 margin of the page of a book or in this case helpful colorful annotations
7420 placed at the margin of the minibuffer for your completion candidates.")
7421 (license license:gpl3+)))
7422
7423 (define-public emacs-smartparens
7424 (package
7425 (name "emacs-smartparens")
7426 (version "1.11.0")
7427 (source
7428 (origin
7429 (method git-fetch)
7430 (uri (git-reference
7431 (url "https://github.com/Fuco1/smartparens")
7432 (commit version)))
7433 (file-name (git-file-name name version))
7434 (sha256
7435 (base32 "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6"))))
7436 (build-system emacs-build-system)
7437 (propagated-inputs
7438 `(("emacs-dash" ,emacs-dash)
7439 ("emacs-markdown-mode" ,emacs-markdown-mode)))
7440 (home-page "https://github.com/Fuco1/smartparens")
7441 (synopsis "Paredit-like insertion, wrapping and navigation with user
7442 defined pairs")
7443 (description
7444 "Smartparens is a minor mode for Emacs that deals with parens pairs
7445 and tries to be smart about it. It started as a unification effort to
7446 combine functionality of several existing packages in a single,
7447 compatible and extensible way to deal with parentheses, delimiters, tags
7448 and the like. Some of these packages include autopair, textmate,
7449 wrap-region, electric-pair-mode, paredit and others. With the basic
7450 features found in other packages it also brings many improvements as
7451 well as completely new features.")
7452 (license license:gpl3+)))
7453
7454 (define-public emacs-highlight-symbol
7455 ;; We prefer a more recent commit that provides an option to squelch
7456 ;; echo-area alerts that can drown out useful information like eldoc
7457 ;; messages.
7458 (let ((commit "7a789c779648c55b16e43278e51be5898c121b3a")
7459 (version "1.3")
7460 (revision "1"))
7461 (package
7462 (name "emacs-highlight-symbol")
7463 (version (git-version version revision commit))
7464 (source
7465 (origin
7466 (method git-fetch)
7467 (uri (git-reference
7468 (url "https://github.com/nschum/highlight-symbol.el")
7469 (commit commit)))
7470 (file-name (git-file-name name version))
7471 (sha256
7472 (base32 "19cgyk0sh8nsmf3jbi92i8qsdx4l4yilfq5jj9zfdbj9p5gvwx96"))))
7473 (build-system emacs-build-system)
7474 (home-page "https://nschum.de/src/emacs/highlight-symbol/")
7475 (synopsis "Automatic and manual symbol highlighting for Emacs")
7476 (description
7477 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
7478 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
7479 the symbol at point highlighted.
7480
7481 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
7482 @code{highlight-symbol-next-in-defun} and
7483 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
7484 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
7485 bindings @code{M-p} and @code{M-p} for navigation. When
7486 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
7487 regardless of @code{highlight-symbol-idle-delay}.
7488
7489 @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
7490 (license license:gpl2+))))
7491
7492 (define-public emacs-symbol-overlay
7493 (package
7494 (name "emacs-symbol-overlay")
7495 (version "4.2")
7496 (source
7497 (origin
7498 (method git-fetch)
7499 (uri (git-reference
7500 (url "https://github.com/wolray/symbol-overlay")
7501 (commit version)))
7502 (file-name (git-file-name name version))
7503 (sha256
7504 (base32 "10n0871xzycifyqp73xnbqmrgy60imlb26yhm3p6vfj3d84mg1b2"))))
7505 (build-system emacs-build-system)
7506 (home-page "https://github.com/wolray/symbol-overlay")
7507 (synopsis "Highlight symbols and perform various search operations on them")
7508 (description
7509 "This package provides functions for highlighting and navigating
7510 between symbols.")
7511 (license license:gpl3+)))
7512
7513 (define-public emacs-hl-todo
7514 (package
7515 (name "emacs-hl-todo")
7516 (version "3.1.2")
7517 (source (origin
7518 (method git-fetch)
7519 (uri (git-reference
7520 (url "https://github.com/tarsius/hl-todo")
7521 (commit (string-append "v" version))))
7522 (file-name (git-file-name name version))
7523 (sha256
7524 (base32
7525 "1i5mdmkbrxqx75grwl01pywbgl8pasr00mq6fidspp0aligsbg6w"))))
7526 (build-system emacs-build-system)
7527 (home-page "https://github.com/tarsius/hl-todo")
7528 (synopsis "Emacs mode to highlight TODO and similar keywords")
7529 (description
7530 "This package provides an Emacs mode to highlight TODO and similar
7531 keywords in comments and strings. This package also provides commands for
7532 moving to the next or previous keyword and to invoke @code{occur} with a
7533 regexp that matches all known keywords.")
7534 (license license:gpl3+)))
7535
7536 (define-public emacs-perspective
7537 (package
7538 (name "emacs-perspective")
7539 (version "2.14")
7540 (source
7541 (origin
7542 (method git-fetch)
7543 (uri (git-reference
7544 (url "https://github.com/nex3/perspective-el")
7545 (commit version)))
7546 (file-name (git-file-name name version))
7547 (sha256
7548 (base32 "04r5h5zs5r6s22p5ynhpr860r2r552z9pyf4kbabfg1gz9jag7yp"))))
7549 (build-system emacs-build-system)
7550 (arguments
7551 `(#:tests? #t
7552 #:test-command '("emacs" "-Q" "-batch" "-L" "."
7553 "-l" "test/test-perspective.el"
7554 "-f" "ert-run-tests-batch-and-exit")))
7555 (home-page "https://github.com/nex3/perspective-el")
7556 (synopsis "Switch between named \"perspectives\"")
7557 (description
7558 "This package provides tagged workspaces in Emacs, similar to workspaces in
7559 windows managers such as Awesome and XMonad. @code{perspective.el} provides
7560 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
7561 perspective is composed of a window configuration and a set of buffers.
7562 Switching to a perspective activates its window configuration, and when in a
7563 perspective only its buffers are available by default.")
7564 ;; This package is released under the same license as Emacs (GPLv3+) or
7565 ;; the Expat license.
7566 (license license:gpl3+)))
7567
7568 (define-public emacs-persp-mode
7569 (package
7570 (name "emacs-persp-mode")
7571 (version "2.9.8")
7572 (source
7573 (origin
7574 (method git-fetch)
7575 (uri (git-reference
7576 (url "https://github.com/Bad-ptr/persp-mode.el")
7577 (commit (string-append "v" version))))
7578 (file-name (git-file-name name version))
7579 (sha256
7580 (base32
7581 "0b4y7a6j70s9lvr37riyy9k5kh3yvmx0m6nd9c0c8572ji4ij65g"))))
7582 (build-system emacs-build-system)
7583 (home-page "https://github.com/Bad-ptr/persp-mode.el")
7584 (synopsis "Switch between named \"perspectives\" shared among frames")
7585 (description
7586 "This package extends @code{perspective.el} to enable perspectives that
7587 can be saved to and restored from a file.")
7588 (license license:gpl2+)))
7589
7590 (define-public emacs-test-simple
7591 (package
7592 (name "emacs-test-simple")
7593 (version "1.3.0")
7594 (source
7595 (origin
7596 (method url-fetch)
7597 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
7598 version ".el"))
7599 (sha256
7600 (base32
7601 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
7602 (build-system emacs-build-system)
7603 (home-page "https://github.com/rocky/emacs-test-simple")
7604 (synopsis "Simple unit test framework for Emacs Lisp")
7605 (description
7606 "Test Simple is a simple unit test framework for Emacs Lisp. It
7607 alleviates the need for context macros, enclosing specifications or required
7608 test tags. It supports both interactive and non-interactive use.")
7609 (license license:gpl3+)))
7610
7611 (define-public emacs-load-relative
7612 (package
7613 (name "emacs-load-relative")
7614 (version "1.3.1")
7615 (source
7616 (origin
7617 (method url-fetch)
7618 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
7619 version ".el"))
7620 (sha256
7621 (base32 "1m37scr82lqqy954fchjxrmdh4lngrl4d1yzxhp3yfjhsydizhrj"))))
7622 (build-system emacs-build-system)
7623 (home-page "https://github.com/rocky/emacs-load-relative")
7624 (synopsis "Emacs Lisp relative file loading related functions")
7625 (description
7626 "Provides functions which facilitate writing multi-file Emacs packages
7627 and running from the source tree without having to \"install\" code or fiddle
7628 with @{load-path}.
7629
7630 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
7631 another (presumably currently running) Emacs Lisp file.")
7632 (license license:gpl3+)))
7633
7634 (define-public emacs-loc-changes
7635 (package
7636 (name "emacs-loc-changes")
7637 (version "1.2")
7638 (source
7639 (origin
7640 (method url-fetch)
7641 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
7642 version ".el"))
7643 (sha256
7644 (base32
7645 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
7646 (build-system emacs-build-system)
7647 (home-page "https://github.com/rocky/emacs-loc-changes")
7648 (synopsis "Keeps track of positions even after buffer changes")
7649 (description
7650 "This Emacs package provides a mean to track important buffer positions
7651 after buffer changes.")
7652 (license license:gpl3+)))
7653
7654 (define-public emacs-realgud
7655 (package
7656 (name "emacs-realgud")
7657 (version "1.5.1")
7658 (source
7659 (origin
7660 (method git-fetch)
7661 (uri (git-reference
7662 (url "https://github.com/realgud/realgud/")
7663 (commit version)))
7664 (sha256
7665 (base32
7666 "1d3s23jk0i34wpyxfajydgyyvsxnpbqrfl0mgydsq7zw2c75ylnq"))
7667 (file-name (git-file-name name version))))
7668 (build-system emacs-build-system)
7669 (arguments
7670 `(#:tests? #t
7671 #:phases
7672 (modify-phases %standard-phases
7673 (add-after 'unpack 'fix-realgud:run-process-void-error
7674 ;; See: https://github.com/realgud/realgud/issues/269.
7675 (lambda _
7676 (substitute* '("realgud/debugger/gdb/gdb.el"
7677 "realgud/debugger/gub/gub.el")
7678 (("^\\(require 'load-relative\\).*" anchor)
7679 (string-append anchor
7680 "(require-relative-list \
7681 '(\"../../common/run\") \"realgud:\")\n")))
7682 #t))
7683 (add-after 'unpack 'fix-autogen-script
7684 (lambda _
7685 (substitute* "autogen.sh"
7686 (("./configure") "sh configure"))
7687 #t))
7688 (add-after 'fix-autogen-script 'autogen
7689 (lambda _
7690 (setenv "CONFIG_SHELL" "sh")
7691 (invoke "sh" "autogen.sh")))
7692 (add-after 'fix-autogen-script 'set-home
7693 (lambda _
7694 (setenv "HOME" (getenv "TMPDIR"))
7695 #t))
7696 (add-before 'patch-el-files 'remove-realgud-pkg.el
7697 (lambda _
7698 ;; FIXME: `patch-el-files' crashes on this file with error:
7699 ;; unable to locate "bashdb".
7700 (delete-file "./test/test-regexp-bashdb.el")
7701 #t)))
7702 #:include (cons* ".*\\.el$" %default-include)))
7703 (native-inputs
7704 `(("autoconf" ,autoconf)
7705 ("automake" ,automake)
7706 ("emacs-test-simple" ,emacs-test-simple)))
7707 (propagated-inputs
7708 `(("emacs-load-relative" ,emacs-load-relative)
7709 ("emacs-loc-changes" ,emacs-loc-changes)))
7710 (home-page "https://github.com/realgud/realgud/")
7711 (synopsis
7712 "Modular front-end for interacting with external debuggers")
7713 (description
7714 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
7715 with external debuggers. It integrates various debuggers such as gdb, pdb,
7716 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
7717 sources. Unlike GUD, it also supports running multiple debug sessions in
7718 parallel.")
7719 (license license:gpl3+)))
7720
7721 (define-public emacs-request
7722 ;; We prefer a more recent commit that has support for auth-source,
7723 ;; which makes authentication more convenient for users and maintainers.
7724 (let ((commit "d02d1347ffdf138cffd380cbeac62ac8732036ef")
7725 (revision "0"))
7726 (package
7727 (name "emacs-request")
7728 (version (git-version "0.3.2" revision commit))
7729 (source (origin
7730 (method git-fetch)
7731 (uri (git-reference
7732 (url "https://github.com/tkf/emacs-request")
7733 (commit commit)))
7734 (file-name (git-file-name name version))
7735 (sha256
7736 (base32
7737 "1rkpakzish2d470ca15yq3k0m1j7a2lrkvvddcyvc2rx0sncsdjs"))))
7738 (build-system emacs-build-system)
7739 (arguments
7740 `(#:tests? #f)) ; requires network access.
7741 (propagated-inputs
7742 `(("emacs-deferred" ,emacs-deferred)))
7743 (home-page "https://github.com/tkf/emacs-request")
7744 (synopsis "Package for speaking HTTP in Emacs Lisp")
7745 (description "This package provides a HTTP request library with multiple
7746 backends. It supports url.el which is shipped with Emacs and the curl command
7747 line program.")
7748 (license license:gpl3+))))
7749
7750 (define-public emacs-rudel
7751 (package
7752 (name "emacs-rudel")
7753 (version "0.3.2")
7754 (source
7755 (origin
7756 (method url-fetch)
7757 (uri (string-append "https://elpa.gnu.org/packages/rudel-"
7758 version ".tar"))
7759 (sha256
7760 (base32 "03hcvpp6ykavidwn5x48gs986w1i5icvh7ks6p74pdaagpgw4jmk"))))
7761 (build-system emacs-build-system)
7762 (home-page "http://rudel.sourceforge.net/")
7763 (synopsis "Collaborative editing framework")
7764 (description
7765 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
7766 is to share buffers with other users in order to edit the contents of those
7767 buffers collaboratively. Rudel supports multiple backends to enable
7768 communication with other collaborative editors using different protocols,
7769 though currently Obby (for use with the Gobby editor) is the only
7770 fully-functional one.")
7771 (license license:gpl3+)))
7772
7773 (define-public emacs-hydra
7774 (package
7775 (name "emacs-hydra")
7776 (version "0.15.0")
7777 (source
7778 (origin
7779 (method git-fetch)
7780 (uri (git-reference
7781 (url "https://github.com/abo-abo/hydra")
7782 (commit version)))
7783 (file-name (git-file-name name version))
7784 (sha256
7785 (base32
7786 "0fapvhmhgc9kppf3bvkgry0cd7gyilg7sfvlscfrfjxpx4xvwsfy"))))
7787 (build-system emacs-build-system)
7788 (arguments
7789 `(#:tests? #t
7790 #:test-command '("make" "test")))
7791 (home-page "https://github.com/abo-abo/hydra")
7792 (synopsis "Make Emacs bindings that stick around")
7793 (description
7794 "This package can be used to tie related commands into a family of short
7795 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
7796 the prefixed binding), all the heads can be called in succession with only a
7797 short extension. Any binding that isn't the Hydra's head vanquishes the
7798 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
7799 serve its original purpose, calling the command assigned to it. This makes
7800 the Hydra very seamless; it's like a minor mode that disables itself
7801 automatically.")
7802 (license license:gpl3+)))
7803
7804 (define-public emacs-pretty-hydra
7805 (package
7806 (name "emacs-pretty-hydra")
7807 (version "0.2.2")
7808 (source
7809 (origin
7810 (method git-fetch)
7811 (uri (git-reference
7812 (url "https://github.com/jerrypnz/major-mode-hydra.el")
7813 (commit version)))
7814 (file-name (git-file-name name version))
7815 (sha256
7816 (base32
7817 "08a15knkdq35pzjq82imff016fbfdib5q4glg2xmdy2b5fnk7jqa"))))
7818 (build-system emacs-build-system)
7819 (propagated-inputs
7820 `(("emacs-dash" ,emacs-dash)
7821 ("emacs-hydra" ,emacs-hydra)
7822 ("emacs-s" ,emacs-s)))
7823 (arguments
7824 `(#:exclude (cons "^major-mode-hydra\\.el" %default-exclude)))
7825 (home-page "https://github.com/jerrypnz/major-mode-hydra.el")
7826 (synopsis "Major mode keybindings managed by Hydra")
7827 (description
7828 "This package offers an hydra-based method of managing major
7829 mode-specific key bindings. It is intended for use as a library only; see
7830 package @code{emacs-major-mode-hydra} for a user-friendly interface.")
7831 (license license:gpl3+)))
7832
7833 (define-public emacs-interleave
7834 (package
7835 (name "emacs-interleave")
7836 (version "1.4.0")
7837 (source
7838 (origin
7839 (method git-fetch)
7840 (uri
7841 (git-reference
7842 (url "https://github.com/rudolfochrist/interleave")
7843 (commit (string-append "interleave-" version))))
7844 (file-name (git-file-name name version))
7845 (sha256
7846 (base32 "0l5b681mrpk12lx5c16m7kc13p29z6zismwg1llsjg7cdmrmsrcb"))))
7847 (build-system emacs-build-system)
7848 (home-page "https://github.com/rudolfochrist/interleave")
7849 (synopsis "Emacs minor mode to interleave notes and text books")
7850 (description
7851 "Interleave is a minor mode that presents a document viewer side
7852 by side to an Org buffer with your notes relevant to the current page.")
7853 (license license:gpl3+)))
7854
7855 (define-public emacs-major-mode-hydra
7856 (package
7857 (inherit emacs-pretty-hydra)
7858 (name "emacs-major-mode-hydra")
7859 (propagated-inputs
7860 `(("emacs-dash" ,emacs-dash)
7861 ("emacs-pretty-hydra" ,emacs-pretty-hydra)))
7862 (arguments
7863 `(#:exclude (cons "^pretty-hydra\\.el" %default-exclude)))
7864 (synopsis "Create nice-looking hydras")
7865 (description
7866 "This package provides the macro @code{pretty-hydra-define} to define
7867 hydras with one column per group of heads.")))
7868
7869 (define-public emacs-ivy
7870 (package
7871 (name "emacs-ivy")
7872 (version "0.13.4")
7873 (source
7874 (origin
7875 (method url-fetch)
7876 (uri (string-append "https://elpa.gnu.org/packages/ivy-" version ".tar"))
7877 (sha256
7878 (base32 "0qpza1c45mr8fcpnm32cck4v22fnzz1yb7kww05rzgq1k9iivx5v"))))
7879 (build-system emacs-build-system)
7880 (propagated-inputs
7881 `(("emacs-hydra" ,emacs-hydra)))
7882 (home-page "https://github.com/abo-abo/swiper")
7883 (synopsis "Incremental vertical completion for Emacs")
7884 (description
7885 "This package provides @code{ivy-read} as an alternative to
7886 @code{completing-read} and similar functions. No attempt is made to determine
7887 the best candidate. Instead, the user can navigate candidates with
7888 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
7889 splitting the input text by spaces and re-building it into a regular
7890 expression.")
7891 (license license:gpl3+)))
7892
7893 (define-public emacs-counsel
7894 (package
7895 (name "emacs-counsel")
7896 (version "0.13.4")
7897 (source
7898 (origin
7899 (method url-fetch)
7900 (uri (string-append "https://elpa.gnu.org/packages/"
7901 "counsel-" version ".tar"))
7902 (sha256
7903 (base32 "094zfapfn1l8wjf3djkipk0d9nks0g77sbk107pfsbr3skkzh031"))))
7904 (build-system emacs-build-system)
7905 (propagated-inputs
7906 `(("emacs-swiper" ,emacs-swiper)))
7907 (home-page "https://github.com/abo-abo/swiper")
7908 (synopsis "Various completion functions using Ivy")
7909 (description
7910 "Just call one of the interactive functions in a file to complete the
7911 corresponding thing using Ivy.
7912
7913 The following completions are currently available:
7914 @itemize
7915 @item Symbol completion for Elisp, Common Lisp, Python, Clojure, C, C++.
7916 @item Describe functions for Elisp: function, variable, library, command,
7917 @item bindings, theme.
7918 @item Navigation functions: imenu, ace-line, semantic, outline.
7919 @item Git utilities: git-files, git-grep, git-log, git-stash, git-checkout.
7920 @item Grep utilities: grep, ag, pt, recoll, ack, rg.
7921 @item System utilities: process list, rhythmbox, linux-app.
7922 @item Many more.
7923 @end itemize")
7924 (license license:gpl3+)))
7925
7926 (define-public emacs-swiper
7927 (package
7928 (name "emacs-swiper")
7929 (version "0.13.4")
7930 (source
7931 (origin
7932 (method url-fetch)
7933 (uri (string-append "https://elpa.gnu.org/packages/swiper-" version ".tar"))
7934 (sha256
7935 (base32 "197pq2cvvskib87aky907wv2am55vilr7y5dabmmm07a8vr9py0v"))))
7936 (build-system emacs-build-system)
7937 (propagated-inputs
7938 `(("emacs-ivy" ,emacs-ivy)))
7939 (home-page "https://github.com/abo-abo/swiper")
7940 (synopsis "Isearch with an overview")
7941 (description
7942 "This package gives an overview of the current regex search candidates.
7943 The search regex can be split into groups with a space. Each group is
7944 highlighted with a different face.
7945
7946 It can double as a quick `regex-builder', although only single lines will be
7947 matched.")
7948 (license license:gpl3+)))
7949
7950 (define-public emacs-ivy-xref
7951 (let ((commit "1a35fc0f070388701b05b0a455cbe262e924d547")
7952 (revision "1"))
7953 (package
7954 (name "emacs-ivy-xref")
7955 (version (git-version "0.1" revision commit))
7956 (source
7957 (origin
7958 (method git-fetch)
7959 (uri (git-reference
7960 (url "https://github.com/alexmurray/ivy-xref")
7961 (commit commit)))
7962 (file-name (git-file-name name version))
7963 (sha256
7964 (base32
7965 "0d71nm9d9ajp5i6dnl8h1hw9jqp8gd1ajgninb1h13i80rplzl9k"))))
7966 (build-system emacs-build-system)
7967 (propagated-inputs
7968 `(("emacs-ivy" ,emacs-ivy)))
7969 (home-page "https://github.com/alexmurray/ivy-xref")
7970 (synopsis "Ivy interface for @code{xref}")
7971 (description "This package provides an Ivy interface for selecting from
7972 @code{xref} results.")
7973 (license license:gpl3))))
7974
7975 (define-public emacs-ivy-pass
7976 (let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5")
7977 (revision "1"))
7978 (package
7979 (name "emacs-ivy-pass")
7980 (version (git-version "0.1" revision commit))
7981 (source
7982 (origin
7983 (method git-fetch)
7984 (uri (git-reference
7985 (url "https://github.com/ecraven/ivy-pass")
7986 (commit commit)))
7987 (file-name (git-file-name name version))
7988 (sha256
7989 (base32
7990 "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk"))))
7991 (build-system emacs-build-system)
7992 (propagated-inputs
7993 `(("emacs-ivy" ,emacs-ivy)
7994 ("emacs-password-store" ,emacs-password-store)
7995 ("password-store" ,password-store)))
7996 (home-page "https://github.com/ecraven/ivy-pass")
7997 (synopsis "Ivy interface for password store (pass)")
7998 (description "This package provides an Ivy interface for working with
7999 the password store @code{pass}.")
8000 (license license:gpl3))))
8001
8002 (define-public emacs-ivy-yasnippet
8003 (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
8004 (revision "2"))
8005 (package
8006 (name "emacs-ivy-yasnippet")
8007 (version (git-version "0.1" revision commit))
8008 (source
8009 (origin
8010 (method git-fetch)
8011 (uri (git-reference
8012 (url "https://github.com/mkcms/ivy-yasnippet")
8013 (commit commit)))
8014 (file-name (git-file-name name version))
8015 (sha256
8016 (base32
8017 "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
8018 (build-system emacs-build-system)
8019 (propagated-inputs
8020 `(("emacs-ivy" ,emacs-ivy)
8021 ("emacs-yasnippet" ,emacs-yasnippet)
8022 ("emacs-dash" ,emacs-dash)))
8023 (home-page "https://github.com/mkcms/ivy-yasnippet")
8024 (synopsis "Preview @code{yasnippets} with @code{ivy}")
8025 (description "This package allows you to select @code{yasnippet}
8026 snippets using @code{ivy} completion. When current selection changes in the
8027 minibuffer, the snippet contents are temporarily expanded in the buffer. To
8028 use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
8029 @code{yas-minor-mode} first).")
8030 (license license:gpl3+))))
8031
8032 ;; The 0.1.6 release is incompatible with newer ivy versions, so we instead
8033 ;; pick a more recent snapshot of the repository, see
8034 ;; https://github.com/Yevgnen/ivy-rich/pull/80.
8035 (define-public emacs-ivy-rich
8036 (let ((commit "7b9b7b20c3ead81da90232cd6707dfad3c1f1eb3")
8037 (revision "1"))
8038 (package
8039 (name "emacs-ivy-rich")
8040 (version (git-version "0.1.6" revision commit))
8041 (source
8042 (origin
8043 (method git-fetch)
8044 (uri (git-reference
8045 (url "https://github.com/Yevgnen/ivy-rich")
8046 (commit commit)))
8047 (file-name (git-file-name name version))
8048 (sha256
8049 (base32 "03p13z609ighdq4axls93alqfl7pclx12g4vdd7lwpcy0r0cgyf8"))))
8050 (build-system emacs-build-system)
8051 (propagated-inputs
8052 `(("emacs-ivy" ,emacs-ivy)))
8053 (home-page "https://github.com/Yevgnen/ivy-rich")
8054 (synopsis "More friendly interface for @code{ivy}")
8055 (description
8056 "This package extends Ivy by showing more information in the minibuffer
8057 for each candidate. It adds columns showing buffer modes, file sizes,
8058 docstrings, etc. If @code{emacs-all-the-icons} is installed, it can show
8059 icons as well.")
8060 (license license:gpl3+))))
8061
8062 (define-public emacs-avy
8063 (package
8064 (name "emacs-avy")
8065 (version "0.5.0")
8066 (source
8067 (origin
8068 (method git-fetch)
8069 (uri (git-reference
8070 (url "https://github.com/abo-abo/avy")
8071 (commit version)))
8072 (file-name (git-file-name name version))
8073 (sha256
8074 (base32 "09qdni1s74i5pv8741szl5g4ynj8fxn0x65qmwa9rmfkbimnc0fs"))))
8075 (build-system emacs-build-system)
8076 (arguments
8077 `(#:tests? #t
8078 #:test-command '("make" "test")))
8079 (home-page "https://github.com/abo-abo/avy")
8080 (synopsis "Tree-based completion for Emacs")
8081 (description
8082 "This package provides a generic completion method based on building a
8083 balanced decision tree with each candidate being a leaf. To traverse the tree
8084 from the root to a desired leaf, typically a sequence of @code{read-key} can
8085 be used.
8086
8087 In order for @code{read-key} to make sense, the tree needs to be visualized
8088 appropriately, with a character at each branch node. So this completion
8089 method works only for things that you can see on your screen, all at once,
8090 such as the positions of characters, words, line beginnings, links, or
8091 windows.")
8092 (license license:gpl3+)))
8093
8094 (define-public emacs-ace-window
8095 (package
8096 (name "emacs-ace-window")
8097 (version "0.10.0")
8098 (source
8099 (origin
8100 (method git-fetch)
8101 (uri (git-reference
8102 (url "https://github.com/abo-abo/ace-window")
8103 (commit version)))
8104 (file-name (git-file-name name version))
8105 (sha256
8106 (base32
8107 "0f3r40d5yxp2pm2j0nn86s29nqj8py0jxjbj50v4ci3hsd92d8jl"))))
8108 (build-system emacs-build-system)
8109 (propagated-inputs
8110 `(("emacs-avy" ,emacs-avy)))
8111 (home-page "https://github.com/abo-abo/ace-window")
8112 (synopsis "Quickly switch windows in Emacs")
8113 (description
8114 "@code{ace-window} is meant to replace @code{other-window}.
8115 In fact, when there are only two windows present, @code{other-window} is
8116 called. If there are more, each window will have its first character
8117 highlighted. Pressing that character will switch to that window.")
8118 (license license:gpl3+)))
8119
8120 (define-public emacs-windsize
8121 ;; There is no proper release. The base version is extracted from the
8122 ;; "Version" keyword in the main file.
8123 (let ((revision "1")
8124 (commit "62c2846bbe95b0a73e996c75e4a644d05f57aaaa"))
8125 (package
8126 (name "emacs-windsize")
8127 (version (git-version "0.1" revision commit))
8128 (source
8129 (origin
8130 (method git-fetch)
8131 (uri (git-reference
8132 (url "https://github.com/grammati/windsize")
8133 (commit commit)))
8134 (file-name (git-file-name name version))
8135 (sha256
8136 (base32 "13kfrmv3vmkfanxv9nym5v43hx5p7xkgqmx65zcxh4gcbaham1mi"))))
8137 (build-system emacs-build-system)
8138 (home-page "https://github.com/grammati/windsize")
8139 (synopsis "Easy resizing of Emacs windows")
8140 (description
8141 "This package allows moving the borders of the active window
8142 with the arrow keys. It prefers to move the right or bottom border when
8143 possible, and falls back to moving the left or top border otherwise.")
8144 (license license:gpl3+))))
8145
8146 (define-public emacs-window-purpose
8147 (let ((commit "f6421966761ad911fe8861aba2b110c5dd60d1ea")
8148 (revision "1"))
8149 (package
8150 (name "emacs-window-purpose")
8151 (version (git-version "1.7" revision commit))
8152 (source
8153 (origin
8154 (method git-fetch)
8155 (uri (git-reference
8156 (url "https://github.com/bmag/emacs-purpose.git")
8157 (commit commit)))
8158 (file-name (git-file-name name version))
8159 (sha256
8160 (base32
8161 "1p0y5gnrw7q65py2wjdf1hrdpiw5c2zbgvfbfmb13257jq5mga38"))))
8162 (build-system emacs-build-system)
8163 (propagated-inputs
8164 `(("emacs-let-alist" ,emacs-let-alist)
8165 ("emacs-imenu-list" ,emacs-imenu-list)))
8166 (arguments
8167 '(#:include
8168 '("^[^/]+.el$"
8169 "^[^/]+.el.in$"
8170 "^dir$"
8171 "^[^/]+.info$"
8172 "^[^/]+.texi$"
8173 "^[^/]+.texinfo$"
8174 "^doc/dir$"
8175 "^doc/[^/]+.info$"
8176 "^doc/[^/]+.texi$"
8177 "^doc/[^/]+.texinfo$"
8178 "^layouts$")
8179 #:exclude
8180 '("^.dir-locals.el$"
8181 "^test.el$"
8182 "^tests.el$"
8183 "^[^/]+-test.el$"
8184 "^[^/]+-tests.el$")))
8185 (home-page "https://github.com/bmag/emacs-purpose")
8186 (synopsis "Purpose-based window management for Emacs")
8187 (description "Purpose is a package that introduces the concept of a
8188 \"purpose\" for windows and buffers, and then helps you maintain a robust
8189 window layout easily.")
8190 (license license:gpl3+))))
8191
8192 (define-public emacs-iedit
8193 ;; Last release version was in 2016.
8194 (let ((commit "e2c100cdd67b7d82835d281ac2cd1bf4f374bc8f")
8195 (revision "1"))
8196 (package
8197 (name "emacs-iedit")
8198 (version (git-version "0.9.9.9" revision commit))
8199 (source
8200 (origin
8201 (method git-fetch)
8202 (uri (git-reference
8203 (url "https://github.com/victorhge/iedit")
8204 (commit commit)))
8205 (file-name (git-file-name name version))
8206 (sha256
8207 (base32 "0wr3w2id95wx2rma8n1ifjrv9rx37ly26ijc5zi58id0yrip3hnc"))))
8208 (build-system emacs-build-system)
8209 (home-page "https://www.emacswiki.org/emacs/Iedit")
8210 (synopsis "Edit multiple regions in the same way simultaneously")
8211 (description
8212 "This package is an Emacs minor mode and allows you to edit one
8213 occurrence of some text in a buffer (possibly narrowed) or region, and
8214 simultaneously have other occurrences edited in the same way.
8215
8216 You can also use Iedit mode as a quick way to temporarily show only the buffer
8217 lines that match the current text being edited. This gives you the effect of
8218 a temporary @code{keep-lines} or @code{occur}.")
8219 (license license:gpl3+))))
8220
8221 (define-public emacs-zoutline
8222 (package
8223 (name "emacs-zoutline")
8224 (version "0.2.0")
8225 (source
8226 (origin
8227 (method git-fetch)
8228 (uri (git-reference
8229 (url "https://github.com/abo-abo/zoutline")
8230 (commit version)))
8231 (sha256
8232 (base32
8233 "1w0zh6vs7klgivq5r030a82mcfg1zwic4x3fimyiqyg5n8p67hyx"))
8234 (file-name (git-file-name name version))))
8235 (build-system emacs-build-system)
8236 (home-page "https://github.com/abo-abo/zoutline")
8237 (synopsis "Simple outline library")
8238 (description
8239 "This library provides helpers for outlines. Outlines allow users to
8240 navigate code in a tree-like fashion.")
8241 (license license:gpl3+)))
8242
8243 (define-public emacs-lispy
8244 ;; No release since May 2019 and tons of fixes have landed on master.
8245 ;; https://github.com/abo-abo/lispy/issues/513
8246 (let ((commit "38a7df4cbb16cfe3d62dc8ea98b50e2d9a572e58"))
8247 (package
8248 (name "emacs-lispy")
8249 (version (git-version "0.27.0" "2" commit))
8250 (home-page "https://github.com/abo-abo/lispy")
8251 (source (origin
8252 (method git-fetch)
8253 (uri (git-reference
8254 (url "https://github.com/abo-abo/lispy")
8255 (commit commit)))
8256 (sha256
8257 (base32
8258 "1q3sgk8ffwajmh8l7c4p4fz36xw4fqds8yqblbi5kardaa8bs8cs"))
8259 (file-name (git-file-name name version))))
8260 (build-system emacs-build-system)
8261 (propagated-inputs
8262 `(("emacs-ace-window" ,emacs-ace-window)
8263 ("emacs-hydra" ,emacs-hydra)
8264 ("emacs-iedit" ,emacs-iedit)
8265 ("emacs-swiper" ,emacs-swiper)
8266 ("emacs-zoutline" ,emacs-zoutline)))
8267 (native-inputs
8268 `(("which" ,which)
8269 ("emacs-clojure-mode" ,emacs-clojure-mode)
8270 ("emacs-undercover" ,emacs-undercover)))
8271 (arguments
8272 `(#:include (cons* "^lispy-clojure\\.clj$"
8273 "^lispy-python\\.py$"
8274 %default-include)
8275 #:phases
8276 ;; XXX: Some failing tests
8277 (modify-phases %standard-phases
8278 (add-before 'check 'make-test-writable
8279 (lambda _
8280 (make-file-writable "lispy-test.el")
8281 #t))
8282 (add-before 'check 'remove-failing-test
8283 (lambda _
8284 (emacs-batch-edit-file "lispy-test.el"
8285 `(progn
8286 (dolist (test '("lispy-eval-python-str" "lispy--clojure-dot-object"))
8287 (goto-char (point-min))
8288 (re-search-forward
8289 (concat "ert-deftest " test))
8290 (beginning-of-line)
8291 (kill-sexp))
8292 (basic-save-buffer)))
8293 #t)))
8294 #:tests? #t
8295 ;; Set BEMACS to prevent the test suite from loading straight.el.
8296 #:test-command '("make" "test" "BEMACS=emacs -batch")))
8297 (synopsis "Modal S-expression editing")
8298 (description
8299 "Due to the structure of Lisp syntax it's very rare for the programmer
8300 to want to insert characters right before \"(\" or right after \")\". Thus
8301 unprefixed printable characters can be used to call commands when the point is
8302 at one of these special locations. Lispy provides unprefixed keybindings for
8303 S-expression editing when point is at the beginning or end of an
8304 S-expression.")
8305 (license license:gpl3+))))
8306
8307 (define-public emacs-lispyville
8308 (let ((commit "89316f01822b2135e52ca27fd308d207ef618052")
8309 (revision "3"))
8310 (package
8311 (name "emacs-lispyville")
8312 (version (git-version "0.1" revision commit))
8313 (home-page "https://github.com/noctuid/lispyville")
8314 (source (origin
8315 (method git-fetch)
8316 (uri (git-reference (url home-page) (commit commit)))
8317 (sha256
8318 (base32
8319 "10k3hxxpx2v2k4dyad7j1bzmr1q7rzvv4y6c67pa9zcqyaw8m91v"))
8320 (file-name (git-file-name name version))))
8321 (propagated-inputs
8322 `(("emacs-evil" ,emacs-evil)
8323 ("emacs-lispy" ,emacs-lispy)))
8324 (build-system emacs-build-system)
8325 (synopsis "Minor mode for integrating Evil with lispy")
8326 (description
8327 "LispyVille's main purpose is to provide a Lisp editing environment
8328 suited towards Evil users. It can serve as a minimal layer on top of lispy
8329 for better integration with Evil, but it does not require the use of lispy’s
8330 keybinding style. The provided commands allow for editing Lisp in normal
8331 state and will work even without lispy being enabled.")
8332 (license license:gpl3+))))
8333
8334 (define-public emacs-lpy
8335 (let ((commit "43b401fe15f0f0d01edb189378b9498121e9f766")
8336 (revision "3"))
8337 (package
8338 (name "emacs-lpy")
8339 (version (git-version "0.1.0" revision commit))
8340 (source
8341 (origin
8342 (method git-fetch)
8343 (uri (git-reference
8344 (url "https://github.com/abo-abo/lpy")
8345 (commit commit)))
8346 (sha256
8347 (base32
8348 "0xj1r7cn1rivaxhvawvmgx9fg3xilpfw4lkf2x2aqplr4s85ijas"))
8349 (file-name (git-file-name name version))))
8350 (propagated-inputs
8351 `(("emacs-zoutline" ,emacs-zoutline)
8352 ("emacs-lispy" ,emacs-lispy)))
8353 (build-system emacs-build-system)
8354 (home-page "https://github.com/abo-abo/lpy")
8355 (synopsis "Modal editing for Python")
8356 (description
8357 "This package provides a minor mode for Python that binds useful
8358 commands to unprefixed keys, such as @code{j} or @code{e}, under certain
8359 circumstances, and leaves the keys untouched outside of those situations,
8360 allowing unprefixed keys to insert their respective characters as expected.")
8361 (license license:gpl3+))))
8362
8363 (define-public emacs-clojure-mode
8364 (package
8365 (name "emacs-clojure-mode")
8366 (version "5.12.0")
8367 (source
8368 (origin
8369 (method git-fetch)
8370 (uri (git-reference
8371 (url "https://github.com/clojure-emacs/clojure-mode")
8372 (commit version)))
8373 (file-name (git-file-name name version))
8374 (sha256
8375 (base32 "14ipfy9ji39pnb9x7bzjp8lyqyxk168fx017m823j7a2g9i0sgp3"))))
8376 (build-system emacs-build-system)
8377 (native-inputs
8378 `(("emacs-buttercup" ,emacs-buttercup)
8379 ("emacs-dash" ,emacs-dash)
8380 ("emacs-paredit" ,emacs-paredit)
8381 ("emacs-s" ,emacs-s)))
8382 (arguments
8383 `(#:tests? #t
8384 #:test-command '("buttercup")
8385 #:phases
8386 (modify-phases %standard-phases
8387 (add-before 'check 'fix-tests
8388 ;; See: https://github.com/clojure-emacs/clojure-mode/issues/568
8389 (lambda _
8390 (substitute* "clojure-mode.el"
8391 (("\\(list \\(cdr project\\)\\)" line)
8392 (string-append "\"Return the list of directory roots of the PROJECT.\"\n"
8393 line)))
8394 #t)))))
8395 (home-page "https://github.com/clojure-emacs/clojure-mode")
8396 (synopsis "Major mode for Clojure code")
8397 (description
8398 "This Emacs package provides font-lock, indentation, navigation and basic
8399 refactoring for the @uref{http://clojure.org, Clojure programming language}.
8400 It is recommended to use @code{clojure-mode} with Paredit or Smartparens.")
8401 (license license:gpl3+)))
8402
8403 (define-public emacs-epl
8404 (package
8405 (name "emacs-epl")
8406 (version "0.9")
8407 (source
8408 (origin
8409 (method git-fetch)
8410 (uri (git-reference
8411 (url "https://github.com/cask/epl")
8412 (commit version)))
8413 (file-name (git-file-name name version))
8414 (sha256
8415 (base32 "0d3z5z90ln8ipk1yds1n1p8fj9yyh2kpspqjs7agl38indra3nb4"))))
8416 (build-system emacs-build-system)
8417 (home-page "https://github.com/cask/epl")
8418 (synopsis "Emacs Package Library")
8419 (description
8420 "A package management library for Emacs, based on @code{package.el}.
8421
8422 The purpose of this library is to wrap all the quirks and hassle of
8423 @code{package.el} into a sane API.")
8424 (license license:gpl3+)))
8425
8426 (define-public emacs-counsel-jq
8427 (let ((release "1.0.0")
8428 (revision "0")
8429 (commit "aaf33fc2447096cd0d03b77395fe2a95c9fe1481"))
8430 (package
8431 (name "emacs-counsel-jq")
8432 (version (git-version release revision commit))
8433 (home-page "https://github.com/200ok-ch/counsel-jq")
8434 (source
8435 (origin
8436 (method git-fetch)
8437 (uri (git-reference
8438 (url home-page)
8439 (commit commit)))
8440 (file-name (git-file-name name version))
8441 (sha256
8442 (base32 "10rz0qm8a4bl0m86kx19zq8lri047p4sxqyny08bgm9pbam0wvwn"))))
8443 (build-system emacs-build-system)
8444 (propagated-inputs
8445 `(("emacs-swiper" ,emacs-swiper)
8446 ("jq" ,jq)))
8447 (synopsis "Live preview @code{jq} queries using counsel")
8448 (description
8449 "This Emacs package provides the ability to live preview @code{jq}
8450 queries using counsel.")
8451 (license license:gpl3+))))
8452
8453 (define-public emacs-counsel-notmuch
8454 ;; Upstream provides no release. Extract version for main file.
8455 (let ((commit "a4a1562935e4180c42524c51609d1283e9be0688")
8456 (revision "0"))
8457 (package
8458 (name "emacs-counsel-notmuch")
8459 (version (git-version "1.0" revision commit))
8460 (source
8461 (origin
8462 (method git-fetch)
8463 (uri (git-reference
8464 (url "https://github.com/fuxialexander/counsel-notmuch")
8465 (commit commit)))
8466 (file-name (git-file-name name version))
8467 (sha256
8468 (base32 "01k1321d961kc2i660a5595bqk0d85f16snsxngsn5si6y83kqr7"))))
8469 (build-system emacs-build-system)
8470 (arguments
8471 `(#:phases
8472 (modify-phases %standard-phases
8473 (add-after 'unpack 'locate-notmuch
8474 (lambda* (#:key inputs #:allow-other-keys)
8475 (make-file-writable "counsel-notmuch.el")
8476 (emacs-substitute-variables "counsel-notmuch.el"
8477 ("counsel-notmuch-path"
8478 (string-append (assoc-ref inputs "notmuch")
8479 "/bin/notmuch")))
8480 #t)))))
8481 (inputs
8482 `(("emacs-counsel" ,emacs-counsel)
8483 ("notmuch" ,notmuch)
8484 ("emacs-s" ,emacs-s)))
8485 (home-page "https://github.com/fuxialexander/counsel-notmuch")
8486 (synopsis "Search emails in Notmuch asynchronously with Ivy")
8487 (description
8488 "This package can be used to search emails in Notmuch
8489 asynchronously, with Counsel and Ivy. Simply call
8490 @code{counsel-notmuch} and input your Notmuch query.")
8491 (license license:gpl3+))))
8492
8493 (define-public emacs-counsel-projectile
8494 (package
8495 (name "emacs-counsel-projectile")
8496 (version "0.3.1")
8497 (source (origin
8498 (method git-fetch)
8499 (uri (git-reference
8500 (url "https://github.com/ericdanan/counsel-projectile")
8501 (commit version)))
8502 (file-name (git-file-name name version))
8503 (sha256
8504 (base32
8505 "1k4n5lw6wwbgpwv0dg9dw0bjzi0hvbgkzrs1zmq36yhfz6y8gwnh"))))
8506 (build-system emacs-build-system)
8507 (propagated-inputs
8508 `(("emacs-counsel" ,emacs-counsel)
8509 ("emacs-projectile" ,emacs-projectile)))
8510 (home-page "https://github.com/ericdanan/counsel-projectile")
8511 (synopsis "Enhance Projectile with Ivy")
8512 (description
8513 "This package uses Ivy to provide additional actions for Projectile
8514 commands and replacements for existing functions.")
8515 (license license:gpl3+)))
8516
8517 (define-public emacs-qml-mode
8518 (package
8519 (name "emacs-qml-mode")
8520 (version "0.4")
8521 (source (origin
8522 (method git-fetch)
8523 (uri (git-reference
8524 (url "https://github.com/coldnew/qml-mode")
8525 (commit version)))
8526 (file-name (git-file-name name version))
8527 (sha256
8528 (base32
8529 "1sncsvzjfgmhp4m8w5jd4y51k24n2jfpgvrkd64wlhhzbj3wb947"))))
8530 (build-system emacs-build-system)
8531 (home-page "https://github.com/coldnew/qml-mode/")
8532 (synopsis "Qt Modeling Language (QML) mode for Emacs")
8533 (description "This package provides the @code{qml-mode} major Emacs mode
8534 for editing source files written in the Qt Modeling Language (QML) user
8535 interface markup language. It provides syntax highlighting and basic
8536 navigation commands. @code{qml-mode} is derived from code{js-mode}, the Emacs
8537 builtin JavaScript mode.")
8538 (license license:gpl2+)))
8539
8540 (define-public emacs-queue
8541 (package
8542 (name "emacs-queue")
8543 (version "0.2")
8544 (source (origin
8545 (method url-fetch)
8546 (uri (string-append "https://elpa.gnu.org/packages/queue-"
8547 version ".el"))
8548 (sha256
8549 (base32
8550 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
8551 (build-system emacs-build-system)
8552 (home-page "https://www.dr-qubit.org/emacs_data-structures.html")
8553 (synopsis "Queue data structure for Emacs")
8554 (description
8555 "This Emacs library provides queue data structure. These queues can be
8556 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
8557 stack, i.e. elements can be added to the front or back of the queue, and can
8558 be removed from the front. This type of data structure is sometimes called an
8559 \"output-restricted deque\".")
8560 (license license:gpl3+)))
8561
8562 (define-public emacs-quickrun
8563 (package
8564 (name "emacs-quickrun")
8565 (version "2.3.1")
8566 (source
8567 (origin
8568 (method git-fetch)
8569 (uri (git-reference
8570 (url "https://github.com/emacsorphanage/quickrun")
8571 (commit version)))
8572 (sha256
8573 (base32 "0a1n2v09h0n7d9p2izflqqang4ny0b46dlqvmxvkkik4bb6f4wcz"))
8574 (file-name (git-file-name name version))))
8575 (build-system emacs-build-system)
8576 (home-page "https://github.com/emacsorphanage/quickrun")
8577 (synopsis "Execute editing buffer and show its output quickly")
8578 (description
8579 "This package evaluates the content of a buffer, or region, and displays
8580 the result. Quickrun executes not only script languages (Perl, Ruby, Python
8581 etc), but also compiling languages (C, C++, Go, Java etc) and markup
8582 languages.")
8583 (license license:gpl3+)))
8584
8585 (define-public emacs-pkg-info
8586 (package
8587 (name "emacs-pkg-info")
8588 (version "0.6")
8589 (source
8590 (origin
8591 (method git-fetch)
8592 (uri (git-reference
8593 (url "https://github.com/lunaryorn/pkg-info.el")
8594 (commit version)))
8595 (file-name (git-file-name name version))
8596 (sha256
8597 (base32 "0nk12dcppdyhav6m6yf7abpywyd7amxd4237zsfd32w4zxsx39k1"))))
8598 (build-system emacs-build-system)
8599 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
8600 (home-page "https://github.com/lunaryorn/pkg-info.el")
8601 (synopsis "Information about Emacs packages")
8602 (description
8603 "This library extracts information from the installed Emacs packages.")
8604 (license license:gpl3+)))
8605
8606 (define-public emacs-spinner
8607 (package
8608 (name "emacs-spinner")
8609 (version "1.7.3")
8610 (source (origin
8611 (method url-fetch)
8612 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
8613 version ".el"))
8614 (sha256
8615 (base32
8616 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
8617 (build-system emacs-build-system)
8618 (home-page "https://github.com/Malabarba/spinner.el")
8619 (synopsis "Emacs mode-line spinner for operations in progress")
8620 (description
8621 "This Emacs package adds spinners and progress-bars to the mode-line for
8622 ongoing operations.")
8623 (license license:gpl3+)))
8624
8625 (define-public emacs-sparql-mode
8626 (package
8627 (name "emacs-sparql-mode")
8628 (version "4.0.2")
8629 (source
8630 (origin
8631 (method git-fetch)
8632 (uri (git-reference
8633 (url "https://github.com/ljos/sparql-mode")
8634 (commit (string-append "v" version))))
8635 (file-name (git-file-name name version))
8636 (sha256
8637 (base32 "0hqp8r24wvzrkl630wbm0lynrcrnawv2yn2a3xgwqwwhwgva35rn"))))
8638 (build-system emacs-build-system)
8639 (propagated-inputs
8640 `(("emacs-company" ,emacs-company)))
8641 (home-page "https://github.com/ljos/sparql-mode")
8642 (synopsis "SPARQL mode for Emacs")
8643 (description
8644 "This package is a major mode for Emacs that provides syntax highlighting
8645 for SPARQL. It can also execute queries against a SPARQL HTTP endpoint, such
8646 as Fuseki or DBPedia.")
8647 (license license:gpl3+)))
8648
8649 (define-public emacs-better-defaults
8650 (package
8651 (name "emacs-better-defaults")
8652 (version "0.1.3")
8653 (source
8654 (origin
8655 (method git-fetch)
8656 (uri (git-reference
8657 (url "https://github.com/technomancy/better-defaults")
8658 (commit version)))
8659 (file-name (git-file-name name version))
8660 (sha256
8661 (base32
8662 "1rxznx2l0cdpiz8mad8s6q17m1fngpgb1cki7ch6yh18r3qz8ysr"))))
8663 (build-system emacs-build-system)
8664 (home-page "https://github.com/technomancy/better-defaults")
8665 (synopsis "Better defaults for Emacs")
8666 (description
8667 "Better defaults attempts to address the most obvious deficiencies of the
8668 Emacs default configuration in uncontroversial ways that nearly everyone can
8669 agree upon.")
8670 (license license:gpl3+)))
8671
8672 (define-public emacs-undohist-el
8673 (package
8674 (name "emacs-undohist-el")
8675 (version "0.2.1")
8676 (source
8677 (origin
8678 (method git-fetch)
8679 (uri (git-reference
8680 (url "https://github.com/m2ym/undohist-el")
8681 (commit version)))
8682 (file-name (git-file-name name version))
8683 (sha256
8684 (base32 "0hmx2b20nrxg2lb8vplgrzdh8chgxwlbmjvbq5scddggd302sd56"))))
8685 (build-system emacs-build-system)
8686 (home-page "https://github.com/m2ym/undohist-el")
8687 (synopsis "Save undo history between sessions")
8688 (description "This package allows persistent use of undo history for
8689 individual file buffers.")
8690 (license license:gpl3+)))
8691
8692 (define-public emacs-eprime
8693 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
8694 (package
8695 (name "emacs-eprime")
8696 (version (string-append "20140513-" (string-take commit 7)))
8697 (source (origin
8698 (method url-fetch)
8699 (uri (string-append "https://raw.githubusercontent.com"
8700 "/AndrewHynes/eprime-mode/"
8701 commit "/eprime-mode.el"))
8702 (file-name (string-append "eprime-" version ".el"))
8703 (sha256
8704 (base32
8705 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
8706 (build-system emacs-build-system)
8707 (home-page "https://github.com/AndrewHynes/eprime-mode")
8708 (synopsis "E-prime checking mode for Emacs")
8709 (description "This package provides an E-prime checking mode for Emacs
8710 that highlights non-conforming text. The subset of the English language called
8711 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
8712 (license license:gpl3+))))
8713
8714 (define-public emacs-julia-mode
8715 (package
8716 (name "emacs-julia-mode")
8717 (version "0.4")
8718 (source
8719 (origin
8720 (method git-fetch)
8721 (uri (git-reference
8722 (url "https://github.com/JuliaEditorSupport/julia-emacs")
8723 (commit version)))
8724 (file-name (git-file-name name version))
8725 (sha256
8726 (base32
8727 "1w131jb9mhvyjxa0p93iwfhzidgbcs6b8i6jg79yisqb9wchik99"))))
8728 (build-system emacs-build-system)
8729 (arguments
8730 `(#:tests? #t
8731 #:test-command '("emacs" "--batch"
8732 "-l" "julia-mode-tests.el"
8733 "-f" "ert-run-tests-batch-and-exit")))
8734 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
8735 (synopsis "Major mode for Julia")
8736 (description "This Emacs package provides a mode for the Julia
8737 programming language.")
8738 (license license:expat)))
8739
8740 (define-public emacs-julia-repl
8741 (package
8742 (name "emacs-julia-repl")
8743 (version "1.3.0")
8744 (source (origin
8745 (method git-fetch)
8746 (uri (git-reference
8747 (url "https://github.com/tpapp/julia-repl")
8748 (commit version)))
8749 (file-name (git-file-name name version))
8750 (sha256
8751 (base32
8752 "11vpqqnxqj9nxh8kccj4y6h3f8lib6jxnsk6vxc2j2fqw6alnafm"))))
8753 (build-system emacs-build-system)
8754 (home-page "https://github.com/tpapp/julia-repl")
8755 (synopsis "Minor mode for interacting with a Julia REPL")
8756 (description "This package provides a minor mode for interacting with a
8757 Julia REPL running inside Emacs. The julia process is started in an ANSI
8758 terminal (term), which allows text formatting and colors, and interaction with
8759 the help system and the debugger. It is recommended that you use this minor
8760 mode with the package emacs-julia-mode.")
8761 (license license:expat)))
8762
8763 (define-public emacs-julia-snail
8764 (package
8765 (name "emacs-julia-snail")
8766 (version "1.0.0rc4") ;rc5 requires CSTParser (julia package)
8767 (source (origin
8768 (method git-fetch)
8769 (uri (git-reference
8770 (url "https://github.com/gcv/julia-snail")
8771 (commit version)))
8772 (file-name (git-file-name name version))
8773 (sha256
8774 (base32
8775 "065ix3jycsx3wvkq7a6060i93caxisdvgxgqb1l6rq15n4qln78y"))))
8776 (build-system emacs-build-system)
8777 (arguments
8778 `(#:phases
8779 (modify-phases %standard-phases
8780 (add-after 'install 'JuliaSnail-jl
8781 (lambda* (#:key outputs #:allow-other-keys)
8782 (let ((out (assoc-ref outputs "out")))
8783 (install-file "JuliaSnail.jl"
8784 (string-append out "/share/emacs/site-lisp/")))
8785 #t)))))
8786 (inputs
8787 `(("emacs-dash" ,emacs-dash)
8788 ("emacs-s" ,emacs-s)
8789 ("emacs-spinner" ,emacs-spinner)
8790 ("emacs-xref" ,emacs-xref)))
8791 (propagated-inputs
8792 `(("libvterm" ,libvterm)
8793 ("emacs-julia-mode" ,emacs-julia-mode) ;required by parser
8794 ("emacs-parsec" ,emacs-parsec) ;required by parser
8795 ("emacs-vterm" ,emacs-vterm)))
8796 (home-page "https://github.com/gcv/julia-snail")
8797 (synopsis "Development environment and REPL interaction package for Julia")
8798 (description "This package provides a development environment and REPL
8799 interaction package for Julia in the spirit of Common Lisp’s SLIME and
8800 Clojure’s CIDER. It enables convenient and dynamic REPL-driven development.")
8801 (license license:gpl3)))
8802
8803 (define-public emacs-smex
8804 (package
8805 (name "emacs-smex")
8806 (version "3.0")
8807 (source (origin
8808 (method url-fetch)
8809 (uri (string-append "https://raw.githubusercontent.com"
8810 "/nonsequitur/smex/" version "/smex.el"))
8811 (file-name (string-append "smex-" version ".el"))
8812 (sha256
8813 (base32
8814 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
8815 (build-system emacs-build-system)
8816 (home-page "https://github.com/nonsequitur/smex/")
8817 (synopsis "M-x interface with Ido-style fuzzy matching")
8818 (description
8819 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
8820 convenient interface to your recently and most frequently used commands. And
8821 to all the other commands, too.")
8822 (license license:gpl3+)))
8823
8824 (define-public emacs-js2-mode
8825 (package
8826 (name "emacs-js2-mode")
8827 (version "20201220")
8828 (source
8829 (origin
8830 (method git-fetch)
8831 (uri (git-reference
8832 (url "https://github.com/mooz/js2-mode")
8833 (commit version)))
8834 (file-name (git-file-name name version))
8835 (sha256
8836 (base32 "00jy917cgp5xzfgs4m0spzlbqk8mg63layin8nxmn2647rfjnik4"))))
8837 (build-system emacs-build-system)
8838 (arguments
8839 `(#:tests? #t
8840 #:test-command '("make" "test")))
8841 (home-page "https://github.com/mooz/js2-mode/")
8842 (synopsis "Improved JavaScript editing mode for Emacs")
8843 (description
8844 "Js2-mode provides a JavaScript major mode for Emacs that is more
8845 advanced than the built-in javascript-mode. Features include accurate syntax
8846 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
8847 errors and strict-mode warnings, smart line-wrapping within comments and
8848 strings, and code folding.")
8849 (license license:gpl3+)))
8850
8851 (define-public emacs-nodejs-repl
8852 (package
8853 (name "emacs-nodejs-repl")
8854 (version "0.2.4")
8855 (source (origin
8856 (method git-fetch)
8857 (uri (git-reference
8858 (url "https://github.com/abicky/nodejs-repl.el")
8859 (commit version)))
8860 (file-name (git-file-name name version))
8861 (sha256
8862 (base32
8863 "0a5mmg3cmdi73giblp07ksl06xzl9nb2m3f96ny4r3rv0ar3v1bx"))))
8864 (build-system emacs-build-system)
8865 (inputs
8866 `(("node" ,node)))
8867 (native-inputs
8868 `(("emacs-ert-expectations" ,emacs-ert-expectations)))
8869 (arguments
8870 `(#:phases
8871 (modify-phases %standard-phases
8872 (add-after 'unpack 'set-shell
8873 ;; Setting the SHELL environment variable is required for the tests
8874 ;; to find sh.
8875 (lambda _
8876 (setenv "SHELL" (which "sh"))
8877 #t))
8878 (add-after 'unpack 'configure
8879 (lambda* (#:key inputs outputs #:allow-other-keys)
8880 (let ((node (assoc-ref inputs "node")))
8881 ;; Specify the absolute file names of the various
8882 ;; programs so that everything works out-of-the-box.
8883 (make-file-writable "nodejs-repl.el")
8884 (emacs-substitute-variables
8885 "nodejs-repl.el"
8886 ("nodejs-repl-command"
8887 (string-append node "/bin/node")))))))
8888 #:tests? #t
8889 #:test-command '("emacs" "-Q" "--batch"
8890 "-L" "."
8891 "-l" "test/test.el"
8892 "-f" "ert-run-tests-batch-and-exit")))
8893 (home-page "https://github.com/abicky/nodejs-repl.el")
8894 (synopsis "Node.js REPL inside Emacs")
8895 (description
8896 "This program is derived from comint-mode and provides the following
8897 features:
8898
8899 @itemize
8900 @item TAB completion same as Node.js REPL
8901 @item file name completion in string
8902 @item incremental history search
8903 @end itemize")
8904 (license license:gpl3+)))
8905
8906 (define-public emacs-typescript-mode
8907 (package
8908 (name "emacs-typescript-mode")
8909 (version "0.3")
8910 (source (origin
8911 (method git-fetch)
8912 (uri (git-reference
8913 (url "https://github.com/ananthakumaran/typescript.el")
8914 (commit (string-append "v" version))))
8915 (file-name (git-file-name name version))
8916 (sha256
8917 (base32
8918 "002f1xfhq43fjaqliwrgxspryfahpa82va5dw3p8kwil2xwvc6mh"))))
8919 (build-system emacs-build-system)
8920 (home-page "https://github.com/ananthakumaran/typescript.el")
8921 (synopsis "Emacs major mode for editing Typescript code")
8922 (description
8923 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
8924 This is much more robust and works with @code{cc-mode}'s comment
8925 filling (mostly). The modifications to the original @code{javascript.el} mode
8926 mainly consisted in replacing \"javascript\" with \"typescript\"
8927
8928 The main features of this Typescript mode are syntactic highlighting (enabled
8929 with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
8930 indentation and filling of comments and C preprocessor fontification.")
8931 (license license:gpl3+)))
8932
8933 (define-public emacs-tide
8934 (package
8935 (name "emacs-tide")
8936 (version "4.0.2")
8937 (source (origin
8938 (method git-fetch)
8939 (uri (git-reference
8940 (url "https://github.com/ananthakumaran/tide")
8941 (commit (string-append "v" version))))
8942 (file-name (git-file-name name version))
8943 (sha256
8944 (base32
8945 "1n2dihpl53a48jis3l4rry581wpr5lxjd433drlkaa4lqgx8cw67"))))
8946 (build-system emacs-build-system)
8947 (propagated-inputs
8948 `(("emacs-dash" ,emacs-dash)
8949 ("emacs-s" ,emacs-s)
8950 ("emacs-flycheck" ,emacs-flycheck)
8951 ("emacs-typescript-mode" ,emacs-typescript-mode)))
8952 (home-page "https://github.com/ananthakumaran/tide")
8953 (synopsis "Typescript IDE for Emacs")
8954 (description
8955 "Tide is an Interactive Development Environment (IDE) for Emacs which
8956 provides the following features:
8957
8958 @itemize
8959 @item ElDoc
8960 @item Auto complete
8961 @item Flycheck
8962 @item Jump to definition, Jump to type definition
8963 @item Find occurrences
8964 @item Rename symbol
8965 @item Imenu
8966 @item Compile On Save
8967 @item Highlight Identifiers
8968 @item Code Fixes
8969 @item Code Refactor
8970 @item Organize Imports
8971 @end itemize")
8972 (license license:gpl3+)))
8973
8974 (define-public emacs-markdown-mode
8975 (package
8976 (name "emacs-markdown-mode")
8977 (version "2.4")
8978 (source
8979 (origin
8980 (method git-fetch)
8981 (uri (git-reference
8982 (url "https://github.com/jrblevin/markdown-mode")
8983 (commit (string-append "v" version))))
8984 (file-name (git-file-name name version))
8985 (sha256
8986 (base32 "0g0ja4h651yfabm3k6gbw4y8w7wibc9283fyfzb33kjj38ivl5d7"))))
8987 (build-system emacs-build-system)
8988 (home-page "https://jblevins.org/projects/markdown-mode/")
8989 (synopsis "Emacs Major mode for Markdown files")
8990 (description
8991 "Markdown-mode is a major mode for editing Markdown-formatted text files
8992 in Emacs.")
8993 (license license:gpl3+)))
8994
8995 (define-public emacs-evil-markdown
8996 (let ((commit "685d7fbb81bc02fa32779d2a127b99a0c8c7436b")
8997 (revision "2"))
8998 (package
8999 (name "emacs-evil-markdown")
9000 (version (git-version "0.0.2" revision commit))
9001 (source
9002 (origin
9003 (method git-fetch)
9004 (uri (git-reference
9005 (url "https://github.com/Somelauw/evil-markdown")
9006 (commit commit)))
9007 (file-name (git-file-name name version))
9008 (sha256
9009 (base32 "1z1sjn6dcqv8mmkh6nfcwhnql2z6xr9yx3hs77bfxj79pf3c466p"))))
9010 (build-system emacs-build-system)
9011 (propagated-inputs
9012 `(("emacs-evil" ,emacs-evil)
9013 ("emacs-markdown-mode" ,emacs-markdown-mode)))
9014 (home-page "https://github.com/Somelauw/evil-markdown/")
9015 (synopsis "Evil keybindings for @code{markdown-mode}")
9016 (description
9017 "This package provides custom text objects and bindings for
9018 @code{markdown-mode}.")
9019 (license license:gpl3+))))
9020
9021 (define-public emacs-edit-indirect
9022 (package
9023 (name "emacs-edit-indirect")
9024 (version "0.1.6")
9025 (source
9026 (origin
9027 (method git-fetch)
9028 (uri (git-reference
9029 (url "https://github.com/Fanael/edit-indirect")
9030 (commit version)))
9031 (file-name (git-file-name name version))
9032 (sha256
9033 (base32 "189nvmlkki1jfszm9i0crbb1p4nzgmbly0wpvpg0i8vmw7vrpl40"))))
9034 (build-system emacs-build-system)
9035 (home-page "https://github.com/Fanael/edit-indirect")
9036 (synopsis "Edit regions in separate buffers")
9037 (description "This package allows you to edit regions in separate buffers,
9038 like @code{org-edit-src-code} but for arbitrary regions.")
9039 (license license:bsd-2)))
9040
9041 (define-public emacs-projectile
9042 (package
9043 (name "emacs-projectile")
9044 (version "2.3.0")
9045 (source (origin
9046 (method url-fetch)
9047 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
9048 "/projectile/v" version "/projectile.el"))
9049 (file-name (string-append "projectile-" version ".el"))
9050 (sha256
9051 (base32
9052 "1a2drmvx80076d52w46rgynwndj78l3ljr71pdzp9g9hh71mr27y"))))
9053 (build-system emacs-build-system)
9054 (propagated-inputs
9055 `(("emacs-dash" ,emacs-dash)
9056 ("emacs-pkg-info" ,emacs-pkg-info)))
9057 (home-page "https://github.com/bbatsov/projectile")
9058 (synopsis "Manage and navigate projects in Emacs easily")
9059 (description
9060 "This library provides easy project management and navigation. The
9061 concept of a project is pretty basic - just a folder containing special file.
9062 Currently git, mercurial and bazaar repos are considered projects by default.
9063 If you want to mark a folder manually as a project just create an empty
9064 .projectile file in it.")
9065 (license license:gpl3+)))
9066
9067 (define-public emacs-skeletor
9068 (let ((commit "47c5b761aee8452716c97a69949ac2f675affe13")
9069 (revision "1"))
9070 (package
9071 (name "emacs-skeletor")
9072 (version (git-version "1.6.1" revision commit))
9073 (source (origin
9074 (method git-fetch)
9075 (uri (git-reference
9076 (url "https://github.com/chrisbarrett/skeletor.el")
9077 (commit commit)))
9078 (file-name (git-file-name name version))
9079 (sha256
9080 (base32
9081 "12bdgykfh4mwsqdazxjdvha62h3q3v33159ypy91f6x59y01fi0n"))))
9082 (build-system emacs-build-system)
9083 (propagated-inputs
9084 `(("emacs-s" ,emacs-s)
9085 ("emacs-f" ,emacs-f)
9086 ("emacs-dash" ,emacs-dash)
9087 ("emacs-let-alist" ,emacs-let-alist)))
9088 (native-inputs
9089 `(("emacs-ert-runner" ,emacs-ert-runner)))
9090 (arguments
9091 `(#:include (cons "^project-skeletons\\/" %default-include)
9092 ;; XXX: one failing test involving initializing a git repo
9093 #:phases
9094 (modify-phases %standard-phases
9095 (add-before 'check 'make-test-writable
9096 (lambda _
9097 (make-file-writable "test/skeletor-test.el")
9098 #t))
9099 (add-before 'check 'remove-git-test
9100 (lambda _
9101 (emacs-batch-edit-file "test/skeletor-test.el"
9102 `(progn
9103 (progn
9104 (goto-char (point-min))
9105 (re-search-forward
9106 "ert-deftest initialises-git-repo")
9107 (beginning-of-line)
9108 (kill-sexp))
9109 (basic-save-buffer)))
9110 #t)))
9111 #:tests? #t
9112 #:test-command '("ert-runner")))
9113 (home-page "https://github.com/chrisbarrett/skeletor.el")
9114 (synopsis "Project skeletons for Emacs")
9115 (description "This package provides project templates and automates the
9116 mundane parts of setting up a new project, such as version control, licenses,
9117 and tooling.")
9118 (license license:gpl3+))))
9119
9120 (define-public emacs-elfeed
9121 (package
9122 (name "emacs-elfeed")
9123 (version "3.4.0")
9124 (source
9125 (origin
9126 (method git-fetch)
9127 (uri (git-reference
9128 (url "https://github.com/skeeto/elfeed")
9129 (commit version)))
9130 (file-name (git-file-name name version))
9131 (sha256
9132 (base32 "1y95410hrcp23zc84sn79bxla9xr2fqh7wwagza05iaprv7zbbw0"))))
9133 (build-system emacs-build-system)
9134 (arguments
9135 `(#:tests? #t
9136 #:test-command '("make" "test")))
9137 (home-page "https://github.com/skeeto/elfeed")
9138 (synopsis "Atom/RSS feed reader for Emacs")
9139 (description
9140 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
9141 and RSS, with a user interface inspired by notmuch.")
9142 (license license:gpl3+)))
9143
9144 (define-public emacs-elfeed-org
9145 (let ((commit "77b6bbf222487809813de260447d31c4c59902c9"))
9146 (package
9147 (name "emacs-elfeed-org")
9148 (version (git-version "0.1" "1" commit))
9149 (source
9150 (origin
9151 (method git-fetch)
9152 (uri (git-reference
9153 (url "https://github.com/remyhonig/elfeed-org")
9154 (commit commit)))
9155 (file-name (git-file-name name version))
9156 (sha256
9157 (base32 "0a2ibka82xq1dhy2z7rd2y9zhcj8rna8357881yz49wf55ccgm53"))))
9158 (build-system emacs-build-system)
9159 (propagated-inputs
9160 `(("emacs-elfeed" ,emacs-elfeed)
9161 ("emacs-org" ,emacs-org)
9162 ("emacs-dash" ,emacs-dash)
9163 ("emacs-s" ,emacs-s)))
9164 (native-inputs
9165 `(("ert-runner" ,emacs-ert-runner)
9166 ("emacs-xtest" ,emacs-xtest)))
9167 (arguments
9168 `(#:tests? #t
9169 #:test-command '("ert-runner" "-L" "org-mode/lisp")
9170 #:phases
9171 (modify-phases %standard-phases
9172 (add-before 'check 'chmod
9173 (lambda _
9174 (chmod "test/fixture-mark-feed-ignore.org" #o644)
9175 #t)))))
9176 (home-page "https://github.com/remyhonig/elfeed-org")
9177 (synopsis "Configure Elfeed with an Org-mode file")
9178 (description
9179 "@code{elfeed-org} lets you manage your Elfeed subscriptions
9180 in Org-mode. Maintaining tags for all RSS feeds is cumbersome using
9181 the regular flat list, where there is no hierarchy and tag names are
9182 duplicated a lot. Org-mode makes the book keeping of tags and feeds
9183 much easier.")
9184 (license license:gpl3+))))
9185
9186 (define-public emacs-elfeed-score
9187 (package
9188 (name "emacs-elfeed-score")
9189 (version "0.7.7")
9190 (source
9191 (origin
9192 (method git-fetch)
9193 (uri (git-reference
9194 (url "https://github.com/sp1ff/elfeed-score")
9195 (commit version)))
9196 (file-name (git-file-name name version))
9197 (sha256
9198 (base32
9199 "07xid0a31ghknbfwj8dxzbqkg4sfayjhlqvp17p2bzlf1mj0zjyd"))))
9200 (build-system emacs-build-system)
9201 (propagated-inputs
9202 `(("emacs-elfeed" ,emacs-elfeed)))
9203 (home-page "https://github.com/sp1ff/elfeed-score")
9204 (synopsis "Gnus-style scoring for Elfeed")
9205 (description
9206 "Elfeed-score is an add-on for Elfeed, an RSS reader for Emacs. It
9207 brings Gnus-style scoring to your RSS feeds. Elfeed, by default, displays
9208 feed entries by date. This package allows you to setup rules for assigning
9209 numeric scores to entries, and sorting entries with higher scores ahead of
9210 those with lower, regardless of date. The idea is to prioritize content
9211 important to you.")
9212 (license license:gpl3+)))
9213
9214 (define-public emacs-el-x
9215 (package
9216 (name "emacs-el-x")
9217 (version "0.3.1")
9218 (source (origin
9219 (method git-fetch)
9220 (uri (git-reference
9221 (url "https://github.com/sigma/el-x")
9222 (commit (string-append "v" version))))
9223 (file-name (git-file-name name version))
9224 (sha256
9225 (base32
9226 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
9227 (build-system emacs-build-system)
9228 (arguments
9229 `(#:phases
9230 (modify-phases %standard-phases
9231 ;; Move the source files to the top level, which is included in
9232 ;; the EMACSLOADPATH.
9233 (add-after 'unpack 'move-source-files
9234 (lambda _
9235 (let ((el-files (find-files "./lisp" ".*\\.el$")))
9236 (for-each (lambda (f)
9237 (rename-file f (basename f)))
9238 el-files))
9239 #t)))))
9240 (home-page "https://github.com/sigma/el-x")
9241 (synopsis "Emacs Lisp extensions")
9242 (description "command@{emacs-el-x} defines the @code{dflet} macro to
9243 provide the historic behavior of @code{flet}, as well as
9244 @code{declare-function} stub for older Emacs.")
9245 (license license:gpl2+)))
9246
9247 (define-public emacs-mocker
9248 (package
9249 (name "emacs-mocker")
9250 (version "0.5.0")
9251 (source (origin
9252 (method git-fetch)
9253 (uri (git-reference
9254 (url "https://github.com/sigma/mocker.el")
9255 (commit (string-append "v" version))))
9256 (file-name (git-file-name name version))
9257 (sha256
9258 (base32
9259 "1dc514cqbfmg33sb3j90s5jmw6jnm3wzvs0zhw3maz13bp7w6z48"))))
9260 (build-system emacs-build-system)
9261 (arguments
9262 `(#:tests? #t
9263 #:test-command '("ert-runner")))
9264 (native-inputs
9265 `(("ert-runner" ,emacs-ert-runner)))
9266 (propagated-inputs
9267 `(("emacs-el-x" ,emacs-el-x)))
9268 (home-page "https://github.com/sigma/mocker.el")
9269 (synopsis "Mocking framework for Emacs Lisp")
9270 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
9271 It uses regular Lisp rather than a domain specific language (DSL), which
9272 maximizes flexibility (at the expense of conciseness).")
9273 (license license:gpl2+)))
9274
9275 (define-public emacs-find-file-in-project
9276 (package
9277 (name "emacs-find-file-in-project")
9278 (version "6.0.0")
9279 (source (origin
9280 (method git-fetch)
9281 (uri (git-reference
9282 (url "https://github.com/technomancy/find-file-in-project")
9283 (commit version)))
9284 (file-name (git-file-name name version))
9285 (sha256
9286 (base32
9287 "1iagywiihwv96y9p811xlx4cmbsj8h76niymprv1vm4fj6cmihr6"))))
9288 (build-system emacs-build-system)
9289 (arguments
9290 `(#:tests? #t
9291 #:test-command '("ert-runner" "tests")))
9292 (native-inputs
9293 `(("ert-runner" ,emacs-ert-runner)))
9294 (home-page "https://github.com/technomancy/find-file-in-project")
9295 (synopsis "File/directory finder for Emacs")
9296 (description "@code{find-file-in-project} finds files or
9297 directories quickly in the current project. The project root is detected
9298 automatically when Git, Subversion or Mercurial are used. It also provides
9299 functions to assist in reviewing changes on files.")
9300 (license license:gpl3+)))
9301
9302 (define-public emacs-pyvenv
9303 (package
9304 (name "emacs-pyvenv")
9305 (version "1.21")
9306 (source (origin
9307 (method git-fetch)
9308 (uri (git-reference
9309 (url "https://github.com/jorgenschaefer/pyvenv")
9310 (commit (string-append "v" version))))
9311 (file-name (git-file-name name version))
9312 (sha256
9313 (base32
9314 "055sgk8zf4wb5nqsf3qasf5gg861zlb1831733f1qcrd2ij5gzxx"))))
9315 (build-system emacs-build-system)
9316 (arguments
9317 `(#:phases
9318 (modify-phases %standard-phases
9319 ;; This phase incorrectly attempts to substitute "activate" and fails
9320 ;; doing so.
9321 (delete 'patch-el-files))
9322 #:tests? #t
9323 #:test-command '("ert-runner")))
9324 (native-inputs
9325 `(("ert-runner" ,emacs-ert-runner)
9326 ("emacs-mocker" ,emacs-mocker)))
9327 (home-page "https://github.com/jorgenschaefer/pyvenv")
9328 (synopsis "Python virtual environment interface for Emacs")
9329 (description "pyvenv.el is a minor mode to support using Python virtual
9330 environments (virtualenv) inside Emacs.")
9331 (license license:gpl3+)))
9332
9333 (define-public emacs-highlight-indent-guides
9334 (let ((version "0.8.5") ; from package metadata
9335 (revision "0")
9336 (commit "c2c9de4d01edfb89609c91d4d7f1d81312015a2c"))
9337 (package
9338 (name "emacs-highlight-indent-guides")
9339 (version (git-version version revision commit))
9340 (source
9341 (origin
9342 (method git-fetch)
9343 (uri (git-reference
9344 (url "https://github.com/DarthFennec/highlight-indent-guides")
9345 (commit commit)))
9346 (file-name (git-file-name name version))
9347 (sha256
9348 (base32 "10chvqnmdmkx6i9sigqframr85ziyafiz44glwhvhjajfkv42ad2"))))
9349 (build-system emacs-build-system)
9350 (home-page
9351 "https://github.com/DarthFennec/highlight-indent-guides")
9352 (synopsis "Minor mode to highlight indentation")
9353 (description
9354 "This package provides a minor mode to highlight indentation levels via
9355 font-lock. Indent widths are dynamically discovered, which means this
9356 correctly highlights in any mode, regardless of indent width, even in
9357 languages with non-uniform indentation such as Haskell. This mode works
9358 properly around hard tabs and mixed indentation and behaves well in large
9359 buffers.")
9360 (license license:expat))))
9361
9362 (define-public emacs-highlight-indentation
9363 ;; Last release version is from 2015.
9364 (let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f")
9365 (revision "1"))
9366 (package
9367 (name "emacs-highlight-indentation")
9368 (version (git-version "0.7.0" revision commit))
9369 (source
9370 (origin
9371 (method git-fetch)
9372 (uri (git-reference
9373 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs")
9374 (commit commit)))
9375 (file-name (git-file-name name version))
9376 (sha256
9377 (base32
9378 "1jq0gf4kcx9hvrw40rnw5c2qynjpjw1vsjbi2i4lqjbsnfnxn4wz"))))
9379 (build-system emacs-build-system)
9380 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
9381 (synopsis "Highlighting indentation for Emacs")
9382 (description "This package provides two minor modes to highlight
9383 indentation guides in Emacs:
9384
9385 @enumerate
9386 @item @code{highlight-indentation-mode}, which displays guidelines
9387 indentation (space indentation only).
9388 @item @code{highlight-indentation-current-column-mode}, which displays
9389 guidelines for the current-point indentation (space indentation only).
9390 @end enumerate")
9391 (license license:gpl2+))))
9392
9393 (define-public emacs-elpy
9394 (package
9395 (name "emacs-elpy")
9396 (version "1.35.0")
9397 (source (origin
9398 (method git-fetch)
9399 (uri (git-reference
9400 (url "https://github.com/jorgenschaefer/elpy")
9401 (commit version)))
9402 (file-name (git-file-name name version))
9403 (sha256
9404 (base32
9405 "07rdb9w3bxzfr07224awa541xdy116hyc2b3bpl3fc3ikddmbydk"))))
9406 (build-system emacs-build-system)
9407 (arguments
9408 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
9409 #:phases
9410 (modify-phases %standard-phases
9411 (add-after 'unpack 'patch-ffip-project-search-call
9412 (lambda _
9413 ;; Since version 6.0.0 of find-file-in-project,
9414 ;; ffip-project-search doesn't accept a third argument anymore
9415 ;; (see: https://github.com/jorgenschaefer/elpy/issues/1889).
9416 (substitute* "elpy.el"
9417 (("\\((ffip-project-search nil nil) project-root\\)" _ signature)
9418 (format #f "(let ((ffip-project-root project-root)) (~a))"
9419 signature)))))
9420 ;; The default environment of the RPC uses Virtualenv to install
9421 ;; Python dependencies from PyPI. We don't want/need this in Guix.
9422 (add-before 'check 'do-not-use-virtualenv
9423 (lambda _
9424 (setenv "ELPY_TEST_DONT_USE_VIRTUALENV" "1")
9425 (substitute* "elpy-rpc.el"
9426 (("defcustom elpy-rpc-virtualenv-path 'default")
9427 "defcustom elpy-rpc-virtualenv-path 'system"))))
9428 (add-before 'check 'build-doc
9429 (lambda _
9430 (with-directory-excursion "docs"
9431 (invoke "make" "info" "man"))
9432 ;; Move .info file at the root so that it can installed by the
9433 ;; 'move-doc phase.
9434 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")))
9435 (add-after 'build-doc 'install-manpage
9436 (lambda* (#:key outputs #:allow-other-keys)
9437 (let* ((out (assoc-ref outputs "out"))
9438 (man1 (string-append out "/share/man/man1")))
9439 (mkdir-p man1)
9440 (copy-file "docs/_build/man/elpy.1"
9441 (string-append man1 "/elpy.1"))))))
9442 #:tests? #t
9443 #:test-command '("ert-runner")))
9444 (propagated-inputs
9445 `(("emacs-company" ,emacs-company)
9446 ("emacs-find-file-in-project" ,emacs-find-file-in-project)
9447 ("emacs-highlight-indentation" ,emacs-highlight-indentation)
9448 ("emacs-yasnippet" ,emacs-yasnippet)
9449 ("pyvenv" ,emacs-pyvenv)
9450 ("s" ,emacs-s)
9451 ;; The following are recommended Python dependencies that make Elpy
9452 ;; much more useful. Installing these avoids Elpy prompting to install them
9453 ;; from PyPI using pip.
9454 ("python-autopep8" ,python-autopep8)
9455 ("python-black" ,python-black)
9456 ("python-flake8" ,python-flake8)
9457 ("python-jedi" ,python-jedi)
9458 ("python-rope" ,python-rope)
9459 ("python-yapf" ,python-yapf)))
9460 (native-inputs
9461 `(("ert-runner" ,emacs-ert-runner)
9462 ("emacs-f" ,emacs-f)
9463 ("python" ,python-wrapper)
9464 ;; For documentation.
9465 ("python-sphinx" ,python-sphinx)
9466 ("texinfo" ,texinfo)))
9467 (home-page "https://github.com/jorgenschaefer/elpy")
9468 (synopsis "Python development environment for Emacs")
9469 (description "Elpy brings powerful Python editing to Emacs. It combines
9470 and configures a number of other packages written in Emacs Lisp as well as
9471 Python, together offering features such as navigation, documentation,
9472 completion, interactive development and more.")
9473 (license license:gpl3+)))
9474
9475 (define-public emacs-rainbow-delimiters
9476 (package
9477 (name "emacs-rainbow-delimiters")
9478 (version "2.1.4")
9479 (source (origin
9480 (method git-fetch)
9481 (uri (git-reference
9482 (url "https://github.com/Fanael/rainbow-delimiters")
9483 (commit version)))
9484 (file-name (git-file-name name version))
9485 (sha256
9486 (base32
9487 "1zr2669savnmkc68hiqsq9wccm6bs1j6jbmlac1xqh6nq7xgq36g"))))
9488 (build-system emacs-build-system)
9489 (home-page "https://github.com/Fanael/rainbow-delimiters")
9490 (arguments
9491 `(#:tests? #t
9492 #:test-command '("emacs" "-Q" "-batch"
9493 "-l" "rainbow-delimiters-test.el"
9494 "-f" "ert-run-tests-batch-and-exit")))
9495 (synopsis "Highlight brackets according to their depth")
9496 (description
9497 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
9498 highlights parentheses, brackets, and braces according to their depth. Each
9499 successive level is highlighted in a different color, making it easy to spot
9500 matching delimiters, orient yourself in the code, and tell which statements
9501 are at a given level.")
9502 (license license:gpl3+)))
9503
9504 (define-public emacs-rainbow-identifiers
9505 (package
9506 (name "emacs-rainbow-identifiers")
9507 (version "0.2.2")
9508 (source (origin
9509 (method url-fetch)
9510 (uri (string-append "https://raw.githubusercontent.com/Fanael"
9511 "/rainbow-identifiers/" version
9512 "/rainbow-identifiers.el"))
9513 (file-name (string-append "rainbow-identifiers-" version ".el"))
9514 (sha256
9515 (base32
9516 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
9517 (build-system emacs-build-system)
9518 (home-page "https://github.com/Fanael/rainbow-identifiers")
9519 (synopsis "Highlight identifiers in source code")
9520 (description
9521 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
9522 identifiers based on their names. Each identifier gets a color based on a hash
9523 of its name.")
9524 (license license:bsd-2)))
9525
9526 (define-public emacs-rainbow-mode
9527 (package
9528 (name "emacs-rainbow-mode")
9529 (version "1.0.5")
9530 (source
9531 (origin
9532 (method url-fetch)
9533 (uri (string-append "https://elpa.gnu.org/packages/"
9534 "rainbow-mode-" version ".el"))
9535 (sha256
9536 (base32 "159fps843k5pap9k04a7ll1k3gw6d9c6w08lq4bbc3lqg78aa2l9"))))
9537 (build-system emacs-build-system)
9538 (home-page "https://elpa.gnu.org/packages/rainbow-mode.html")
9539 (synopsis "Colorize color names in buffers")
9540 (description
9541 "This minor mode sets background color to strings that match color
9542 names, e.g., @samp{#0000ff} is displayed in white with a blue background.")
9543 (license license:gpl3+)))
9544
9545 (define-public emacs-ryo-modal
9546 ;; Package has no release. Version is extracted from "Version:" keyword in
9547 ;; main file.
9548 (let ((commit "3a54312eea7023a86ca3f8eb3c03c872554bff2f")
9549 (revision "0"))
9550 (package
9551 (name "emacs-ryo-modal")
9552 (version (git-version "0.4" revision commit))
9553 (source
9554 (origin
9555 (method git-fetch)
9556 (uri (git-reference
9557 (url "https://github.com/Kungsgeten/ryo-modal")
9558 (commit commit)))
9559 (file-name (git-file-name name version))
9560 (sha256
9561 (base32 "1cyvp3bi6yhckbdnq98xvghmhdzghya5y9wd7hxjawibs75rza95"))))
9562 (build-system emacs-build-system)
9563 (home-page "https://github.com/Kungsgeten/ryo-modal")
9564 (synopsis "Emacs minor mode for defining modal editing environments")
9565 (description "RYO modal provides a convenient way of defining modal
9566 keybindings in Emacs, and does not come with any predefined bindings.")
9567 (license license:expat))))
9568
9569 (define-public emacs-visual-fill-column
9570 (package
9571 (name "emacs-visual-fill-column")
9572 (version "2.2")
9573 (source
9574 (origin
9575 (method git-fetch)
9576 (uri (git-reference
9577 (url "https://github.com/joostkremers/visual-fill-column")
9578 (commit version)))
9579 (file-name (git-file-name name version))
9580 (sha256
9581 (base32 "1wjb4zm9mx07v0qx2fxmclg4pg0ssgnf8lp89wc56kmc0s40jhii"))))
9582 (build-system emacs-build-system)
9583 (home-page "https://github.com/joostkremers/visual-fill-column")
9584 (synopsis "Fill-column for visual-line-mode")
9585 (description
9586 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
9587 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
9588 wrapping lines at the window edge, which is the standard behaviour of
9589 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
9590 @code{fill-column} is too large for the window, the text is wrapped at the
9591 window edge.")
9592 (license license:gpl3+)))
9593
9594 (define-public emacs-writeroom
9595 (package
9596 (name "emacs-writeroom")
9597 (version "3.11")
9598 (source
9599 (origin
9600 (method git-fetch)
9601 (uri (git-reference
9602 (url "https://github.com/joostkremers/writeroom-mode")
9603 (commit version)))
9604 (file-name (git-file-name name version))
9605 (sha256
9606 (base32
9607 "0y4jcja9kml1lq88r8b9myk39dgaggh7q7f3a43sj828hvzlccb7"))))
9608 (build-system emacs-build-system)
9609 (propagated-inputs
9610 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
9611 (home-page "https://github.com/joostkremers/writeroom-mode")
9612 (synopsis "Distraction-free writing for Emacs")
9613 (description
9614 "This package defines a minor mode for distraction-free writing. Some of
9615 the default effects include entering fullscreen, deleting other windows of the
9616 current frame, disabling the mode line, and adding margins to the buffer that
9617 restrict the text width to 80 characters.")
9618 (license license:bsd-3)))
9619
9620 (define-public emacs-ido-completing-read+
9621 (package
9622 (name "emacs-ido-completing-read+")
9623 (version "4.13")
9624 (source (origin
9625 (method url-fetch)
9626 (uri (string-append "https://raw.githubusercontent.com"
9627 "/DarwinAwardWinner/ido-ubiquitous/v"
9628 version "/ido-completing-read+.el"))
9629 (file-name (string-append "ido-completing-read+-" version ".el"))
9630 (sha256
9631 (base32
9632 "0g2ixvw2sxpvrgz78745zi6iql4501pqi85zi6j31dnc1hx1i0r6"))))
9633 (build-system emacs-build-system)
9634 (propagated-inputs
9635 `(("emacs-s" ,emacs-s)))
9636 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
9637 (synopsis "Replacement for completing-read using ido")
9638 (description
9639 "The ido-completing-read+ function is a wrapper for ido-completing-read.
9640 Importantly, it detects edge cases that ordinary ido cannot handle and either
9641 adjusts them so ido can handle them, or else simply falls back to the standard
9642 Emacs completion function instead.")
9643 (license license:gpl3+)))
9644
9645 (define-public emacs-ido-ubiquitous
9646 (package
9647 (name "emacs-ido-ubiquitous")
9648 (version "4.13")
9649 (source (origin
9650 (method url-fetch)
9651 (uri (string-append "https://raw.githubusercontent.com"
9652 "/DarwinAwardWinner/ido-ubiquitous/v"
9653 version "/ido-ubiquitous.el"))
9654 (file-name (string-append "ido-ubiquitous-" version ".el"))
9655 (sha256
9656 (base32
9657 "08iwvqknicqlffda7ixwgzw7q9g2g4j4nsxdw6544r85vaysi4cc"))))
9658 (build-system emacs-build-system)
9659 (propagated-inputs
9660 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
9661 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
9662 (synopsis "Use ido (nearly) everywhere")
9663 (description
9664 "Ido-ubiquitous enables ido-style completion for almost every function
9665 that uses the standard completion function completing-read.")
9666 (license license:gpl3+)))
9667
9668 (define-public emacs-yaml-mode
9669 (package
9670 (name "emacs-yaml-mode")
9671 (version "0.0.15")
9672 (source
9673 (origin
9674 (method git-fetch)
9675 (uri (git-reference
9676 (url "https://github.com/yoshiki/yaml-mode")
9677 (commit version)))
9678 (file-name (git-file-name name version))
9679 (sha256
9680 (base32 "0gsa153yp8lmwrvcc3nzpw5lj037y7q2nm23k5k404r5as4k355l"))))
9681 (build-system emacs-build-system)
9682 (home-page "https://github.com/yoshiki/yaml-mode")
9683 (synopsis "Major mode for editing YAML files")
9684 (description
9685 "Yaml mode is an Emacs major mode for editing files in the YAML data
9686 serialization format. As YAML and Python share the fact that indentation
9687 determines structure, this mode provides indentation and indentation command
9688 behavior very similar to that of Python mode.")
9689 (license license:gpl3+)))
9690
9691 (define-public emacs-gitlab-ci-mode
9692 (package
9693 (name "emacs-gitlab-ci-mode")
9694 (version "20190425.11.10")
9695 (source (origin
9696 (method git-fetch)
9697 (uri (git-reference
9698 (url "https://gitlab.com/joewreschnig/gitlab-ci-mode.git")
9699 (commit (string-append "v" version))))
9700 (file-name (git-file-name name version))
9701 (sha256
9702 (base32
9703 "1jkp9mnbiccqnha9zs646znqyqvy5jjb81kah7ghbkzdqqk2avm0"))))
9704 (build-system emacs-build-system)
9705 (propagated-inputs
9706 `(("emacs-yaml-mode" ,emacs-yaml-mode)))
9707 (home-page "https://gitlab.com/joewreschnig/gitlab-ci-mode/")
9708 (synopsis "Emacs mode for editing GitLab CI files")
9709 (description
9710 "@code{gitlab-ci-mode} is an Emacs major mode for editing GitLab CI
9711 files. It provides syntax highlighting and completion for keywords and
9712 special variables. An interface to GitLab’s CI file linter is also provided
9713 via @code{gitlab-ci-lint}.")
9714 (license license:gpl3+)))
9715
9716 (define-public emacs-gitlab-snip-helm
9717 (package
9718 (name "emacs-gitlab-snip-helm")
9719 (version "0.0.2")
9720 (source (origin
9721 (method git-fetch)
9722 (uri (git-reference
9723 (url "https://gitlab.com/sasanidas/gitlab-snip-helm.git")
9724 (commit version)))
9725 (file-name (git-file-name name version))
9726 (sha256
9727 (base32
9728 "1c5js19zyb1z61hapvbfcl5jhrjqij46cxldgqij6al0scw44dga"))))
9729 (build-system emacs-build-system)
9730 (propagated-inputs
9731 `(("emacs-dash" ,emacs-dash)
9732 ("emacs-helm" ,emacs-helm)))
9733 (home-page "https://gitlab.com/sasanidas/gitlab-snip-helm/")
9734 (synopsis "GitLab snippet API interaction for Emacs")
9735 (description "This package provides GitLab snippet API interaction for
9736 Emacs.")
9737 (license license:gpl3+)))
9738
9739 (define-public emacs-web-mode
9740 (package
9741 (name "emacs-web-mode")
9742 (version "17")
9743 (source
9744 (origin
9745 (method git-fetch)
9746 (uri (git-reference
9747 (url "https://github.com/fxbois/web-mode")
9748 (commit (string-append "v" version))))
9749 (file-name (git-file-name name version))
9750 (sha256
9751 (base32 "0jr5a1nzp8nbdng0k2fcaymiiv9ngrbknbrqaswgqn3akvx793jk"))))
9752 (build-system emacs-build-system)
9753 (synopsis "Major mode for editing web templates")
9754 (description "Web mode is an Emacs major mode for editing web templates
9755 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
9756 client/server side engines). Web mode is compatible with many template
9757 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
9758 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
9759 Dust.js, React/JSX, Angularjs, ejs, etc.")
9760 (home-page "https://web-mode.org/")
9761 (license license:gpl3+)))
9762
9763 (define-public emacs-templatel
9764 (package
9765 (name "emacs-templatel")
9766 (version "0.1.4")
9767 (source
9768 (origin
9769 (method git-fetch)
9770 (uri (git-reference
9771 (url "https://github.com/clarete/templatel")
9772 (commit version)))
9773 (file-name (git-file-name name version))
9774 (sha256
9775 (base32 "1k33h503038l2bcr8gs020z2cjxfs94lamkdgv52cvd9i20d0kqq"))))
9776 (build-system emacs-build-system)
9777 (home-page "https://clarete.li/templatel")
9778 (synopsis "Jinja inspired template language for Emacs Lisp")
9779 (description
9780 "templatel is the modern templating language. It provides variable
9781 substitution and control flow through a clean and powerful language inspired
9782 by Python's Jinja.")
9783 (license license:gpl3+)))
9784
9785 (define-public emacs-wgrep
9786 (package
9787 (name "emacs-wgrep")
9788 (version "2.3.2")
9789 (source (origin
9790 (method git-fetch)
9791 (uri (git-reference
9792 (url "https://github.com/mhayashi1120/Emacs-wgrep")
9793 (commit version)))
9794 (file-name (git-file-name name version))
9795 (sha256
9796 (base32
9797 "00cwqzb94jlq4mwgv8z7r3mn0a6mhq95z6j189kacq9g4473zh8d"))))
9798 (build-system emacs-build-system)
9799 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
9800 (synopsis "Edit a grep buffer and apply those changes to the files")
9801 (description
9802 "Emacs wgrep allows you to edit a grep buffer and apply those changes
9803 to the file buffer. Several backends are supported beside the classic grep:
9804 ack, ag, helm and pt.")
9805 (license license:gpl3+)))
9806
9807 (define-public emacs-helm
9808 (package
9809 (name "emacs-helm")
9810 (version "3.7.0")
9811 (source
9812 (origin
9813 (method git-fetch)
9814 (uri (git-reference
9815 (url "https://github.com/emacs-helm/helm")
9816 (commit (string-append "v" version))))
9817 (file-name (git-file-name name version))
9818 (sha256
9819 (base32 "0lxq13bsbh7xawgsq08kjm7s28x9yl8mid3538flv5kcc1rv2b9y"))))
9820 (build-system emacs-build-system)
9821 (propagated-inputs
9822 `(("emacs-async" ,emacs-async)
9823 ("emacs-popup" ,emacs-popup)))
9824 (home-page "https://emacs-helm.github.io/helm/")
9825 (synopsis "Incremental completion and selection narrowing
9826 framework for Emacs")
9827 (description "Helm is incremental completion and selection narrowing
9828 framework for Emacs. It will help steer you in the right direction when
9829 you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
9830 of @code{anything.el} originally written by Tamas Patrovic and can be
9831 considered to be its successor. Helm sets out to clean up the legacy code in
9832 @code{anything.el} and provide a cleaner, leaner and more modular tool, that's
9833 not tied in the trap of backward compatibility.")
9834 (license license:gpl3+)))
9835
9836 (define-public emacs-helm-org
9837 (let ((commit "8457e1e46227bf87726e05c42cec5a4b51c2ef7b")
9838 (revision "3"))
9839 (package
9840 (name "emacs-helm-org")
9841 (version (git-version "1.0" revision commit))
9842 (source
9843 (origin
9844 (method git-fetch)
9845 (uri (git-reference
9846 (url "https://github.com/emacs-helm/helm-org")
9847 (commit commit)))
9848 (file-name (git-file-name name version))
9849 (sha256
9850 (base32 "0kcjhwwi492n9m2w894hvdavfvhj45zygy7bwvx103wvpay5h6h6"))))
9851 (build-system emacs-build-system)
9852 (propagated-inputs
9853 `(("emacs-helm" ,emacs-helm)))
9854 (home-page "https://github.com/emacs-helm/helm-org")
9855 (synopsis "Helm interface to the Silver Searcher")
9856 (description
9857 "This package provides a frontend for grepping tools like ag and ack,
9858 as well as features for editing search results.")
9859 (license license:gpl3+))))
9860
9861 (define-public emacs-helm-swoop
9862 (package
9863 (name "emacs-helm-swoop")
9864 (version "3.0.0")
9865 (source
9866 (origin
9867 (method git-fetch)
9868 (uri (git-reference
9869 (url "https://github.com/emacsorphanage/helm-swoop")
9870 (commit version)))
9871 (file-name (git-file-name name version))
9872 (sha256
9873 (base32 "1qjay0fvryxa8n1ws6r1by512p2fylb2nj7ycm1497fcalb0d706"))))
9874 (build-system emacs-build-system)
9875 (propagated-inputs
9876 `(("emacs-helm" ,emacs-helm)))
9877 (home-page "https://github.com/emacsorphanage/helm-swoop")
9878 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
9879 (description
9880 "This package builds on the Helm interface to provide several commands
9881 for search-based navigation of buffers.")
9882 (license license:gpl2+)))
9883
9884 (define-public emacs-helm-ag
9885 (package
9886 (name "emacs-helm-ag")
9887 (version "0.62")
9888 (source
9889 (origin
9890 (method git-fetch)
9891 (uri (git-reference
9892 (url "https://github.com/syohex/emacs-helm-ag")
9893 (commit version)))
9894 (file-name (git-file-name name version))
9895 (sha256
9896 (base32 "0xgbpp8xqdiyvfs64x0q909g77ml28z3irw2lnasvpsg0dfdm2zy"))))
9897 (build-system emacs-build-system)
9898 (propagated-inputs
9899 `(("emacs-helm" ,emacs-helm)))
9900 (home-page "https://github.com/syohex/emacs-helm-ag")
9901 (synopsis "Helm interface to the Silver Searcher")
9902 (description
9903 "This package provides a frontend for grepping tools like ag and ack,
9904 as well as features for editing search results.")
9905 (license license:gpl3+)))
9906
9907 (define-public emacs-helm-projectile
9908 (package
9909 (name "emacs-helm-projectile")
9910 (version "1.0.0")
9911 (source
9912 (origin
9913 (method git-fetch)
9914 (uri (git-reference
9915 (url "https://github.com/bbatsov/helm-projectile")
9916 (commit (string-append "v" version))))
9917 (file-name (git-file-name name version))
9918 (sha256
9919 (base32 "05gpg90gg03yalmv9fw1y9k21i2l617iipvs0p9n80aln8nrzs8g"))))
9920 (build-system emacs-build-system)
9921 (propagated-inputs
9922 `(("emacs-helm" ,emacs-helm)
9923 ("emacs-projectile" ,emacs-projectile)))
9924 (home-page "https://github.com/bbatsov/helm-projectile")
9925 (synopsis "Helm integration for Projectile")
9926 (description
9927 "This Emacs library provides a Helm interface for Projectile.")
9928 (license license:gpl3+)))
9929
9930 (define-public emacs-taskrunner
9931 (let ((commit "3afd4a546d42339543d3d4e51b175fc3e82b3358")
9932 (revision "1"))
9933 (package
9934 (name "emacs-taskrunner")
9935 (version (git-version "0.6" revision commit))
9936 (source
9937 (origin
9938 (method git-fetch)
9939 (uri (git-reference
9940 (url "https://github.com/emacs-taskrunner/emacs-taskrunner")
9941 (commit commit)))
9942 (file-name (git-file-name name version))
9943 (sha256
9944 (base32
9945 "1lkdvmjn3alhqxq2i64sdr977sbw3g0b2670d9bwyzi67qh0jxrv"))))
9946 (build-system emacs-build-system)
9947 (propagated-inputs
9948 `(("emacs-async" ,emacs-async)
9949 ("emacs-projectile" ,emacs-projectile)))
9950 (home-page "https://github.com/emacs-taskrunner/emacs-taskrunner")
9951 (synopsis "Retrieve tasks from various build systems and task-runners")
9952 (description "This package parses Makefiles and build-system files for
9953 multiple project types.")
9954 (license license:gpl3+))))
9955
9956 (define-public emacs-ivy-taskrunner
9957 (let ((commit "75d8d67cfe3c29663fe0f5508a887adf40ed5162")
9958 (revision "1"))
9959 (package
9960 (name "emacs-ivy-taskrunner")
9961 (version (git-version "0.9" revision commit))
9962 (source
9963 (origin
9964 (method git-fetch)
9965 (uri (git-reference
9966 (url "https://github.com/emacs-taskrunner/ivy-taskrunner")
9967 (commit commit)))
9968 (file-name (git-file-name name version))
9969 (sha256
9970 (base32
9971 "1wf4s4k0ap21f7g5w6128an8nsvbja7f5n889vcml5b6gjz058db"))))
9972 (build-system emacs-build-system)
9973 (propagated-inputs
9974 `(("emacs-ivy" ,emacs-ivy)
9975 ("emacs-taskrunner" ,emacs-taskrunner)
9976 ("emacs-projectile" ,emacs-projectile)))
9977 (home-page "https://github.com/emacs-taskrunner/ivy-taskrunner")
9978 (synopsis "Retrieve build-system tasks using Ivy")
9979 (description "This package provides an Ivy interface for selecting
9980 Makefile targets.")
9981 (license license:gpl3+))))
9982
9983 (define-public emacs-helm-taskrunner
9984 (let ((commit "1910dac19cbc7bd4fd08b0faf9affd455339fbea")
9985 (revision "1"))
9986 (package
9987 (name "emacs-helm-taskrunner")
9988 (version (git-version "0.9" revision commit))
9989 (source
9990 (origin
9991 (method git-fetch)
9992 (uri (git-reference
9993 (url "https://github.com/emacs-taskrunner/helm-taskrunner")
9994 (commit commit)))
9995 (file-name (git-file-name name version))
9996 (sha256
9997 (base32
9998 "182lmr858fx6rdhp1fy7kv8dvrhzcnxzwfck1q22s6xs8x85d5q7"))))
9999 (build-system emacs-build-system)
10000 (propagated-inputs
10001 `(("emacs-helm" ,emacs-helm)
10002 ("emacs-taskrunner" ,emacs-taskrunner)
10003 ("emacs-projectile" ,emacs-projectile)))
10004 (home-page "https://github.com/emacs-taskrunner/helm-taskrunner")
10005 (synopsis "Retrieve build-system tasks using Helm")
10006 (description "This package provides a Helm interface for selecting
10007 Makefile targets.")
10008 (license license:gpl3+))))
10009
10010 (define-public emacs-helm-make
10011 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
10012 (revision "1"))
10013 (package
10014 (name "emacs-helm-make")
10015 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
10016 (source
10017 (origin
10018 (method git-fetch)
10019 (uri (git-reference
10020 (url "https://github.com/abo-abo/helm-make")
10021 (commit commit)))
10022 (file-name (git-file-name name version))
10023 (sha256
10024 (base32
10025 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
10026 (build-system emacs-build-system)
10027 (propagated-inputs
10028 `(("emacs-helm" ,emacs-helm)
10029 ("emacs-projectile" ,emacs-projectile)))
10030 (home-page "https://github.com/abo-abo/helm-make")
10031 (synopsis "Select a Makefile target with helm")
10032 (description "@code{helm-make} or @code{helm-make-projectile} will give
10033 you a @code{helm} selection of directory Makefile's targets. Selecting a
10034 target will call @code{compile} on it.")
10035 (license license:gpl3+))))
10036
10037 (define-public emacs-cider
10038 (package
10039 (name "emacs-cider")
10040 (version "1.0.0")
10041 (source
10042 (origin
10043 (method git-fetch)
10044 (uri (git-reference
10045 (url "https://github.com/clojure-emacs/cider")
10046 (commit (string-append "v" version))))
10047 (file-name (git-file-name name version))
10048 (sha256
10049 (base32 "143kh9k34yk0g6kdlkma6g432kmb2r9r1lhyq4irsw6d3vaql7dj"))))
10050 (build-system emacs-build-system)
10051 (arguments
10052 '(#:exclude ;don't exclude 'cider-test.el'
10053 '("^\\.dir-locals\\.el$" "^test/")))
10054 (propagated-inputs
10055 `(("emacs-clojure-mode" ,emacs-clojure-mode)
10056 ("emacs-parseedn" ,emacs-parseedn)
10057 ("emacs-pkg-info" ,emacs-pkg-info)
10058 ("emacs-queue" ,emacs-queue)
10059 ("emacs-sesman" ,emacs-sesman)
10060 ("emacs-spinner" ,emacs-spinner)))
10061 (home-page "https://cider.mx/")
10062 (synopsis "Clojure development environment for Emacs")
10063 (description
10064 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
10065 provide an interactive development experience similar to the one you'd get
10066 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
10067 Geiser) and Smalltalk.
10068
10069 CIDER is the successor to the now deprecated combination of using SLIME +
10070 swank-clojure for Clojure development.
10071
10072 There are plenty of differences between CIDER and SLIME, but the core ideas
10073 are pretty much the same (and SLIME served as the principle inspiration for
10074 CIDER).")
10075 (license license:gpl3+)))
10076
10077 (define-public emacs-sly
10078 ;; Update together with sbcl-slynk.
10079 (let ((commit "fb84318c08f59bc786e047006fc81e2ace568309"))
10080 ;; Versions are not always tagged. Besides, latest master contains
10081 ;; important fixes.
10082 (package
10083 (name "emacs-sly")
10084 (version (git-version "1.0.43" "4" commit))
10085 (source
10086 (origin
10087 (method git-fetch)
10088 (uri (git-reference
10089 (url "https://github.com/joaotavora/sly")
10090 (commit commit)))
10091 (file-name (git-file-name name version))
10092 (sha256
10093 (base32
10094 "0z123k9ak7yjb9bxb5qx48f33ma8066rhkqh8xc14z7shk75jybj"))))
10095 (build-system emacs-build-system)
10096 (native-inputs
10097 `(("texinfo" ,texinfo)))
10098 (arguments
10099 `(#:include (cons* "^contrib\\/" "^lib\\/" "^slynk\\/" %default-include)
10100 #:phases
10101 ;; The package provides autoloads.
10102 (modify-phases %standard-phases
10103 (delete 'make-autoloads)
10104 (add-before 'install 'install-doc
10105 (lambda* (#:key outputs #:allow-other-keys)
10106 (let* ((out (assoc-ref outputs "out"))
10107 (info-dir (string-append out "/share/info"))
10108 (doc-dir (string-append out "/share/doc/"
10109 ,name "-" ,version))
10110 (doc-files '( ;; "doc/sly-refcard.pdf" ; See sly-refcard.pdf below.
10111 "README.md" "NEWS.md" "PROBLEMS.md"
10112 "CONTRIBUTING.md")))
10113 (with-directory-excursion "doc"
10114 (substitute* "Makefile"
10115 (("infodir=/usr/local/info")
10116 (string-append "infodir=" info-dir))
10117 ;; Don't rebuild contributors.texi since we are not in
10118 ;; the git repo.
10119 (("contributors.texi: Makefile texinfo-tabulate.awk")
10120 "contributors.texi:"))
10121 (invoke "make" "html/index.html")
10122 (invoke "make" "sly.info")
10123 ;; TODO: We need minimal texlive with "preprint" package
10124 ;; (for fullpage.sty). (invoke "make" "sly-refcard.pdf")
10125 (install-file "sly.info" info-dir)
10126 (copy-recursively "html" (string-append doc-dir "/html")))
10127 (for-each (lambda (f)
10128 (install-file f doc-dir)
10129 (delete-file f))
10130 doc-files)
10131 (delete-file-recursively "doc")
10132 #t))))))
10133 (home-page "https://github.com/joaotavora/sly")
10134 (synopsis "Sylvester the Cat's Common Lisp IDE")
10135 (description
10136 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
10137 contains the following improvements over it:
10138
10139 @enumerate
10140 @item A full-featured REPL based on Emacs's @code{comint.el}. Everything
10141 can be copied to the REPL;
10142 @item Stickers, or live code annotations that record values as code traverses them.
10143 @item Flex-style completion out-of-the-box, using Emacs's completion API.
10144 Company, Helm, and other supported natively, no plugin required;
10145 @item An interactive Trace Dialog;
10146 @item Multiple inspectors and multiple REPLs, with independent history.
10147 @item Regexp-capable @code{M-x sly-apropos}.
10148 @item Cleanly ASDF-loaded by default, including contribs, enabled out-of-the-box;
10149 @item \"Presentations\" replaced by interactive backreferences, which
10150 highlight the object and remain stable throughout the REPL session;
10151 @end enumerate
10152
10153 SLY tracks SLIME's bugfixes and all its familiar features (debugger, inspector,
10154 xref, etc.) are still available, but with better integration.")
10155 (license license:gpl3+))))
10156
10157 (define-public emacs-sly-quicklisp
10158 (let ((commit "01ebe3976a244309f2e277c09206831135a0b66c")
10159 (revision "1"))
10160 (package
10161 (name "emacs-sly-quicklisp")
10162 (version (git-version "0.0.0" revision commit))
10163 (home-page "https://github.com/joaotavora/sly-quicklisp")
10164 (source
10165 (origin
10166 (method git-fetch)
10167 (uri (git-reference
10168 (url home-page)
10169 (commit commit)))
10170 (file-name (git-file-name name version))
10171 (sha256
10172 (base32
10173 "1vfqmvayf35g6y3ljsm3rlzv5jm50qikhh4lv2zkkswj6gkkb1cv"))))
10174 (build-system emacs-build-system)
10175 (propagated-inputs
10176 `(("emacs-sly" ,emacs-sly)))
10177 (arguments
10178 `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
10179 #:phases
10180 ;; The package provides autoloads.
10181 (modify-phases %standard-phases
10182 (delete 'make-autoloads)
10183 (delete 'enable-autoloads-compilation))))
10184 (synopsis "Quicklisp support for SLY")
10185 (description
10186 "@command{sly-quicklisp} is an external contrib for SLY that provides a
10187 sly-quickload command that prompts the user for a package to install. ")
10188 (license license:gpl3+))))
10189
10190 (define-public emacs-sly-asdf
10191 (let ((commit "32ce14994e8faee9321605cec36d156b02996c46")
10192 (revision "4"))
10193 (package
10194 (name "emacs-sly-asdf")
10195 (version (git-version "0.1.0" revision commit))
10196 (home-page "https://github.com/mmgeorge/sly-asdf")
10197 (source
10198 (origin
10199 (method git-fetch)
10200 (uri (git-reference
10201 (url home-page)
10202 (commit commit)))
10203 (file-name (git-file-name name version))
10204 (sha256
10205 (base32
10206 "09x8l37wwqw74xc2frwzbfdb1if8rb3szg5akdk3v2qhik4sm3dd"))))
10207 (build-system emacs-build-system)
10208 (propagated-inputs
10209 `(("emacs-sly" ,emacs-sly)
10210 ("emacs-popup" ,emacs-popup)))
10211 (arguments
10212 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)))
10213 (synopsis "ASDF contrib for SLY")
10214 (description
10215 "@command{sly-asdf} is an external contrib for SLY that provides
10216 additional support for working with ASDF projects.")
10217 (license license:gpl3+))))
10218
10219 (define-public emacs-sly-named-readtables
10220 (let ((commit "a5a42674ccffa97ccd5e4e9742beaf3ea719931f")
10221 (revision "1"))
10222 (package
10223 (name "emacs-sly-named-readtables")
10224 (version (git-version "0.1" revision commit))
10225 (home-page "https://github.com/joaotavora/sly-named-readtables")
10226 (source
10227 (origin
10228 (method git-fetch)
10229 (uri (git-reference
10230 (url home-page)
10231 (commit commit)))
10232 (file-name (git-file-name name version))
10233 (sha256
10234 (base32
10235 "16asd119rzqrlclps2q6yrkis8jy5an5xgzzqvb7jdyq39zxg54q"))))
10236 (build-system emacs-build-system)
10237 (propagated-inputs
10238 `(("emacs-sly" ,emacs-sly)))
10239 (arguments
10240 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
10241 #:phases (modify-phases %standard-phases
10242 ;; Byte compilation of the autoload file fails.
10243 (delete 'enable-autoloads-compilation))))
10244 (synopsis "Named-readtables support for SLY")
10245 (description
10246 "@command{sly-named-readtables} is an external contrib for SLY that
10247 enables different readtables to be active in different parts of the same
10248 file.")
10249 (license license:gpl3+))))
10250
10251 (define-public emacs-sly-macrostep
10252 (let ((commit "5113e4e926cd752b1d0bcc1508b3ebad5def5fad")
10253 (revision "2"))
10254 (package
10255 (name "emacs-sly-macrostep")
10256 (version (git-version "0.1" revision commit))
10257 (home-page "https://github.com/joaotavora/sly-macrostep")
10258 (source
10259 (origin
10260 (method git-fetch)
10261 (uri (git-reference
10262 (url home-page)
10263 (commit commit)))
10264 (file-name (git-file-name name version))
10265 (sha256
10266 (base32
10267 "1nxf28gn4f3n0wnv7nb5sgl36fz175y470zs9hig4kq8cp0yal0r"))))
10268 (build-system emacs-build-system)
10269 (propagated-inputs
10270 `(("emacs-sly" ,emacs-sly)
10271 ("emacs-macrostep" ,emacs-macrostep)))
10272 (arguments
10273 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
10274 #:phases
10275 ;; The package provides autoloads.
10276 (modify-phases %standard-phases
10277 (delete 'make-autoloads)
10278 (delete 'enable-autoloads-compilation))))
10279 (synopsis "Expand Common Lisp macros inside source files with SLY")
10280 (description
10281 "@command{sly-macrostep} is a SLY contrib for expanding CL macros right
10282 inside the source file.")
10283 (license license:gpl3+))))
10284
10285 (define-public emacs-sly-stepper
10286 (let ((commit "ec3c0a7f3c8b82926882e5fcfdacf67b86d989f8"))
10287 (package
10288 (name "emacs-sly-stepper")
10289 (version (git-version "0.0.0" "1" commit))
10290 (home-page "https://github.com/joaotavora/sly-stepper")
10291 (source
10292 (origin
10293 (method git-fetch)
10294 (uri (git-reference
10295 (url home-page)
10296 (commit commit)))
10297 (file-name (git-file-name name version))
10298 (sha256
10299 (base32
10300 "1hxniaxifdw3m4y4yssgy22xcmmf558wx7rpz66wy5hwybjslf7b"))))
10301 (build-system emacs-build-system)
10302 (inputs
10303 `(("cl-agnostic-lizard" ,cl-agnostic-lizard)))
10304 (propagated-inputs
10305 `(("emacs-sly" ,emacs-sly)))
10306 (arguments
10307 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
10308 #:phases
10309 (modify-phases %standard-phases
10310 ;; The package provides autoloads.
10311 (delete 'make-autoloads)
10312 (delete 'enable-autoloads-compilation)
10313 (add-after 'add-source-to-load-path 'add-contrib-to-emacs-load-path
10314 (lambda* (#:key inputs #:allow-other-keys)
10315 (let ((sly (assoc-ref inputs "emacs-sly")))
10316 (setenv "EMACSLOADPATH"
10317 (string-append sly "/share/emacs/site-lisp/contrib:"
10318 (getenv "EMACSLOADPATH"))))
10319 #t))
10320 (add-after 'install 'find-agnostic-lizard
10321 (lambda* (#:key inputs outputs #:allow-other-keys)
10322 (let* ((out (assoc-ref outputs "out"))
10323 (file (string-append out "/share/emacs/site-lisp/"
10324 "slynk-stepper.lisp"))
10325 (asd (string-append
10326 (assoc-ref inputs "cl-agnostic-lizard")
10327 "/share/common-lisp/systems/agnostic-lizard.asd")))
10328 ;; agnostic-lizard is found at runtime.
10329 (substitute* file
10330 (("\\(require :asdf\\)")
10331 (string-append
10332 "(require :asdf)\n"
10333 " (funcall (read-from-string \"asdf:load-asd\")\n"
10334 " \"" asd "\")\n")))))))))
10335 (synopsis "Portable Common Lisp stepper interface for Emacs")
10336 (description
10337 "This package features a new, portable, visual stepping facility for
10338 Common Lisp, realized as an extension to SLY.")
10339 (license license:gpl3+))))
10340
10341 (define-public emacs-sly-package-inferred
10342 (let ((commit "800e71e2be631422277e2ec77e6d6f6ea20e95ef")
10343 (revision "1"))
10344 (package
10345 (name "emacs-sly-package-inferred")
10346 (version (git-version "0.1" revision commit))
10347 (home-page "https://github.com/40ants/sly-package-inferred")
10348 (source
10349 (origin
10350 (method git-fetch)
10351 (uri (git-reference
10352 (url home-page)
10353 (commit commit)))
10354 (file-name (git-file-name name version))
10355 (sha256
10356 (base32
10357 "1216idyp034nkqddhw4p53jkhhdxa6xnjjmsvijpf4rxqnfqvapg"))))
10358 (build-system emacs-build-system)
10359 (propagated-inputs
10360 `(("emacs-sly" ,emacs-sly)))
10361 (arguments
10362 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
10363 #:phases
10364 ;; The package provides autoloads.
10365 (modify-phases %standard-phases
10366 (delete 'make-autoloads))))
10367 (synopsis "Improved package inferred systems support for SLY")
10368 (description
10369 "@command{sly-package-inferred} is an external contrib for SLY that
10370 replaces its completion with a function which is better suited for systems
10371 using package inferred style.")
10372 (license license:gpl3+))))
10373
10374 (define-public emacs-lua-mode
10375 (package
10376 (name "emacs-lua-mode")
10377 (version "20201010")
10378 (home-page "https://github.com/immerrr/lua-mode/")
10379 (source
10380 (origin
10381 (method git-fetch)
10382 (uri (git-reference
10383 (url home-page)
10384 (commit (string-append "v" version))))
10385 (file-name (git-file-name name version))
10386 (sha256
10387 (base32 "0zf43f7fkrgki6pbc09zak975p4jx1yf3ipfs38hypfl9s5d6xrf"))))
10388 (build-system emacs-build-system)
10389 (arguments
10390 `(#:tests? #t
10391 #:test-command '("buttercup" "-l" "lua-mode.el")))
10392 (native-inputs
10393 `(("emacs-buttercup" ,emacs-buttercup)
10394 ("lua" ,lua)))
10395 (synopsis "Major mode for lua")
10396 (description
10397 "This Emacs package provides a mode for @uref{https://www.lua.org/,
10398 Lua programming language}.")
10399 (license license:gpl2+)))
10400
10401 (define-public emacs-ebuild-mode
10402 (package
10403 (name "emacs-ebuild-mode")
10404 (version "1.52")
10405 (source
10406 (origin
10407 (method url-fetch)
10408 (uri (string-append
10409 "https://dev.gentoo.org/~ulm/emacs/"
10410 "ebuild-mode-" version ".tar.xz"))
10411 (file-name (string-append name "-" version ".tar.xz"))
10412 (sha256
10413 (base32 "10nikbbwh612qlnms2i31963a0h3ccyg85vrxlizdpsqs4cjpg6h"))))
10414 (build-system emacs-build-system)
10415 (arguments
10416 '(#:phases
10417 (modify-phases %standard-phases
10418 (add-after 'install 'install-doc
10419 (lambda* (#:key outputs #:allow-other-keys)
10420 (invoke "make" "ebuild-mode.info")
10421 (install-file "ebuild-mode.info"
10422 (string-append (assoc-ref outputs "out")
10423 "/share/info"))
10424 #t)))))
10425 (native-inputs
10426 `(("texinfo" ,texinfo)))
10427 (home-page "https://devmanual.gentoo.org")
10428 (synopsis "Major modes for Gentoo package files")
10429 (description
10430 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
10431 news items, openrc and runscripts.")
10432 (license license:gpl2+)))
10433
10434 (define-public emacs-evil
10435 (package
10436 (name "emacs-evil")
10437 (version "1.14.0")
10438 (source
10439 (origin
10440 (method git-fetch)
10441 (uri (git-reference
10442 (url "https://github.com/emacs-evil/evil")
10443 (commit version)))
10444 (file-name (git-file-name name version))
10445 (sha256
10446 (base32
10447 "17xrn3s6a4afmls8fw8nnxa1jq9dmj2qqrxa2vngh50hxpz8840p"))))
10448 (arguments
10449 `(#:phases
10450 (modify-phases %standard-phases
10451 (add-before 'check 'fix-test-helpers
10452 (lambda _
10453 (substitute* "evil-test-helpers.el"
10454 (("\\(undo-tree-mode 1\\)") ""))
10455 #t))
10456 (add-before 'install 'make-info
10457 (lambda _
10458 (with-directory-excursion "doc/build/texinfo"
10459 (invoke "makeinfo" "--no-split"
10460 "-o" "evil.info" "evil.texi")))))))
10461 (build-system emacs-build-system)
10462 (native-inputs `(("texinfo" ,texinfo)))
10463 (home-page "https://github.com/emacs-evil/evil")
10464 (synopsis "Extensible Vi layer for Emacs")
10465 (description
10466 "Evil is an extensible vi layer for Emacs. It emulates the
10467 main features of Vim, and provides facilities for writing custom
10468 extensions.")
10469 (license license:gpl3+)))
10470
10471 (define-public emacs-evil-collection
10472 (package
10473 (name "emacs-evil-collection")
10474 (version "0.0.5")
10475 (source (origin
10476 (method git-fetch)
10477 (uri (git-reference
10478 (url "https://github.com/emacs-evil/evil-collection")
10479 (commit version)))
10480 (file-name (git-file-name name version))
10481 (sha256
10482 (base32
10483 "0dxrwcf5dnww0a9mvwjkcgm8ry3y282v9l85jh0645zk71nz1in3"))))
10484 (build-system emacs-build-system)
10485 (propagated-inputs
10486 `(("emacs-evil" ,emacs-evil)
10487 ("emacs-annalist" ,emacs-annalist)))
10488 (arguments
10489 `(#:include (cons* "^modes\\/" %default-include)))
10490 (home-page "https://github.com/emacs-evil/evil-collection")
10491 (synopsis "Collection of Evil bindings for many major and minor modes")
10492 (description "This is a collection of Evil bindings for the parts of
10493 Emacs that Evil does not cover properly by default, such as @code{help-mode},
10494 @code{M-x calendar}, Eshell and more.")
10495 (license license:gpl3+)))
10496
10497 (define-public emacs-evil-goggles
10498 (let ((commit "08a22058fd6a167f9f1b684c649008caef571459")
10499 (version "0.0.1")
10500 (revision "0"))
10501 (package
10502 (name "emacs-evil-goggles")
10503 (version (git-version version revision commit))
10504 (source
10505 (origin
10506 (method git-fetch)
10507 (uri (git-reference
10508 (url "https://github.com/edkolev/evil-goggles")
10509 (commit commit)))
10510 (file-name (git-file-name name version))
10511 (sha256
10512 (base32 "1p3vjrij63v9nrcyj3b5jsqzv9y7dgv9i1inx1q7x3s90vndavac"))))
10513 (build-system emacs-build-system)
10514 (propagated-inputs
10515 `(("emacs-evil" ,emacs-evil)))
10516 (home-page "https://github.com/edkolev/evil-goggles")
10517 (synopsis "Displays visual hints when editing with evil")
10518 (description "Creates a visual pulse to indicate the region that is
10519 being deleted, changed, yanked, or pasted when using evil commands")
10520 (license license:gpl3+))))
10521
10522 (define-public emacs-goto-chg
10523 (let ((commit "2af612153bc9f5bed135d25abe62f46ddaa9027f")
10524 (version "1.7.3")
10525 (revision "2"))
10526 (package
10527 (name "emacs-goto-chg")
10528 (version (git-version version revision commit))
10529 (source
10530 (origin
10531 (method git-fetch)
10532 (uri (git-reference
10533 (url "https://github.com/emacs-evil/goto-chg")
10534 (commit commit)))
10535 (file-name (git-file-name name version))
10536 (sha256
10537 (base32
10538 "1awmvihqgw6kspx192bcp9xp56xqbma90wlhxfxmidx3bvxghwpv"))))
10539 (build-system emacs-build-system)
10540 (home-page "https://github.com/emacs-evil/goto-chg")
10541 (synopsis "Go to the last change in the Emacs buffer")
10542 (description
10543 "This package provides @code{M-x goto-last-change} command that goes to
10544 the point of the most recent edit in the current Emacs buffer. When repeated,
10545 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
10546 used for reverse direction.")
10547 (license license:gpl2+))))
10548
10549 (define-public emacs-janpath-evil-numbers
10550 (let ((commit "d988041c1fe6e941dc8d591390750b237f71f524")
10551 (version "0.5")
10552 (revision "1"))
10553 (package
10554 (name "emacs-janpath-evil-numbers")
10555 (version (git-version version revision commit))
10556 (source
10557 (origin
10558 (method git-fetch)
10559 (uri (git-reference
10560 (url "https://github.com/janpath/evil-numbers")
10561 (commit commit)))
10562 (file-name (git-file-name name version))
10563 (sha256
10564 (base32
10565 "16zixhxxcb83m82f2cfiardfn99j3w41v6vh1qk6j9pplrlfw70v"))))
10566 (build-system emacs-build-system)
10567 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10568 (home-page "https://github.com/janpath/evil-numbers")
10569 (synopsis "Increment and decrement numeric literals")
10570 (description
10571 "This package provides functionality to search for a number up to the
10572 end of a line and increment or decrement it.")
10573 (license license:gpl3+))))
10574
10575 (define-public emacs-evil-owl
10576 (let ((commit "24c5f43df375194386344e69bc720ea3986c9510")
10577 (revision "3"))
10578 (package
10579 (name "emacs-evil-owl")
10580 (version (git-version "0.0.1" revision commit))
10581 (source
10582 (origin
10583 (method git-fetch)
10584 (uri (git-reference
10585 (url "https://github.com/mamapanda/evil-owl")
10586 (commit commit)))
10587 (file-name (git-file-name name version))
10588 (sha256
10589 (base32
10590 "0bqzch14whlmrcasakah3psrzswvkzd7mmi8hx5s64kfp29wbdhi"))))
10591 (build-system emacs-build-system)
10592 (propagated-inputs
10593 `(("emacs-evil" ,emacs-evil)))
10594 (arguments
10595 `(#:tests? #t
10596 #:test-command '("make" "test")))
10597 (home-page "https://github.com/mamapanda/evil-owl")
10598 (synopsis "Preview candidates when using Evil registers and marks")
10599 (description
10600 "This package supplements Evil's register- and mark-based commands with
10601 a popup window for previewing candidates.")
10602 (license license:gpl3+))))
10603
10604 (define-public emacs-evil-args
10605 (let ((commit "758ad5ae54ad34202064fec192c88151c08cb387")
10606 (revision "1"))
10607 (package
10608 (name "emacs-evil-args")
10609 (version (git-version "1.0" revision commit))
10610 (source
10611 (origin
10612 (method git-fetch)
10613 (uri (git-reference
10614 (url "https://github.com/wcsmith/evil-args")
10615 (commit commit)))
10616 (file-name (git-file-name name version))
10617 (sha256
10618 (base32
10619 "0k35glgsirc3cph8v5hhjrqfh4ndwh8a28qbr03y3jl8s453xcj7"))))
10620 (build-system emacs-build-system)
10621 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10622 (home-page "https://github.com/wcsmith/evil-args")
10623 (synopsis "Motions and text objects for delimited arguments in Evil")
10624 (description
10625 "This package provides motions and text objects for delimited
10626 arguments, such as arguments separated by commas and semicolons.")
10627 (license license:expat))))
10628
10629 (define-public emacs-evil-escape
10630 (package
10631 (name "emacs-evil-escape")
10632 (version "3.14")
10633 (source
10634 (origin
10635 (method git-fetch)
10636 (uri
10637 (git-reference
10638 (url "https://github.com/syl20bnr/evil-escape")
10639 (commit (string-append "v" version))))
10640 (file-name (git-file-name name version))
10641 (sha256
10642 (base32 "0s8lmmm25qabicwaj9jybpbd8mkc62yl7jnhk1lpablydjkv3w2i"))))
10643 (propagated-inputs
10644 `(("emacs-evil" ,emacs-evil)))
10645 (build-system emacs-build-system)
10646 (home-page "https://github.com/syl20bnr/evil-escape")
10647 (synopsis "Escape from insert state and everything else in Emacs")
10648 (description
10649 "Evil escape provides a customizable key sequence to escape from insert
10650 state and everything else in Emacs.")
10651 (license license:gpl3+)))
10652
10653 (define-public emacs-evil-exchange
10654 (let ((commit "47691537815150715e64e6f6ec79be7746c96120")
10655 (version "0.41")
10656 (revision "1"))
10657 (package
10658 (name "emacs-evil-exchange")
10659 (version (git-version version revision commit))
10660 (source
10661 (origin
10662 (method git-fetch)
10663 (uri (git-reference
10664 (url "https://github.com/Dewdrops/evil-exchange")
10665 (commit commit)))
10666 (file-name (git-file-name name version))
10667 (sha256
10668 (base32
10669 "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa"))))
10670 (build-system emacs-build-system)
10671 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10672 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
10673 (arguments
10674 `(#:phases
10675 (modify-phases %standard-phases
10676 (add-before 'check 'fix-makefile
10677 (lambda _
10678 (substitute* "Makefile"
10679 (("cask exec ") ""))
10680 #t)))
10681 #:tests? #t
10682 #:test-command '("make" "test")))
10683 (home-page "https://github.com/Dewdrops/evil-exchange")
10684 (synopsis "Exchange text easily within Evil")
10685 (description
10686 "This package, a port of @code{vim-exchange}, provides an Evil operator
10687 for exchanging text.")
10688 (license license:gpl3+))))
10689
10690 (define-public emacs-evil-replace-with-register
10691 (let ((commit "91cc7bf21a94703c441cc9212214075b226b7f67")
10692 (version "0.1")
10693 (revision "1"))
10694 (package
10695 (name "emacs-evil-replace-with-register")
10696 (version (git-version version revision commit))
10697 (source
10698 (origin
10699 (method git-fetch)
10700 (uri (git-reference
10701 (url "https://github.com/Dewdrops/evil-ReplaceWithRegister")
10702 (commit commit)))
10703 (file-name (git-file-name name version))
10704 (sha256
10705 (base32
10706 "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11"))))
10707 (build-system emacs-build-system)
10708 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10709 (home-page "https://github.com/Dewdrops/evil-ReplaceWithRegister")
10710 (synopsis "Quickly replace text with the contents of a register")
10711 (description
10712 "This package provides an Evil operator for replacing text with the
10713 contents of a register.")
10714 (license license:gpl3+))))
10715
10716 (define-public emacs-evil-indent-plus
10717 (let ((commit "0c7501e6efed661242c3a20e0a6c79a6455c2c40")
10718 (version "1.0.0")
10719 (revision "1"))
10720 (package
10721 (name "emacs-evil-indent-plus")
10722 (version (git-version version revision commit))
10723 (source
10724 (origin
10725 (method git-fetch)
10726 (uri (git-reference
10727 (url "https://github.com/TheBB/evil-indent-plus")
10728 (commit commit)))
10729 (file-name (git-file-name name version))
10730 (sha256
10731 (base32
10732 "1g6r1ydscwjvmhh1zg4q3nap4avk8lb9msdqrh7dff6pla0r2qs6"))))
10733 (build-system emacs-build-system)
10734 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10735 (home-page "https://github.com/TheBB/evil-indent-plus")
10736 (synopsis "Text objects based on indentation")
10737 (description
10738 "This package adds new text objects for @code{evil-mode} based on
10739 blocks having the same or higher indentation, including or excluding
10740 surrounding lines.")
10741 (license license:gpl2+))))
10742
10743 (define-public emacs-evil-text-object-python
10744 (let ((commit "9a064fe6475429145cbcc3b270fcc963b67adb15")
10745 (version "1.0.1")
10746 (revision "1"))
10747 (package
10748 (name "emacs-evil-text-object-python")
10749 (version (git-version version revision commit))
10750 (source
10751 (origin
10752 (method git-fetch)
10753 (uri (git-reference
10754 (url "https://github.com/wbolster/evil-text-object-python")
10755 (commit commit)))
10756 (file-name (git-file-name name version))
10757 (sha256
10758 (base32
10759 "074zpm6mmr1wfl6d5xdf8jk1fs4ccpbzf4ahhkwga9g71xiplszv"))))
10760 (build-system emacs-build-system)
10761 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10762 (home-page "https://github.com/wbolster/evil-text-object-python")
10763 (synopsis "Text objects for Python")
10764 (description
10765 "This package provides @code{evil-mode} text objects for Python.")
10766 (license license:gpl3+))))
10767
10768 (define-public emacs-evil-lion
10769 (let ((commit "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab")
10770 (revision "1"))
10771 (package
10772 (name "emacs-evil-lion")
10773 (version (git-version "0.0.2" revision commit))
10774 (source
10775 (origin
10776 (method git-fetch)
10777 (uri (git-reference
10778 (url "https://github.com/edkolev/evil-lion")
10779 (commit commit)))
10780 (file-name (git-file-name name version))
10781 (sha256
10782 (base32
10783 "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q"))))
10784 (build-system emacs-build-system)
10785 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10786 (arguments
10787 `(#:tests? #t
10788 #:test-command '("make" "test")))
10789 (home-page "https://github.com/edkolev/evil-lion")
10790 (synopsis "Align operator for @code{evil-mode}")
10791 (description
10792 "This package, a port of @code{vim-lion}, provides an operator for
10793 aligning text objects based on separators.")
10794 (license license:gpl3+))))
10795
10796 (define-public emacs-evil-expat
10797 (let ((commit "f4fcd0aa3edc359adb5c986b5dd9188d220d84e2")
10798 (revision "1"))
10799 (package
10800 (name "emacs-evil-expat")
10801 (version (git-version "0.0.1" revision commit))
10802 (source
10803 (origin
10804 (method git-fetch)
10805 (uri (git-reference
10806 (url "https://github.com/edkolev/evil-expat")
10807 (commit commit)))
10808 (file-name (git-file-name name version))
10809 (sha256
10810 (base32
10811 "0872ix682hkdz0k8pn6sb54rqkx00rz5fxpd5j2snx406yagpaxz"))))
10812 (build-system emacs-build-system)
10813 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10814 (arguments
10815 `(#:tests? #t
10816 #:test-command '("make" "test")))
10817 (home-page "https://github.com/edkolev/evil-expat")
10818 (synopsis "Extra @code{ex} commands for @code{evil-mode}")
10819 (description
10820 "This package provides additional commands for the @code{ex} command
10821 line, including functions for version control with Git and for copying and
10822 pasting into and from @code{tmux} paste buffers.")
10823 (license license:gpl3+))))
10824
10825 (define-public emacs-evil-nerd-commenter
10826 (package
10827 (name "emacs-evil-nerd-commenter")
10828 (version "3.5.3")
10829 (source
10830 (origin
10831 (method git-fetch)
10832 (uri (git-reference
10833 (url "https://github.com/redguardtoo/evil-nerd-commenter")
10834 (commit version)))
10835 (file-name (git-file-name name version))
10836 (sha256
10837 (base32
10838 "1y5pn3rkqj8dxp5c7dsci621vnv6hsia74w2c1hybkkrjbka851q"))))
10839 (build-system emacs-build-system)
10840 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10841 (home-page "https://github.com/redguardtoo/evil-nerd-commenter")
10842 (synopsis "Comment and uncomment lines efficiently")
10843 (description
10844 "This package provides text objects and operators for comments within
10845 @code{evil-mode}.")
10846 (license license:gpl3+)))
10847
10848 (define-public emacs-evil-visual-replace
10849 (package
10850 (name "emacs-evil-visual-replace")
10851 (version "0.0.5")
10852 (source
10853 (origin
10854 (method git-fetch)
10855 (uri (git-reference
10856 (url "https://github.com/troyp/evil-visual-replace")
10857 (commit version)))
10858 (file-name (git-file-name name version))
10859 (sha256
10860 (base32
10861 "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"))))
10862 (build-system emacs-build-system)
10863 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10864 (home-page "https://github.com/troyp/evil-visual-replace")
10865 (synopsis "Replacement commands for @code{evil-mode} visual blocks")
10866 (description
10867 "This package provides versions of @code{query-replace} and
10868 @code{replace-regexp} that work for @code{evil-mode} visual blocks.")
10869 (license license:gpl2+)))
10870
10871 (define-public emacs-evil-visualstar
10872 (let ((commit "06c053d8f7381f91c53311b1234872ca96ced752")
10873 (version "0.2.0")
10874 (revision "1"))
10875 (package
10876 (name "emacs-evil-visualstar")
10877 (version (git-version version revision commit))
10878 (source
10879 (origin
10880 (method git-fetch)
10881 (uri (git-reference
10882 (url "https://github.com/bling/evil-visualstar")
10883 (commit commit)))
10884 (file-name (git-file-name name version))
10885 (sha256
10886 (base32
10887 "0mkbzw12fav945icibc2293m5haxqr3hzkyli2cf4ssk6yvn0x4c"))))
10888 (build-system emacs-build-system)
10889 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10890 (home-page "https://github.com/bling/evil-visualstar")
10891 (synopsis "Instantly search using the visual selection")
10892 (description
10893 "This package provides @code{evil-mode} functions for using selected text
10894 to search.")
10895 (license license:gpl3+))))
10896
10897 (define-public emacs-monky
10898 (package
10899 (name "emacs-monky")
10900 (version "0.1")
10901 (source (origin
10902 (method git-fetch)
10903 (uri (git-reference
10904 (url "https://github.com/ananthakumaran/monky")
10905 (commit version)))
10906 (file-name (git-file-name name version))
10907 (sha256
10908 (base32
10909 "1fgn7al4zwz2k5wb5dy3byqg9lsrjk9fra341mxh5ma2pfwxjgps"))))
10910 (build-system emacs-build-system)
10911 (home-page "https://ananthakumaran.in/monky/index.html")
10912 (arguments
10913 `(#:tests? #t
10914 #:test-command '("emacs" "--batch"
10915 "-l" "test/monky-unit-test.el"
10916 "-f" "ert-run-tests-batch-and-exit")))
10917 (synopsis "Interactive interface for the Mercurial version control system")
10918 (description
10919 "Monky provides an Emacs interface for Mercurial (Hg). Using Monky, you
10920 can selectively commit files, view the diffs, and other things.")
10921 (license license:gpl3+)))
10922
10923 (define-public emacs-monroe
10924 (package
10925 (name "emacs-monroe")
10926 (version "0.3.1")
10927 (source
10928 (origin
10929 (method git-fetch)
10930 (uri (git-reference
10931 (url "https://github.com/sanel/monroe")
10932 (commit version)))
10933 (file-name (git-file-name name version))
10934 (sha256
10935 (base32 "101lfrykdbv37spkbw7zihhx26bc1lhjyxbanrcp9880bxj04jiy"))))
10936 (build-system emacs-build-system)
10937 (home-page "https://github.com/sanel/monroe")
10938 (synopsis "Clojure nREPL client for Emacs")
10939 (description
10940 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
10941 distribution, primarily targeting Clojure users")
10942 (license license:gpl3+)))
10943
10944 (define-public emacs-orgalist
10945 (package
10946 (name "emacs-orgalist")
10947 (version "1.13")
10948 (source
10949 (origin
10950 (method url-fetch)
10951 (uri (string-append "https://elpa.gnu.org/packages/"
10952 "orgalist-" version ".el"))
10953 (sha256
10954 (base32 "1wkxc5kcy1g4lx6pd78pa8znncjyl9zyhsvz7wpp56qmhq4hlav3"))))
10955 (build-system emacs-build-system)
10956 (home-page "https://elpa.gnu.org/packages/orgalist.html")
10957 (synopsis "Manage Org-like lists in non-Org buffers")
10958 (description "Orgalist writes and manages Org mode's plain lists in
10959 non-Org buffers. More specifically, it supports the syntax of Org mode for
10960 numbered, unnumbered, description items, checkboxes, and counter cookies.
10961
10962 The library also implements radio lists, i.e., lists written in Org syntax
10963 later translated into the host format, e.g., LaTeX or HTML.")
10964 (license license:gpl3+)))
10965
10966 (define-public emacs-writegood-mode
10967 (package
10968 (name "emacs-writegood-mode")
10969 (version "2.0.2")
10970 (home-page "https://github.com/bnbeckwith/writegood-mode")
10971 (source (origin
10972 (method git-fetch)
10973 (uri (git-reference
10974 (url home-page)
10975 (commit (string-append "v" version))))
10976 (sha256
10977 (base32
10978 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
10979 (file-name (string-append name "-checkout"))))
10980 (build-system emacs-build-system)
10981 (synopsis "Polish up poor writing on the fly")
10982 (description
10983 "This minor mode tries to find and highlight problems with your writing
10984 in English as you type. It primarily detects \"weasel words\" and abuse of
10985 passive voice.")
10986 (license license:gpl3+)))
10987
10988 (define-public emacs-neotree
10989 (package
10990 (name "emacs-neotree")
10991 (version "0.5.2")
10992 (home-page "https://github.com/jaypei/emacs-neotree")
10993 (source (origin
10994 (method git-fetch)
10995 (uri (git-reference
10996 (url home-page)
10997 (commit version)))
10998 (sha256
10999 (base32
11000 "0hx72fq10772bbyqrj7mhhp02k26cccjxdadiqm1ykainhfmn1x0"))
11001 (file-name (git-file-name name version))))
11002 (build-system emacs-build-system)
11003 (synopsis "Folder tree view for Emacs")
11004 (description "This Emacs package provides a folder tree view.")
11005 (license license:gpl3+)))
11006
11007 (define-public emacs-org
11008 (package
11009 (name "emacs-org")
11010 ;; emacs-org-contrib inherits from this package. Please update it as
11011 ;; well.
11012 (version "9.4.4")
11013 (source
11014 (origin
11015 (method url-fetch)
11016 (uri (string-append "https://elpa.gnu.org/packages/org-" version ".tar"))
11017 (sha256
11018 (base32 "05ma8n6hr10323d85ay8ai0xrpc9q2m93n8avqh7j9fmmb3bhr0b"))))
11019 (build-system emacs-build-system)
11020 (arguments
11021 `(#:phases
11022 (modify-phases %standard-phases
11023 ;; FIXME: The elpa tarball upstream does not include the version
11024 ;; number, remove this phase when this is fixed.
11025 ;; https://lists.gnu.org/archive/html/emacs-orgmode/2020-12/msg00729.html
11026 (add-after 'unpack 'fix-org-version
11027 (lambda _
11028 (substitute* "org-version.el"
11029 (("org-release \"\"")
11030 (string-append "org-release \"" ,version "\"")))
11031 #t))
11032 (add-after 'install 'install-documentation
11033 (lambda* (#:key outputs #:allow-other-keys)
11034 (let* ((share (string-append (assoc-ref outputs "out") "/share"))
11035 (info-dir (string-append share "/info"))
11036 (doc-dir (string-append share "/doc/" ,name "-" ,version)))
11037 (install-file "org.info" info-dir)
11038 (install-file "orgguide.info" info-dir)
11039 ;; XXX: "orgcard.pdf" is not built in Org 9.4.4.
11040 ;; (install-file "orgcard.pdf" doc-dir)
11041 )
11042 #t)))))
11043 (home-page "https://orgmode.org/")
11044 (synopsis "Outline-based notes management and organizer")
11045 (description "Org is an Emacs mode for keeping notes, maintaining TODO
11046 lists, and project planning with a fast and effective lightweight markup
11047 language. It also is an authoring system with unique support for literate
11048 programming and reproducible research.")
11049 (license license:gpl3+)))
11050
11051 (define-public emacs-org-contrib
11052 (package
11053 (inherit emacs-org)
11054 (name "emacs-org-contrib")
11055 (version "20201222")
11056 (source
11057 (origin
11058 (method url-fetch)
11059 (uri (string-append "https://orgmode.org/elpa/"
11060 "org-plus-contrib-" version ".tar"))
11061 (sha256
11062 (base32 "1pa8h5dpi5yj3j7v0aaby8sjwxvmgnbip2ilyl5pac1rlbz0jn40"))
11063 ;; ob-sclang.el is packaged separately to avoid the dependency on
11064 ;; SuperCollider and qtwebengine.
11065 (modules '((guix build utils)))
11066 (snippet '(begin (delete-file "ob-sclang.el") #t))))
11067 (arguments
11068 `(#:modules ((guix build emacs-build-system)
11069 (guix build utils)
11070 (guix build emacs-utils)
11071 (ice-9 ftw)
11072 (srfi srfi-1))
11073 #:phases
11074 (modify-phases %standard-phases
11075 (add-after 'install 'delete-org-files
11076 (lambda* (#:key inputs outputs #:allow-other-keys)
11077 (let* ((out (assoc-ref outputs "out"))
11078 (org (assoc-ref inputs "org"))
11079 (contrib-files
11080 (map basename (find-files out)))
11081 (org+contrib-files
11082 (map basename (find-files org)))
11083 (duplicates (lset-intersection string=?
11084 contrib-files
11085 org+contrib-files)))
11086 (with-directory-excursion
11087 (string-append out "/share/emacs/site-lisp")
11088 (for-each delete-file duplicates))
11089 #t))))))
11090 (propagated-inputs
11091 `(("arduino-mode" ,emacs-arduino-mode)
11092 ("cider" ,emacs-cider)
11093 ("org" ,emacs-org)))
11094 (synopsis "Contributed packages to Org mode")
11095 (description "Org is an Emacs mode for keeping notes, maintaining TODO
11096 lists, and project planning with a fast and effective plain-text system.
11097
11098 This package is equivalent to org-plus-contrib, but only includes additional
11099 files that you would find in @file{contrib/} from the git repository.")))
11100
11101 (define-public emacs-org-pretty-table
11102 ;; There is no release yet.
11103 (let ((commit "1331c600b83d95b28730b1bfcb48369ac1cf12ef")
11104 (revision "0"))
11105 (package
11106 (name "emacs-org-pretty-table")
11107 (version (git-version "0.0.1" revision commit))
11108 (source
11109 (origin
11110 (method git-fetch)
11111 (uri (git-reference
11112 (url "https://github.com/Fuco1/org-pretty-table")
11113 (commit commit)))
11114 (file-name (git-file-name name version))
11115 (sha256
11116 (base32 "0yvqxh66y400n2n5ykmb1zrzd80bakffpwn6nmf37728x4cj8krh"))))
11117 (build-system emacs-build-system)
11118 (home-page "https://github.com/Fuco1/org-pretty-table")
11119 (synopsis "Make tables in Org mode and OrgTbl mode prettier")
11120 (description
11121 "This package displays tables in Org mode and OrgTbl mode using Unicode
11122 characters.")
11123 (license license:gpl3+))))
11124
11125 (define-public emacs-ob-sclang
11126 (package
11127 (inherit emacs-org-contrib)
11128 (name "emacs-ob-sclang")
11129 (source
11130 (origin (inherit (package-source emacs-org-contrib))
11131 (modules '((guix build utils)))
11132 (snippet
11133 '(begin
11134 (for-each (lambda (file)
11135 (unless (equal? file "./ob-sclang.el")
11136 (delete-file file)))
11137 (find-files "." "\\.el"))
11138 #t))))
11139 (propagated-inputs
11140 `(("org" ,emacs-org)
11141 ("scel" ,emacs-scel)))
11142 (synopsis "Org Babel support for SuperCollider")
11143 (description "This package adds support for evaluating @code{sclang}
11144 Org mode source blocks. It is extracted from the @code{emacs-org-contrib}
11145 package.")))
11146
11147 (define-public emacs-org-edna
11148 (package
11149 (name "emacs-org-edna")
11150 (version "1.1.2")
11151 (source (origin
11152 (method bzr-fetch)
11153 (uri (bzr-reference
11154 (url "bzr://bzr.savannah.nongnu.org/org-edna-el")
11155 (revision version)))
11156 (file-name (string-append name "-" version "-checkout"))
11157 (sha256
11158 (base32
11159 "01dblddgx0yid5hrgl4swbr4grhv057kfbdy122wihzqpsrgq86n"))))
11160 (build-system emacs-build-system)
11161 (home-page "https://savannah.nongnu.org/projects/org-edna-el/")
11162 (synopsis "Manage Org task dependencies")
11163 (description "This package provides an extensible means of specifying
11164 conditions which must be fulfilled before a task can be completed and actions
11165 to take once it is. Org Edna runs when either the BLOCKER or TRIGGER
11166 properties are set on a heading, and when it is changing from a TODO state to
11167 a DONE state.")
11168 (license license:gpl3+)))
11169
11170 (define-public emacs-flx
11171 (package
11172 (name "emacs-flx")
11173 (version "0.6.1")
11174 (source
11175 (origin
11176 (method git-fetch)
11177 (uri (git-reference
11178 (url "https://github.com/lewang/flx")
11179 (commit (string-append "v" version))))
11180 (sha256
11181 (base32
11182 "0sjybrcnb2sl33swy3q664vqrparajcl0m455gciiih2j87hwadc"))
11183 (file-name (git-file-name name version))))
11184 (build-system emacs-build-system)
11185 (home-page "https://github.com/lewang/flx")
11186 (synopsis "Fuzzy matching for Emacs")
11187 (description
11188 "Flx provides fuzzy matching for emacs a la sublime text.
11189 The sorting algorithm is a balance between word beginnings (abbreviation)
11190 and contiguous matches (substring). The longer the substring match,
11191 the higher it scores. This maps well to how we think about matching.
11192 Flx has support for ido (interactively do things) through flx-ido.")
11193 (license license:gpl3+)))
11194
11195 (define-public emacs-cyberpunk-theme
11196 (package
11197 (name "emacs-cyberpunk-theme")
11198 (version "1.22")
11199 (source
11200 (origin
11201 (method git-fetch)
11202 (uri (git-reference
11203 (url "https://github.com/n3mo/cyberpunk-theme.el/")
11204 (commit version)))
11205 (sha256
11206 (base32
11207 "06nff38pcy5rgz13svkajsg0jjk73qy4a8m7p9f76yxcywxlgxlc"))
11208 (file-name (git-file-name name version))))
11209 (build-system emacs-build-system)
11210 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
11211 (synopsis "Cyberpunk theme for Emacs built-in color theme support")
11212 (description
11213 "Cyberpunk color theme for the Emacs 24+ built-in color theme support
11214 known loosely as deftheme. Many mode-specific customizations are included.")
11215 (license license:gpl3+)))
11216
11217 (define-public emacs-dart-mode
11218 (package
11219 (name "emacs-dart-mode")
11220 (version "1.0.5")
11221 (source
11222 (origin
11223 (method git-fetch)
11224 (uri (git-reference
11225 (url "https://github.com/bradyt/dart-mode")
11226 (commit version)))
11227 (file-name (git-file-name name version))
11228 (sha256
11229 (base32 "1qmdlwjmmqyyb65sqvfpygifai5m0llc815vp0jqwp8ldd8ls172"))))
11230 (build-system emacs-build-system)
11231 (propagated-inputs
11232 `(("emacs-dash" ,emacs-dash)
11233 ("emacs-flycheck" ,emacs-flycheck)
11234 ("emacs-s" ,emacs-s)))
11235 (home-page "https://github.com/bradyt/dart-mode")
11236 (synopsis "Emacs mode for the Dart programming language")
11237 (description
11238 "Dart mode is an Emacs major mode for editing Dart files. It provides
11239 basic syntax highlighting and indentation.")
11240 (license license:gpl3+)))
11241
11242 (define-public emacs-danneskjold-theme
11243 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
11244 (revision "1"))
11245 (package
11246 (name "emacs-danneskjold-theme")
11247 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
11248 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
11249 (source
11250 (origin
11251 (method git-fetch)
11252 (uri (git-reference
11253 (url home-page)
11254 (commit commit)))
11255 (file-name (git-file-name name version))
11256 (sha256
11257 (base32
11258 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
11259 (build-system emacs-build-system)
11260 (arguments
11261 `(#:phases
11262 (modify-phases %standard-phases
11263 (add-after 'unpack 'delete-screenshots
11264 (lambda _
11265 (delete-file-recursively "screenshots") #t)))))
11266 (synopsis "High-contrast Emacs theme")
11267 (description
11268 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
11269 (license license:gpl3+))))
11270
11271 (define-public emacs-dream-theme
11272 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
11273 (revision "1"))
11274 (package
11275 (name "emacs-dream-theme")
11276 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
11277 (source
11278 (origin
11279 (method git-fetch)
11280 (uri (git-reference
11281 (url "https://github.com/djcb/dream-theme")
11282 (commit commit)))
11283 (file-name (git-file-name name version))
11284 (sha256
11285 (base32
11286 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
11287 (build-system emacs-build-system)
11288 (home-page "https://github.com/djcb/dream-theme")
11289 (synopsis "High-contrast Emacs theme")
11290 (description
11291 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
11292 by zenburn, sinburn and similar themes, but slowly diverging from them.")
11293 (license license:gpl3+))))
11294
11295 (define-public emacs-dracula-theme
11296 (package
11297 (name "emacs-dracula-theme")
11298 (version "1.7.0")
11299 (source
11300 (origin
11301 (method git-fetch)
11302 (uri (git-reference
11303 (url "https://github.com/dracula/emacs")
11304 (commit (string-append "v" version))))
11305 (file-name (git-file-name name version))
11306 (sha256
11307 (base32 "15y2djc5jljlvls1x9kp50m1kp0dcksmyixafsyimj66xpq9ngh0"))))
11308 (build-system emacs-build-system)
11309 (home-page "https://draculatheme.com/")
11310 (synopsis "Dark theme for Emacs")
11311 (description
11312 "Dracula is a dark color theme for many editors, shells and more. This
11313 package provides the Emacs theme.")
11314 (license license:expat)))
11315
11316 (define-public emacs-auto-complete
11317 (package
11318 (name "emacs-auto-complete")
11319 (version "1.5.1")
11320 (source
11321 (origin
11322 (method git-fetch)
11323 (uri (git-reference
11324 (url "https://github.com/auto-complete/auto-complete")
11325 (commit (string-append "v" version))))
11326 (sha256
11327 (base32
11328 "04i9b11iksg6acn885wl3qgi5xpsm3yszlqmd2x21yhprndlz7gb"))
11329 (file-name (git-file-name name version))))
11330 (build-system emacs-build-system)
11331 (propagated-inputs
11332 `(("emacs-popup" ,emacs-popup)))
11333 (home-page "https://github.com/auto-complete/auto-complete")
11334 (synopsis "Intelligent auto-completion extension for Emacs")
11335 (description
11336 "Auto-Complete is an intelligent auto-completion extension for Emacs.
11337 It extends the standard Emacs completion interface and provides an environment
11338 that allows users to concentrate more on their own work. Its features are:
11339 a visual interface, reduce overhead of completion by using statistic method,
11340 extensibility.")
11341 (license license:gpl3+)))
11342
11343 (define-public emacs-nginx-mode
11344 (package
11345 (name "emacs-nginx-mode")
11346 (version "1.1.9")
11347 (source
11348 (origin
11349 (method git-fetch)
11350 (uri (git-reference
11351 (url "https://github.com/ajc/nginx-mode")
11352 (commit (string-append "v" version))))
11353 (file-name (git-file-name name version))
11354 (sha256
11355 (base32 "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"))))
11356 (build-system emacs-build-system)
11357 (home-page "https://github.com/ajc/nginx-mode")
11358 (synopsis "Emacs major mode for editing nginx config files")
11359 (description "This package provides an Emacs major mode for
11360 editing nginx config files.")
11361 (license license:gpl2+)))
11362
11363 (define-public emacs-stream
11364 (package
11365 (name "emacs-stream")
11366 (version "2.2.5")
11367 (source
11368 (origin
11369 (method url-fetch)
11370 (uri (string-append "https://elpa.gnu.org/packages/"
11371 "stream-" version ".tar"))
11372 (file-name (git-file-name name version))
11373 (sha256
11374 (base32 "00c3n4gyxzv7vczqms0d62kl8zsmjfyxa92mwxn2snyx857a9jfw"))))
11375 (build-system emacs-build-system)
11376 (home-page "http://elpa.gnu.org/packages/stream.html")
11377 (synopsis "Implementation of streams for Emacs")
11378 (description "This library provides an implementation of streams for Emacs.
11379 Streams are implemented as delayed evaluation of cons cells.")
11380 (license license:gpl3+)))
11381
11382 (define-public emacs-cl-print
11383 (let ((commit "1a70c553dfb04352afb5b8696fe0cef8acc8f991")
11384 (revision "1"))
11385 (package
11386 (name "emacs-cl-print")
11387 (version (git-version "1.0" revision commit))
11388 (source
11389 (origin
11390 (method git-fetch)
11391 (uri (git-reference
11392 (url "https://github.com/emacsmirror/cl-print")
11393 (commit commit)))
11394 (file-name (git-file-name name version))
11395 (sha256
11396 (base32 "164zbnsi5mssvcpy0158fm7fw5cmd1r5nkpn29fmd2b2scy3gm79"))))
11397 (build-system emacs-build-system)
11398 (home-page "https://github.com/emacsmirror/cl-print")
11399 (synopsis "CL-style generic printing")
11400 (description "This package provides a generic function,
11401 @code{cl-print-object}, to which the programmer can add any method they
11402 please.")
11403 (license license:gpl3+))))
11404
11405 (define-public emacs-el-search
11406 (let ((commit "07bed84dd8ae9e4c6c648834224b1d33fdbd51e0")
11407 (revision "2"))
11408 (package
11409 (name "emacs-el-search")
11410 (version (git-version "1.12.6.1" revision commit))
11411 (source
11412 (origin
11413 (method git-fetch)
11414 (uri (git-reference
11415 (url "https://github.com/emacsmirror/el-search")
11416 (commit commit)))
11417 (file-name (git-file-name name version))
11418 (sha256
11419 (base32 "10w1ldgijdhfsrazp0y3bm76jv5wvdn94k1yp0pmc2m1896b58ak"))))
11420 (build-system emacs-build-system)
11421 (inputs
11422 `(("emacs-stream" ,emacs-stream)
11423 ("emacs-cl-print" ,emacs-cl-print)))
11424 (home-page "https://github.com/emacsmirror/el-search")
11425 (synopsis "Expression based interactive search for emacs-lisp-mode")
11426 (description "This package provides expression based interactive search
11427 procedures for emacs-lisp-mode.")
11428 (license license:gpl3+))))
11429
11430 (define-public emacs-ht
11431 (package
11432 (name "emacs-ht")
11433 (version "2.3")
11434 (source
11435 (origin
11436 (method git-fetch)
11437 (uri (git-reference
11438 (url "https://github.com/Wilfred/ht.el")
11439 (commit version)))
11440 (file-name (git-file-name name version))
11441 (sha256
11442 (base32 "0can9v336lgnq0q2ha3js0565jzp3dlwwqxhcbx5swk5kp148f07"))))
11443 (build-system emacs-build-system)
11444 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
11445 (native-inputs
11446 `(("emacs-ert-runner" ,emacs-ert-runner)))
11447 (arguments
11448 `(#:tests? #t
11449 #:test-command '("ert-runner")))
11450 (home-page "https://github.com/Wilfred/ht.el")
11451 (synopsis "Hash table library for Emacs")
11452 (description
11453 "This package simplifies the use of hash tables in elisp. It also
11454 provides functions to convert hash tables from and to alists and plists.")
11455 (license license:gpl3+)))
11456
11457 (define-public emacs-log4e
11458 (package
11459 (name "emacs-log4e")
11460 (version "0.3.3")
11461 (source
11462 (origin
11463 (method git-fetch)
11464 (uri (git-reference
11465 (url "https://github.com/aki2o/log4e")
11466 (commit (string-append "v" version))))
11467 (file-name (git-file-name name version))
11468 (sha256
11469 (base32 "0dbnks76v05allzkhx9zmyqpn6sk5376n8k2rbpnaw6gmz1ib2fv"))))
11470 (build-system emacs-build-system)
11471 (arguments
11472 `(#:phases
11473 (modify-phases %standard-phases
11474 (add-after 'unpack 'remove-tests
11475 ;; Guile builder complains about null characters in some
11476 ;; strings of test files. Remove "test" directory (it is not
11477 ;; needed anyway).
11478 (lambda _
11479 (delete-file-recursively "test"))))))
11480 (home-page "https://github.com/aki2o/log4e")
11481 (synopsis "Logging framework for elisp")
11482 (description
11483 "This package provides a logging framework for elisp. It allows
11484 you to deal with multiple log levels.")
11485 (license license:gpl3+)))
11486
11487 (define-public emacs-gn-mode
11488 (package
11489 (name "emacs-gn-mode")
11490 (version "0.4.1")
11491 (source
11492 (origin
11493 (method git-fetch)
11494 (uri (git-reference
11495 (url "https://github.com/lashtear/gn-mode")
11496 (commit version)))
11497 (file-name (git-file-name name version))
11498 (sha256
11499 (base32 "0dz5kgzbgsssr38z2kg6m915cvfys42ag1k42bsra3la2pixywfx"))))
11500 (build-system emacs-build-system)
11501 (home-page "https://github.com/lashtear/gn-mode")
11502 (synopsis "Emacs major mode for editing GN (ninja generator) config files")
11503 (description
11504 "GN mode is a major mode for editing @acronym{GN,Ninja Generator} config
11505 files in Emacs. Files of this type (e.g., @file{BUILD.gn} or @file{*.gni})
11506 are common in Chromium-derived projects.")
11507 (license license:bsd-3)))
11508
11509 (define-public emacs-gntp
11510 (package
11511 (name "emacs-gntp")
11512 (version "0.1")
11513 (source
11514 (origin
11515 (method git-fetch)
11516 (uri (git-reference
11517 (url "https://github.com/tekai/gntp.el")
11518 (commit (string-append "v" version))))
11519 (file-name (git-file-name name version))
11520 (sha256
11521 (base32 "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a"))))
11522 (build-system emacs-build-system)
11523 (home-page "https://github.com/tekai/gntp.el")
11524 (synopsis "Growl Notification Protocol for Emacs")
11525 (description
11526 "This package implements the Growl Notification Protocol GNTP
11527 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
11528 It is incomplete as it only lets you send but not receive
11529 notifications.")
11530 (license license:bsd-3)))
11531
11532 (define-public emacs-alert
11533 (package
11534 (name "emacs-alert")
11535 (version "1.3")
11536 (source
11537 (origin
11538 (method git-fetch)
11539 (uri (git-reference
11540 (url "https://github.com/jwiegley/alert")
11541 (commit (string-append "v" version))))
11542 (file-name (git-file-name name version))
11543 (sha256
11544 (base32 "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r"))))
11545 (build-system emacs-build-system)
11546 (propagated-inputs
11547 `(("emacs-gntp" ,emacs-gntp)
11548 ("emacs-log4e" ,emacs-log4e)))
11549 (home-page "https://github.com/jwiegley/alert")
11550 (synopsis "Growl-style notification system for Emacs")
11551 (description
11552 "Alert is a Growl-workalike for Emacs which uses a common notification
11553 interface and multiple, selectable \"styles\", whose use is fully
11554 customizable by the user.")
11555 (license license:gpl2+)))
11556
11557 (define-public emacs-zones
11558 (package
11559 (name "emacs-zones")
11560 (version "2019.7.13")
11561 (source
11562 (origin
11563 (method url-fetch)
11564 (uri (string-append "https://elpa.gnu.org/packages/"
11565 "zones-" version ".el"))
11566 (sha256
11567 (base32 "0qp1ba2pkqx9d35g7z8hf8qs2k455krf2a92l4rka3ipsbnmq5k1"))))
11568 (build-system emacs-build-system)
11569 (home-page "https://www.emacswiki.org/emacs/Zones")
11570 (synopsis "Define and act on multiple zones of buffer text")
11571 (description
11572 "Library @file{zones.el} lets you easily define and subsequently act on
11573 multiple zones of buffer text. You can think of this as enlarging the notion
11574 of region. In effect, it can remove the requirement of target text being
11575 a contiguous sequence of characters. A set of buffer zones is, in effect,
11576 a (typically) noncontiguous set of text.")
11577 (license license:gpl3+)))
11578
11579 (define-public emacs-mu4e-alert
11580 (package
11581 (name "emacs-mu4e-alert")
11582 (version "1.0")
11583 (source
11584 (origin
11585 (method git-fetch)
11586 (uri (git-reference
11587 (url "https://github.com/iqbalansari/mu4e-alert")
11588 (commit (string-append "v" version))))
11589 (file-name (git-file-name name version))
11590 (sha256
11591 (base32 "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg"))))
11592 (build-system emacs-build-system)
11593 (propagated-inputs
11594 `(("emacs-alert" ,emacs-alert)
11595 ("emacs-s" ,emacs-s)
11596 ("emacs-ht" ,emacs-ht)
11597 ("mu" ,mu)))
11598 (home-page "https://github.com/iqbalansari/mu4e-alert")
11599 (synopsis "Desktop notification for mu4e")
11600 (description
11601 "This package provides desktop notifications for mu4e.
11602 Additionally it can display the number of unread emails in the
11603 mode-line.")
11604 (license license:gpl3+)))
11605
11606 (define-public emacs-mu4e-jump-to-list
11607 (let ((commit "358bba003543b49ffa266e503e54aebd0ebe614b")
11608 (revision "1"))
11609 (package
11610 (name "emacs-mu4e-jump-to-list")
11611 (version (git-version "1.0" revision commit))
11612 (source
11613 (origin
11614 (method git-fetch)
11615 (uri (git-reference
11616 (url "https://gitlab.com/wavexx/mu4e-jump-to-list.el.git")
11617 (commit commit)))
11618 (file-name (git-file-name name version))
11619 (sha256
11620 (base32
11621 "00y9nap61q1z2cdql4k9g7fgi2gdgd9iy5s5lzrd9a4agbx6r7sv"))))
11622 (build-system emacs-build-system)
11623 (propagated-inputs
11624 `(("mu" ,mu)))
11625 (home-page "https://gitlab.com/wavexx/mu4e-jump-to-list.el")
11626 (synopsis "Select and view mailing lists in mu4e")
11627 (description
11628 "@code{mu4e-jump-to-list} allows you to select and view mailing lists
11629 automatically using existing List-ID headers in your mu database. Just press
11630 \"l\" in the headers view and any mailing list you've subscribed to will be
11631 automatically discovered and presented in recency order.")
11632 (license license:gpl3+))))
11633
11634 (define-public emacs-mu4e-patch
11635 (let ((commit "522da46c1653b1cacc79cde91d6534da7ae9517d")
11636 (revision "1"))
11637 (package
11638 (name "emacs-mu4e-patch")
11639 (version (git-version "0.1.0" revision commit))
11640 (source (origin
11641 (method git-fetch)
11642 (uri (git-reference
11643 (url "https://github.com/seanfarley/mu4e-patch")
11644 (commit commit)))
11645 (file-name (git-file-name name version))
11646 (sha256
11647 (base32
11648 "10lzf3b70pk6rzdrgx0ww0gc94v0ydh9zj1gbsa20xw27ds7hmfn"))))
11649 (build-system emacs-build-system)
11650 (propagated-inputs
11651 `(("mu" ,mu)))
11652 (home-page "https://github.com/seanfarley/mu4e-patch")
11653 (synopsis "Colorize patch-like emails in mu4e")
11654 (description
11655 "Extension for mu4e to colorize patch-like emails with diff-mode.
11656 This is based on Frank Terbeck's @code{gnus-article-treat-patch.el} but has
11657 been adapted to work with mu4e.")
11658 (license license:gpl3+))))
11659
11660 (define-public emacs-pretty-mode
11661 (package
11662 (name "emacs-pretty-mode")
11663 (version "2.0.3")
11664 (source
11665 (origin
11666 (method git-fetch)
11667 (uri (git-reference
11668 (url "https://github.com/akatov/pretty-mode/")
11669 (commit version)))
11670 (file-name (git-file-name name version))
11671 (sha256
11672 (base32
11673 "013fig9i4fyx16krp2vfv953p3rwdzr38zs6i50af4pqz4vrcfvh"))))
11674 (build-system emacs-build-system)
11675 (home-page "https://github.com/akatov/pretty-mode")
11676 (synopsis "Redisplay parts of the buffer as Unicode symbols")
11677 (description
11678 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
11679 (license license:gpl3+)))
11680
11681 (define-public emacs-yasnippet
11682 (package
11683 (name "emacs-yasnippet")
11684 (version "0.14.0")
11685 (source
11686 (origin
11687 (method git-fetch)
11688 (uri (git-reference
11689 (url "https://github.com/joaotavora/yasnippet")
11690 (commit version)))
11691 (file-name (git-file-name name version))
11692 (sha256
11693 (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))))
11694 (build-system emacs-build-system)
11695 (arguments
11696 `(#:tests? #t
11697 #:test-command '("emacs" "--batch"
11698 "-l" "yasnippet-tests.el"
11699 "-f" "ert-run-tests-batch-and-exit")
11700 #:phases
11701 (modify-phases %standard-phases
11702 ;; Set HOME, otherwise test-rebindings fails.
11703 (add-before 'check 'set-home
11704 (lambda _
11705 (setenv "HOME" (getcwd))
11706 #t)))))
11707 (home-page "https://github.com/joaotavora/yasnippet")
11708 (synopsis "Yet another snippet extension for Emacs")
11709 (description "YASnippet is a template system for Emacs. It allows you to
11710 type an abbreviation and automatically expand it into function templates.")
11711 (license license:gpl3+)))
11712
11713 (define-public emacs-yasnippet-snippets
11714 (package
11715 (name "emacs-yasnippet-snippets")
11716 (version "0.23")
11717 (source
11718 (origin
11719 (method git-fetch)
11720 (uri (git-reference
11721 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
11722 (commit version)))
11723 (file-name (git-file-name name version))
11724 (sha256
11725 (base32 "18pcnjnqvcky6i49p38vy3ms5xiisn27vy47pc3vsgr3r2n87mqb"))))
11726 (build-system emacs-build-system)
11727 (arguments
11728 `(#:include (cons* "^snippets\\/" %default-include)))
11729 (propagated-inputs
11730 `(("emacs-s" ,emacs-s) ;for snippets/rjsx-mode/.yas-setup.el
11731 ("emacs-yasnippet" ,emacs-yasnippet)))
11732 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
11733 (synopsis "Collection of YASnippet snippets for many languages")
11734 (description "This package provides an extensive collection of YASnippet
11735 snippets. When this package is installed, the extra snippets it provides are
11736 automatically made available to YASnippet.")
11737 (license license:gpl3+)))
11738
11739 (define-public emacs-helm-c-yasnippet
11740 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
11741 (revision "1"))
11742 (package
11743 (name "emacs-helm-c-yasnippet")
11744 (version (string-append "0.6.7" "-" revision "."
11745 (string-take commit 7)))
11746 (source (origin
11747 (method git-fetch)
11748 (uri (git-reference
11749 (url "https://github.com/emacs-jp/helm-c-yasnippet")
11750 (commit commit)))
11751 (file-name (git-file-name name version))
11752 (sha256
11753 (base32
11754 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
11755 (build-system emacs-build-system)
11756 (propagated-inputs
11757 `(("emacs-helm" ,emacs-helm)
11758 ("emacs-yasnippet" ,emacs-yasnippet)))
11759 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
11760 (synopsis "Helm integration for Yasnippet")
11761 (description "This Emacs library provides Helm interface for
11762 Yasnippet.")
11763 (license license:gpl2+))))
11764
11765 (define-public emacs-helm-system-packages
11766 (package
11767 (name "emacs-helm-system-packages")
11768 (version "1.10.2")
11769 (source (origin
11770 (method git-fetch)
11771 (uri (git-reference
11772 (url "https://github.com/emacs-helm/helm-system-packages")
11773 (commit (string-append "v" version))))
11774 (file-name (git-file-name name version))
11775 (sha256
11776 (base32
11777 "13a8jpj4wwm0yjv8hnsizgjf8wi3r2ap87lyvw7g4c7snp2dydwa"))))
11778 (build-system emacs-build-system)
11779 (inputs
11780 `(("recutils" ,recutils)))
11781 (propagated-inputs
11782 `(("emacs-helm" ,emacs-helm)))
11783 (arguments
11784 `(#:phases
11785 (modify-phases %standard-phases
11786 (add-after 'unpack 'configure
11787 (lambda* (#:key inputs outputs #:allow-other-keys)
11788 (let ((recutils (assoc-ref inputs "recutils")))
11789 ;; Specify the absolute file names of the various
11790 ;; programs so that everything works out-of-the-box.
11791 (substitute* "helm-system-packages-guix.el"
11792 (("recsel") (string-append recutils "/bin/recsel")))))))))
11793 (home-page "https://github.com/emacs-helm/helm-system-packages")
11794 (synopsis "Helm System Packages is an interface to your package manager")
11795 (description "List all available packages in Helm (with installed
11796 packages displayed in their own respective face). Fuzzy-search, mark and
11797 execute the desired action over any selections of packages: Install,
11798 uninstall, display packages details (in Org Mode) or insert details at point,
11799 find files owned by packages... And much more, including performing all the
11800 above over the network.")
11801 (license license:gpl3+)))
11802
11803 (define-public emacs-helm-org-rifle
11804 (package
11805 (name "emacs-helm-org-rifle")
11806 (version "1.7.0")
11807 (source
11808 (origin
11809 (method git-fetch)
11810 (uri (git-reference
11811 (url "https://github.com/alphapapa/helm-org-rifle")
11812 (commit version)))
11813 (file-name (git-file-name name version))
11814 (sha256
11815 (base32
11816 "058zvh7cdall7dl3xay9ibcjvs13fbqp8fli3lz980pinmsds3r2"))))
11817 (build-system emacs-build-system)
11818 (propagated-inputs
11819 `(("emacs-dash" ,emacs-dash)
11820 ("emacs-f" ,emacs-f)
11821 ("emacs-helm" ,emacs-helm)
11822 ("emacs-org" ,emacs-org)
11823 ("emacs-s" ,emacs-s)))
11824 (home-page "https://github.com/alphapapa/helm-org-rifle")
11825 (synopsis "Rifle through Org files")
11826 (description "This package searches both headings and contents of entries
11827 in Org buffers and displays matching entries.")
11828 (license license:gpl3+)))
11829
11830 (define-public emacs-dired-git-info
11831 ;; Upstream has no proper release. The base version is extracted from the
11832 ;; "Version" keyword in the main file.
11833 (let ((commit "91d57e3a4c5104c66a3abc18e281ee55e8979176")
11834 (revision "0"))
11835 (package
11836 (name "emacs-dired-git-info")
11837 (version (git-version "0.3.1" revision commit))
11838 (source
11839 (origin
11840 (method git-fetch)
11841 (uri
11842 (git-reference
11843 (url "https://github.com/clemera/dired-git-info")
11844 (commit commit)))
11845 (file-name (git-file-name name version))
11846 (sha256
11847 (base32 "1dr4iv95s4barxxj56znqkl9z0lg5jw731jmjr01s6vn8ar69gik"))))
11848 (build-system emacs-build-system)
11849 (home-page "https://github.com/clemera/dired-git-info/")
11850 (synopsis "Show git info in Emacs Dired")
11851 (description "This Emacs package provides a minor mode which shows git
11852 information inside the Dired buffer.")
11853 (license license:gpl3+))))
11854
11855 (define-public emacs-dired-toggle-sudo
11856 (let ((commit "13bbe52c54893f5aa3e56228450ffdd0c9e1d169")
11857 (revision "0"))
11858 (package
11859 (name "emacs-dired-toggle-sudo")
11860 (version (git-version "1.0" revision commit))
11861 (source
11862 (origin
11863 (method git-fetch)
11864 (uri (git-reference
11865 (url "https://github.com/renard/dired-toggle-sudo")
11866 (commit commit)))
11867 (file-name (git-file-name name version))
11868 (sha256
11869 (base32
11870 "1fw1pb1z6krqd1pfxxhr6rrfr9ckkcb0zsjzbjk0i2i1q5cg6car"))))
11871 (build-system emacs-build-system)
11872 (home-page "https://github.com/renard/dired-toggle-sudo")
11873 (synopsis "Browse directory with @code{sudo} privileges")
11874 (description "This package allows for the use of @code{dired} with
11875 @code{sudo} privileges.")
11876 (license license:wtfpl2))))
11877
11878 (define-public emacs-diredfl
11879 (package
11880 (name "emacs-diredfl")
11881 (version "0.4")
11882 (source
11883 (origin
11884 (method git-fetch)
11885 (uri
11886 (git-reference
11887 (url "https://github.com/purcell/diredfl")
11888 (commit version)))
11889 (file-name (git-file-name name version))
11890 (sha256
11891 (base32 "1zb2lz7rp58zqvpniqcsmqabi7nqg2d8bfd0hgmq68bn2hd25b5z"))))
11892 (build-system emacs-build-system)
11893 (home-page "https://github.com/purcell/diredfl/")
11894 (synopsis "Extra Emacs font lock rules for a more colourful Dired")
11895 (description "This library enables additional font locking in Dired mode.
11896 This is adapted from the extra font lock rules provided by Drew Adams' Dired+
11897 package.")
11898 (license license:gpl3+)))
11899
11900 (define-public emacs-memoize
11901 (package
11902 (name "emacs-memoize")
11903 (version "1.1")
11904 (source
11905 (origin
11906 (method git-fetch)
11907 (uri (git-reference
11908 (url "https://github.com/skeeto/emacs-memoize")
11909 (commit version)))
11910 (file-name (git-file-name name version))
11911 (sha256
11912 (base32 "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk"))))
11913 (build-system emacs-build-system)
11914 (arguments
11915 `(#:tests? #t
11916 #:test-command '("emacs" "--batch"
11917 "-l" "memoize-test.el"
11918 "-f" "ert-run-tests-batch-and-exit")))
11919 (home-page "https://github.com/skeeto/emacs-memoize")
11920 (synopsis "Emacs lisp memoization library")
11921 (description "@code{emacs-memoize} is an Emacs library for
11922 memoizing functions.")
11923 (license license:unlicense)))
11924
11925 (define-public emacs-linum-relative
11926 (package
11927 (name "emacs-linum-relative")
11928 (version "0.6")
11929 (source
11930 (origin
11931 (method git-fetch)
11932 (uri (git-reference
11933 (url "https://github.com/coldnew/linum-relative")
11934 (commit version)))
11935 (file-name (git-file-name name version))
11936 (sha256
11937 (base32 "0b3n1gk2w1p72x0zfdz9l70winq2fnjpjrgq0awxx730xk7ypp5n"))))
11938 (build-system emacs-build-system)
11939 (home-page "https://github.com/coldnew/linum-relative")
11940 (synopsis "Relative line numbering for Emacs")
11941 (description "@code{emacs-linum-relative} displays the relative line
11942 number on the left margin in Emacs.")
11943 (license license:gpl2+)))
11944
11945 (define-public emacs-idle-highlight
11946 (package
11947 (name "emacs-idle-highlight")
11948 (version "1.1.3")
11949 (source
11950 (origin
11951 (method git-fetch)
11952 (uri (git-reference
11953 (url "https://github.com/nonsequitur/idle-highlight-mode")
11954 (commit version)))
11955 (file-name (git-file-name name version))
11956 (sha256
11957 (base32 "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv"))))
11958 (build-system emacs-build-system)
11959 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
11960 (synopsis "Highlights all occurrences of the word the point is on")
11961 (description
11962 "This Emacs package provides @code{idle-highlight-mode} that sets
11963 an idle timer to highlight all occurrences in the buffer of the word under
11964 the point.")
11965 (license license:gpl3+)))
11966
11967 (define-public emacs-ox-twbs
11968 (package
11969 (name "emacs-ox-twbs")
11970 (version "1.1.4")
11971 (source
11972 (origin
11973 (method git-fetch)
11974 (uri (git-reference
11975 (url "https://github.com/marsmining/ox-twbs")
11976 (commit (string-append "v" version))))
11977 (file-name (git-file-name name version))
11978 (sha256
11979 (base32 "0nffy7ivs8fw0dj3s66hbsby0riz5wrv7xzm8g9mrfvhki938pqa"))))
11980 (build-system emacs-build-system)
11981 (home-page "https://github.com/marsmining/ox-twbs")
11982 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
11983 (description
11984 "This Emacs package outputs your org-mode docs with a simple, clean and
11985 modern look. It implements a new HTML back-end for exporting org-mode docs as
11986 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
11987 jQuery and Bootstrap resources included via osscdn.")
11988 (license license:gpl3+)))
11989
11990 (define-public emacs-highlight-sexp
11991 (package
11992 (name "emacs-highlight-sexp")
11993 (version "1.0")
11994 (source
11995 (origin
11996 (method git-fetch)
11997 (uri (git-reference
11998 (url "https://github.com/daimrod/highlight-sexp")
11999 (commit (string-append "v" version))))
12000 (file-name (git-file-name name version))
12001 (sha256
12002 (base32 "12cyk2q5g6p4ac2hykw1cag7dp1prjjnck5f7nalwwaklmy62y79"))))
12003 (build-system emacs-build-system)
12004 (home-page "https://github.com/daimrod/highlight-sexp")
12005 (synopsis "Minor mode that highlights the s-exp at the current position")
12006 (description
12007 "This Emacs package highlights the s-exp at the current position.")
12008 (license license:gpl3+)))
12009
12010 (define-public emacs-highlight-stages
12011 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
12012 (revision "1"))
12013 (package
12014 (name "emacs-highlight-stages")
12015 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
12016 (source
12017 (origin
12018 (method git-fetch)
12019 (uri (git-reference
12020 (url "https://github.com/zk-phi/highlight-stages")
12021 (commit commit)))
12022 (file-name (git-file-name name version))
12023 (sha256
12024 (base32
12025 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
12026 (patches
12027 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
12028 (build-system emacs-build-system)
12029 (home-page "https://github.com/wigust/highlight-stages")
12030 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
12031 (description "@code{highlight-stages} provides an Emacs minor mode that
12032 highlights quasi-quoted expressions.")
12033 (license license:gpl3+))))
12034
12035 (define-public emacspeak
12036 (package
12037 (name "emacspeak")
12038 (version "53.0")
12039 (source
12040 (origin
12041 (method url-fetch)
12042 (uri (string-append
12043 "https://github.com/tvraman/emacspeak/releases/download/"
12044 version "/emacspeak-" version ".tar.bz2"))
12045 (sha256
12046 (base32 "0lasj4ggsh93ingf46n16wxfx5zzxvr1igikbmdqlz3i99j331gs"))))
12047 (build-system gnu-build-system)
12048 (arguments
12049 '(#:make-flags (list (string-append "prefix="
12050 (assoc-ref %outputs "out")))
12051 #:phases
12052 (modify-phases %standard-phases
12053 (replace 'configure
12054 (lambda _
12055 (setenv "SHELL" (which "sh"))
12056 ;; Configure Emacspeak according to etc/install.org.
12057 (invoke "make" "config")))
12058 (add-after 'build 'build-espeak
12059 (lambda _
12060 (invoke "make" "espeak")))
12061 (replace 'install
12062 (lambda* (#:key inputs outputs #:allow-other-keys)
12063 (let* ((out (assoc-ref outputs "out"))
12064 (bin (string-append out "/bin"))
12065 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
12066 (info (string-append out "/share/info"))
12067 (emacs (string-append (assoc-ref inputs "emacs")
12068 "/bin/emacs")))
12069 ;; According to etc/install.org, the Emacspeak directory should
12070 ;; be copied to its installation destination.
12071 (for-each
12072 (lambda (file)
12073 (copy-recursively file (string-append lisp "/" file)))
12074 '("etc" "info" "js" "lisp" "media" "servers" "sounds"
12075 "stumpwm" "xsl"))
12076 ;; Make sure emacspeak is loaded from the correct directory.
12077 (substitute* "run"
12078 (("\\./lisp/emacspeak-setup.el")
12079 (string-append lisp "/lisp/emacspeak-setup.el")))
12080 ;; Install the convenient startup script.
12081 (mkdir-p bin)
12082 (copy-file "run" (string-append bin "/emacspeak")))
12083 #t))
12084 (add-after 'install 'wrap-program
12085 (lambda* (#:key inputs outputs #:allow-other-keys)
12086 (let* ((out (assoc-ref outputs "out"))
12087 (emacspeak (string-append out "/bin/emacspeak"))
12088 (espeak (string-append (assoc-ref inputs "espeak")
12089 "/bin/espeak")))
12090 ;; The environment variable DTK_PROGRAM tells emacspeak what
12091 ;; program to use for speech.
12092 (wrap-program emacspeak
12093 `("DTK_PROGRAM" ":" prefix (,espeak)))
12094 #t))))
12095 #:tests? #f)) ; no check target
12096 (inputs
12097 `(("emacs" ,emacs)
12098 ("espeak" ,espeak-ng)
12099 ("perl" ,perl)
12100 ("tcl" ,tcl)
12101 ("tclx" ,tclx)))
12102 (home-page "http://emacspeak.sourceforge.net")
12103 (synopsis "Audio desktop interface for Emacs")
12104 (description
12105 "Emacspeak is a speech interface that allows visually impaired users to
12106 interact independently and efficiently with the computer. Audio
12107 formatting---a technique pioneered by AsTeR---and full support for W3C's Aural
12108 CSS (ACSS) allows Emacspeak to produce rich aural presentations of electronic
12109 information. By seamlessly blending all aspects of the Internet such as
12110 Web-surfing and messaging, Emacspeak speech-enables local and remote
12111 information via a consistent and well-integrated user interface.")
12112 (license license:gpl2+)))
12113
12114 (define-public emacs-adaptive-wrap
12115 (package
12116 (name "emacs-adaptive-wrap")
12117 (version "0.8")
12118 (source
12119 (origin
12120 (method url-fetch)
12121 (uri (string-append "https://elpa.gnu.org/packages/"
12122 "adaptive-wrap-" version ".tar"))
12123 (sha256
12124 (base32 "1gs1pqzywvvw4prj63vpj8abh8h14pjky11xfl23pgpk9l3ldrb0"))))
12125 (build-system emacs-build-system)
12126 (home-page "https://elpa.gnu.org/packages/adaptive-wrap.html")
12127 (synopsis "Smart line-wrapping with wrap-prefix")
12128 (description
12129 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
12130 minor mode which sets the wrap-prefix property on the fly so that
12131 single-long-line paragraphs get word-wrapped in a way similar to what
12132 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
12133 actually changing the buffer's text.")
12134 (license license:gpl3+)))
12135
12136 (define-public emacs-diff-hl
12137 (package
12138 (name "emacs-diff-hl")
12139 (version "1.8.8")
12140 (source
12141 (origin
12142 (method git-fetch)
12143 (uri (git-reference
12144 (url "https://github.com/dgutov/diff-hl")
12145 (commit version)))
12146 (file-name (git-file-name name version))
12147 (sha256
12148 (base32 "075klzf66z1rvhpxv4j694pdkmi7f4fpw6c8q4ncz0h4y5wdbl8w"))))
12149 (build-system emacs-build-system)
12150 (home-page "https://github.com/dgutov/diff-hl")
12151 (synopsis
12152 "Highlight uncommitted changes using VC")
12153 (description
12154 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
12155 window (using the fringe, by default), allows you to jump between
12156 the hunks and revert them selectively.")
12157 (license license:gpl3+)))
12158
12159 (define-public emacs-diminish
12160 (package
12161 (name "emacs-diminish")
12162 (version "0.45")
12163 (source
12164 (origin
12165 (method git-fetch)
12166 (uri (git-reference
12167 (url "https://github.com/myrjola/diminish.el")
12168 (commit (string-append "v" version))))
12169 (file-name (git-file-name name version))
12170 (sha256
12171 (base32 "0qpgfgp8hrzz4vdifxq8h25n0a0jlzgf7aa1fpy6r0080v5rqbb6"))))
12172 (build-system emacs-build-system)
12173 (home-page "https://github.com/myrjola/diminish.el")
12174 (synopsis "Diminish minor modes with no modeline display")
12175 (description "@code{emacs-diminish} implements hiding or
12176 abbreviation of the mode line displays (lighters) of minor modes.")
12177 (license license:gpl2+)))
12178
12179 (define-public emacs-use-package
12180 (package
12181 (name "emacs-use-package")
12182 (version "2.4.1")
12183 (source (origin
12184 (method git-fetch)
12185 (uri (git-reference
12186 (url "https://github.com/jwiegley/use-package")
12187 (commit version)))
12188 (file-name (git-file-name name version))
12189 (sha256
12190 (base32
12191 "088kl3bml0rs5bkfymgzr15ram9qvy66h1kaisrbkynh0yxvf8g9"))))
12192 (build-system emacs-build-system)
12193 (native-inputs
12194 `(("texinfo" ,texinfo)))
12195 (propagated-inputs
12196 `(("emacs-diminish" ,emacs-diminish)))
12197 (arguments
12198 `(#:tests? #t
12199 #:test-command '("emacs" "--batch"
12200 "-l" "use-package-tests.el"
12201 "-f" "ert-run-tests-batch-and-exit")
12202 #:phases
12203 (modify-phases %standard-phases
12204 (add-before 'install 'install-manual
12205 (lambda* (#:key outputs #:allow-other-keys)
12206 (let* ((out (assoc-ref outputs "out"))
12207 (info-dir (string-append out "/share/info")))
12208 (mkdir-p info-dir)
12209 (install-file "use-package.info" info-dir)
12210 #t)))
12211 (add-before 'install-manual 'build-manual
12212 (lambda _
12213 (invoke "makeinfo" "use-package.texi")
12214 #t)))))
12215 (home-page "https://github.com/jwiegley/use-package")
12216 (synopsis "Declaration for simplifying your .emacs")
12217 (description "The use-package macro allows you to isolate package
12218 configuration in your @file{.emacs} file in a way that is both
12219 performance-oriented and tidy.")
12220 (license license:gpl2+)))
12221
12222 (define-public emacs-leaf
12223 (package
12224 (name "emacs-leaf")
12225 (version "4.4.4")
12226 (source
12227 (origin
12228 (method url-fetch)
12229 (uri (string-append "https://elpa.gnu.org/packages/"
12230 "leaf-" version ".tar"))
12231 (sha256
12232 (base32 "1npg06zmy21kg2qsqgfm03l7vjib697i96awypcdb0hw5mvmc1a1"))))
12233 (build-system emacs-build-system)
12234 (home-page "https://github.com/conao3/leaf.el")
12235 (synopsis "Simplify your init.el configuration, extended use-package")
12236 (description
12237 "This package provides macros that allows you to declaratively configure
12238 settings typical of an Elisp package with various keywords. The syntax is
12239 similar, but not identical to use-package -- overall, leaf aims at a cleaner
12240 and more predictable implementation.")
12241 (license license:agpl3+)))
12242
12243 (define-public emacs-strace-mode
12244 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
12245 (revision "1"))
12246 (package
12247 (name "emacs-strace-mode")
12248 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
12249 (source (origin
12250 (method git-fetch)
12251 (uri (git-reference
12252 (url "https://github.com/pkmoore/strace-mode")
12253 (commit commit)))
12254 (file-name (git-file-name name version))
12255 (sha256
12256 (base32
12257 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
12258 (build-system emacs-build-system)
12259 (home-page "https://github.com/pkmoore/strace-mode")
12260 (synopsis "Emacs major mode to highlight strace outputs")
12261 (description "@code{emacs-strace-mode} provides an Emacs major mode
12262 highlighting strace outputs.")
12263 (license license:gpl3+))))
12264
12265 (define-public emacs-default-encrypt
12266 (package
12267 (name "emacs-default-encrypt")
12268 (version "4.4")
12269 (source
12270 (origin
12271 (method url-fetch)
12272 (uri (string-append
12273 "https://informationelle-selbstbestimmung-im-internet.de"
12274 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
12275 (file-name (string-append "jl-encrypt-" version ".el"))
12276 (sha256
12277 (base32
12278 "0w9ggz075j1zwg7d0rv9k8238g600p7czfnnsnawswi7yps2xk78"))))
12279 (build-system emacs-build-system)
12280 (home-page
12281 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
12282 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
12283 (description
12284 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
12285 automatically encrypts messages that you send (e.g., email) when public keys
12286 for all recipients are available, and it protects you from accidentally
12287 sending un-encrypted messages. It can also be configured to automatically
12288 sign messages that you send. For details and instructions on how to use
12289 DefaultEncrypt, please refer to the home page or read the comments in the
12290 source file, @file{jl-encrypt.el}.")
12291 (license license:gpl3+)))
12292
12293 (define-public emacs-extend-smime
12294 (package
12295 (name "emacs-extend-smime")
12296 (version "3.3")
12297 (source
12298 (origin
12299 (method url-fetch)
12300 (uri (string-append
12301 "https://informationelle-selbstbestimmung-im-internet.de"
12302 "/emacs/jl-smime" version "/jl-smime.el"))
12303 (file-name (string-append "jl-smime-" version ".el"))
12304 (sha256
12305 (base32
12306 "1iv8s2wjmv3v5qfwlcy9hvvrmxxvp3f8m1krlr789q7bbh35jynh"))))
12307 (build-system emacs-build-system)
12308 (home-page
12309 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
12310 (synopsis "Improved S/MIME support for Gnus in Emacs")
12311 (propagated-inputs
12312 `(("emacs-default-encrypt" ,emacs-default-encrypt)))
12313 (description
12314 ;; TRANSLATORS: ExtendSMIME, DefaultEncrypt, and emacs-default-encrypt
12315 ;; should not be translated. The name "emacs-default-encrypt" refers to
12316 ;; the Guix package that provides DefaultEncrypt.
12317 "ExtendSMIME is designed to be used with Gnus in Emacs. It enhances
12318 DefaultEncrypt (emacs-default-encrypt) to support S/MIME (Secure/Multipurpose
12319 Internet Mail Extensions) via LDAP (Lightweight Directory Access Protocol).
12320 Before a message (e.g., email) is sent, ExtendSMIME searches for missing
12321 certificates via LDAP and imports them into @code{gpgsm}. When certificates
12322 for all recipients are available, DefaultEncrypt automatically encrypts the
12323 message. For details and instructions on how to use ExtendSMIME, please refer
12324 to the home page or read the comments in the source file,
12325 @file{jl-smime.el}.")
12326 (license license:gpl3+)))
12327
12328 (define-public emacs-htmlize
12329 (package
12330 (name "emacs-htmlize")
12331 (version "1.55")
12332 (source
12333 (origin
12334 (method git-fetch)
12335 (uri (git-reference
12336 (url "https://github.com/hniksic/emacs-htmlize")
12337 (commit (string-append "release/" version))))
12338 (file-name (git-file-name name version))
12339 (sha256
12340 (base32 "0gi3xshscpa53qrj8yplfsqahcilc2ybcc2p7gnh5nbnf2n1n97x"))))
12341 (build-system emacs-build-system)
12342 (home-page "https://github.com/hniksic/emacs-htmlize")
12343 (synopsis "Convert buffer text and decorations to HTML")
12344 (description "@code{emacs-htmlize} converts the buffer text and
12345 the associated decorations to HTML. Output to CSS, inline CSS and
12346 fonts is supported.")
12347 (license license:gpl2+)))
12348
12349 (define-public emacs-xmlgen
12350 (package
12351 (name "emacs-xmlgen")
12352 (version "0.5")
12353 (source
12354 (origin
12355 (method git-fetch)
12356 (uri (git-reference
12357 (url "https://github.com/philjackson/xmlgen")
12358 (commit version)))
12359 (file-name (git-file-name name version))
12360 (sha256
12361 (base32 "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s"))))
12362 (build-system emacs-build-system)
12363 (arguments
12364 `(#:tests? #t
12365 #:test-command '("emacs" "--batch"
12366 "-l" "xmlgen-test.el"
12367 "-f" "ert-run-tests-batch-and-exit")))
12368 (home-page "https://github.com/philjackson/xmlgen")
12369 (synopsis "S-expression to XML domain specific language (DSL) in
12370 Emacs Lisp")
12371 (description "@code{emacs-xmlgen} provides S-expression to XML
12372 conversion for Emacs Lisp.")
12373 (license license:gpl2+)))
12374
12375 (define-public emacs-cdlatex
12376 (package
12377 (name "emacs-cdlatex")
12378 (version "4.7")
12379 (source
12380 (origin
12381 (method git-fetch)
12382 (uri (git-reference
12383 (url "https://github.com/cdominik/cdlatex")
12384 (commit version)))
12385 (file-name (git-file-name name version))
12386 (sha256
12387 (base32 "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d"))))
12388 (build-system emacs-build-system)
12389 (propagated-inputs
12390 `(("emacs-auctex" ,emacs-auctex)))
12391 (home-page "https://github.com/cdominik/cdlatex")
12392 (synopsis "Fast Emacs input methods for LaTeX environments and
12393 math")
12394 (description "CDLaTeX is an Emacs minor mode supporting fast
12395 insertion of environment templates and math in LaTeX. Similar
12396 commands are also offered as part of the AUCTeX package, but it is not
12397 the same - CDLaTeX focuses on speediness for inserting LaTeX
12398 constructs.")
12399 (license license:gpl3+)))
12400
12401 (define-public emacs-cnfonts
12402 (package
12403 (name "emacs-cnfonts")
12404 (version "0.9.1")
12405 (source
12406 (origin
12407 (method git-fetch)
12408 (uri (git-reference
12409 (url "https://github.com/tumashu/cnfonts")
12410 (commit (string-append "v" version))))
12411 (file-name (git-file-name name version))
12412 (sha256
12413 (base32 "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx"))))
12414 (build-system emacs-build-system)
12415 (home-page "https://github.com/tumashu/cnfonts")
12416 (synopsis "Emacs Chinese fonts setup tool")
12417 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
12418 configuration of Chinese fonts.")
12419 (license license:gpl2+)))
12420
12421 (define-public emacs-boon
12422 (package
12423 (name "emacs-boon")
12424 (version "1.1")
12425 (source
12426 (origin
12427 (method git-fetch)
12428 (uri (git-reference
12429 (url "https://github.com/jyp/boon")
12430 (commit version)))
12431 (file-name (git-file-name name version))
12432 (sha256
12433 (base32 "1ss9bjs34q41pa0g0nbdzd8fwpjcbd2239rdlx5aykfv9v0b8j77"))))
12434 (build-system emacs-build-system)
12435 (propagated-inputs
12436 `(("emacs-dash" ,emacs-dash)
12437 ("emacs-expand-region" ,emacs-expand-region)
12438 ("emacs-multiple-cursors" ,emacs-multiple-cursors)
12439 ("emacs-powerline" ,emacs-powerline)
12440 ("emacs-spaceline" ,emacs-spaceline)))
12441 (home-page "https://github.com/jyp/boon")
12442 (synopsis "Ergonomic command mode for Emacs")
12443 (description "Boon is a complete package for modal editing with a focus on
12444 ergonomics and modularity. Spacial allocation of keys comes first, mnemonics
12445 second. Most common operations are mapped to the home row, common editing
12446 commands are bound to keys reachable with the left hand and movement keys are
12447 reached with the right hand.")
12448 (license license:gpl3+)))
12449
12450 (define-public emacs-csharp-mode
12451 (package
12452 (name "emacs-csharp-mode")
12453 (version "0.10.0")
12454 (source
12455 (origin
12456 (method git-fetch)
12457 (uri (git-reference
12458 (url "https://github.com/josteink/csharp-mode")
12459 (commit (string-append "v" version))))
12460 (file-name (git-file-name name version))
12461 (sha256
12462 (base32 "0vwkbla2gkfa9dzxfvrvr7hd2z16769iwbycl7k6l701dnwli1fw"))))
12463 (build-system emacs-build-system)
12464 (home-page "https://github.com/josteink/csharp-mode")
12465 (synopsis "Major mode for C# code")
12466 (description
12467 "This is a C# editing mode for Emacs, based on CC mode. It handles
12468 syntax coloring, indentation, insertion of matched pairs of curly braces and
12469 documentation generation. In addition, it provides menu-based navigation
12470 using Imenu, and Compilation mode support for MSBuild, devenv and xbuild.")
12471 ;; XXX: Project switched to GPL3+ after 0.10.0 release.
12472 (license license:gpl2+)))
12473
12474 (define-public emacs-php-mode
12475 (package
12476 (name "emacs-php-mode")
12477 (version "1.24.0")
12478 (source
12479 (origin
12480 (method git-fetch)
12481 (uri (git-reference
12482 (url "https://github.com/ejmr/php-mode")
12483 (commit (string-append "v" version))))
12484 (file-name (git-file-name name version))
12485 (sha256
12486 (base32 "0bs9q62bd7885c39v7x1qz3w1fhpmpdgm72xwsk2yygw0ii425nn"))))
12487 (build-system emacs-build-system)
12488 (arguments
12489 `(#:include (cons "^lisp/" %default-include)
12490 #:phases
12491 (modify-phases %standard-phases
12492 (add-after 'add-source-to-load-path 'add-lisp-dir-to-emacs-load-path
12493 (lambda _
12494 (setenv "EMACSLOADPATH"
12495 (string-append (getcwd) "/lisp:" (getenv "EMACSLOADPATH"))))))))
12496 (propagated-inputs `(("emacs-projectile" ,emacs-projectile)))
12497 (home-page "https://github.com/ejmr/php-mode")
12498 (synopsis "Major mode for editing PHP code")
12499 (description
12500 "PHP mode is a major mode for editing PHP source code. It's an extension
12501 of C mode; thus it inherits all C mode's navigation functionality. But it
12502 colors according to the PHP grammar and indents according to the PEAR coding
12503 guidelines. It also includes a couple handy IDE-type features such as
12504 documentation search and a source and class browser.")
12505 (license license:gpl3+)))
12506
12507 (define-public emacs-pos-tip
12508 (package
12509 (name "emacs-pos-tip")
12510 (version "0.4.6")
12511 (source
12512 (origin
12513 (method git-fetch)
12514 (uri (git-reference
12515 (url "https://github.com/pitkali/pos-tip")
12516 (commit version)))
12517 (file-name (git-file-name name version))
12518 (sha256
12519 (base32 "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33"))))
12520 (build-system emacs-build-system)
12521 ;; The following functions and variables needed by emacs-pos-tip are
12522 ;; not included in emacs-minimal:
12523 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
12524 (arguments `(#:emacs ,emacs))
12525 (home-page "https://github.com/pitkali/pos-tip")
12526 (synopsis "Show tooltip at point")
12527 (description "The standard library tooltip.el provides a function for
12528 displaying a tooltip at the mouse position. However, locating a tooltip at an
12529 arbitrary buffer position in a window is not easy. Pos-tip provides such a
12530 function to be used by other frontend programs.")
12531 (license license:gpl2+)))
12532
12533 (define-public emacs-pyim-basedict
12534 (package
12535 (name "emacs-pyim-basedict")
12536 (version "0.3.1")
12537 (source
12538 (origin
12539 (method git-fetch)
12540 (uri (git-reference
12541 (url "https://github.com/tumashu/pyim-basedict")
12542 (commit (string-append "v" version))))
12543 (file-name (git-file-name name version))
12544 (sha256
12545 (base32 "0576r8ap9gp91ycjf1d47pn13kxp0f9fysn09zlq44hr0s1y2y5d"))))
12546 (build-system emacs-build-system)
12547 (home-page "https://github.com/tumashu/pyim-basedict")
12548 (synopsis "Input method dictionary of pyim")
12549 (description "Pyim-basedict is the default pinyin input method dictionary,
12550 containing words from the Rime project.")
12551 (license license:gpl2+)))
12552
12553 (define-public emacs-pyim
12554 (package
12555 (name "emacs-pyim")
12556 (version "3.2")
12557 (source
12558 (origin
12559 (method url-fetch)
12560 (uri (string-append "https://elpa.gnu.org/packages/pyim-" version ".tar"))
12561 (sha256
12562 (base32 "1rr9mq334dqf7mx1ii7910zkigw7chl63iws4sw0qsn014kjlb0a"))))
12563 (build-system emacs-build-system)
12564 (propagated-inputs
12565 `(("emacs-async" ,emacs-async)
12566 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
12567 ("emacs-popup" ,emacs-popup)
12568 ("emacs-posframe" ,emacs-posframe)
12569 ("emacs-xr" ,emacs-xr)))
12570 (home-page "https://github.com/tumashu/pyim")
12571 (synopsis "Chinese input method")
12572 (description
12573 "This package provides a Chinese input method which supports quanpin,
12574 shuangpin, wubi and cangjie.")
12575 (license license:gpl2+)))
12576
12577 (define-public emacs-posframe
12578 (package
12579 (name "emacs-posframe")
12580 (version "0.8.8")
12581 (source
12582 (origin
12583 (method url-fetch)
12584 (uri (string-append "https://elpa.gnu.org/packages/"
12585 "posframe-" version ".tar"))
12586 (sha256
12587 (base32 "1ij6brzcxv9viz37qafcinlfx5l20w8x8s6786r1rsda5n1xsmvd"))))
12588 (build-system emacs-build-system)
12589 ;; emacs-minimal does not include the function font-info.
12590 (arguments
12591 `(#:emacs ,emacs))
12592 (home-page "https://github.com/tumashu/posframe")
12593 (synopsis "Pop a posframe (a child frame) at point")
12594 (description
12595 "Posframe can pop a posframe at point. A posframe is a child frame
12596 displayed within its root window's buffer. Posframe is fast and works well
12597 with CJK languages.")
12598 (license license:gpl3+)))
12599
12600 (define-public emacs-el2org
12601 (package
12602 (name "emacs-el2org")
12603 (version "0.6.0")
12604 (source
12605 (origin
12606 (method git-fetch)
12607 (uri (git-reference
12608 (url "https://github.com/tumashu/el2org")
12609 (commit (string-append "v" version))))
12610 (file-name (git-file-name name version))
12611 (sha256
12612 (base32 "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b"))))
12613 (build-system emacs-build-system)
12614 (home-page "https://github.com/tumashu/el2org")
12615 (synopsis "Convert Emacs-lisp file to org file")
12616 (description "El2org is a simple tool, which can convert Emacs-lisp file
12617 to org file, you can use this tool to write orgify commentary.")
12618 (license license:gpl2+)))
12619
12620 (define-public emacs-mustache
12621 (package
12622 (name "emacs-mustache")
12623 (version "0.23")
12624 (source
12625 (origin
12626 (method git-fetch)
12627 (uri (git-reference
12628 (url "https://github.com/Wilfred/mustache.el")
12629 (commit version)))
12630 (file-name (git-file-name name version))
12631 (sha256
12632 (base32 "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"))))
12633 (build-system emacs-build-system)
12634 (propagated-inputs
12635 `(("emacs-dash" ,emacs-dash)
12636 ("emacs-ht" ,emacs-ht)
12637 ("emacs-s" ,emacs-s)))
12638 (home-page "https://github.com/Wilfred/mustache.el")
12639 (synopsis "Mustache templating library for Emacs")
12640 (description "Mustache templating library for Emacs, mustache is
12641 a simple web template system, which is described as a logic-less system
12642 because it lacks any explicit control flow statements, both looping and
12643 conditional evaluation can be achieved using section tags processing lists
12644 and lambdas.")
12645 (license license:gpl3+)))
12646
12647 (define-public emacs-org2web
12648 (package
12649 (name "emacs-org2web")
12650 (version "0.9.1")
12651 (source
12652 (origin
12653 (method git-fetch)
12654 (uri (git-reference
12655 (url "https://github.com/tumashu/org2web")
12656 (commit (string-append "v" version))))
12657 (file-name (git-file-name name version))
12658 (sha256
12659 (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"))))
12660 (build-system emacs-build-system)
12661 (propagated-inputs
12662 `(("emacs-dash" ,emacs-dash)
12663 ("emacs-el2org" ,emacs-el2org)
12664 ("emacs-ht" ,emacs-ht)
12665 ("emacs-mustache" ,emacs-mustache)
12666 ("emacs-simple-httpd" ,emacs-simple-httpd)))
12667 (home-page "https://github.com/tumashu/org2web")
12668 (synopsis "Static site generator based on org-mode ")
12669 (description "Org2web is a static site generator based on org-mode,
12670 which code derived from Kelvin H's org-page.")
12671 (license license:gpl2+)))
12672
12673 (define-public emacs-xelb
12674 (package
12675 (name "emacs-xelb")
12676 (version "0.18")
12677 (source (origin
12678 (method url-fetch)
12679 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
12680 version ".tar"))
12681 (sha256
12682 (base32
12683 "1fp5mzl63sh0h3ws4l5p4qgvi7ny8a3fj6k4dhqa98xgw2bx03v7"))))
12684 (build-system emacs-build-system)
12685 ;; The following functions and variables needed by emacs-xelb are
12686 ;; not included in emacs-minimal:
12687 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
12688 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
12689 ;; x-display-pixel-width, x-display-pixel-height
12690 (arguments
12691 `(#:emacs ,emacs
12692 #:phases
12693 (modify-phases %standard-phases
12694 (add-after 'unpack 'regenerate-el-files
12695 (lambda* (#:key inputs #:allow-other-keys)
12696 (invoke "make"
12697 (string-append "PROTO_PATH="
12698 (assoc-ref inputs "xcb-proto")
12699 "/share/xcb")
12700 (string-append "EMACS_BIN="
12701 (assoc-ref inputs "emacs")
12702 "/bin/emacs -Q")))))))
12703 (native-inputs `(("xcb-proto" ,xcb-proto)))
12704 (home-page "https://github.com/ch11ng/xelb")
12705 (synopsis "X protocol Emacs Lisp binding")
12706 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
12707 X11 protocol based on the XML description files from the XCB project. It
12708 features an object-oriented API and permits a certain degree of concurrency.
12709 It should enable you to implement low-level X11 applications.")
12710 (license license:gpl3+)))
12711
12712 (define-public emacs-exwm
12713 (package
12714 (name "emacs-exwm")
12715 (version "0.24")
12716 (synopsis "Emacs X window manager")
12717 (source
12718 (origin
12719 (method url-fetch)
12720 (uri (string-append "https://elpa.gnu.org/packages/"
12721 "exwm-" version ".tar"))
12722 (sha256
12723 (base32 "0lj1a3cmbpf4h6x8k6x8cdm1qb51ca6filydnvi5zcda8zpl060s"))
12724 (patches
12725 ;; Patch fixing fullscreen view. Applied upstream as
12726 ;; edb930005b0ba83051ca8a59b493e9a3c8ef580a. It can be removed in
12727 ;; next release.
12728 (search-patches "emacs-exwm-fix-fullscreen-states.patch"))))
12729 (build-system emacs-build-system)
12730 (propagated-inputs
12731 `(("emacs-xelb" ,emacs-xelb)))
12732 (inputs
12733 `(("xhost" ,xhost)
12734 ("dbus" ,dbus)))
12735 ;; The following functions and variables needed by emacs-exwm are
12736 ;; not included in emacs-minimal:
12737 ;; scroll-bar-mode, fringe-mode
12738 ;; x-display-pixel-width, x-display-pixel-height
12739 (arguments
12740 `(#:emacs ,emacs
12741 #:phases
12742 (modify-phases %standard-phases
12743 (add-after 'build 'install-xsession
12744 (lambda* (#:key inputs outputs #:allow-other-keys)
12745 (let* ((out (assoc-ref outputs "out"))
12746 (xsessions (string-append out "/share/xsessions"))
12747 (bin (string-append out "/bin"))
12748 (exwm-executable (string-append bin "/exwm")))
12749 ;; Add a .desktop file to xsessions
12750 (mkdir-p xsessions)
12751 (mkdir-p bin)
12752 (make-desktop-entry-file
12753 (string-append xsessions "/exwm.desktop")
12754 #:name ,name
12755 #:comment ,synopsis
12756 #:exec exwm-executable
12757 #:try-exec exwm-executable)
12758 ;; Add a shell wrapper to bin
12759 (with-output-to-file exwm-executable
12760 (lambda _
12761 (format #t "#!~a ~@
12762 ~a +SI:localuser:$USER ~@
12763 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
12764 (string-append (assoc-ref inputs "bash") "/bin/sh")
12765 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
12766 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
12767 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
12768 '(cond
12769 ((file-exists-p "~/.exwm")
12770 (load-file "~/.exwm"))
12771 ((not (featurep 'exwm))
12772 (require 'exwm)
12773 (require 'exwm-config)
12774 (exwm-config-default)
12775 (message (concat "exwm configuration not found. "
12776 "Falling back to default configuration...")))))))
12777 (chmod exwm-executable #o555)
12778 #t))))))
12779 (home-page "https://github.com/ch11ng/exwm")
12780 (description
12781 "EXWM is a full-featured tiling X window manager for Emacs built on top
12782 of XELB.")
12783 (license license:gpl3+)))
12784
12785 (define-public emacs-xelb-no-x-toolkit
12786 (package
12787 (inherit emacs-xelb)
12788 (name "emacs-xelb-no-x-toolkit")
12789 (arguments
12790 (substitute-keyword-arguments (package-arguments emacs-xelb)
12791 ((#:emacs emacs) `,emacs-no-x-toolkit)))))
12792
12793 (define-public emacs-exwm-no-x-toolkit
12794 (package
12795 (inherit emacs-exwm)
12796 (name "emacs-exwm-no-x-toolkit")
12797 (synopsis "Emacs X window manager (without an X toolkit)")
12798 (propagated-inputs
12799 `(("emacs-xelb-no-x-toolkit" ,emacs-xelb-no-x-toolkit)))
12800 (arguments
12801 (substitute-keyword-arguments (package-arguments emacs-exwm)
12802 ((#:emacs emacs) `,emacs-no-x-toolkit)))))
12803
12804 (define-public emacs-switch-window
12805 (package
12806 (name "emacs-switch-window")
12807 (version "1.6.2")
12808 (source
12809 (origin
12810 (method git-fetch)
12811 (uri (git-reference
12812 (url "https://github.com/dimitri/switch-window")
12813 (commit (string-append "v" version))))
12814 (file-name (git-file-name name version))
12815 (sha256
12816 (base32
12817 "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
12818 (build-system emacs-build-system)
12819 (home-page "https://github.com/dimitri/switch-window")
12820 (synopsis "Emacs window switch tool")
12821 (description "Switch-window is an emacs window switch tool, which
12822 offer a visual way to choose a window to switch to, delete, split or
12823 other operations.")
12824 (license license:wtfpl2)))
12825
12826 (define-public emacs-exwm-x
12827 (package
12828 (name "emacs-exwm-x")
12829 (version "1.9.0")
12830 (synopsis "Derivative window manager based on EXWM")
12831 (source
12832 (origin
12833 (method git-fetch)
12834 (uri (git-reference
12835 (url "https://github.com/tumashu/exwm-x")
12836 (commit (string-append "v" version))))
12837 (file-name (git-file-name name version))
12838 (sha256
12839 (base32
12840 "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4"))))
12841 (build-system emacs-build-system)
12842 (propagated-inputs
12843 `(("emacs-counsel" ,emacs-counsel)
12844 ("emacs-exwm" ,emacs-exwm)
12845 ("emacs-switch-window" ,emacs-switch-window)
12846 ("emacs-use-package" ,emacs-use-package)))
12847 (inputs
12848 `(("xhost" ,xhost)
12849 ("dbus" ,dbus)))
12850 ;; Need emacs instead of emacs-minimal,
12851 ;; for emacs's bin path will be inserted into bin/exwm-x file.
12852 (arguments
12853 `(#:emacs ,emacs
12854 #:phases
12855 (modify-phases %standard-phases
12856 (add-after 'build 'install-xsession
12857 (lambda* (#:key inputs outputs #:allow-other-keys)
12858 (let* ((out (assoc-ref outputs "out"))
12859 (xsessions (string-append out "/share/xsessions"))
12860 (bin (string-append out "/bin"))
12861 (exwm-executable (string-append bin "/exwm-x")))
12862 ;; Add a .desktop file to xsessions
12863 (mkdir-p xsessions)
12864 (mkdir-p bin)
12865 (with-output-to-file
12866 (string-append xsessions "/exwm-x.desktop")
12867 (lambda _
12868 (format #t "[Desktop Entry]~@
12869 Name=~a~@
12870 Comment=~a~@
12871 Exec=~a~@
12872 TryExec=~@*~a~@
12873 Type=Application~%" ,name ,synopsis exwm-executable)))
12874 ;; Add a shell wrapper to bin
12875 (with-output-to-file exwm-executable
12876 (lambda _
12877 (format #t "#!~a ~@
12878 ~a +SI:localuser:$USER ~@
12879 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
12880 (string-append (assoc-ref inputs "bash") "/bin/sh")
12881 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
12882 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
12883 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
12884 '(require 'exwmx-loader))))
12885 (chmod exwm-executable #o555)
12886 #t))))))
12887 (home-page "https://github.com/tumashu/exwm-x")
12888 (description "EXWM-X is a derivative window manager based on EXWM, with focus
12889 on mouse-control.")
12890 (license license:gpl3+)))
12891
12892 (define-public emacs-gnugo
12893 (package
12894 (name "emacs-gnugo")
12895 (version "3.1.0")
12896 (source
12897 (origin
12898 (method url-fetch)
12899 (uri (string-append "https://elpa.gnu.org/packages/gnugo-"
12900 version ".tar"))
12901 (sha256
12902 (base32
12903 "0xpjvs250gg71qwapdsb1hlc61gs0gpkjds01srf784fvyxx2gf1"))))
12904 (build-system emacs-build-system)
12905 (arguments
12906 `(#:phases (modify-phases %standard-phases
12907 (add-after 'unpack 'configure-default-gnugo-xpms-variable
12908 (lambda _
12909 (substitute* "gnugo.el"
12910 (("defvar gnugo-xpms nil")
12911 "defvar gnugo-xpms #'gnugo-imgen-create-xpms"))
12912 #t)))))
12913 (propagated-inputs
12914 `(("emacs-ascii-art-to-unicode" ,emacs-ascii-art-to-unicode)
12915 ("emacs-xpm" ,emacs-xpm)))
12916 (home-page "https://elpa.gnu.org/packages/gnugo.html")
12917 (synopsis "Emacs major mode for playing GNU Go")
12918 (description "This package provides an Emacs based interface for GNU Go.
12919 It has a graphical mode where the board and stones are drawn using XPM images
12920 and supports the use of a mouse.")
12921 (license license:gpl3+)))
12922
12923 (define-public emacs-gnuplot
12924 (package
12925 (name "emacs-gnuplot")
12926 (version "0.8.0")
12927 (source
12928 (origin
12929 (method git-fetch)
12930 (uri (git-reference
12931 (url "https://github.com/emacsorphanage/gnuplot-mode")
12932 (commit version)))
12933 (file-name (git-file-name name version))
12934 (sha256
12935 (base32 "09y177sq24gs7wwjihw59g0m4n1rv2ws9890ynxjxawv823r0fxm"))))
12936 (build-system emacs-build-system)
12937 (home-page "https://github.com/emacsorphanage/gnuplot-mode")
12938 (synopsis "Emacs major mode for interacting with Gnuplot")
12939 (description
12940 "Emacs Gnuplot is an Emacs major mode for interacting with Gnuplot.")
12941 (license license:gpl2+)))
12942
12943 (define-public emacs-transpose-frame
12944 (package
12945 (name "emacs-transpose-frame")
12946 (version "0.2.0")
12947 (source
12948 (origin
12949 (method git-fetch)
12950 (uri (git-reference
12951 (url "https://github.com/emacsorphanage/transpose-frame")
12952 (commit (string-append "v" version))))
12953 (file-name (git-file-name name version))
12954 (sha256
12955 (base32 "01j4ci0c52r2c31hc9r4p7nsb6s8blmvg50g9n5v5h3afjl1c35v"))))
12956 (build-system emacs-build-system)
12957 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
12958 (synopsis "Transpose window arrangement in current frame")
12959 (description "@code{emacs-transpose-frame} provides some interactive
12960 functions which allows users to transpose windows arrangement in currently
12961 selected frame.")
12962 (license license:bsd-2)))
12963
12964 (define-public emacs-key-chord
12965 (package
12966 (name "emacs-key-chord")
12967 (version "0.6")
12968 (source
12969 (origin
12970 (method url-fetch)
12971 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
12972 (file-name (string-append "key-chord-" version ".el"))
12973 (sha256
12974 (base32
12975 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
12976 (build-system emacs-build-system)
12977 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
12978 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
12979 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
12980 mode for binding key chords to commands. A key chord is defined as two keys
12981 pressed simultaneously or a single key quickly pressed twice.")
12982 (license license:gpl2+)))
12983
12984 (define-public emacs-evil-surround
12985 (package
12986 (name "emacs-evil-surround")
12987 (version "1.1.1")
12988 (source
12989 (origin
12990 (method git-fetch)
12991 (uri (git-reference
12992 (url "https://github.com/emacs-evil/evil-surround")
12993 (commit version)))
12994 (file-name (git-file-name name version))
12995 (sha256
12996 (base32 "1gfgmr4909m36gknprcam6q4rkcqfbi6w43ky7x6jnlmgb6mxggg"))))
12997 (build-system emacs-build-system)
12998 (propagated-inputs
12999 `(("emacs-evil" ,emacs-evil)))
13000 (arguments
13001 `(#:tests? #t
13002 #:test-command '("make" "test")))
13003 (home-page "https://github.com/emacs-evil/evil-surround")
13004 (synopsis "Easily modify surrounding parentheses and quotes")
13005 (description "@code{emacs-evil-surround} allows easy deletion, change and
13006 addition of surrounding pairs, such as parentheses and quotes, in evil mode.")
13007 (license license:gpl3+)))
13008
13009 (define-public emacs-evil-commentary
13010 (package
13011 (name "emacs-evil-commentary")
13012 (version "2.1.1")
13013 (source
13014 (origin
13015 (method git-fetch)
13016 (uri (git-reference
13017 (url "https://github.com/linktohack/evil-commentary")
13018 (commit (string-append "v" version))))
13019 (file-name (git-file-name name version))
13020 (sha256
13021 (base32 "0zjs9zyqfygnpxapvf0ymmiid40i06cxbhjzd81zw33nafgkf6r4"))))
13022 (build-system emacs-build-system)
13023 (propagated-inputs
13024 `(("emacs-evil" ,emacs-evil)))
13025 (home-page "https://github.com/linktohack/evil-commentary")
13026 (synopsis "Comment out code in evil mode")
13027 (description "@code{emacs-evil-commentary} adds keybindings to easily
13028 comment out lines of code in evil mode. It provides @code{gcc} to comment out
13029 lines, and @code{gc} to comment out the target of a motion.")
13030 (license license:gpl3+)))
13031
13032 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
13033 ;; therefore cannot be run
13034 (define-public emacs-ansi
13035 (let ((commit "a41d5cc719297515d85bb5256980cd1204a71b88")
13036 (revision "1"))
13037 (package
13038 (name "emacs-ansi")
13039 (version (git-version "0.4.1" revision commit))
13040 (source
13041 (origin
13042 (method git-fetch)
13043 (uri (git-reference
13044 (url "https://github.com/rejeep/ansi.el")
13045 (commit commit)))
13046 (file-name (git-file-name name version))
13047 (sha256
13048 (base32 "051v8dmji90chwbsyqsqry7h35mksal2j6rgw1kpmjsni86d79y1"))))
13049 (build-system emacs-build-system)
13050 (propagated-inputs
13051 `(("emacs-dash" ,emacs-dash)
13052 ("emacs-s" ,emacs-s)))
13053 (home-page "https://github.com/rejeep/ansi.el")
13054 (synopsis "Convert strings to ANSI")
13055 (description "@code{emacs-ansi} defines functions that turns simple
13056 strings to ANSI strings. Turning a string into an ANSI string can be to add
13057 color to a text, add color in the background of a text or adding a style, such
13058 as bold, underscore or italic.")
13059 (license license:gpl3+))))
13060
13061 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
13062 ;; therefore cannot be run
13063 (define-public emacs-commander
13064 (package
13065 (name "emacs-commander")
13066 (version "0.7.0")
13067 (source
13068 (origin
13069 (method git-fetch)
13070 (uri (git-reference
13071 (url "https://github.com/rejeep/commander.el")
13072 (commit (string-append "v" version))))
13073 (file-name (git-file-name name version))
13074 (sha256
13075 (base32 "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45"))))
13076 (build-system emacs-build-system)
13077 (propagated-inputs
13078 `(("emacs-dash" ,emacs-dash)
13079 ("emacs-f" ,emacs-f)
13080 ("emacs-s" ,emacs-s)))
13081 (home-page "https://github.com/rejeep/commander.el")
13082 (synopsis "Emacs command line parser")
13083 (description "@code{emacs-commander} provides command line parsing for
13084 Emacs.")
13085 (license license:gpl3+)))
13086
13087 (define-public emacs-eglot
13088 (package
13089 (name "emacs-eglot")
13090 (version "1.7")
13091 (source
13092 (origin
13093 (method url-fetch)
13094 (uri (string-append "https://elpa.gnu.org/packages/"
13095 "eglot-" version ".tar"))
13096 (sha256
13097 (base32 "1zvs144hxq2mmq1h0ynx9hy7yyccb46f3pjg9mgq8v9cw5y678vk"))))
13098 (build-system emacs-build-system)
13099 (propagated-inputs
13100 `(("emacs-eldoc" ,emacs-eldoc)
13101 ("emacs-jsonrpc" ,emacs-jsonrpc)
13102 ("emacs-project" ,emacs-project)))
13103 (home-page "https://github.com/joaotavora/eglot")
13104 (synopsis "Client for Language Server Protocol (LSP) servers")
13105 (description
13106 "Emacs Polyglot, or Eglot, is an Emacs @acronym{Language Server Protocol,
13107 LSP} client that stays out of the way. It guesses the LSP program to start
13108 for the current file, using the major mode as a hint. It prompts you to enter
13109 one if it fails.")
13110 (license license:gpl3+)))
13111
13112 (define-public emacs-eldoc
13113 (package
13114 (name "emacs-eldoc")
13115 (version "1.11.0")
13116 (source
13117 (origin
13118 (method url-fetch)
13119 (uri (string-append
13120 "https://elpa.gnu.org/packages/eldoc-" version ".el"))
13121 (sha256
13122 (base32 "1py9l1vl7s90y5kfpglhy11jswam2gcrqap09h6wb5ldnyb8cgq2"))))
13123 (build-system emacs-build-system)
13124 (home-page "http://elpa.gnu.org/packages/eldoc.html")
13125 (synopsis "Show function arglist or variable docstring in echo area")
13126 (description
13127 "This program was inspired by the behavior of the ``mouse documentation
13128 window'' on many Lisp Machine systems; as you type a function's symbol name as
13129 part of a sexp, it will print the argument list for that function. Behavior
13130 is not identical; for example, you need not actually type the function name,
13131 you need only move point around in a sexp that calls it. Also, if point is
13132 over a documented variable, it will print the one-line documentation for that
13133 variable instead, to remind you of that variable's meaning.")
13134 (license license:gpl3+)))
13135
13136 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
13137 ;; cannot be run
13138 (define-public emacs-ert-runner
13139 (package
13140 (name "emacs-ert-runner")
13141 (version "0.8.0")
13142 (source
13143 (origin
13144 (method git-fetch)
13145 (uri (git-reference
13146 (url "https://github.com/rejeep/ert-runner.el")
13147 (commit (string-append "v" version))))
13148 (file-name (git-file-name name version))
13149 (sha256
13150 (base32
13151 "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98"))))
13152 (build-system emacs-build-system)
13153 (inputs
13154 `(("emacs-ansi" ,emacs-ansi)
13155 ("emacs-commander" ,emacs-commander)
13156 ("emacs-dash" ,emacs-dash)
13157 ("emacs-f" ,emacs-f)
13158 ("emacs-s" ,emacs-s)
13159 ("emacs-shut-up" ,emacs-shut-up)))
13160 (arguments
13161 `(#:phases
13162 (modify-phases %standard-phases
13163 (add-after 'install 'install-executable
13164 (lambda* (#:key inputs outputs #:allow-other-keys)
13165 (let ((out (assoc-ref outputs "out"))
13166 (source-directory (string-append
13167 (getenv "TMPDIR") "/source")))
13168 (substitute* "bin/ert-runner"
13169 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
13170 (string-append "ERT_RUNNER=\"" out
13171 "/share/emacs/site-lisp")))
13172 (install-file "bin/ert-runner" (string-append out "/bin"))
13173 (wrap-program (string-append out "/bin/ert-runner")
13174 (list "EMACSLOADPATH" ":" 'prefix
13175 ;; Do not capture the transient source directory in
13176 ;; the wrapper.
13177 (delete source-directory
13178 (string-split (getenv "EMACSLOADPATH") #\:))))
13179 #t))))
13180 #:include (cons* "^reporters/.*\\.el$" %default-include)))
13181 (home-page "https://github.com/rejeep/ert-runner.el")
13182 (synopsis "Opinionated Ert testing workflow")
13183 (description "@code{ert-runner} is a tool for Emacs projects tested
13184 using ERT. It assumes a certain test structure setup and can therefore make
13185 running tests easier.")
13186 (license license:gpl3+)))
13187
13188 (define-public emacs-xtest
13189 (package
13190 (name "emacs-xtest")
13191 (version "1.1.0")
13192 (source (origin
13193 (method git-fetch)
13194 (uri (git-reference
13195 (url "https://github.com/promethial/xtest")
13196 (commit (string-append "v" version))))
13197 (file-name (git-file-name name version))
13198 (sha256
13199 (base32
13200 "1wqx6hlqcmqiljydih5fx89dw06g8w728pyn4iqsap8jwgjngb09"))))
13201 (arguments
13202 `(#:exclude '()))
13203 (build-system emacs-build-system)
13204 (home-page "https://github.com/promethial/xtest/")
13205 (synopsis "Simple testing with Emacs")
13206 (description "This package provides a simple testing library for Emacs.")
13207 (license license:gpl3+)))
13208
13209 (define-public emacs-disable-mouse
13210 (package
13211 (name "emacs-disable-mouse")
13212 (version "0.3")
13213 (source
13214 (origin
13215 (method git-fetch)
13216 (uri (git-reference
13217 (url "https://github.com/purcell/disable-mouse")
13218 (commit version)))
13219 (file-name (git-file-name name version))
13220 (sha256
13221 (base32 "0l6mai68ns3qw3rlvjvzsnqwdy7bxqiy0vdwflq0l1plxb1vazyc"))))
13222 (build-system emacs-build-system)
13223 (home-page "https://github.com/purcell/disable-mouse")
13224 (synopsis "Disable mouse commands globally")
13225 (description
13226 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
13227 pair of minor modes which suppress all mouse events by intercepting them and
13228 running a customisable handler command (@code{ignore} by default). ")
13229 (license license:gpl3+)))
13230
13231 (define-public emacs-json-reformat
13232 (package
13233 (name "emacs-json-reformat")
13234 (version "0.0.6")
13235 (source
13236 (origin
13237 (method git-fetch)
13238 (uri (git-reference
13239 (url "https://github.com/gongo/json-reformat")
13240 (commit version)))
13241 (file-name (git-file-name name version))
13242 (sha256
13243 (base32 "0qp4n2k6s69jj4gwwimkpadjv245y54wk3bxb1x96f034gkp81vs"))
13244 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
13245 (build-system emacs-build-system)
13246 (propagated-inputs
13247 `(("emacs-undercover" ,emacs-undercover)))
13248 (native-inputs
13249 `(("emacs-dash" ,emacs-dash)
13250 ("emacs-shut-up" ,emacs-shut-up)
13251 ("ert-runner" ,emacs-ert-runner)))
13252 (arguments
13253 `(#:tests? #t
13254 #:test-command '("ert-runner")
13255 #:phases
13256 (modify-phases %standard-phases
13257 (add-before 'check 'make-tests-writable
13258 (lambda _
13259 (for-each make-file-writable (find-files "test"))
13260 #t))
13261 (add-before 'check 'delete-json-objects-order-test
13262 (lambda _
13263 (emacs-batch-edit-file "test/json-reformat-test.el"
13264 `(progn (progn (goto-char (point-min))
13265 (re-search-forward
13266 "ert-deftest json-reformat-test:json-reformat-region")
13267 (beginning-of-line)
13268 (kill-sexp))
13269 (basic-save-buffer)))
13270 #t)))))
13271 (home-page "https://github.com/gongo/json-reformat")
13272 (synopsis "Reformatting tool for JSON")
13273 (description "@code{json-reformat} provides a reformatting tool for
13274 @url{http://json.org/, JSON}.")
13275 (license license:gpl3+)))
13276
13277 (define-public emacs-json-snatcher
13278 (package
13279 (name "emacs-json-snatcher")
13280 (version "1.0.0")
13281 (source
13282 (origin
13283 (method git-fetch)
13284 (uri (git-reference
13285 (url "https://github.com/Sterlingg/json-snatcher")
13286 (commit version)))
13287 (file-name (git-file-name name version))
13288 (sha256
13289 (base32 "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw"))))
13290 (build-system emacs-build-system)
13291 (home-page "https://github.com/sterlingg/json-snatcher")
13292 (synopsis "Grabs the path to JSON values in a JSON file")
13293 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
13294 a @url{http://json.org/, JSON} file.")
13295 (license license:gpl3+)))
13296
13297 (define-public emacs-json-mode
13298 (package
13299 (name "emacs-json-mode")
13300 (version "1.7.0")
13301 (source
13302 (origin
13303 (method git-fetch)
13304 (uri (git-reference
13305 (url "https://github.com/joshwnj/json-mode")
13306 (commit (string-append "v" version))))
13307 (file-name (git-file-name name version))
13308 (sha256
13309 (base32 "0i79lqzdg59vkqwjd3q092xxn9vhxspb1vn4pkis0vfvn46g01jy"))))
13310 (build-system emacs-build-system)
13311 (propagated-inputs
13312 `(("emacs-json-reformat" ,emacs-json-reformat)
13313 ("emacs-json-snatcher" ,emacs-json-snatcher)))
13314 (home-page "https://github.com/joshwnj/json-mode")
13315 (synopsis "Major mode for editing JSON files")
13316 (description "@code{json-mode} extends the builtin js-mode syntax
13317 highlighting.")
13318 (license license:gpl3+)))
13319
13320 (define-public emacs-jsonrpc
13321 (package
13322 (name "emacs-jsonrpc")
13323 (version "1.0.14")
13324 (source
13325 (origin
13326 (method url-fetch)
13327 (uri (string-append "https://elpa.gnu.org/packages/"
13328 "jsonrpc-" version ".el"))
13329 (sha256
13330 (base32 "069l0sqkambam4ikj9id36kdw1jdjna8v586d51m64hiz96rmvm6"))))
13331 (build-system emacs-build-system)
13332 (home-page "http://elpa.gnu.org/packages/jsonrpc.html")
13333 (synopsis "JSON-RPC library")
13334 (description
13335 "This library implements the JSONRPC 2.0 specification as
13336 described in @url{http://www.jsonrpc.org/}. As the name suggests,
13337 JSONRPC is a generic Remote Procedure Call protocol designed around
13338 JSON objects.")
13339 (license license:gpl3+)))
13340
13341 (define-public emacs-jsonnet-mode
13342 (package
13343 (name "emacs-jsonnet-mode")
13344 (version "0.1.2")
13345 (source
13346 (origin
13347 (method git-fetch)
13348 (uri (git-reference
13349 (url "https://github.com/tminor/jsonnet-mode")
13350 (commit (string-append "v" version))))
13351 (file-name (git-file-name name version))
13352 (sha256
13353 (base32
13354 "0vi7415n90d1z2ww1hld0gdp6v7z4rd6f70h476dp2x4hydk293i"))))
13355 (build-system emacs-build-system)
13356 (propagated-inputs
13357 `(("emacs-dash" ,emacs-dash)))
13358 (home-page "https://github.com/tminor/jsonnet-mode")
13359 (synopsis "Major mode for editing jsonnet files")
13360 (description "This package provides syntax highlighting, indenting,
13361 formatting, and utility methods for jsonnet files.")
13362 (license license:gpl3+)))
13363
13364 (define-public emacs-restclient
13365 (let ((commit "ac8aad6c6b9e9d918062fa3c89c22c2f4ec48bc3")
13366 (version "0")
13367 (revision "3")) ;Guix package revision,
13368 ;upstream doesn't have official releases
13369 (package
13370 (name "emacs-restclient")
13371 (version (git-version version revision commit))
13372 (source (origin
13373 (method git-fetch)
13374 (uri (git-reference
13375 (url "https://github.com/pashky/restclient.el")
13376 (commit commit)))
13377 (sha256
13378 (base32
13379 "1a2c7xzy7rsan1zcdskia6m7n6j29xacfkqjlfdhzk6rr1bpzkwk"))
13380 (file-name (git-file-name name version))))
13381 (build-system emacs-build-system)
13382 (propagated-inputs
13383 `(("emacs-helm" ,emacs-helm)
13384 ("emacs-jq-mode" ,emacs-jq-mode)))
13385 (home-page "https://github.com/pashky/restclient.el")
13386 (synopsis "Explore and test HTTP REST webservices")
13387 (description
13388 "This tool allows for testing and exploration of HTTP REST Web services
13389 from within Emacs. Restclient runs queries from a plan-text query sheet,
13390 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
13391 (license license:public-domain))))
13392
13393 (define-public emacs-jq-mode
13394 (package
13395 (name "emacs-jq-mode")
13396 (version "0.5.0")
13397 (source
13398 (origin
13399 (method git-fetch)
13400 (uri (git-reference
13401 (url "https://github.com/ljos/jq-mode")
13402 (commit (string-append "v" version))))
13403 (file-name (git-file-name name version))
13404 (sha256
13405 (base32 "0xk0if5i9cz4w06lx8v1vdm112pn1ybqgfw048sx15yyvfzgril1"))))
13406 (build-system emacs-build-system)
13407 (home-page "https://github.com/ljos/jq-mode")
13408 (synopsis "Major mode for editing jq queries")
13409 (description
13410 "Jq mode is an Emacs major mode for editing jq-scripts.")
13411 (license license:gpl3+)))
13412
13413 (define-public emacs-whitespace-cleanup-mode
13414 (let ((commit "72427144b054b0238a86e1348c45d986b8830d9d")
13415 (revision "1"))
13416 (package
13417 (name "emacs-whitespace-cleanup-mode")
13418 (version (git-version "0.10" revision commit))
13419 (source (origin
13420 (method git-fetch)
13421 (uri (git-reference
13422 (url "https://github.com/purcell/whitespace-cleanup-mode")
13423 (commit commit)))
13424 (sha256
13425 (base32
13426 "1zlk534jbwrsabcg3kqlzk4h4hwya60lh6q2n1v4yn4rpf5ghsag"))
13427 (file-name (git-file-name name version))))
13428 (build-system emacs-build-system)
13429 (home-page "https://github.com/purcell/whitespace-cleanup-mode")
13430 (synopsis "Intelligently call @code{whitespace-cleanup} on save")
13431 (description
13432 "This package provides a minor mode that calls
13433 @code{whitespace-cleanup} before saving the current buffer only if the
13434 whitespace in the buffer was initially clean.")
13435 (license license:gpl3+))))
13436
13437 (define-public emacs-eimp
13438 (let ((version "1.4.0")
13439 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
13440 (revision "1"))
13441 (package
13442 (name "emacs-eimp")
13443 (version (git-version version revision commit))
13444 (source
13445 (origin
13446 (method git-fetch)
13447 (uri (git-reference
13448 (url "https://github.com/nicferrier/eimp")
13449 (commit commit)))
13450 (file-name (git-file-name name version))
13451 (sha256
13452 (base32
13453 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
13454 (build-system emacs-build-system)
13455 (arguments
13456 `(#:phases
13457 (modify-phases %standard-phases
13458 (add-after 'unpack 'configure
13459 (lambda* (#:key inputs #:allow-other-keys)
13460 (let ((imagemagick (assoc-ref inputs "imagemagick")))
13461 ;; eimp.el is read-only in git.
13462 (chmod "eimp.el" #o644)
13463 (emacs-substitute-variables "eimp.el"
13464 ("eimp-mogrify-program"
13465 (string-append imagemagick "/bin/mogrify"))))
13466 #t)))))
13467 (inputs
13468 `(("imagemagick" ,imagemagick)))
13469 (home-page "https://github.com/nicferrier/eimp")
13470 (synopsis "Interactive image manipulation utility for Emacs")
13471 (description "@code{emacs-eimp} allows interactive image manipulation
13472 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
13473 the actual transformations.")
13474 (license license:gpl2+))))
13475
13476 (define-public emacs-dired-hacks
13477 (let ((commit "d1a2bda6aa8f890cb367297ed93aee6d3b5ba388")
13478 (revision "3"))
13479 (package
13480 (name "emacs-dired-hacks")
13481 (version (git-version "0.0.1" revision commit))
13482 (source (origin
13483 (method git-fetch)
13484 (uri (git-reference
13485 (url "https://github.com/Fuco1/dired-hacks")
13486 (commit commit)))
13487 (file-name (git-file-name name version))
13488 (sha256
13489 (base32
13490 "12m81a9kjhs4cyq3lym0vp5nx6z3sfnypyzrnia76x6rjvixjf6y"))))
13491 (build-system emacs-build-system)
13492 (propagated-inputs
13493 `(("emacs-dash" ,emacs-dash)
13494 ("emacs-eimp" ,emacs-eimp)
13495 ("emacs-f" ,emacs-f)
13496 ("emacs-s" ,emacs-s)))
13497 (home-page "https://github.com/Fuco1/dired-hacks")
13498 (synopsis
13499 "Collection of useful dired additions")
13500 (description
13501 "This package provides the following collection of Emacs dired mode
13502 additions:
13503
13504 @itemize
13505 @item dired-avfs
13506 @item dired-columns
13507 @item dired-filter
13508 @item dired-hacks-utils
13509 @item dired-images
13510 @item dired-list
13511 @item dired-narrow
13512 @item dired-open
13513 @item dired-rainbow
13514 @item dired-ranger
13515 @item dired-subtree
13516 @item dired-tagsistant
13517 @end itemize\n")
13518 (license license:gpl3+))))
13519
13520 (define-public emacs-dired-sidebar
13521 (let ((commit "da77919081d9a4e73c2df63542353319381e4f89")
13522 (revision "2"))
13523 (package
13524 (name "emacs-dired-sidebar")
13525 (home-page "https://github.com/jojojames/dired-sidebar")
13526 (version (git-version "0.1.0" revision commit))
13527 (source (origin
13528 (method git-fetch)
13529 (uri (git-reference (url home-page) (commit commit)))
13530 (file-name (git-file-name name version))
13531 (sha256
13532 (base32
13533 "05h56wdl2xvc8davnx83ypg20fl7wlks97cafa4r2yf141xjc05h"))))
13534 (build-system emacs-build-system)
13535 (propagated-inputs
13536 `(("emacs-dired-subtree" ,emacs-dired-hacks)))
13537 (synopsis "Sidebar for Emacs using Dired")
13538 (description
13539 "This package provides a sidebar for Emacs similar to @code{NeoTree}
13540 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
13541 (license license:gpl3+))))
13542
13543 (define-public emacs-which-key
13544 (package
13545 (name "emacs-which-key")
13546 (version "3.5.1")
13547 (source
13548 (origin
13549 (method git-fetch)
13550 (uri (git-reference
13551 (url "https://github.com/justbur/emacs-which-key")
13552 (commit (string-append "v" version))))
13553 (file-name (git-file-name name version))
13554 (sha256
13555 (base32 "1g07i6hyv9glhk6xq1z9vn81vi2f0byy7dp3rg4gw22sm6f6d1al"))))
13556 (build-system emacs-build-system)
13557 (arguments
13558 `(#:tests? #t
13559 #:test-command '("emacs" "--batch"
13560 "-l" "which-key-tests.el"
13561 "-f" "ert-run-tests-batch-and-exit")))
13562 (home-page "https://github.com/justbur/emacs-which-key")
13563 (synopsis "Display available key bindings in popup")
13564 (description
13565 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
13566 bindings following your currently entered incomplete command (a prefix) in a
13567 popup. For example, after enabling the minor mode if you enter C-x and wait
13568 for the default of 1 second, the minibuffer will expand with all of the
13569 available key bindings that follow C-x (or as many as space allows given your
13570 settings).")
13571 (license license:gpl3+)))
13572
13573 (define-public emacs-hercules
13574 (package
13575 (name "emacs-hercules")
13576 (version "0.3.1")
13577 (source
13578 (origin
13579 (method git-fetch)
13580 (uri (git-reference
13581 (url "https://gitlab.com/jjzmajic/hercules.el")
13582 (commit (string-append "v" version))))
13583 (file-name (git-file-name name version))
13584 (sha256
13585 (base32 "1rp37rhkj8jm07dwr74vc68dhrbvyvrxjdavpb0h073ps9vl9dsc"))))
13586 (build-system emacs-build-system)
13587 (propagated-inputs
13588 `(("emacs-which-key" ,emacs-which-key)))
13589 (home-page "https://gitlab.com/jjzmajic/hercules.el")
13590 (synopsis "Call a chain of related commands without repeated prefix keys")
13591 (description
13592 "This package provides sticky-key-like functionality to obviate the need
13593 for repeated prefix-key sequences, and can reuse existing keymaps. The list
13594 of commands is displayed in a handy popup.")
13595 (license license:gpl3+)))
13596
13597 (define-public emacs-ws-butler
13598 (package
13599 (name "emacs-ws-butler")
13600 (version "0.6")
13601 (source (origin
13602 (method git-fetch)
13603 (uri (git-reference
13604 (url "https://github.com/lewang/ws-butler")
13605 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
13606 (file-name (git-file-name name version))
13607 (sha256
13608 (base32
13609 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
13610 (build-system emacs-build-system)
13611 (native-inputs
13612 `(("ert-runner" ,emacs-ert-runner)))
13613 (arguments
13614 `(#:tests? #t
13615 #:test-command '("ert-runner" "tests")))
13616 (home-page "https://github.com/lewang/ws-butler")
13617 (synopsis "Trim spaces from end of lines")
13618 (description
13619 "This Emacs package automatically and unobtrusively trims whitespace
13620 characters from end of lines.")
13621 (license license:gpl3+)))
13622
13623 (define-public emacs-openwith
13624 ;; There is no release tag. Version is extracted from main file.
13625 (let ((version "20120531")
13626 (revision "0")
13627 (commit "5fe01dee520d24c839ad5ee18822667457d9f352"))
13628 (package
13629 (name "emacs-openwith")
13630 (version (git-version version revision commit))
13631 (source
13632 (origin
13633 (method git-fetch)
13634 (uri (git-reference
13635 (url "https://github.com/garberw/openwith")
13636 (commit commit)))
13637 (file-name (git-file-name name version))
13638 (sha256
13639 (base32 "1scbawhlzmj5nhix779rlqf462g37q84vpq205qhg4qyscvfx6bi"))))
13640 (build-system emacs-build-system)
13641 (home-page "https://github.com/garberw/openwith")
13642 (synopsis "Open external applications for files with Emacs")
13643 (description
13644 "This package enables you to associate file name patterns with external
13645 applications that are automatically invoked when you use commands like
13646 @code{find-file}. For example, you can have it open @code{png} files with
13647 @code{feh} and @code{mp4} files with @code{mpv}. This is especially useful
13648 when browsing files with Dired.")
13649 (license license:gpl2+))))
13650
13651 (define-public emacs-org-edit-latex
13652 (package
13653 (name "emacs-org-edit-latex")
13654 (version "0.8.3")
13655 (source
13656 (origin
13657 (method git-fetch)
13658 (uri (git-reference
13659 (url "https://github.com/et2010/org-edit-latex")
13660 (commit (string-append "v" version))))
13661 (file-name (git-file-name name version))
13662 (sha256
13663 (base32 "1w0lyz71dq8x28ira4hig1b70bqn1dr53w3k5dgch9szcf6xa86y"))))
13664 (build-system emacs-build-system)
13665 (propagated-inputs
13666 `(("emacs-auctex" ,emacs-auctex)
13667 ("emacs-org" ,emacs-org)))
13668 (home-page "https://github.com/et2010/org-edit-latex")
13669 (synopsis "Edit a LaTeX fragment just like editing a source block")
13670 (description
13671 "Org Edit LaTeX is an extension for Org mode. It lets you edit a LaTeX
13672 fragment in a dedicated buffer just like editing a source block.")
13673 (license license:gpl3+)))
13674
13675 (define-public emacs-emamux
13676 (package
13677 (name "emacs-emamux")
13678 (version "0.14")
13679 (source
13680 (origin
13681 (method git-fetch)
13682 (uri (git-reference
13683 (url "https://github.com/syohex/emacs-emamux")
13684 (commit version)))
13685 (file-name (git-file-name name version))
13686 (sha256
13687 (base32 "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b"))))
13688 (build-system emacs-build-system)
13689 (home-page "https://github.com/syohex/emacs-emamux")
13690 (synopsis "Manipulate Tmux from Emacs")
13691 (description
13692 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
13693 multiplexer.")
13694 (license license:gpl3+)))
13695
13696 (define-public emacs-rpm-spec-mode
13697 (package
13698 (name "emacs-rpm-spec-mode")
13699 (version "0.16")
13700 (source
13701 (origin
13702 (method url-fetch)
13703 ;; URI has the Fedora release number instead of the version
13704 ;; number. This will have to updated manually every new release.
13705 (uri (string-append
13706 "https://src.fedoraproject.org/cgit/rpms"
13707 "/emacs-rpm-spec-mode.git/snapshot"
13708 "/emacs-rpm-spec-mode-f26.tar.gz"))
13709 (sha256
13710 (base32
13711 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
13712 (build-system emacs-build-system)
13713 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
13714 (synopsis "Emacs major mode for editing RPM spec files")
13715 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
13716 editing RPM spec files.")
13717 (license license:gpl2+)))
13718
13719 (define-public emacs-lcr
13720 (package
13721 (name "emacs-lcr")
13722 (version "1.1")
13723 (source
13724 (origin
13725 (method git-fetch)
13726 (uri (git-reference
13727 (url "https://github.com/jyp/lcr")
13728 (commit version)))
13729 (file-name (git-file-name name version))
13730 (sha256
13731 (base32 "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8"))))
13732 (build-system emacs-build-system)
13733 (propagated-inputs
13734 `(("emacs-dash" ,emacs-dash)))
13735 (home-page "https://github.com/jyp/lcr")
13736 (synopsis "Lightweight coroutines in Emacs Lisp")
13737 (description "This package provides macros that can translate code into
13738 equivalent continuation-passing code, as well as miscellaneous utility
13739 functions written in continuation-passing style.")
13740 (license license:gpl3+)))
13741
13742 (define-public emacs-attrap
13743 (package
13744 (name "emacs-attrap")
13745 (version "1.1")
13746 (source
13747 (origin
13748 (method git-fetch)
13749 (uri (git-reference
13750 (url "https://github.com/jyp/attrap")
13751 (commit version)))
13752 (sha256
13753 (base32 "0wqc7bqx9rvk8r7fd3x84h8p01v97s6w2jf29nnjb59xakwp22i7"))
13754 (file-name (git-file-name name version))))
13755 (build-system emacs-build-system)
13756 (propagated-inputs
13757 `(("emacs-dash" ,emacs-dash)
13758 ("emacs-f" ,emacs-f)
13759 ("emacs-flycheck" ,emacs-flycheck)
13760 ("emacs-s" ,emacs-s)))
13761 (home-page "https://github.com/jyp/attrap")
13762 (synopsis "Fix coding error at point")
13763 (description "This package provides a command to fix the Flycheck error
13764 at point.")
13765 (license license:gpl3+)))
13766
13767 (define-public emacs-git-messenger
13768 (package
13769 (name "emacs-git-messenger")
13770 (version "0.18")
13771 (source
13772 (origin
13773 (method git-fetch)
13774 (uri (git-reference
13775 (url "https://github.com/syohex/emacs-git-messenger")
13776 (commit version)))
13777 (file-name (git-file-name name version))
13778 (sha256
13779 (base32 "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"))))
13780 (build-system emacs-build-system)
13781 (propagated-inputs
13782 `(("emacs-popup" ,emacs-popup)))
13783 (arguments
13784 `(#:tests? #t
13785 #:test-command '("emacs" "--batch" "-l" "test/test.el"
13786 "-f" "ert-run-tests-batch-and-exit")))
13787 (home-page "https://github.com/syohex/emacs-git-messenger")
13788 (synopsis "Popup commit message at current line")
13789 (description "@code{emacs-git-messenger} provides
13790 @code{git-messenger:popup-message}, a function that when called, will popup
13791 the last git commit message for the current line. This uses git-blame
13792 internally.")
13793 (license license:gpl3+)))
13794
13795 (define-public emacs-gitpatch
13796 (package
13797 (name "emacs-gitpatch")
13798 (version "0.5.1")
13799 (source
13800 (origin
13801 (method git-fetch)
13802 (uri (git-reference
13803 (url "https://github.com/tumashu/gitpatch")
13804 (commit (string-append "v" version))))
13805 (file-name (git-file-name name version))
13806 (sha256
13807 (base32 "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig"))))
13808 (build-system emacs-build-system)
13809 (home-page "https://github.com/tumashu/gitpatch")
13810 (synopsis "Mail git patch from Emacs")
13811 (description "@code{emacs-gitpatch} lets users easily send git patches,
13812 created by @code{git format-patch}, from @code{magit}, @code{dired} and
13813 @code{ibuffer} buffers.")
13814 (license license:gpl3+)))
13815
13816 (define-public emacs-erc-hl-nicks
13817 (package
13818 (name "emacs-erc-hl-nicks")
13819 (version "1.3.4")
13820 (source
13821 (origin
13822 (method git-fetch)
13823 (uri (git-reference
13824 (url "https://github.com/leathekd/erc-hl-nicks")
13825 (commit version)))
13826 (file-name (git-file-name name version))
13827 (sha256
13828 (base32 "0k57scxa8rm859fqsm8srhps7rlq06jzazhjbwnadzrh8i5fyvra"))))
13829 (build-system emacs-build-system)
13830 (synopsis "Nickname highlighting for Emacs ERC")
13831 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
13832 client for Emacs. The main features are:
13833 @itemize
13834 @item Auto-colorizes nicknames without having to specify colors
13835 @item Ignores certain characters that IRC clients add to nicknames to avoid
13836 duplicates (nickname, nickname’, nickname\", etc.)
13837 @item Attempts to produce colors with a sufficient amount of contrast between
13838 the nick color and the background color
13839 @end itemize\n")
13840 (home-page "https://github.com/leathekd/erc-hl-nicks")
13841 (license license:gpl3+)))
13842
13843 (define-public emacs-engine-mode
13844 (package
13845 (name "emacs-engine-mode")
13846 (version "2.1.1")
13847 (source
13848 (origin
13849 (method git-fetch)
13850 (uri (git-reference
13851 (url "https://github.com/hrs/engine-mode")
13852 (commit (string-append "v" version))))
13853 (file-name (git-file-name name version))
13854 (sha256
13855 (base32 "1xka8i4cdvp5r2v2mkli1zz17x1sdsnmszbhqav2rf94v656d91i"))))
13856 (build-system emacs-build-system)
13857 (synopsis "Minor mode for defining and querying search engines")
13858 (description "@code{engine-mode} is a global minor mode for Emacs. It
13859 enables you to easily define search engines, bind them to keybindings, and
13860 query them from the comfort of your editor.")
13861 (home-page "https://github.com/hrs/engine-mode")
13862 (license license:gpl3+)))
13863
13864 (define-public emacs-envrc
13865 (package
13866 (name "emacs-envrc")
13867 (version "0.2")
13868 (source
13869 (origin
13870 (method git-fetch)
13871 (uri (git-reference
13872 (url "https://github.com/purcell/envrc")
13873 (commit version)))
13874 (file-name (git-file-name name version))
13875 (sha256
13876 (base32
13877 "0ssf9i6iym2rb530k2w5aj392qa73i6p5y0vwrs5qhkv9lagqq7p"))))
13878 (build-system emacs-build-system)
13879 (home-page "https://github.com/purcell/envrc")
13880 (synopsis "Support for Direnv which operates buffer-locally")
13881 (description
13882 "This is library which uses Direnv to set environment variables on
13883 a per-buffer basis. This means that when you work across multiple projects
13884 which have @file{.envrc} files, all processes launched from the buffers ``in''
13885 those projects will be executed with the environment variables specified in
13886 those files. This allows different versions of linters and other tools to be
13887 used in each project if desired.")
13888 (license license:gpl3+)))
13889
13890 (define-public emacs-prop-menu
13891 (package
13892 (name "emacs-prop-menu")
13893 (version "0.1.2")
13894 (source
13895 (origin
13896 (method git-fetch)
13897 (uri (git-reference
13898 (url "https://github.com/david-christiansen/prop-menu-el")
13899 (commit version)))
13900 (file-name (git-file-name name version))
13901 (sha256
13902 (base32
13903 "18ap2liz5r5a8ja2zz9182fnfm47jnsbyblpq859zks356k37iwc"))))
13904 (build-system emacs-build-system)
13905 (home-page
13906 "https://github.com/david-christiansen/prop-menu-el")
13907 (synopsis
13908 "Create and display a context menu based on text and overlay properties")
13909 (description
13910 "This is a library for computing context menus based on text
13911 properties and overlays. The intended use is to have tools that
13912 annotate source code and others that use these annotations, without
13913 requiring a direct coupling between them, but maintaining
13914 discoverability.
13915
13916 Major modes that wish to use this library should first define an
13917 appropriate value for @code{prop-menu-item-functions}. Then, they should
13918 bind @code{prop-menu-by-completing-read} to an appropriate
13919 key. Optionally, a mouse pop-up can be added by binding
13920 @code{prop-menu-show-menu} to a mouse event.")
13921 (license license:gpl3+)))
13922
13923 (define-public emacs-idris-mode
13924 (let ((commit "b77eadd8ac2048d5c882b4464bd9673e45dd6a59")
13925 (revision "0"))
13926 (package
13927 (name "emacs-idris-mode")
13928 (version (git-version "1.0" revision commit))
13929 (source
13930 (origin
13931 (method git-fetch)
13932 (uri (git-reference
13933 (url "https://github.com/idris-hackers/idris-mode")
13934 (commit commit)))
13935 (file-name (git-file-name name commit))
13936 (sha256
13937 (base32
13938 "1v8av6jza1j00ln75zjwaca0vmmv0fhhhi94p84rlfzgzykyb9g1"))))
13939 (build-system emacs-build-system)
13940 (propagated-inputs
13941 `(("emacs-prop-menu" ,emacs-prop-menu)))
13942 (home-page
13943 "https://github.com/idris-hackers/idris-mode")
13944 (synopsis "Major mode for editing Idris code")
13945 (description
13946 "This is an Emacs mode for editing Idris code. It is compatible with
13947 the latest versions of Idris 1.")
13948 (license license:gpl3+))))
13949
13950 (define-public emacs-browse-at-remote
13951 (package
13952 (name "emacs-browse-at-remote")
13953 (version "0.14.0")
13954 (source
13955 (origin
13956 (method git-fetch)
13957 (uri (git-reference
13958 (url "https://github.com/rmuslimov/browse-at-remote")
13959 (commit version)))
13960 (file-name (git-file-name name version))
13961 (sha256
13962 (base32 "0bx4ns0jb0sqrjk1nsspvl3mhz3n12925azf7brlwb1vcgnji09v"))))
13963 (build-system emacs-build-system)
13964 (propagated-inputs
13965 `(("emacs-f" ,emacs-f)
13966 ("emacs-s" ,emacs-s)))
13967 (native-inputs
13968 `(("ert-runner" ,emacs-ert-runner)))
13969 (arguments
13970 `(#:tests? #t
13971 #:test-command '("ert-runner")))
13972 (home-page "https://github.com/rmuslimov/browse-at-remote")
13973 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
13974 (description
13975 "This Emacs package allows you to open a target page on
13976 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
13977 It supports dired buffers and opens them in tree mode at destination.")
13978 (license license:gpl3+)))
13979
13980 (define-public emacs-tiny
13981 (let ((commit "fd8a6b0b0c564d8242259e20e557ee6041f40908")
13982 (revision "1"))
13983 (package
13984 (name "emacs-tiny")
13985 (version (git-version "0.2.1" revision commit))
13986 (source
13987 (origin
13988 (method git-fetch)
13989 (uri (git-reference
13990 (url "https://github.com/abo-abo/tiny")
13991 (commit commit)))
13992 (file-name (git-file-name name version))
13993 (sha256
13994 (base32
13995 "1498j392ap2mk4zmsm2id16pfgvj78r428da9vw7hdrzzibai2cx"))))
13996 (build-system emacs-build-system)
13997 (arguments
13998 `(#:tests? #t
13999 #:test-command '("make" "test")))
14000 (home-page "https://github.com/abo-abo/tiny")
14001 (synopsis "Quickly generate linear ranges in Emacs")
14002 (description
14003 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
14004 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
14005 proficiency is an advantage, since you can transform your numeric range with
14006 an elisp expression.")
14007 (license license:gpl3+))))
14008
14009 (define-public emacs-emojify
14010 (package
14011 (name "emacs-emojify")
14012 (version "1.2")
14013 (source
14014 (origin
14015 (method git-fetch)
14016 (uri (git-reference
14017 (url "https://github.com/iqbalansari/emacs-emojify")
14018 (commit (string-append "v" version))))
14019 (file-name (git-file-name name version))
14020 (sha256
14021 (base32
14022 "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm"))))
14023 (build-system emacs-build-system)
14024 (arguments
14025 `(#:include (cons "^data/" %default-include)))
14026 (propagated-inputs
14027 `(("emacs-ht" ,emacs-ht)))
14028 (home-page "https://github.com/iqbalansari/emacs-emojify")
14029 (synopsis "Display emojis in Emacs")
14030 (description "This package displays emojis in Emacs similar to how Github,
14031 Slack, and other websites do. It can display plain ASCII like @code{:)} as
14032 well as Github-style emojis like @code{:smile:}. It provides a minor mode
14033 @code{emojify-mode} to enable the display of emojis in a buffer.")
14034 (license license:gpl3+)))
14035
14036 (define-public emacs-make-it-so
14037 (let ((commit "b73dfb640588123c9eece230ad72b37604f5c126")
14038 (revision "2"))
14039 (package
14040 (name "emacs-make-it-so")
14041 (version (git-version "0.1.0" revision commit))
14042 (source
14043 (origin
14044 (method git-fetch)
14045 (uri (git-reference
14046 (url "https://github.com/abo-abo/make-it-so")
14047 (commit commit)))
14048 (file-name (git-file-name name version))
14049 (sha256
14050 (base32
14051 "0p6xhyinzzkrwzbpxqfm8hlii0ikvmmylya240bwsa77w0g1k6xq"))))
14052 (build-system emacs-build-system)
14053 (arguments
14054 `(#:include (cons "^recipes/" %default-include)))
14055 (propagated-inputs
14056 `(("emacs-ivy" ,emacs-ivy)))
14057 (home-page "https://github.com/abo-abo/make-it-so")
14058 (synopsis "Transform files with Makefile recipes")
14059 (description "This package provides an interface for selecting from
14060 different conversion recipes, often including tools like @code{ffmpeg} or
14061 @code{convert}. The conversion command need only be written once, and
14062 subsequent invocations can be readily customized. Several recipes are
14063 included by default, and more can be readily added.")
14064 (license license:gpl3+))))
14065
14066 (define-public emacs-unidecode
14067 (let ((commit "5502ada9287b4012eabb879f12f5b0a9df52c5b7")
14068 (revision "1"))
14069 (package
14070 (name "emacs-unidecode")
14071 (version (git-version "0.2" revision commit))
14072 (source
14073 (origin
14074 (method git-fetch)
14075 (uri (git-reference
14076 (url "https://github.com/sindikat/unidecode")
14077 (commit commit)))
14078 (file-name (git-file-name name version))
14079 (sha256
14080 (base32
14081 "03x3nakbhmakwm977mwrf8jifvjnfwzpjv6wrwpizbqjnkgfchmn"))))
14082 (build-system emacs-build-system)
14083 (arguments
14084 `(#:include (cons* "^tools/" "^data/" %default-include)
14085 #:tests? #t
14086 #:test-command '("emacs" "--batch"
14087 "-l" "unidecode-test.el"
14088 "-f" "ert-run-tests-batch-and-exit")
14089 #:phases
14090 (modify-phases %standard-phases
14091 (add-before 'check 'make-tests-writable
14092 (lambda _
14093 (make-file-writable "unidecode-test.el")
14094 #t))
14095 (add-before 'check 'add-require
14096 (lambda _
14097 (emacs-batch-edit-file "unidecode-test.el"
14098 `(progn (progn (goto-char (point-min))
14099 (re-search-forward
14100 "ert-deftest")
14101 (forward-line -1)
14102 (insert "(require 'unidecode)"))
14103 (basic-save-buffer)))
14104 #t)))))
14105 (home-page "https://github.com/sindikat/unidecode")
14106 (synopsis "Transliterate Unicode text to ASCII")
14107 (description "This package provides functions for converting Unicode to ASCII.")
14108 (license license:gpl2+))))
14109
14110 (define-public emacs-pubmed
14111 (package
14112 (name "emacs-pubmed")
14113 (version "0.2.1")
14114 (source
14115 (origin
14116 (method git-fetch)
14117 (uri (git-reference
14118 (url "https://gitlab.com/fvdbeek/emacs-pubmed.git")
14119 (commit (string-append "v" version))))
14120 (file-name (git-file-name name version))
14121 (sha256
14122 (base32
14123 "15bwjxc7g43m5pi8z17anaqqkvi209r7kk1chmf175477gvrv7c0"))))
14124 (build-system emacs-build-system)
14125 (propagated-inputs
14126 `(("emacs-deferred" ,emacs-deferred)
14127 ("emacs-esxml" ,emacs-esxml)
14128 ("emacs-s" ,emacs-s)
14129 ("emacs-unidecode" ,emacs-unidecode)))
14130 (home-page "https://gitlab.com/fvdbeek/emacs-pubmed")
14131 (synopsis "Interface to PubMed")
14132 (description "This package provides an Emacs interface to the PubMed
14133 database of references on life sciences.")
14134 (license license:gpl3+)))
14135
14136 (define-public emacs-websocket
14137 (package
14138 (name "emacs-websocket")
14139 (version "1.13.1")
14140 (source
14141 (origin
14142 (method url-fetch)
14143 (uri (string-append "https://elpa.gnu.org/packages/"
14144 "websocket-" version ".tar"))
14145 (sha256
14146 (base32 "1x664zswas0fpml7zaj59zy97avrm49zb80zd69rlkqzz1m45psc"))))
14147 (build-system emacs-build-system)
14148 (home-page "https://elpa.gnu.org/packages/websocket.html")
14149 (synopsis "Emacs WebSocket client and server")
14150 (description
14151 "This is an Elisp library for WebSocket clients to talk to WebSocket
14152 servers, and for WebSocket servers to accept connections from WebSocket
14153 clients. This library is designed to be used by other library writers, to
14154 write applications that use WebSockets, and is not useful by itself.")
14155 (license license:gpl3+)))
14156
14157 (define-public emacs-oauth2
14158 (package
14159 (name "emacs-oauth2")
14160 (version "0.16")
14161 (source
14162 (origin
14163 (method url-fetch)
14164 (uri (string-append "https://elpa.gnu.org/packages/"
14165 "oauth2-" version ".tar"))
14166 (sha256
14167 (base32 "1rzly2nwjywrfgcmp8zidbmjl2ahyd8l8507lb1mxm4xqryvf316"))))
14168 (build-system emacs-build-system)
14169 (home-page "https://elpa.gnu.org/packages/oauth2.html")
14170 (synopsis "OAuth 2.0 authorization protocol implementation")
14171 (description
14172 "This package provides an Elisp implementation of the OAuth 2.0 draft.
14173 The main entry point is @code{oauth2-auth-and-store} which will return a token
14174 structure. This token structure can be then used with
14175 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
14176 retrieve any data that need OAuth authentication to be accessed. If the token
14177 needs to be refreshed, the code handles it automatically and stores the new
14178 value of the access token.")
14179 (license license:gpl3+)))
14180
14181 (define-public emacs-auth-source-xoauth2
14182 (package
14183 (name "emacs-auth-source-xoauth2")
14184 (version "1.0")
14185 (source
14186 (origin
14187 (method git-fetch)
14188 (uri (git-reference
14189 (url "https://github.com/ccrusius/auth-source-xoauth2")
14190 (commit (string-append "v" version))))
14191 (file-name (git-file-name name version))
14192 (sha256
14193 (base32 "0nl859csl8xcd6ybpjj15ph8l8fxwkwf45kbylss68alkyf1rl3v"))))
14194 (build-system emacs-build-system)
14195 (home-page "https://github.com/ccrusius/auth-source-xoauth2")
14196 (synopsis "XOAuth2 authentication capabilities for Emacs auth-source")
14197 (description
14198 "This package adds XOAuth2 authentication capabilities to Emacs
14199 auth-source. This integration requires some preliminary work on the users’
14200 part, which includes creating tokens.")
14201 (license license:asl2.0)))
14202
14203 (define-public emacs-circe
14204 (package
14205 (name "emacs-circe")
14206 (version "2.11")
14207 (source
14208 (origin
14209 (method git-fetch)
14210 (uri (git-reference
14211 (url "https://github.com/jorgenschaefer/circe")
14212 (commit (string-append "v" version))))
14213 (file-name (git-file-name name version))
14214 (sha256
14215 (base32 "0cr9flk310yn2jgvj4hbqw9nj5wlfi0fazdkqafzidgz6iq150wd"))))
14216 (build-system emacs-build-system)
14217 (arguments
14218 `(#:tests? #t
14219 #:test-command '("buttercup" "-L" ".")
14220 #:phases
14221 (modify-phases %standard-phases
14222 ;; The HOME environment variable should be set to an existing
14223 ;; directory for the tests to succeed.
14224 (add-before 'check 'set-home
14225 (lambda _
14226 (setenv "HOME" "/tmp")
14227 #t)))))
14228 (native-inputs
14229 `(("emacs-buttercup" ,emacs-buttercup)))
14230 ;; In order to securely connect to an IRC server using TLS, Circe requires
14231 ;; the GnuTLS binary.
14232 (propagated-inputs
14233 `(("gnutls" ,gnutls)))
14234 (home-page "https://github.com/jorgenschaefer/circe")
14235 (synopsis "Client for IRC in Emacs")
14236 (description "Circe is a Client for IRC in Emacs. It integrates well with
14237 the rest of the editor, using standard Emacs key bindings and indicating
14238 activity in channels in the status bar so it stays out of your way unless you
14239 want to use it.")
14240 (license license:gpl3+)))
14241
14242 (define-public emacs-tracking
14243 (package
14244 (inherit emacs-circe)
14245 (name "emacs-tracking")
14246 (arguments
14247 ;; "tracking.el" is a library extracted from Circe package. It requires
14248 ;; "shorten.el".
14249 `(#:include '("^shorten.el$" "^tracking.el$")
14250 ,@(package-arguments emacs-circe)))
14251 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
14252 (synopsis "Buffer tracking library")
14253 (description "@code{tracking.el} provides a way for different modes to
14254 notify the user that a buffer needs attention. The user then can cycle
14255 through them using @key{C-c C-SPC}.")
14256 (license license:gpl3+)))
14257
14258 (define-public emacs-slack
14259 (let ((commit "1f6a40faec0d8d9c9de51c444508d05a3e995ccd")
14260 (revision "9"))
14261 (package
14262 (name "emacs-slack")
14263 (version (git-version "0.0.2" revision commit))
14264 (source (origin
14265 (method git-fetch)
14266 (uri (git-reference
14267 (url "https://github.com/yuya373/emacs-slack")
14268 (commit commit)))
14269 (file-name (git-file-name name commit))
14270 (sha256
14271 (base32
14272 "19lan9nd8qfw2ws7mx814vrin04c892yn5c8g3nad7lpnzszgr1r"))))
14273 (build-system emacs-build-system)
14274 (arguments
14275 `(#:phases
14276 (modify-phases %standard-phases
14277 ;; HOME needs to exist for source compilation.
14278 (add-before 'build 'set-HOME
14279 (lambda _ (setenv "HOME" "/tmp") #t)))))
14280 (propagated-inputs
14281 `(("emacs-alert" ,emacs-alert)
14282 ("emacs-emojify" ,emacs-emojify)
14283 ("emacs-helm" ,emacs-helm)
14284 ("emacs-request" ,emacs-request)
14285 ("emacs-websocket" ,emacs-websocket)
14286 ("emacs-oauth2" ,emacs-oauth2)
14287 ("emacs-circe" ,emacs-circe)))
14288 (home-page "https://github.com/yuya373/emacs-slack")
14289 (synopsis "Slack client for Emacs")
14290 (description "This package provides an Emacs client for the Slack
14291 messaging service.")
14292 (license license:gpl3+))))
14293
14294 (define-public emacs-helm-slack
14295 (let ((commit "465f6220f3f5bee4d95492991fca1290c89534eb")
14296 (revision "1"))
14297 (package
14298 (name "emacs-helm-slack")
14299 (version (git-version "0" revision commit))
14300 (source (origin
14301 (method git-fetch)
14302 (uri (git-reference
14303 (url "https://github.com/yuya373/helm-slack")
14304 (commit commit)))
14305 (file-name (git-file-name name commit))
14306 (sha256
14307 (base32
14308 "0p1s1kl8v68qjprqkf034cz911qzbqxbscqgpn0c3mbm3yfx81f7"))))
14309 (build-system emacs-build-system)
14310 (arguments
14311 `(#:phases
14312 (modify-phases %standard-phases
14313 ;; HOME needs to exist for source compilation.
14314 (add-before 'build 'set-HOME
14315 (lambda _ (setenv "HOME" "/tmp") #t)))))
14316 (propagated-inputs `(("emacs-slack" ,emacs-slack)))
14317 (home-page "https://github.com/yuya373/helm-slack")
14318 (synopsis "Helm extension for emacs-slack")
14319 (description "This package provides an helm extension for emacs-slack
14320 Slack client.")
14321 (license license:gpl3+))))
14322
14323
14324 (define-public emacs-bash-completion
14325 (package
14326 (name "emacs-bash-completion")
14327 (version "3.1.0")
14328 (source
14329 (origin
14330 (method git-fetch)
14331 (uri (git-reference
14332 (url "https://github.com/szermatt/emacs-bash-completion")
14333 (commit (string-append "v" version))))
14334 (file-name (git-file-name name version))
14335 (sha256
14336 (base32 "11j2k3irixp47r2iglxdmjphahqhgnxg98n2xwagwzyq99lsamj4"))))
14337 (inputs `(("bash" ,bash)))
14338 (build-system emacs-build-system)
14339 (arguments
14340 `(#:phases
14341 (modify-phases %standard-phases
14342 (add-after 'unpack 'make-git-checkout-writable
14343 (λ _
14344 (for-each make-file-writable (find-files "."))
14345 #t))
14346 (add-before 'install 'configure
14347 (lambda* (#:key inputs #:allow-other-keys)
14348 (let ((bash (assoc-ref inputs "bash")))
14349 (emacs-substitute-variables "bash-completion.el"
14350 ("bash-completion-prog" (string-append bash "/bin/bash"))))
14351 #t)))))
14352 (home-page "https://github.com/szermatt/emacs-bash-completion")
14353 (synopsis "Bash completion for the shell buffer")
14354 (description
14355 "@code{bash-completion} defines dynamic completion hooks for shell-mode
14356 and shell-command prompts that are based on Bash completion.")
14357 (license license:gpl2+)))
14358
14359 (define-public emacs-easy-kill
14360 (package
14361 (name "emacs-easy-kill")
14362 (version "0.9.4")
14363 (source (origin
14364 (method url-fetch)
14365 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
14366 version ".tar"))
14367 (sha256
14368 (base32
14369 "1pqqv4dhfm00wqch4wy3n2illsvxlz9r6r64925cvq3i7wq4la1x"))))
14370 (build-system emacs-build-system)
14371 (home-page "https://github.com/leoliu/easy-kill")
14372 (synopsis "Kill and mark things easily in Emacs")
14373 (description
14374 "This package provides commands @code{easy-kill} and @code{easy-mark} to
14375 let users kill or mark things easily.")
14376 (license license:gpl3+)))
14377
14378 (define-public emacs-csv-mode
14379 (package
14380 (name "emacs-csv-mode")
14381 (version "1.15")
14382 (source
14383 (origin
14384 (method url-fetch)
14385 (uri (string-append "https://elpa.gnu.org/packages/"
14386 "csv-mode-" version ".tar"))
14387 (sha256
14388 (base32 "0pigqhqg5mfza6jdskcr9yvrzdxnd68iyp3vyb8p8wskdacmbiyx"))))
14389 (build-system emacs-build-system)
14390 (home-page "https://elpa.gnu.org/packages/csv-mode.html")
14391 (synopsis "Major mode for editing comma/char separated values")
14392 (description
14393 "This Emacs package implements CSV mode, a major mode for editing records
14394 in a generalized CSV (character-separated values) format.")
14395 (license license:gpl3+)))
14396
14397 (define-public emacs-transmission
14398 (package
14399 (name "emacs-transmission")
14400 (version "0.12.2")
14401 (source
14402 (origin
14403 (method git-fetch)
14404 (uri (git-reference
14405 (url "https://github.com/holomorph/transmission")
14406 (commit version)))
14407 (file-name (git-file-name name version))
14408 (sha256
14409 (base32 "16bn8y2sd7kzihp8bxh4vyay16y91q3yc0gcd0bzywcx3hijqlfc"))))
14410 (build-system emacs-build-system)
14411 (home-page "https://github.com/holomorph/transmission")
14412 (synopsis "Emacs interface to a Transmission session")
14413 (description "This package provides an Emacs interface to interact with a
14414 running session of the Transmission Bittorrent client.
14415
14416 Features:
14417
14418 @itemize
14419 @item List, add, start/stop, verify, remove torrents.
14420 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
14421 @item Navigate to the corresponding file list, torrent info, peer info
14422 contexts.
14423 @item Toggle downloading and set priorities for individual files.
14424 @end itemize\n")
14425 (license license:gpl3+)))
14426
14427 (define-public emacs-polymode
14428 (package
14429 (name "emacs-polymode")
14430 (version "0.2.2")
14431 (source
14432 (origin
14433 (method git-fetch)
14434 (uri (git-reference
14435 (url "https://github.com/polymode/polymode")
14436 (commit (string-append "v" version))))
14437 (file-name (git-file-name name version))
14438 (sha256
14439 (base32 "18ssl2h861dm2jkd3df6wkfr48p8zk337dbvpq5522kia7fq1lbn"))))
14440 (build-system emacs-build-system)
14441 (home-page "https://github.com/polymode/polymode")
14442 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
14443 (description
14444 "Polymode is an Emacs package that offers generic support for multiple
14445 major modes inside a single Emacs buffer. It is lightweight, object oriented
14446 and highly extensible. Creating a new polymode typically takes only a few
14447 lines of code. Polymode also provides extensible facilities for external
14448 literate programming tools for exporting, weaving and tangling.")
14449 (license license:gpl3+)))
14450
14451 (define-public emacs-polymode-ansible
14452 (package
14453 (name "emacs-polymode-ansible")
14454 (version "0.3.0")
14455 (source
14456 (origin
14457 (method git-fetch)
14458 (uri (git-reference
14459 (url "https://gitlab.com/mavit/poly-ansible")
14460 (commit version)))
14461 (file-name (git-file-name name version))
14462 (sha256
14463 (base32 "0f0yq6gmkp194nxk90ipprglf1xkmxrgz1rkgrhfslvxq4q2l81h"))))
14464 (build-system emacs-build-system)
14465 (propagated-inputs
14466 `(("emacs-ansible-doc" ,emacs-ansible-doc)
14467 ("emacs-jinja2-mode" ,emacs-jinja2-mode)
14468 ("emacs-polymode" ,emacs-polymode)
14469 ("emacs-yaml-mode" ,emacs-yaml-mode)))
14470 (properties '((upstream-name . "poly-ansible")))
14471 (home-page "https://gitlab.com/mavit/poly-ansible/")
14472 (synopsis "Polymode for Ansible - Jinja2 in YAML")
14473 (description
14474 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
14475 (license license:gpl3+)))
14476
14477 (define-public emacs-polymode-markdown
14478 (package
14479 (name "emacs-polymode-markdown")
14480 (version "0.2.2")
14481 (home-page "https://github.com/polymode/poly-markdown")
14482 (source
14483 (origin
14484 (method git-fetch)
14485 (uri (git-reference
14486 (url home-page)
14487 (commit (string-append "v" version))))
14488 (file-name (git-file-name name version))
14489 (sha256
14490 (base32 "1q4qq0ql08hxkdrd2aal03560k612my7bvnfpfij3g432hn0p7v6"))))
14491 (build-system emacs-build-system)
14492 (propagated-inputs
14493 `(("emacs-markdown-mode" ,emacs-markdown-mode)
14494 ("emacs-polymode" ,emacs-polymode)))
14495 (properties '((upstream-name . "poly-markdown")))
14496 (synopsis "Polymode for Markdown mode")
14497 (description
14498 "This package allows editing source code blocks embedded in Markdown
14499 files using the major mode corresponding to each block.")
14500 (license license:gpl3+)))
14501
14502 (define-public emacs-powershell
14503 ;; Tagged branch 0.1 is outdated (2015).
14504 (let ((revision "0")
14505 (commit "d1b3f95669343399f199f291ef76c09a0ede5e60"))
14506 (package
14507 (name "emacs-powershell")
14508 (build-system emacs-build-system)
14509 (version (git-version "0.3" revision commit))
14510 (source
14511 (origin
14512 (method git-fetch)
14513 (uri (git-reference
14514 (url "https://github.com/jschaf/powershell.el")
14515 (commit commit)))
14516 (file-name (git-file-name name version))
14517 (sha256
14518 (base32 "1cxhzaaig88zhylyycvb3849r85j1ijqklnh9zbqsfl2zhpb0g5c"))))
14519 (home-page "https://github.com/jschaf/powershell.el")
14520 (synopsis "Emacs mode for editing PowerShell scripts")
14521 (description
14522 "Powershell is an Emacs major mode for editing and running
14523 Microsoft PowerShell files.")
14524 (license license:gpl3+))))
14525
14526 (define-public emacs-polymode-org
14527 (package
14528 (name "emacs-polymode-org")
14529 (version "0.2.2")
14530 (source
14531 (origin
14532 (method git-fetch)
14533 (uri (git-reference
14534 (url "https://github.com/polymode/poly-org")
14535 (commit (string-append "v" version))))
14536 (file-name (git-file-name name version))
14537 (sha256
14538 (base32 "1srnwcsn2bh8gqzxixkhffk7gbnk66kd4dgvxbnps5nxqc6v0qhc"))))
14539 (build-system emacs-build-system)
14540 (propagated-inputs
14541 `(("emacs-polymode" ,emacs-polymode)))
14542 (properties '((upstream-name . "poly-org")))
14543 (home-page "https://github.com/polymode/poly-org")
14544 (synopsis "Polymode definitions for Org mode buffers")
14545 (description
14546 "This package provides definitions for Polymode to support Org buffers.
14547 It edits source blocks in an Org buffer using the native modes of the blocks'
14548 languages while remaining inside the primary Org buffer.")
14549 (license license:gpl3+)))
14550
14551 (define-public eless
14552 (package
14553 (name "eless")
14554 (version "0.6")
14555 (source
14556 (origin
14557 (method git-fetch)
14558 (uri (git-reference
14559 (url "https://github.com/kaushalmodi/eless")
14560 (commit (string-append "v" version))))
14561 (file-name (git-file-name name version))
14562 (sha256
14563 (base32 "1xif339wsc79hsab3l1nnwvy20jg7s1r4akfj4qqi6qxizfhmb52"))))
14564 (build-system copy-build-system)
14565 (inputs
14566 `(("bash" ,bash)
14567 ("emacs" ,emacs)))
14568 (arguments
14569 `(#:install-plan
14570 '(("eless" "bin/")
14571 ("docs/eless.info" "share/info/")
14572 ("eless.org" ,(string-append "share/doc/eless-" version "/")))))
14573 (home-page "https://github.com/kaushalmodi/eless")
14574 (synopsis "Use Emacs as a paginator")
14575 (description "@code{eless} provides a combination of Bash script
14576 and a minimal Emacs view-mode.
14577
14578 Features:
14579
14580 @itemize
14581 @item Independent of a user’s Emacs config.
14582 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
14583 @item Not require an Emacs server to be already running.
14584 @item Syntax highlighting.
14585 @item Org-mode file rendering.
14586 @item @code{man} page viewer.
14587 @item Info viewer.
14588 @item Dired, wdired, (batch edit symbolic links).
14589 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
14590 @item Filter log files lines matching a regexp.
14591 @item Auto-revert log files similar to @code{tail -f}.
14592 @item Quickly change frame and font sizes.
14593 @end itemize\n")
14594 (license license:expat)))
14595
14596 (define-public emacs-evil-matchit
14597 (package
14598 (name "emacs-evil-matchit")
14599 (version "2.3.10")
14600 (source
14601 (origin
14602 (method git-fetch)
14603 (uri (git-reference
14604 (url "https://github.com/redguardtoo/evil-matchit")
14605 (commit version)))
14606 (file-name (git-file-name name version))
14607 (sha256
14608 (base32 "14nrc46290q54y7wv25251f2kqc0z8i9byl09xkgjijqldl9vdxa"))))
14609 (build-system emacs-build-system)
14610 (propagated-inputs
14611 `(("emacs-evil" ,emacs-evil)))
14612 (home-page "https://github.com/redguardtoo/evil-matchit")
14613 (synopsis "Vim matchit ported into Emacs")
14614 (description
14615 "@code{evil-matchit} is a minor mode for jumping between matching tags in
14616 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
14617 (license license:gpl3+)))
14618
14619 (define-public emacs-evil-smartparens
14620 (package
14621 (name "emacs-evil-smartparens")
14622 (version "0.4.0")
14623 (source
14624 (origin
14625 (method git-fetch)
14626 (uri (git-reference
14627 (url "https://github.com/expez/evil-smartparens")
14628 (commit version)))
14629 (file-name (git-file-name name version))
14630 (sha256
14631 (base32 "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl"))))
14632 (build-system emacs-build-system)
14633 (propagated-inputs
14634 `(("emacs-evil" ,emacs-evil)
14635 ("emacs-smartparens" ,emacs-smartparens)))
14636 (home-page "https://github.com/expez/evil-smartparens")
14637 (synopsis "Emacs Evil integration for Smartparens")
14638 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
14639 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
14640 emulates Vim features and provides Vim-like key bindings.")
14641 (license license:gpl3+)))
14642
14643 (define-public emacs-evil-quickscope
14644 (package
14645 (name "emacs-evil-quickscope")
14646 (version "0.1.4")
14647 (source
14648 (origin
14649 (method git-fetch)
14650 (uri (git-reference
14651 (url "https://github.com/blorbx/evil-quickscope")
14652 (commit (string-append "v" version))))
14653 (file-name (git-file-name name version))
14654 (sha256
14655 (base32 "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"))))
14656 (build-system emacs-build-system)
14657 (propagated-inputs
14658 `(("emacs-evil" ,emacs-evil)))
14659 (arguments
14660 `(#:tests? #t
14661 #:test-command '("emacs" "--batch"
14662 "-l" "evil-quickscope-tests.el"
14663 "-f" "ert-run-tests-batch-and-exit")))
14664 (home-page "https://github.com/blorbx/evil-quickscope")
14665 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
14666 (description "@code{emacs-evil-quickscope} highlights targets for Evil
14667 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
14668 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
14669 features and provides Vim-like key bindings.")
14670 (license license:gpl3+)))
14671
14672 (define-public emacs-bongo
14673 (package
14674 (name "emacs-bongo")
14675 (version "1.1")
14676 (source
14677 (origin
14678 (method git-fetch)
14679 (uri (git-reference
14680 (url "https://github.com/dbrock/bongo")
14681 (commit version)))
14682 (file-name (git-file-name name version))
14683 (sha256
14684 (base32 "1nszph9mn98flyhn1jq3y6mdh6jymjkvj5ng36ql016dj92apvhv"))))
14685 (build-system emacs-build-system)
14686 (home-page "https://github.com/dbrock/bongo")
14687 (synopsis "Media player for Emacs")
14688 (description
14689 "This package provides a flexible media player for Emacs. @code{Bongo}
14690 supports multiple backends such as @code{vlc}, @code{mpg123},
14691 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
14692 @code{afplay}.")
14693 (license license:gpl2+)))
14694
14695 (define-public emacs-groovy-modes
14696 (package
14697 (name "emacs-groovy-modes")
14698 (version "2.0")
14699 (source (origin
14700 (method git-fetch)
14701 (uri (git-reference
14702 (url "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
14703 (commit version)))
14704 (file-name (git-file-name name version))
14705 (sha256
14706 (base32
14707 "0c1d4cbnlny8gpcd20zr1wxx6ggf28jgh7sgd5r1skpsvjpbfqx2"))))
14708 (build-system emacs-build-system)
14709 (propagated-inputs
14710 `(("emacs-s" ,emacs-s)))
14711 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
14712 (synopsis "Groovy related modes for Emacs")
14713 (description
14714 "This package provides @code{groovy-mode} for syntax highlighting in
14715 Groovy source files, REPL integration with run-groovy and Grails project
14716 navigation with the grails mode.")
14717 (license license:gpl3+)))
14718
14719 (define-public emacs-jenkinsfile-mode
14720 (let ((commit "00d259ff9b870d234540e00e1d7c83cccdb063b8")
14721 (revision "1"))
14722 (package
14723 (name "emacs-jenkinsfile-mode")
14724 (version (git-version "0.0.1" revision commit))
14725 (source (origin
14726 (method git-fetch)
14727 (uri (git-reference
14728 (url "https://github.com/john2x/jenkinsfile-mode")
14729 (commit commit)))
14730 (file-name (git-file-name name version))
14731 (sha256
14732 (base32
14733 "0srf6xdjnrd4v4ks9pal7i48wmkcl4q5ry7d0yzfx1c9pz2qg9zx"))))
14734 (propagated-inputs
14735 `(("emacs-groovy-modes" ,emacs-groovy-modes)))
14736 (build-system emacs-build-system)
14737 (home-page "https://github.com/john2x/jenkinsfile-mode/")
14738 (synopsis "Emacs major-mode for editing Jenkinsfile")
14739 (description "This package provides a @code{jenkinsfile-mode} derived
14740 from @code{groovy-mode} for editing Jenkins declarative pipeline files.")
14741 (license license:gpl3+))))
14742
14743 (define-public emacs-kotlin-mode
14744 (let ((commit "0e4bafb31d1fc2a0a420a521c2723d5526646c0b")
14745 (revision "1"))
14746 (package
14747 (name "emacs-kotlin-mode")
14748 (version (git-version "0.0.1" revision commit))
14749 (source
14750 (origin
14751 (method git-fetch)
14752 (uri (git-reference
14753 (url "https://github.com/Emacs-Kotlin-Mode-Maintainers/kotlin-mode")
14754 (commit commit)))
14755 (file-name (git-file-name name version))
14756 (sha256
14757 (base32 "09inpgwmnnqaakyn4r4xs8kax8b89dw94kvl521x6d43h9zl5i70"))))
14758 (build-system emacs-build-system)
14759 (arguments
14760 `(#:tests? #t
14761 #:test-command '("ert-runner" "-L" "." "-L" "test")))
14762 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
14763 (home-page "https://github.com/Emacs-Kotlin-Mode-Maintainers/kotlin-mode")
14764 (synopsis "Major major-mode for editing Kotlin files")
14765 (description
14766 "This package provides a @code{kotlin-mode} for editing Kotlin files.")
14767 (license license:gpl3+))))
14768
14769 (define-public emacs-org-tree-slide
14770 (let ((commit "036a36eec1cf712d3db155572aed325daa372eb5")
14771 (revision "2"))
14772 (package
14773 (name "emacs-org-tree-slide")
14774 (version (git-version "2.8.4" revision commit))
14775 (source (origin
14776 (method git-fetch)
14777 (uri (git-reference
14778 (url "https://github.com/takaxp/org-tree-slide")
14779 (commit commit)))
14780 (sha256
14781 (base32
14782 "1r8ncx25xmxicgciyv5przp68y8qgy40fm10ba55awvql4xcm0yk"))
14783 (file-name (git-file-name name version))))
14784 (build-system emacs-build-system)
14785 (home-page "https://github.com/takaxp/org-tree-slide")
14786 (synopsis "Presentation tool for org-mode")
14787 (description
14788 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
14789 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
14790 @kbd{C-<} to jump to the next and previous slide.")
14791 (license license:gpl3+))))
14792
14793 (define-public emacs-scratch-el
14794 (package
14795 (name "emacs-scratch-el")
14796 (version "1.3")
14797 (source
14798 (origin
14799 (method git-fetch)
14800 (uri (git-reference
14801 (url "https://github.com/ieure/scratch-el")
14802 (commit (string-append "v" version))))
14803 (file-name (git-file-name name version))
14804 (sha256
14805 (base32 "0yiwq2gc4gdgfhaagpawhb7yrzc4fsnyb10w5d0q4whv64cj8555"))))
14806 (build-system emacs-build-system)
14807 (native-inputs
14808 `(("texinfo" ,texinfo)))
14809 (arguments
14810 '(#:phases
14811 (modify-phases %standard-phases
14812 (add-after 'install 'install-doc
14813 (lambda* (#:key outputs #:allow-other-keys)
14814 (unless (invoke "makeinfo" "scratch.texi")
14815 (error "makeinfo failed"))
14816 (install-file "scratch.info"
14817 (string-append (assoc-ref outputs "out")
14818 "/share/info"))
14819 #t)))))
14820 (home-page "https://github.com/ieure/scratch-el/")
14821 (synopsis "Create scratch buffers with the same mode as current buffer")
14822 (description "Scratch is an extension to Emacs that enables one to create
14823 scratch buffers that are in the same mode as the current buffer. This is
14824 notably useful when working on code in some language; you may grab code into a
14825 scratch buffer, and, by virtue of this extension, do so using the Emacs
14826 formatting rules for that language.")
14827 (license license:bsd-2)))
14828
14829 (define-public emacs-kv
14830 (package
14831 (name "emacs-kv")
14832 (version "0.0.19")
14833 (source
14834 (origin
14835 (method git-fetch)
14836 (uri (git-reference
14837 (url "https://github.com/nicferrier/emacs-kv")
14838 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
14839 (file-name (git-file-name name version))
14840 (sha256
14841 (base32
14842 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
14843 (build-system emacs-build-system)
14844 (arguments
14845 `(#:tests? #t
14846 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
14847 "-f" "ert-run-tests-batch-and-exit")))
14848 (home-page "https://github.com/nicferrier/emacs-kv")
14849 (synopsis "Key/Value data structures library for Emacs Lisp")
14850 (description "@code{emacs-kv} is a collection of tools for dealing with
14851 key/value data structures such as plists, alists and hash-tables in Emacs
14852 Lisp.")
14853 (license license:gpl3+)))
14854
14855 (define-public emacs-esxml
14856 (package
14857 (name "emacs-esxml")
14858 (version "0.3.5")
14859 (source (origin
14860 (method git-fetch)
14861 (uri (git-reference
14862 (url "https://github.com/tali713/esxml")
14863 (commit version)))
14864 (file-name (git-file-name name version))
14865 (sha256
14866 (base32
14867 "16jn404vfmsvm12wrf8iczqlgdf2iycbxrvalvzxnm2gr5dfzp7z"))))
14868 (build-system emacs-build-system)
14869 (arguments
14870 `(#:phases
14871 (modify-phases %standard-phases
14872 (add-after 'unpack 'fix-sources
14873 (lambda _
14874 ;; See: https://github.com/tali713/esxml/pull/28.
14875 (substitute* "css-lite.el"
14876 ((";;; main interface")
14877 (string-append ";;; main interface\n"
14878 "(require 'cl-lib)"))
14879 (("mapcan")
14880 "cl-mapcan")
14881 (("',\\(cl-mapcan #'process-css-rule rules\\)")
14882 "(cl-mapcan #'process-css-rule ',rules)"))
14883 (substitute* "esxml-form.el"
14884 ((",esxml-form-field-defn")
14885 "#'esxml-form-field-defn"))
14886 ;; See: https://github.com/tali713/esxml/issues/25
14887 (delete-file "esxpath.el")
14888 #t)))))
14889 (propagated-inputs
14890 `(("emacs-kv" ,emacs-kv)))
14891 (home-page "https://github.com/tali713/esxml/")
14892 (synopsis "SXML for EmacsLisp")
14893 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
14894 Simply, this is the easiest way to write HTML or XML in Lisp. This library
14895 uses the native form of XML representation as used by many libraries already
14896 included within Emacs. See @code{esxml-to-xml} for a concise description of
14897 the format.")
14898 (license license:gpl3+)))
14899
14900 (define-public emacs-nov-el
14901 (package
14902 (name "emacs-nov-el")
14903 (version "0.3.3")
14904 (source
14905 (origin
14906 (method git-fetch)
14907 (uri (git-reference
14908 (url "https://depp.brause.cc/nov.el.git")
14909 (commit version)))
14910 (file-name (git-file-name name version))
14911 (sha256
14912 (base32
14913 "116klnjyggwfwvs9nqhpv97m00k63q6lg41ph41kywsqkfy42dlk"))))
14914 (build-system emacs-build-system)
14915 (arguments
14916 `(#:phases
14917 (modify-phases %standard-phases
14918 (add-after 'unpack 'embed-path-to-unzip
14919 (lambda _
14920 (substitute* "nov.el"
14921 (("\\(executable-find \"unzip\"\\)")
14922 (string-append "\"" (which "unzip") "\"")))
14923 #t)))))
14924 (propagated-inputs
14925 `(("emacs-dash" ,emacs-dash)
14926 ("emacs-esxml" ,emacs-esxml)))
14927 (inputs
14928 `(("unzip" ,unzip)))
14929 (home-page "https://depp.brause.cc/nov.el/")
14930 (synopsis "Major mode for reading EPUBs in Emacs")
14931 (description "@code{nov.el} provides a major mode for reading EPUB
14932 documents.
14933
14934 Features:
14935
14936 @itemize
14937 @item Basic navigation (jump to TOC, previous/next chapter)
14938 @item Remembering and restoring the last read position
14939 @item Jump to next chapter when scrolling beyond end
14940 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
14941 @item Hyperlinks to internal and external targets
14942 @item Supports textual and image documents
14943 @item View source of document files
14944 @item Metadata display
14945 @item Image rescaling
14946 @end itemize
14947 ")
14948 (license license:gpl3+)))
14949
14950 (define-public epipe
14951 (package
14952 (name "epipe")
14953 (version "0.1.0")
14954 (source
14955 (origin
14956 (method git-fetch)
14957 (uri (git-reference
14958 (url "https://github.com/cute-jumper/epipe")
14959 (commit version)))
14960 (file-name (git-file-name name version))
14961 (sha256
14962 (base32 "0lkisi1s7sn12nx8zh58qmsxwnk1rjwryj18wcbr148xqz3swg57"))))
14963 (build-system trivial-build-system)
14964 (inputs
14965 `(("bash" ,bash)
14966 ("perl" ,perl)))
14967 (arguments
14968 `(#:modules
14969 ((guix build utils))
14970 #:builder
14971 (begin
14972 (use-modules (guix build utils))
14973 ;; Extract source.
14974 (copy-recursively (assoc-ref %build-inputs "source") "source")
14975 (chdir "source")
14976 ;; Patch shebangs.
14977 (substitute* "epipe"
14978 (("/usr/bin/env bash")
14979 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
14980 (patch-shebang "epipe.pl"
14981 (list (string-append (assoc-ref %build-inputs "perl")
14982 "/bin")))
14983 ;; Install.
14984 (for-each (lambda (file)
14985 (install-file file (string-append %output "/bin")))
14986 '("epipe" "epipe.pl"))
14987 #t)))
14988 (home-page "https://github.com/cute-jumper/epipe")
14989 (synopsis "Pipe to the @code{emacsclient}")
14990 (description "@code{epipe} provides an utility to use your editor in
14991 the pipeline, featuring the support for running @code{emacsclient}.")
14992 (license license:gpl3+)))
14993
14994 (define-public emacs-hcl-mode
14995 (package
14996 (name "emacs-hcl-mode")
14997 (version "0.03")
14998 (source
14999 (origin
15000 (method git-fetch)
15001 (uri (git-reference
15002 (url "https://github.com/syohex/emacs-hcl-mode")
15003 (commit version)))
15004 (file-name (git-file-name name version))
15005 (sha256
15006 (base32 "0jqrgq15jz6pvx38pnwkizzfiih0d3nxqphyrc92nqpcyimg8b6g"))))
15007 (build-system emacs-build-system)
15008 (home-page "https://github.com/syohex/emacs-hcl-mode")
15009 (synopsis "Major mode for the Hashicorp Configuration Language")
15010 (description
15011 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
15012 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
15013 highlighting and indentation support.")
15014 (license license:gpl3+)))
15015
15016 (define-public emacs-terraform-mode
15017 (package
15018 (name "emacs-terraform-mode")
15019 (version "0.06")
15020 (source
15021 (origin
15022 (method git-fetch)
15023 (uri (git-reference
15024 (url "https://github.com/syohex/emacs-terraform-mode")
15025 (commit version)))
15026 (file-name (git-file-name name version))
15027 (sha256
15028 (base32 "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx"))))
15029 (build-system emacs-build-system)
15030 (propagated-inputs
15031 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
15032 (home-page "https://github.com/syohex/emacs-terraform-mode")
15033 (synopsis "Major mode for Terraform")
15034 (description
15035 "@code{emacs-terraform-mode} provides a major mode for working with
15036 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
15037 functionality is inherited from @code{hcl-mode}.")
15038 (license license:gpl3+)))
15039
15040 (define-public emacs-exec-path-from-shell
15041 (package
15042 (name "emacs-exec-path-from-shell")
15043 (version "1.12")
15044 (source
15045 (origin
15046 (method git-fetch)
15047 (uri (git-reference
15048 (url "https://github.com/purcell/exec-path-from-shell")
15049 (commit version)))
15050 (file-name (git-file-name name version))
15051 (sha256
15052 (base32
15053 "1ga8bpxngd3ph2hdiik92c612ki71qxw818i6rgx6f6a5r0sbf3p"))))
15054 (build-system emacs-build-system)
15055 (home-page "https://github.com/purcell/exec-path-from-shell")
15056 (synopsis "Get environment variables such as @env{PATH} from the shell")
15057 (description
15058 "This library allows the user to set Emacs @code{exec-path} and @env{PATH}
15059 from the shell's @env{PATH}, so that @code{shell-command}, @code{compile} and
15060 the like work as expected on systems on which Emacs is not guaranteed to
15061 inherit a login shell's environment variables. It also allows other
15062 environment variables to be retrieved from the shell, so that Emacs will see
15063 the same values you get in a terminal.")
15064 (license license:gpl3+)))
15065
15066 (define-public emacs-frog-menu
15067 (package
15068 (name "emacs-frog-menu")
15069 (version "0.2.11")
15070 (source
15071 (origin
15072 (method url-fetch)
15073 (uri (string-append "https://elpa.gnu.org/packages/"
15074 "frog-menu-" version ".el"))
15075 (sha256
15076 (base32 "06iw11z61fd0g4w3562k3smcmzaq3nivvvc6gzm8y8k5pcrqzdff"))))
15077 (build-system emacs-build-system)
15078 (propagated-inputs
15079 `(("emacs-avy" ,emacs-avy)
15080 ("emacs-posframe" ,emacs-posframe)))
15081 (home-page "https://github.com/clemera/frog-menu")
15082 (synopsis "Quickly pick items from ad hoc menus")
15083 (description
15084 "This package provides a popup offering a preview of a list of candidates
15085 on which user-defined dispatch actions can act.")
15086 (license license:gpl3+)))
15087
15088 (define-public emacs-frog-jump-buffer
15089 (let ((commit "2d7b342785ae27d45f5d252272df6eb773c78e20")
15090 (revision "1"))
15091 (package
15092 (name "emacs-frog-jump-buffer")
15093 (version (git-version "0.1.4" revision commit))
15094 (source
15095 (origin
15096 (method git-fetch)
15097 (uri (git-reference
15098 (url "https://github.com/waymondo/frog-jump-buffer")
15099 (commit commit)))
15100 (file-name (git-file-name name version))
15101 (sha256
15102 (base32
15103 "1z00by8hiss1r2lwmzrl8pnz6jykia2849dqqm4l3z5rf6lwvc0f"))))
15104 (build-system emacs-build-system)
15105 (propagated-inputs
15106 `(("emacs-dash" ,emacs-dash)
15107 ("emacs-frog-menu" ,emacs-frog-menu)
15108 ("emacs-avy" ,emacs-avy)))
15109 (home-page "https://github.com/waymondo/frog-jump-buffer")
15110 (synopsis "Jump to any Emacs buffer with minimal keystrokes")
15111 (description
15112 "This package provides a preview window of buffers that can be switched
15113 to with quicklink-style selections.")
15114 (license license:gpl3+))))
15115
15116 (define-public emacs-deft
15117 (package
15118 (name "emacs-deft")
15119 (version "0.8")
15120 (source
15121 (origin
15122 (method git-fetch)
15123 (uri (git-reference
15124 (url "https://github.com/jrblevin/deft")
15125 (commit (string-append "v" version))))
15126 (file-name (git-file-name name version))
15127 (sha256
15128 (base32
15129 "0z7cilgiz6krvl5h2z72hkch43qxmypb0k6p5vxn5lx1p6v0mrf2"))))
15130 (build-system emacs-build-system)
15131 (home-page "https://jblevins.org/projects/deft/")
15132 (synopsis "Quickly browse, filter, and edit plain text notes")
15133 (description
15134 "Deft is an Emacs mode for quickly browsing, filtering, and editing
15135 directories of plain text notes, inspired by Notational Velocity.")
15136 (license license:bsd-3)))
15137
15138 (define-public emacs-anzu
15139 (package
15140 (name "emacs-anzu")
15141 (version "0.64")
15142 (source
15143 (origin
15144 (method git-fetch)
15145 (uri (git-reference
15146 (url "https://github.com/syohex/emacs-anzu")
15147 (commit version)))
15148 (file-name (git-file-name name version))
15149 (sha256
15150 (base32 "1jfn5nm6r68wa0gn2k2zy6sdq6c8shw8x04ylzzm5cw7zm60jw0n"))))
15151 (build-system emacs-build-system)
15152 (home-page "https://github.com/syohex/emacs-anzu")
15153 (synopsis "Show number of matches in mode-line while searching")
15154 (description
15155 "Anzu provides a minor mode which displays \"current match/total
15156 matches\" in the mode line in various search modes. This is an Emacs port of
15157 Anzu.zim.")
15158 (license license:gpl3+)))
15159
15160 (define-public emacs-ascii-art-to-unicode
15161 (package
15162 (name "emacs-ascii-art-to-unicode")
15163 (version "1.13")
15164 (source
15165 (origin
15166 (method url-fetch)
15167 (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-"
15168 version ".el"))
15169 (sha256
15170 (base32 "1c0jva3amhl9c5xc5yzdpi58c8m1djym4ccj31z6wmakq7npy07p"))))
15171 (build-system emacs-build-system)
15172 (home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html")
15173 (synopsis "ASCII to Unicode art converter for Emacs")
15174 (description "This Emacs package provides the commands @command{aa2u} and
15175 @command{aa2u-rectangle}. Both of these commands can be used to convert
15176 simple ASCII art line drawings to Unicode; the former works on the active
15177 region of the buffer, while the latter works on rectangular selections.")
15178 (license license:gpl3+)))
15179
15180 (define-public emacs-emmet-mode
15181 (let ((commit "1acb821e0142136344ccf40c1e5fb664d7db2e70")
15182 (revision "1"))
15183 (package
15184 (name "emacs-emmet-mode")
15185 (version (git-version "1.0.8" revision commit))
15186 (source (origin
15187 (method git-fetch)
15188 (uri (git-reference
15189 (url "https://github.com/smihica/emmet-mode")
15190 (commit commit)))
15191 (file-name (git-file-name name version))
15192 (sha256
15193 (base32
15194 "1p25h191bm0h5b3w5apg7wks51k7pb7h4dlww4jbl9ri4d33fzcl"))))
15195 (build-system emacs-build-system)
15196 (home-page "https://github.com/smihica/emmet-mode")
15197 (synopsis "Unofficial Emmet's support for Emacs")
15198 (description
15199 "Unfold CSS-selector-like expressions to markup. It is intended to be
15200 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
15201 (license license:gpl3+))))
15202
15203 (define-public emacs-ergoemacs-mode
15204 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
15205 (revision "1"))
15206 (package
15207 (name "emacs-ergoemacs-mode")
15208 (version (git-version "5.16.10.12" revision commit))
15209 (source
15210 (origin
15211 (method git-fetch)
15212 (uri (git-reference
15213 (url "https://github.com/ergoemacs/ergoemacs-mode")
15214 (commit commit)))
15215 (file-name (git-file-name name version))
15216 (sha256
15217 (base32
15218 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
15219 (build-system emacs-build-system)
15220 (propagated-inputs
15221 `(("emacs-undo-tree" ,emacs-undo-tree)))
15222 (home-page "https://ergoemacs.github.io/")
15223 (synopsis "Emacs mode based on common modern interface and ergonomics")
15224 (description
15225 "This package provides an efficient Emacs keybinding set based on
15226 statistics of command frequency, and supports common shortcuts for open,
15227 close, copy, cut, paste, undo, redo.")
15228 (license license:gpl3+))))
15229
15230 (define-public emacs-password-store
15231 (let ((commit "918992c19231b33b3d4a3288a7288a620e608cb4")
15232 (revision "1"))
15233 (package
15234 (name "emacs-password-store")
15235 ;; The emacs package version does not match the password-store version,
15236 ;; even though it is part of the same repository. When updating, look
15237 ;; at the version declared in password-store.el.
15238 (version (git-version "2.1.4" revision commit))
15239 (source (origin
15240 (method git-fetch)
15241 (uri (git-reference
15242 (url "git://git.zx2c4.com/password-store")
15243 (commit commit)))
15244 (sha256
15245 (base32
15246 "0ni62f4pq96g0i0q66bch1dl9k4zqwhg7xaf746k3gbbqxcdh3vi"))
15247 (file-name (git-file-name name version))))
15248 (build-system emacs-build-system)
15249 (arguments
15250 `(#:phases
15251 (modify-phases %standard-phases
15252 (add-after 'unpack 'extract-el-file
15253 (lambda _
15254 (copy-file "contrib/emacs/password-store.el" "password-store.el")
15255 (delete-file-recursively "contrib")
15256 (delete-file-recursively "man")
15257 (delete-file-recursively "src")
15258 (delete-file-recursively "tests"))))))
15259 (propagated-inputs
15260 `(("emacs-auth-source-pass" ,emacs-auth-source-pass)
15261 ("emacs-s" ,emacs-s)
15262 ("emacs-with-editor" ,emacs-with-editor)
15263 ("password-store" ,password-store)))
15264 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
15265 (synopsis "Password store (pass) support for Emacs")
15266 (description
15267 "This package provides functions for working with pass (\"the
15268 standard Unix password manager\").")
15269 (license license:gpl2+))))
15270
15271 (define-public emacs-password-store-otp
15272 (package
15273 (name "emacs-password-store-otp")
15274 (version "0.1.5")
15275 (source
15276 (origin
15277 (method git-fetch)
15278 (uri (git-reference
15279 (url "https://github.com/volrath/password-store-otp.el")
15280 (commit version)))
15281 (sha256
15282 (base32 "0gb48blvnn6ci2wl45z81p41ny7vbgl610hqy6b2hyr2171qjd60"))
15283 (file-name (git-file-name name version))))
15284 (build-system emacs-build-system)
15285 (propagated-inputs
15286 `(("emacs-password-store" ,emacs-password-store)
15287 ("emacs-s" ,emacs-s)))
15288 (home-page "https://github.com/volrath/password-store-otp.el")
15289 (synopsis
15290 "Interact with the @code{pass-otp} extension for @code{pass} from Emacs")
15291 (description "This package provides Emacs functions to interact with the
15292 @code{pass-otp} extension for @code{pass}. It includes functions to import
15293 OTP URIs from screenshots of QR codes, and to export them back to QR codes if
15294 needed.")
15295 (license license:gpl3+)))
15296
15297 (define-public emacs-auth-source-pass
15298 (let ((commit "847a1f54ed48856b4dfaaa184583ef2c84173edf")
15299 (revision "2"))
15300 (package
15301 (name "emacs-auth-source-pass")
15302 (version (git-version "5.0.0" revision commit))
15303 (source
15304 (origin
15305 (method git-fetch)
15306 (uri (git-reference
15307 (url "https://github.com/DamienCassou/auth-password-store")
15308 (commit commit)))
15309 (file-name (git-file-name name version))
15310 (sha256
15311 (base32 "0g48z5w6n3c54zqfpx65dfyl9jqbl15idvbb1hhw2pd9f9r8fykk"))))
15312 (build-system emacs-build-system)
15313 (arguments
15314 `(#:tests? #t
15315 #:test-command '("emacs" "--batch"
15316 "-L" "."
15317 "-l" "test/auth-source-pass-tests.el"
15318 "-f" "ert-run-tests-batch-and-exit")))
15319 (home-page "https://github.com/DamienCassou/auth-password-store")
15320 (synopsis "Integrate @code{auth-source} with @code{password-store}")
15321 (description "This package helps Emacs integrate with the Unix
15322 @code{password-store} application.")
15323 (license license:gpl3+))))
15324
15325 (define-public emacs-pass
15326 (package
15327 (name "emacs-pass")
15328 (version "2.0")
15329 (source
15330 (origin
15331 (method git-fetch)
15332 (uri (git-reference
15333 (url "https://github.com/NicolasPetton/pass")
15334 (commit version)))
15335 (file-name (git-file-name name version))
15336 (sha256
15337 (base32 "0jc8j421mlflspg24jvrqc2n3y5n3cpk3hjy560il8g36xi1049p"))))
15338 (build-system emacs-build-system)
15339 (propagated-inputs
15340 `(("emacs-password-store" ,emacs-password-store)
15341 ("emacs-f" ,emacs-f)))
15342 (home-page "https://github.com/NicolasPetton/pass")
15343 (synopsis "Major mode for @file{password-store.el}")
15344 (description "This is a major mode for managing password-store (pass)
15345 keychains. The keychain entries are displayed in a directory-like structure
15346 and can be consulted and modified.")
15347 (license license:gpl3+)))
15348
15349 (define-public emacs-psc-ide
15350 ;; There is no proper release. The base version is extracted from the
15351 ;; "Version" keyword in the main file.
15352 (let ((commit "7fc2b841be25f5bc5e1eb7d0634436181c38b3fe")
15353 (revision "1"))
15354 (package
15355 (name "emacs-psc-ide")
15356 (version (git-version "0.1.0" revision commit))
15357 (source
15358 (origin
15359 (method git-fetch)
15360 (uri
15361 (git-reference
15362 (url "https://github.com/purescript-emacs/psc-ide-emacs")
15363 (commit commit)))
15364 (file-name (git-file-name name version))
15365 (sha256
15366 (base32 "0r0fymyai30jimm34z1cmav4wgij8ci6s1d9y7qigygfbbfrdsmj"))))
15367 (build-system emacs-build-system)
15368 (propagated-inputs
15369 `(("emacs-company" ,emacs-company)
15370 ("emacs-dash" ,emacs-dash)
15371 ("emacs-flycheck" ,emacs-flycheck)
15372 ("emacs-let-alist" ,emacs-let-alist)
15373 ("emacs-s" ,emacs-s)))
15374 (home-page "https://github.com/purescript-emacs/psc-ide-emacs")
15375 (synopsis "Emacs integration for PureScript's psc-ide tool")
15376 (description
15377 "This package provices Emacs integration for @code{psc-ide}, an IDE
15378 protocol for PureScript programming language. It features:
15379
15380 @itemize
15381 @item Completions
15382 @item Type at point
15383 @item Go to definition
15384 @item Automatic imports
15385 @item Case split
15386 @item Build system integration, and
15387 @item Flycheck support
15388 @end itemize")
15389 (license license:gpl3+))))
15390
15391 (define-public emacs-evil-anzu
15392 (package
15393 (name "emacs-evil-anzu")
15394 (version "0.03")
15395 (source
15396 (origin
15397 (method git-fetch)
15398 (uri (git-reference
15399 (url "https://github.com/syohex/emacs-evil-anzu")
15400 (commit version)))
15401 (file-name (git-file-name name version))
15402 (sha256
15403 (base32 "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr"))))
15404 (build-system emacs-build-system)
15405 (propagated-inputs
15406 `(("emacs-evil" ,emacs-evil)
15407 ("emacs-anzu" ,emacs-anzu)))
15408 (home-page "https://github.com/syohex/emacs-evil-anzu")
15409 (synopsis "Anzu for evil-mode")
15410 (description "@code{anzu} provides a minor mode that displays the current
15411 match and total match information in the mode-line in various search modes.")
15412 (license license:gpl3+)))
15413
15414 (define-public emacs-pg
15415 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
15416 (package
15417 (name "emacs-pg")
15418 (version (git-version "0.1" "1" commit))
15419 (source (origin
15420 (method git-fetch)
15421 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
15422 (commit commit)))
15423 (file-name (git-file-name name version))
15424 (sha256
15425 (base32
15426 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
15427 (build-system emacs-build-system)
15428 (home-page "https://github.com/cbbrowne/pg.el")
15429 (synopsis "Emacs Lisp interface for PostgreSQL")
15430 (description
15431 "This package provides an Emacs Lisp interface for PostgreSQL.")
15432 (license license:gpl3+))))
15433
15434 (define-public emacs-finalize
15435 (package
15436 (name "emacs-finalize")
15437 (version "2.0.0")
15438 (source
15439 (origin
15440 (method git-fetch)
15441 (uri (git-reference
15442 (url "https://github.com/skeeto/elisp-finalize")
15443 (commit version)))
15444 (file-name (git-file-name name version))
15445 (sha256
15446 (base32 "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"))))
15447 (build-system emacs-build-system)
15448 (home-page "https://github.com/skeeto/elisp-finalize")
15449 (synopsis "Finalizers for Emacs Lisp")
15450 (description
15451 "This package runs a callback (a finalizer)
15452 after its registered lisp object has been garbage collected. This allows
15453 extra resources, such as buffers and processes, to be cleaned up after the
15454 object has been freed.")
15455 (license license:unlicense)))
15456
15457 (define-public emacs-emacsql
15458 (package
15459 (name "emacs-emacsql")
15460 (version "3.0.0")
15461 (source (origin
15462 (method git-fetch)
15463 (uri (git-reference
15464 (url "https://github.com/skeeto/emacsql")
15465 (commit (string-append version))))
15466 (file-name (git-file-name name version))
15467 (sha256
15468 (base32
15469 "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
15470 (build-system emacs-build-system)
15471 (arguments
15472 `(#:modules ((guix build emacs-build-system)
15473 (guix build utils)
15474 (guix build emacs-utils)
15475 (srfi srfi-26))
15476 #:phases
15477 (modify-phases %standard-phases
15478 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
15479 (add-before 'install 'patch-elisp-shell-shebangs
15480 (lambda _
15481 (substitute* (find-files "." "\\.el")
15482 (("/bin/sh") (which "sh")))
15483 #t))
15484 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
15485 (lambda _
15486 (setenv "SHELL" "sh")))
15487 (add-after 'setenv-shell 'build-emacsql-sqlite
15488 (lambda _
15489 (invoke "make" "binary" "CC=gcc")))
15490 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
15491 ;; This build phase installs emacs-emacsql binary.
15492 (lambda* (#:key outputs #:allow-other-keys)
15493 (install-file "sqlite/emacsql-sqlite"
15494 (string-append (assoc-ref outputs "out")
15495 "/bin"))
15496 #t))
15497 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
15498 ;; This build phase removes interactive prompts
15499 ;; and makes sure Emacs look for binaries in the right places.
15500 (lambda* (#:key outputs #:allow-other-keys)
15501 (let ((file "emacsql-sqlite.el"))
15502 (chmod file #o644)
15503 (emacs-substitute-sexps file
15504 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
15505 ("(executable-find" (which "gcc"))
15506 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
15507 ;; in the right place.
15508 ("(defvar emacsql-sqlite-executable"
15509 (string-append (assoc-ref outputs "out")
15510 "/bin/emacsql-sqlite"))))))
15511 (replace 'install
15512 (lambda* (#:key outputs #:allow-other-keys)
15513 (let* ((out (assoc-ref outputs "out")))
15514 (install-file "sqlite/emacsql-sqlite"
15515 (string-append out "/bin"))
15516 (for-each (cut install-file <>
15517 (string-append out "/share/emacs/site-lisp"))
15518 (find-files "." "\\.elc*$")))
15519 #t)))))
15520 (inputs
15521 `(("emacs-minimal" ,emacs-minimal)
15522 ("mariadb" ,mariadb "lib")
15523 ("mariadb-dev" ,mariadb "dev")
15524 ("postgresql" ,postgresql)))
15525 (propagated-inputs
15526 `(("emacs-finalize" ,emacs-finalize)
15527 ("emacs-pg" ,emacs-pg)))
15528 (home-page "https://github.com/skeeto/emacsql")
15529 (synopsis "Emacs high-level SQL database front-end")
15530 (description "Any readable Lisp value can be stored as a value in EmacSQL,
15531 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
15532 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
15533 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
15534 (license license:gpl3+)))
15535
15536 (define-public emacs-emacsql-sqlite3
15537 (package
15538 (name "emacs-emacsql-sqlite3")
15539 (version "1.0.2")
15540 (source (origin
15541 (method git-fetch)
15542 (uri (git-reference
15543 (url "https://github.com/cireu/emacsql-sqlite3")
15544 (commit version)))
15545 (file-name (git-file-name name version))
15546 (sha256
15547 (base32
15548 "1jzvvsvi8jm2ws3y49nmpmwd3zlvf8j83rl2vwizd1aplwwdnmd6"))))
15549 (build-system emacs-build-system)
15550 (native-inputs
15551 `(("ert-runner" ,emacs-ert-runner)))
15552 (inputs
15553 `(("sqlite" ,sqlite)))
15554 (propagated-inputs
15555 `(("emacs-emacsql" ,emacs-emacsql)))
15556 (arguments
15557 `(#:tests? #t
15558 #:test-command '("emacs" "-Q" "--batch" "-L" "."
15559 "--load" "emacsql-sqlite3-test.el"
15560 "-f" "ert-run-tests-batch-and-exit")
15561 #:phases
15562 (modify-phases %standard-phases
15563 (add-after 'unpack 'embed-path-to-sqlite3
15564 (lambda _
15565 (substitute* "emacsql-sqlite3.el"
15566 (("\\(executable-find \"sqlite3\"\\)")
15567 (string-append "\"" (which "sqlite3") "\"")))
15568 #t)))))
15569 (home-page "https://github.com/cireu/emacsql-sqlite3")
15570 (synopsis "EmacSQL backend for SQLite")
15571 (description "This is yet another EmacSQL backend for SQLite which uses
15572 official @command{sqlite3} executable to access SQL database.")
15573 (license license:gpl3+)))
15574
15575 (define-public emacs-closql
15576 (package
15577 (name "emacs-closql")
15578 (version "1.0.4")
15579 (source
15580 (origin
15581 (method git-fetch)
15582 (uri (git-reference
15583 (url "https://github.com/emacscollective/closql")
15584 (commit (string-append "v" version))))
15585 (file-name (git-file-name name version))
15586 (sha256
15587 (base32
15588 "06j0sc6dx8f34wc8i7dzkp8jwvwnrpnl8i93vpc1qw0ih0jwa2zh"))))
15589 (build-system emacs-build-system)
15590 (propagated-inputs
15591 `(("emacs-emacsql" ,emacs-emacsql)))
15592 (home-page "https://github.com/emacscollective/closql")
15593 (synopsis "Store EIEIO objects using EmacSQL")
15594 (description
15595 "This package stores uniform EIEIO objects in an EmacSQL
15596 database. SQLite is used as backend. This library imposes some restrictions
15597 on what kind of objects can be stored; it isn't intended to store arbitrary
15598 objects. All objects have to share a common superclass and subclasses cannot
15599 add any additional instance slots.")
15600 (license license:gpl3)))
15601
15602 (define-public emacs-epkg
15603 (package
15604 (name "emacs-epkg")
15605 (version "3.2.2")
15606 (source
15607 (origin
15608 (method git-fetch)
15609 (uri (git-reference
15610 (url "https://github.com/emacscollective/epkg")
15611 (commit (string-append "v" version))))
15612 (file-name (git-file-name name version))
15613 (sha256
15614 (base32
15615 "1pxz611qb3m33r6343h0xhwqvvhjl131zyc2klplzgb23rkm8lk0"))))
15616 (build-system emacs-build-system)
15617 (propagated-inputs
15618 `(("emacs-closql" ,emacs-closql)
15619 ("emacs-dash" ,emacs-dash)))
15620 (home-page "https://emacsmirror.net")
15621 (synopsis "Browse the Emacsmirror package database")
15622 (description "This package provides access to a local copy of the
15623 Emacsmirror package database. It provides low-level functions for querying
15624 the database and a @file{package.el} user interface for browsing the database.
15625 Epkg itself is not a package manager.
15626
15627 Getting a local copy:
15628
15629 @example
15630 git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
15631 cd ~/.emacs.d/epkgs
15632 git submodule init
15633 git config --global url.https://github.com/.insteadOf git@@github.com:
15634 git submodule update
15635 @end example
15636
15637 Some submodule may be missing. In this case Git will prompt for a GitHub user
15638 name and password. To skip it press a @key{Return} key.
15639
15640 You could get a Epkg package list by invoking @code{epkg-list-packages} in
15641 Emacs.")
15642 (license license:gpl3+)))
15643
15644 (define-public emacs-elisp-slime-nav
15645 (package
15646 (name "emacs-elisp-slime-nav")
15647 (version "0.10")
15648 (source
15649 (origin
15650 (method git-fetch)
15651 (uri (git-reference
15652 (url "https://github.com/purcell/elisp-slime-nav")
15653 (commit version)))
15654 (file-name (git-file-name name version))
15655 (sha256
15656 (base32 "08k4zlawjkb0ldn4lgrhih8nzln398x7dwzpipqfyrmp0xziywma"))))
15657 (build-system emacs-build-system)
15658 (home-page "https://github.com/purcell/elisp-slime-nav")
15659 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
15660 (description
15661 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
15662 in @code{emacs-lisp-mode}, together with an elisp equivalent of
15663 @code{slime-describe-symbol}.")
15664 (license license:gpl3+)))
15665
15666 (define-public emacs-dedicated
15667 (package
15668 (name "emacs-dedicated")
15669 (version "1.0.0")
15670 (source
15671 (origin
15672 (method git-fetch)
15673 (uri (git-reference
15674 (url "https://github.com/emacsorphanage/dedicated")
15675 (commit version)))
15676 (file-name (git-file-name name version))
15677 (sha256
15678 (base32 "0pba9s0h37sxyqh733vi6k5raa4cs7aradipf3826inw36jcw414"))))
15679 (build-system emacs-build-system)
15680 (home-page "https://github.com/emacsorphanage/dedicated")
15681 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
15682 (description
15683 "This simple Emacs minor mode allows you to toggle a window's
15684 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
15685 files into that window. This can be quite handy since many commands will use
15686 another window to show results (compilation mode, starting info, and so on).
15687 A dedicated window won't be used for such a purpose. For details, please read
15688 the source file.")
15689 (license license:gpl2+)))
15690
15691 (define-public emacs-nnreddit
15692 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
15693 (revision "1"))
15694 (package
15695 (name "emacs-nnreddit")
15696 (version (string-append "0.0.1-" revision "."
15697 (string-take commit 7)))
15698 (source (origin
15699 (method git-fetch)
15700 (uri (git-reference
15701 (url "https://github.com/paul-issartel/nnreddit")
15702 (commit commit)))
15703 (file-name (git-file-name name version))
15704 (sha256
15705 (base32
15706 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
15707 (build-system emacs-build-system)
15708 (home-page "https://github.com/paul-issartel/nnreddit")
15709 (synopsis "Reddit backend for the Gnus newsreader")
15710 (description "@url{https://www.reddit.com} backend for the Gnus
15711 newsreader.")
15712 (license license:gpl3+))))
15713
15714 (define-public emacs-makey
15715 (package
15716 (name "emacs-makey")
15717 (version "0.3")
15718 (source
15719 (origin
15720 (method git-fetch)
15721 (uri (git-reference
15722 (url "https://github.com/mickeynp/makey")
15723 (commit version)))
15724 (file-name (git-file-name name version))
15725 (sha256
15726 (base32 "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"))))
15727 (build-system emacs-build-system)
15728 (home-page "https://github.com/mickeynp/makey")
15729 (synopsis "Emacs interactive command-line mode")
15730 (description
15731 "This package provides an Emacs interactive command-line mode.")
15732 (license license:gpl3+)))
15733
15734 (define-public emacs-outorg
15735 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
15736 (package
15737 (name "emacs-outorg")
15738 (version (git-version "2.0" "1" commit))
15739 (source
15740 (origin
15741 (method git-fetch)
15742 (uri (git-reference
15743 (url "https://github.com/alphapapa/outorg")
15744 (commit commit)))
15745 (file-name (git-file-name name version))
15746 (sha256
15747 (base32
15748 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
15749 (build-system emacs-build-system)
15750 (home-page "https://github.com/alphapapa/outorg")
15751 (synopsis "Org-style comment editing")
15752 (description "Outorg is for editing comment-sections of source-code
15753 files in temporary Org-mode buffers. It turns conventional
15754 literate-programming upside-down in that the default mode is the
15755 programming-mode, and special action has to be taken to switch to the
15756 text-mode (i.e. Org-mode).")
15757 (license license:gpl3+))))
15758
15759 (define-public emacs-outshine
15760 (package
15761 (name "emacs-outshine")
15762 (version "3.0.1")
15763 (source (origin
15764 (method git-fetch)
15765 (uri (git-reference
15766 (url "https://github.com/alphapapa/outshine")
15767 (commit (string-append "v" version))))
15768 (file-name (git-file-name name version))
15769 (sha256
15770 (base32
15771 "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg"))))
15772 (build-system emacs-build-system)
15773 (propagated-inputs
15774 `(("emacs-outorg" ,emacs-outorg)))
15775 (home-page "https://github.com/alphapapa/outshine")
15776 (synopsis "Emacs outline with outshine")
15777 (description "Outshine attempts to bring the look and feel of
15778 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
15779 of @code{outline-minor-mode} (@code{org-mode} itself derives from
15780 outline-mode), so there is no such thing like an outshine mode, only
15781 @code{outline-minor-mode} with outshine extensions loaded.")
15782 (license license:gpl3+)))
15783
15784 (define-public emacs-frecency
15785 (let ((commit "31ef9ff4af1a4fed3dcc24ea74037feea8795c87")
15786 (version "0.1-pre")
15787 (revision "1"))
15788 (package
15789 (name "emacs-frecency")
15790 (version (git-version version revision commit))
15791 (source (origin
15792 (method git-fetch)
15793 (uri (git-reference
15794 (url "https://github.com/alphapapa/frecency.el")
15795 (commit commit)))
15796 (sha256
15797 (base32
15798 "051aihjdg3x22svaxhwylpi8i6s2x9j8syvsj1jgilgjjdy15l6j"))
15799 (file-name (git-file-name name version))))
15800 (build-system emacs-build-system)
15801 (propagated-inputs
15802 `(("emacs-a" ,emacs-a)
15803 ("emacs-dash" ,emacs-dash)))
15804 (home-page "https://github.com/alphapapa/frecency.el")
15805 (synopsis "Sort items by frequency and recency of access")
15806 (description "This package provides a way of sorting items via
15807 a heuristic based on frequency and recency.")
15808 (license license:gpl3+))))
15809
15810 (define-public emacs-org-recent-headings
15811 (package
15812 (name "emacs-org-recent-headings")
15813 (version "0.1")
15814 (source (origin
15815 (method git-fetch)
15816 (uri (git-reference
15817 (url "https://github.com/alphapapa/org-recent-headings")
15818 (commit version)))
15819 (file-name (git-file-name name version))
15820 (sha256
15821 (base32
15822 "0gsrzmg3mssh9s28yjm9m866fnhm1pcligssz1q6brga6dm6f2yy"))))
15823 (build-system emacs-build-system)
15824 (propagated-inputs
15825 `(("emacs-org" ,emacs-org)
15826 ("emacs-dash" ,emacs-dash)
15827 ("emacs-frecency" ,emacs-frecency)))
15828 (home-page "https://github.com/alphapapa/org-recent-headings")
15829 (synopsis "Navigate to recently used Org headings and lists")
15830 (description "This package maintains a list of recently used Org headings,
15831 as well as functions for navigating between these headings.")
15832 (license license:gpl3+)))
15833
15834 (define-public emacs-org-super-agenda
15835 (package
15836 (name "emacs-org-super-agenda")
15837 (version "1.2")
15838 (source (origin
15839 (method git-fetch)
15840 (uri (git-reference
15841 (url "https://github.com/alphapapa/org-super-agenda")
15842 (commit version)))
15843 (file-name (git-file-name name version))
15844 (sha256
15845 (base32
15846 "10l9h2n09cql4ih7nc0ma3ghdsq9l5v9xlj1lg7kq67icdwjlsvy"))))
15847 (build-system emacs-build-system)
15848 (arguments
15849 `(#:tests? #t
15850 #:test-command '("test/run" "--debug")
15851 #:phases
15852 (modify-phases %standard-phases
15853 (add-after 'unpack 'prepare-for-tests.el
15854 (lambda _
15855 (make-file-writable "test/test.el")
15856 (emacs-substitute-variables "test/test.el"
15857 ("org-super-agenda-test-results-file"
15858 (string-append (getcwd) "/test/results.el")))
15859 ;; The following test fail (see:
15860 ;; https://github.com/alphapapa/org-super-agenda/issues/183).
15861 (substitute* "test/test.el"
15862 ((".*org-super-agenda-test--:auto-map.*" all)
15863 (string-append all " (skip-unless nil)\n")))
15864 #t)))))
15865 (native-inputs
15866 `(("emacs-f" ,emacs-f)
15867 ("getopt" ,util-linux)))
15868 (propagated-inputs
15869 `(("emacs-org" ,emacs-org)
15870 ("emacs-dash" ,emacs-dash)
15871 ("emacs-ts" ,emacs-ts)
15872 ("emacs-ht" ,emacs-ht)
15873 ("emacs-s" ,emacs-s)))
15874 (home-page "https://github.com/alphapapa/org-super-agenda")
15875 (synopsis "Supercharged Org agenda")
15876 (description "This package allows items in the Org agenda to be grouped
15877 into sections while preserving the structure imposed by any timestamps.")
15878 (license license:gpl3+)))
15879
15880 (define-public emacs-elegant-agenda-mode
15881 (let ((commit "c72f42e0f551c3dd81e68262f07a96c0ec90a589")
15882 (revision "1"))
15883 (package
15884 (name "emacs-elegant-agenda-mode")
15885 (version (git-version "0.1.0" revision commit))
15886 (source
15887 (origin
15888 (method git-fetch)
15889 (uri (git-reference
15890 (url "https://github.com/justinbarclay/elegant-agenda-mode")
15891 (commit commit)))
15892 (file-name (git-file-name name version))
15893 (sha256
15894 (base32
15895 "0f8qk3vd41ffbkfqw5nks3bld0qpjrlnk9sb46wcbsyfnrs2v082"))))
15896 (build-system emacs-build-system)
15897 (home-page "https://github.com/justinbarclay/elegant-agenda-mode")
15898 (synopsis "Elegant theme for your org-agenda")
15899 (description
15900 "The elegant-agenda-mode package uses fonts and typography to give your
15901 org-agenda some breathing room and elegance. This package was inspired by the
15902 work Nicolas Rougier.")
15903 (license license:gpl3+))))
15904
15905 (define-public emacs-org-make-toc
15906 (package
15907 (name "emacs-org-make-toc")
15908 (version "0.5")
15909 (source (origin
15910 (method git-fetch)
15911 (uri (git-reference
15912 (url "https://github.com/alphapapa/org-make-toc")
15913 (commit version)))
15914 (file-name (git-file-name name version))
15915 (sha256
15916 (base32
15917 "180ji6nnj6qj0rs1rdp1zlcrfsqf7ikb44ym8icbp5d6al2s4hnr"))))
15918 (build-system emacs-build-system)
15919 (propagated-inputs
15920 `(("emacs-org" ,emacs-org)
15921 ("emacs-dash" ,emacs-dash)
15922 ("emacs-s" ,emacs-s)))
15923 (home-page "https://github.com/alphapapa/org-make-toc")
15924 (synopsis "Maintain a table of contents for an Org file")
15925 (description "This package facilitates the creation and maintenance of
15926 tables of contents.")
15927 (license license:gpl3+)))
15928
15929 (define-public emacs-ts
15930 (package
15931 (name "emacs-ts")
15932 (version "0.2")
15933 (source
15934 (origin
15935 (method git-fetch)
15936 (uri (git-reference
15937 (url "https://github.com/alphapapa/ts.el")
15938 (commit version)))
15939 (sha256
15940 (base32 "0hmzc1ppnkkr0lfq5fhzqr6icv6iqz824a6bnns7zr466hhqp3qb"))
15941 (file-name (git-file-name name version))))
15942 (build-system emacs-build-system)
15943 (propagated-inputs
15944 `(("emacs-s" ,emacs-s)
15945 ("emacs-dash" ,emacs-dash)))
15946 (arguments
15947 ;; XXX: Three tests are failing because of a timezone-related issue
15948 ;; with how they're written. On my machine, all the failing test
15949 ;; results are 18000 seconds (5 hours) off.
15950
15951 ;; The ts-parse-org function accepts a string without any timezone
15952 ;; info, not assumed to be in Unix time, and converts it to a so-called
15953 ;; ts struct. The ts-unix function (accessor) accepts a ts struct,
15954 ;; then seems to assume the struct's corresponding time is in terms of
15955 ;; the user's current time zone, before returning a Unix time in
15956 ;; seconds.
15957
15958 ;; The failing tests all have similar problems, but nothing else about
15959 ;; the library seems particularly off.
15960
15961 `(#:tests? #t
15962 #:test-command '("emacs" "--batch"
15963 "-l" "test/test.el"
15964 "-f" "ert-run-tests-batch-and-exit")
15965 #:phases
15966 (modify-phases %standard-phases
15967 (add-before 'check 'make-tests-writable
15968 (lambda _
15969 (make-file-writable "test/test.el")
15970 #t))
15971 (add-before 'check 'delete-failing-tests
15972 (lambda _
15973 (emacs-batch-edit-file "test/test.el"
15974 `(progn (progn
15975 (goto-char (point-min))
15976 (dolist (test-regexp
15977 '("ert-deftest ts-format"
15978 "ert-deftest ts-parse-org\\_>"
15979 "ert-deftest ts-parse-org-element"
15980 "ert-deftest ts-update"))
15981 (re-search-forward test-regexp)
15982 (beginning-of-line)
15983 (kill-sexp)))
15984 (basic-save-buffer)))
15985 #t)))))
15986 (home-page "https://github.com/alphapapa/ts.el")
15987 (synopsis "Timestamp and date/time library")
15988 (description "This package facilitates manipulating dates, times, and
15989 timestamps by providing a @code{ts} struct.")
15990 (license license:gpl3+)))
15991
15992 (define-public emacs-peg
15993 (package
15994 (name "emacs-peg")
15995 (version "1.0")
15996 (source
15997 (origin
15998 (method url-fetch)
15999 (uri (string-append "https://elpa.gnu.org/packages/peg-" version ".tar"))
16000 (sha256
16001 (base32 "0skr5dz9k34r409hisnj37n1b7n62l3md0glnfx578xkbmxlpcxl"))))
16002 (build-system emacs-build-system)
16003 (home-page "https://elpa.gnu.org/packages/peg.html")
16004 (synopsis "Parsing Expression Grammars in Elisp")
16005 (description "This package provides a macro that parses the current buffer
16006 according to a parsing expression grammar.")
16007 (license license:gpl3+)))
16008
16009 (define-public emacs-eldev
16010 (package
16011 (name "emacs-eldev")
16012 (version "0.8.1")
16013 (source (origin
16014 (method git-fetch)
16015 (uri (git-reference
16016 (url "https://github.com/doublep/eldev")
16017 (commit version)))
16018 (file-name (git-file-name name version))
16019 (sha256
16020 (base32
16021 "19s45hdhcg5l608awfxvmhd61xzp7dd5pvviv89xzzksx74l1188"))))
16022 (build-system emacs-build-system)
16023 (arguments
16024 `(#:tests? #t
16025 #:test-command '("./bin/eldev" "-p" "-dtTC" "test")
16026 #:phases
16027 (modify-phases %standard-phases
16028 (add-after 'unpack 'prepare-for-tests
16029 (lambda _
16030 (setenv "ELDEV_LOCAL" (getcwd))
16031 (make-file-writable
16032 "test/project-i/project-i-autoloads.el")
16033 #t))
16034 (add-after 'unpack 'skip-failing-tests
16035 ;; FIXME: 10 tests are failing. Skip them for now.
16036 (lambda _
16037 (substitute* '("test/init.el" "test/targets.el")
16038 (("(targets-project-e-[34]|init-[1-8]).*" line)
16039 (string-append line "(skip-unless nil)\n")))))
16040 (add-after 'install 'install-eldev-executable
16041 ;; This constructs the eldev executable from templates and
16042 ;; installs it in the specified directory.
16043 (lambda* (#:key outputs #:allow-other-keys)
16044 (let* ((out (assoc-ref outputs "out"))
16045 (bin (string-append out "/bin"))
16046 (site-lisp (string-append out "/share/emacs/site-lisp")))
16047 (mkdir-p bin)
16048 (setenv "HOME" (getcwd))
16049 (invoke "./install.sh" bin)
16050 (substitute* (string-append bin "/eldev")
16051 ;; Point ELDEV_LOCAL to the installation directory so that
16052 ;; eldev doesn't try to bootstrap itself from MELPA when
16053 ;; invoked.
16054 (("export ELDEV_EMACS.*" all)
16055 (string-append "export ELDEV_LOCAL=" site-lisp "\n" all)))
16056 #t))))))
16057 (native-inputs
16058 `(("texinfo" ,texinfo))) ;for tests
16059 (home-page "https://github.com/doublep/eldev/")
16060 (synopsis "Emacs-based build tool for Elisp")
16061 (description "Eldev (Elisp Development Tool) is an Emacs-based build tool,
16062 targeted solely at Elisp projects. It is an alternative to Cask. Unlike
16063 Cask, Eldev itself is fully written in Elisp and its configuration files are
16064 also Elisp programs. For those familiar with the Java world, Cask can be seen
16065 as a parallel to Maven — it uses project description, while Eldev is sort of a
16066 parallel to Gradle — its configuration is a program on its own.")
16067 (license license:gpl3+)))
16068
16069 (define-public emacs-with-simulated-input
16070 (package
16071 (name "emacs-with-simulated-input")
16072 (version "2.4")
16073 (source
16074 (origin
16075 (method git-fetch)
16076 (uri (git-reference
16077 (url "https://github.com/DarwinAwardWinner/with-simulated-input")
16078 (commit (string-append "v" version))))
16079 (file-name (git-file-name name version))
16080 (sha256
16081 (base32
16082 "12d3mhvzj74qwc4rdcb236jbqnf5lam8pk78j92kwbwjk1jaz2cf"))))
16083 (build-system emacs-build-system)
16084 (arguments
16085 ;; The test suite fails with error: "Spies can only be created in
16086 ;; ‘before-each’".
16087 `(#:tests? #f
16088 #:test-command '("buttercup" "-L" ".")))
16089 (native-inputs
16090 `(("emacs-buttercup" ,emacs-buttercup)
16091 ("emacs-undercover" ,emacs-undercover)))
16092 (propagated-inputs
16093 `(("emacs-s" ,emacs-s)))
16094 (home-page "https://github.com/DarwinAwardWinner/with-simulated-input")
16095 (synopsis "Non-interactive testing Emacs library")
16096 (description "This package provides an Emacs Lisp macro,
16097 @code{with-simulated-input}, which evaluates one or more forms while
16098 simulating a sequence of input events for those forms to read. The result is
16099 the same as if a user had evaluated the forms and then manually typed in the
16100 same input. This macro is useful for non-interactive testing of normally
16101 interactive commands and functions, such as @code{completing-read}.")
16102 (license license:gpl3+)))
16103
16104 (define-public emacs-org-ql
16105 (package
16106 (name "emacs-org-ql")
16107 (version "0.5")
16108 (source (origin
16109 (method git-fetch)
16110 (uri (git-reference
16111 (url "https://github.com/alphapapa/org-ql")
16112 (commit version)))
16113 (sha256
16114 (base32
16115 "14nsy2dbln3m5bpqzyfqycn18sb3qh407hjbkk1l0x2nqs3lrkqn"))
16116 (file-name (git-file-name name version))))
16117 (build-system emacs-build-system)
16118 (propagated-inputs
16119 `(("emacs-s" ,emacs-s)
16120 ("emacs-f" ,emacs-f)
16121 ("emacs-ov" ,emacs-ov)
16122 ("emacs-peg" ,emacs-peg)
16123 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
16124 ("emacs-ts" ,emacs-ts)
16125 ("emacs-org" ,emacs-org)
16126 ("emacs-helm" ,emacs-helm)
16127 ("emacs-helm-org" ,emacs-helm-org)
16128 ("emacs-dash" ,emacs-dash)
16129 ("emacs-transient" ,emacs-transient)))
16130 (native-inputs
16131 `(("emacs-buttercup" ,emacs-buttercup)
16132 ("emacs-with-simulated-input" ,emacs-with-simulated-input)))
16133 (arguments
16134 `(#:tests? #t
16135 #:test-command '("buttercup" "-L" ".")
16136 #:phases
16137 (modify-phases %standard-phases
16138 (add-after 'unpack 'disable-failing-tests
16139 (lambda _
16140 (substitute* "tests/test-org-ql.el"
16141 ;; This test fails on Emacs 27.1 (see:
16142 ;; https://github.com/alphapapa/org-super-agenda/issues/183).
16143 (("it \"Can search buffer containing the link\"" all)
16144 (string-append "x" all)))
16145 #t)))))
16146 (home-page "https://github.com/alphapapa/org-ql/")
16147 (synopsis "Query language for Org buffers")
16148 (description "This package provides a Lispy query language for Org
16149 files, allowing for actions to be performed based on search criteria.")
16150 (license license:gpl3+)))
16151
16152 (define-public emacs-org-auto-expand
16153 (let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62")
16154 (revision "1"))
16155 (package
16156 (name "emacs-org-auto-expand")
16157 (version (git-version "0.1" revision commit))
16158 (source (origin
16159 (method git-fetch)
16160 (uri (git-reference
16161 (url "https://github.com/alphapapa/org-auto-expand")
16162 (commit commit)))
16163 (file-name (git-file-name name version))
16164 (sha256
16165 (base32
16166 "1my0c6xmkh37lwi6l472lz9d86lf20h6xcllzlxm1lxa24rhva6v"))))
16167 (build-system emacs-build-system)
16168 (propagated-inputs
16169 `(("emacs-org" ,emacs-org)
16170 ("emacs-dash" ,emacs-dash)))
16171 (home-page "https://github.com/alphapapa/org-auto-expand")
16172 (synopsis "Automatically expand certain Org headings")
16173 (description "This package allows a customizable set of headings in Org
16174 files to be expanded upon opening them.")
16175 (license license:gpl3+))))
16176
16177 (define-public emacs-parsebib
16178 (package
16179 (name "emacs-parsebib")
16180 (version "2.4.1")
16181 (source
16182 (origin
16183 (method git-fetch)
16184 (uri (git-reference
16185 (url "https://github.com/joostkremers/parsebib")
16186 (commit version)))
16187 (file-name (git-file-name name version))
16188 (sha256
16189 (base32 "1d3ysh82gh5mg07hlz3ll782lldnaj0xmyabv18jln4y2xd7ncni"))))
16190 (build-system emacs-build-system)
16191 (home-page "https://github.com/joostkremers/parsebib")
16192 (synopsis "Library for parsing @file{.bib} files")
16193 (description
16194 "This package provides an Emacs library for parsing @file{.bib} files.")
16195 (license license:gpl3+)))
16196
16197 (define-public emacs-ebib
16198 (package
16199 (name "emacs-ebib")
16200 (version "2.29")
16201 (source
16202 (origin
16203 (method git-fetch)
16204 (uri (git-reference
16205 (url "https://github.com/joostkremers/ebib")
16206 (commit version)))
16207 (file-name (git-file-name name version))
16208 (sha256
16209 (base32 "1d0xnhdcsz2ysq145k2l0f2r4vb0pkai1v6wl6sfba7xi5fc323i"))))
16210 (build-system emacs-build-system)
16211 (propagated-inputs
16212 `(("emacs-parsebib" ,emacs-parsebib)))
16213 (home-page "https://joostkremers.github.io/ebib/")
16214 (synopsis "BibTeX database manager for Emacs")
16215 (description
16216 "Ebib is a BibTeX database manager that runs in GNU Emacs.
16217 With Ebib you can create, sort and manage your @file{.bib} database files, all
16218 within Emacs. It supports searching, multi-line field values and
16219 @samp{@@String} and @samp{@@Preamble} definitions. Ebib integrates
16220 with (La)TeX mode, Org mode and other Emacs editing modes.")
16221 ;; The Ebib source files are released under a BSD license with
16222 ;; the exception of org-ebib.el, which is released under the GNU
16223 ;; GPL.
16224 (license (list license:bsd-3
16225 license:gpl3+))))
16226
16227 (define-public emacs-biblio
16228 (package
16229 (name "emacs-biblio")
16230 (version "0.2")
16231 (source
16232 (origin
16233 (method git-fetch)
16234 (uri (git-reference
16235 (url "https://github.com/cpitclaudel/biblio.el")
16236 (commit version)))
16237 (file-name (git-file-name name version))
16238 (sha256
16239 (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"))))
16240 (build-system emacs-build-system)
16241 (propagated-inputs
16242 `(("emacs-dash" ,emacs-dash)
16243 ("emacs-let-alist" ,emacs-let-alist)))
16244 (home-page "https://github.com/cpitclaudel/biblio.el")
16245 (synopsis "Browse and import bibliographic references")
16246 (description "This package provides an extensible Emacs package for
16247 browsing and fetching references.
16248
16249 @file{biblio.el} makes it easy to browse and gather bibliographic references
16250 and publications from various sources, by keywords or by DOI. References are
16251 automatically fetched from well-curated sources, and formatted as BibTeX.")
16252 (license license:gpl3+)))
16253
16254 (define-public emacs-helm-bibtex
16255 (let ((commit "d4471232be26793fbf56c0ac3690b5f537c378b9")
16256 (revision "2"))
16257 (package
16258 (name "emacs-helm-bibtex")
16259 (version (string-append "2.0.0" "-" revision "."
16260 (string-take commit 7)))
16261 (source
16262 (origin
16263 (method git-fetch)
16264 (uri (git-reference
16265 (url "https://github.com/tmalsburg/helm-bibtex")
16266 (commit commit)))
16267 (file-name (git-file-name name version))
16268 (sha256
16269 (base32
16270 "1bkzhic6qckb267025il1r3xcpz99kisphxiafni1pxvf9jafr0j"))))
16271 (build-system emacs-build-system)
16272 (propagated-inputs
16273 `(("emacs-helm" ,emacs-helm)
16274 ("emacs-parsebib" ,emacs-parsebib)
16275 ("emacs-s" ,emacs-s)
16276 ("emacs-dash" ,emacs-dash)
16277 ("emacs-f" ,emacs-f)
16278 ("emacs-biblio" ,emacs-biblio)
16279 ("emacs-ivy" ,emacs-ivy)))
16280 (home-page "https://github.com/tmalsburg/helm-bibtex")
16281 (synopsis "Bibliography manager based on Helm")
16282 (description "This package provides bibliography manager for Emacs,
16283 based on Helm and the bibtex-completion backend.
16284
16285 Key features:
16286
16287 @itemize
16288 @item Quick access to your bibliography from within Emacs
16289 @item Powerful search capabilities
16290 @item Provides instant search results as you type
16291 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
16292 @item Open the PDFs, URLs, or DOIs associated with an entry
16293 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
16294 BibTeX entries, or plain text references at point, attach PDFs to emails
16295 @item Support for note taking
16296 @item Quick access to online bibliographic databases such as Pubmed,
16297 arXiv, Google Scholar, Library of Congress, etc.
16298 @item Imports BibTeX entries from CrossRef and other sources.
16299 @end itemize\n")
16300 (license license:gpl3+))))
16301
16302 (define-public emacs-ewmctrl
16303 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
16304 (package
16305 (name "emacs-ewmctrl")
16306 (version (git-version "0.0.1" "1" commit))
16307 (source
16308 (origin
16309 (method git-fetch)
16310 (uri (git-reference
16311 (url "https://github.com/flexibeast/ewmctrl")
16312 (commit commit)))
16313 (file-name (git-file-name name version))
16314 (sha256
16315 (base32
16316 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
16317 (build-system emacs-build-system)
16318 (arguments
16319 '(#:phases
16320 (modify-phases %standard-phases
16321 (add-after 'unpack 'patch-ewmctrl
16322 ;; This build phase makes sure ‘ewmctrl’ looks
16323 ;; for ‘wmctrl’ in the right place.
16324 (lambda _
16325 (let ((file "ewmctrl.el"))
16326 (chmod file #o644)
16327 (emacs-substitute-sexps file
16328 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
16329 (inputs
16330 `(("wmctrl" ,wmctrl)))
16331 (home-page "https://github.com/flexibeast/ewmctrl")
16332 (synopsis "Emacs interface to @code{wmctrl}")
16333 (description "@code{ewmctrl} provides an Emacs interface to
16334 @code{wmctrl} command-line window-management program.")
16335 (license license:gpl3+))))
16336
16337 (define-public emacs-erc-image
16338 (let ((commit "82fb3871f02e24b1e880770b9a3d187aab43d0f0")
16339 (revision "3"))
16340 (package
16341 (name "emacs-erc-image")
16342 (version (git-version "0" revision commit))
16343 (source
16344 (origin
16345 (method git-fetch)
16346 (uri (git-reference
16347 (url "https://github.com/kidd/erc-image.el")
16348 (commit commit)))
16349 (file-name (git-file-name name version))
16350 (sha256
16351 (base32
16352 "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i"))))
16353 (build-system emacs-build-system)
16354 (arguments
16355 `(#:phases (modify-phases %standard-phases
16356 ;; The package autoloader fails to provide
16357 ;; the image module when handled by Guix.
16358 ;; Disable this phase, and let the package
16359 ;; handle the `eval-after-load' procedure.
16360 (delete 'make-autoloads))))
16361 (home-page "https://github.com/kidd/erc-image.el")
16362 (synopsis "Show inlined images (png/jpg/gif/svg) in ERC buffers")
16363 (description "This plugin subscribes to hooks @code{erc-insert-modify-hook}
16364 and @code{erc-send-modify-hook} to download and show images.")
16365 (license license:gpl3+))))
16366
16367 (define-public emacs-helm-gtags
16368 (package
16369 (name "emacs-helm-gtags")
16370 (version "1.5.7")
16371 (source
16372 (origin
16373 (method git-fetch)
16374 (uri (git-reference
16375 (url "https://github.com/syohex/emacs-helm-gtags")
16376 (commit version)))
16377 (file-name (git-file-name name version))
16378 (sha256
16379 (base32 "1kc1jzk10nfd2v20g8dwnb6a944afrwdwnkzl06w4ba8k4yim7gi"))))
16380 (build-system emacs-build-system)
16381 (propagated-inputs
16382 `(("emacs-helm" ,emacs-helm)))
16383 (home-page "https://github.com/syohex/emacs-helm-gtags")
16384 (synopsis "Emacs Helm interface to GNU Global")
16385 (description
16386 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
16387 (license license:gpl3+)))
16388
16389 (define-public emacs-list-utils
16390 (package
16391 (name "emacs-list-utils")
16392 (version "0.4.6")
16393 (source
16394 (origin
16395 (method git-fetch)
16396 (uri (git-reference
16397 (url "https://github.com/rolandwalker/list-utils")
16398 (commit (string-append "v" version))))
16399 (file-name (git-file-name name version))
16400 (sha256
16401 (base32 "07hbz2md52ccy95gv4d5n6szrfmpfqf3w4kwqdg2cf54c7kgf7hw"))))
16402 (build-system emacs-build-system)
16403 (arguments
16404 `(#:phases
16405 (modify-phases %standard-phases
16406 (add-after 'unpack 'patch-require-cl
16407 (lambda _
16408 (substitute* "list-utils.el"
16409 (("\\(require 'cl\\)") "(require 'cl-lib)"))
16410 #t)))))
16411 (home-page "https://github.com/rolandwalker/list-utils")
16412 (synopsis "List-manipulation utility functions")
16413 (description "This package provides a list manipulation library for Emacs.")
16414 (license license:gpl3+)))
16415
16416 (define-public emacs-parsec
16417 ;; Last release is too old (2016).
16418 (let ((revision "0")
16419 (commit "2cbbbc2254aa7bcaa4fb5e07c8c1bf2f381dba26"))
16420 (package
16421 (name "emacs-parsec")
16422 (version (git-version "0.1.3" revision commit))
16423 (source
16424 (origin
16425 (method git-fetch)
16426 (uri (git-reference
16427 (url "https://github.com/cute-jumper/parsec.el")
16428 (commit commit)))
16429 (file-name (git-file-name name version))
16430 (sha256
16431 (base32 "1g1s8s45g3kkbi3h7w0pmadmzdswb64mkdvdpg2lihg341kx37gm"))))
16432 (build-system emacs-build-system)
16433 (home-page "https://github.com/cute-jumper/parsec.el")
16434 (synopsis "Parser combinator library for Emacs Lisp")
16435 (description
16436 "Parsec is a parser combinator library for Emacs Lisp, similar to
16437 Haskell's Parsec library. It contains most of the parser combinators in
16438 Text.Parsec.Combinator, and more combinators can be added if necessary! Most
16439 of the parser combinators have the same behavior as their Haskell
16440 counterparts. Parsec also comes with a simple error handling mechanism so
16441 that it can display an error message showing how the parser fails.")
16442 (license license:gpl3+))))
16443
16444 (define-public emacs-move-text
16445 (package
16446 (name "emacs-move-text")
16447 (version "2.0.8")
16448 (source
16449 (origin
16450 (method git-fetch)
16451 (uri (git-reference
16452 (url "https://github.com/emacsfodder/move-text")
16453 (commit version)))
16454 (file-name (git-file-name name version))
16455 (sha256
16456 (base32 "06jxk5g23822gfmwrxhc34zand3dr8p2wjh1zs3j61ibz6n0nmz1"))))
16457 (build-system emacs-build-system)
16458 (home-page "https://github.com/emacsfodder/move-text")
16459 (synopsis "Move current line or region with M-up or M-down")
16460 (description "This package provide functions to move the current line
16461 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
16462 region instead.")
16463 (license license:gpl3+)))
16464
16465 (define-public emacs-validate
16466 (package
16467 (name "emacs-validate")
16468 (version "1.0.5")
16469 (source (origin
16470 (method git-fetch)
16471 (uri (git-reference
16472 (url "https://github.com/Malabarba/validate.el")
16473 (commit version)))
16474 (file-name (git-file-name name version))
16475 (sha256
16476 (base32
16477 "1l12ibx6cw4mgicgjpw71fb4fr4sd0k54lvbpq7ngc29br3j6i4v"))))
16478 (build-system emacs-build-system)
16479 (home-page "https://github.com/Malabarba/validate.el")
16480 (synopsis "Emacs library for scheme validation")
16481 (description "This Emacs library provides two functions that perform
16482 schema validation.")
16483 (license license:gpl3+)))
16484
16485 (define-public emacs-rainbow-blocks
16486 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
16487 (package
16488 (name "emacs-rainbow-blocks")
16489 (version (git-version "1.0.0" "1" commit))
16490 (source (origin
16491 (method git-fetch)
16492 (uri (git-reference
16493 (url "https://github.com/istib/rainbow-blocks")
16494 (commit commit)))
16495 (file-name (git-file-name name version))
16496 (sha256
16497 (base32
16498 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
16499 (build-system emacs-build-system)
16500 (home-page "https://github.com/istib/rainbow-blocks")
16501 (synopsis "Highlight sexp blocks")
16502 (description "Rainbow-blocks is an Emacs mode that highlights blocks
16503 made of parentheses, brackets, and braces according to their depth. Each
16504 successive level is highlighted in a different color. This makes it easy to
16505 orient yourself in the code, and tell which statements are at a given level.")
16506 (license license:gpl3+))))
16507
16508 (define-public emacs-hierarchy
16509 (package
16510 (name "emacs-hierarchy")
16511 (version "0.7.0")
16512 (source
16513 (origin
16514 (method git-fetch)
16515 (uri (git-reference
16516 (url "https://github.com/DamienCassou/hierarchy")
16517 (commit (string-append "v" version))))
16518 (file-name (git-file-name name version))
16519 (sha256
16520 (base32 "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r"))))
16521 (build-system emacs-build-system)
16522 (native-inputs
16523 `(("emacs-buttercup" ,emacs-buttercup)))
16524 (arguments
16525 `(#:tests? #t
16526 #:test-command '("buttercup" "-L" ".")))
16527 (home-page "https://github.com/DamienCassou/hierarchy")
16528 (synopsis "Library to create and display hierarchy structures")
16529 (description "This package provides an Emacs library to create, query,
16530 navigate and display hierarchy structures.")
16531 (license license:gpl3+)))
16532
16533 (define-public emacs-tree-mode
16534 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
16535 (revision "1"))
16536 (package
16537 (name "emacs-tree-mode")
16538 (version (string-append "0.0.1" "-" revision "."
16539 (string-take commit 7)))
16540 (source
16541 (origin
16542 (method git-fetch)
16543 (uri (git-reference
16544 (url "https://github.com/emacsorphanage/tree-mode")
16545 (commit commit)))
16546 (file-name (git-file-name name version))
16547 (sha256
16548 (base32
16549 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
16550 (build-system emacs-build-system)
16551 (home-page "https://github.com/emacsorphanage/tree-mode")
16552 (synopsis "Emacs mode to manage tree widgets")
16553 (description
16554 "This package provides an Emacs library to manage tree widgets.")
16555 (license license:gpl3+))))
16556
16557 (define-public emacs-md4rd
16558 (package
16559 (name "emacs-md4rd")
16560 (version "0.3.1")
16561 (source (origin
16562 (method git-fetch)
16563 (uri (git-reference
16564 (url "https://github.com/ahungry/md4rd")
16565 (commit version)))
16566 (file-name (git-file-name name version))
16567 (sha256
16568 (base32
16569 "1n6g6k4adzkkn1g7z4j27s35xy12c1fg2r08gv345ddr3wplq4ri"))))
16570 (propagated-inputs
16571 `(("emacs-hierarchy" ,emacs-hierarchy)
16572 ("emacs-request" ,emacs-request)
16573 ("emacs-dash" ,emacs-dash)
16574 ("emacs-s" ,emacs-s)
16575 ("emacs-tree-mode" ,emacs-tree-mode)))
16576 (build-system emacs-build-system)
16577 (home-page "https://github.com/ahungry/md4rd")
16578 (synopsis "Emacs Mode for Reddit")
16579 (description
16580 "This package allows reading Reddit from within Emacs interactively.")
16581 (license license:gpl3+)))
16582
16583 (define-public emacs-pulseaudio-control
16584 (let ((commit "a931533140547510decdc368f39b2d2b97ca725f")
16585 (revision "4"))
16586 (package
16587 (name "emacs-pulseaudio-control")
16588 (version (git-version "0.0.1" revision commit))
16589 (source
16590 (origin
16591 (method git-fetch)
16592 (uri (git-reference
16593 (url "https://github.com/flexibeast/pulseaudio-control")
16594 (commit commit)))
16595 (file-name (git-file-name name version))
16596 (sha256
16597 (base32
16598 "1jvjn9jszjjapi167an49jxcvr88cvgjwykglhp4b8lwhbjfqw76"))))
16599 (build-system emacs-build-system)
16600 (arguments
16601 '(#:phases (modify-phases %standard-phases
16602 (add-after 'unpack 'patch-file-name
16603 (lambda* (#:key inputs #:allow-other-keys)
16604 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
16605 (chmod "pulseaudio-control.el" #o600)
16606 (emacs-substitute-variables "pulseaudio-control.el"
16607 ("pulseaudio-control-pactl-path"
16608 (string-append pulseaudio "/bin/pactl")))
16609 #t))))))
16610 (inputs `(("pulseaudio" ,pulseaudio)))
16611 (home-page "https://github.com/flexibeast/pulseaudio-control")
16612 (synopsis "Control @code{pulseaudio} from Emacs")
16613 (description
16614 "This package allows controlling @code{pulseaudio} from Emacs.")
16615 (license license:gpl3+))))
16616
16617 (define-public emacs-datetime
16618 (package
16619 (name "emacs-datetime")
16620 (version "0.6.6")
16621 (source
16622 (origin
16623 (method git-fetch)
16624 (uri (git-reference
16625 (url "https://github.com/doublep/datetime")
16626 (commit version)))
16627 (file-name (git-file-name name version))
16628 (sha256
16629 (base32
16630 "0a3q667pybpmsjkbgf6287jwgpnx8brp5314wb8zbczw6ncygnbi"))))
16631 (build-system emacs-build-system)
16632 (arguments
16633 `(#:include (cons "^[^/]*\\.extmap$" %default-include)))
16634 (inputs
16635 `(("emacs-extmap" ,emacs-extmap)))
16636 (home-page "https://github.com/doublep/datetime/")
16637 (synopsis "Library to work with dates in Emacs")
16638 (description "Parsing, formatting, matching and recoding
16639 timestamps and date-time format strings library for Emacs.")
16640 (license license:gpl3+)))
16641
16642 (define-public emacs-org-mind-map
16643 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
16644 (revision "1"))
16645 (package
16646 (name "emacs-org-mind-map")
16647 (version (string-append "0.0.1" "-" revision "."
16648 (string-take commit 7)))
16649 (source
16650 (origin
16651 (method git-fetch)
16652 (uri (git-reference
16653 (url "https://github.com/theodorewiles/org-mind-map")
16654 (commit commit)))
16655 (file-name (git-file-name name version))
16656 (sha256
16657 (base32
16658 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
16659 (propagated-inputs
16660 `(("emacs-dash" ,emacs-dash)))
16661 (build-system emacs-build-system)
16662 (home-page "https://github.com/theodorewiles/org-mind-map")
16663 (synopsis "Create Graphviz directed graphs from Org files")
16664 (description
16665 "This package creates Graphviz directed graphs from Org files.")
16666 (license license:gpl3+))))
16667
16668 (define-public emacs-npm-mode
16669 (package
16670 (name "emacs-npm-mode")
16671 (version "0.6.0")
16672 (source
16673 (origin
16674 (method git-fetch)
16675 (uri (git-reference
16676 (url "https://github.com/mojochao/npm-mode")
16677 (commit version)))
16678 (file-name (git-file-name name version))
16679 (sha256
16680 (base32 "1mh6nbffciw4yhv049kdhh796ysj1x21ndm3fwymhskb3dy0w1ss"))))
16681 (build-system emacs-build-system)
16682 (home-page "https://github.com/mojochao/npm-mode")
16683 (synopsis "Minor mode for working with @code{npm} projects")
16684 (description
16685 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
16686 (license license:gpl3+)))
16687
16688 (define-public emacs-itail
16689 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
16690 (revision "1"))
16691 (package
16692 (name "emacs-itail")
16693 (version (string-append "0.0.1" "-" revision "."
16694 (string-take commit 7)))
16695 (source
16696 (origin
16697 (method git-fetch)
16698 (uri (git-reference
16699 (url "https://github.com/re5et/itail")
16700 (commit commit)))
16701 (file-name (git-file-name name version))
16702 (sha256
16703 (base32
16704 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
16705 (build-system emacs-build-system)
16706 (home-page "https://github.com/re5et/itail")
16707 (synopsis "Interactive @code{tail} Emacs mode")
16708 (description "@code{itail} provides interactive @code{tail} mode
16709 that allows you to filter the tail with unix pipes and highlight the
16710 contents of the tailed file. Works locally or on remote files using
16711 tramp.")
16712 (license license:gpl3+))))
16713
16714 (define-public emacs-loop
16715 (package
16716 (name "emacs-loop")
16717 (version "1.3")
16718 (source
16719 (origin
16720 (method git-fetch)
16721 (uri (git-reference
16722 (url "https://github.com/Wilfred/loop.el")
16723 (commit version)))
16724 (file-name (git-file-name name version))
16725 (sha256
16726 (base32 "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x"))))
16727 (build-system emacs-build-system)
16728 (native-inputs
16729 `(("emacs-ert-runner" ,emacs-ert-runner)
16730 ("emacs-undercover" ,emacs-undercover)))
16731 (arguments
16732 `(#:tests? #t
16733 #:test-command '("ert-runner")))
16734 (home-page "https://github.com/Wilfred/loop.el")
16735 (synopsis "Imperative loop structures for Emacs")
16736 (description "Loop structures familiar to users of other languages. This
16737 library adds a selection of popular loop structures as well as break and
16738 continue.")
16739 (license license:gpl3+)))
16740
16741 (define-public emacs-elisp-refs
16742 (package
16743 (name "emacs-elisp-refs")
16744 (version "1.3")
16745 (source
16746 (origin
16747 (method git-fetch)
16748 (uri (git-reference
16749 (url "https://github.com/Wilfred/elisp-refs")
16750 (commit version)))
16751 (file-name (git-file-name name version))
16752 (sha256
16753 (base32 "0w7k91xf69zc0zkjrw8h8sjdjf9xq9qs5zhvajhd718lzf93564b"))))
16754 (build-system emacs-build-system)
16755 (propagated-inputs
16756 `(("emacs-dash" ,emacs-dash)
16757 ("emacs-f" ,emacs-f)
16758 ("emacs-list-utils" ,emacs-list-utils)
16759 ("emacs-loop" ,emacs-loop)
16760 ("emacs-s" ,emacs-s)
16761 ("emacs-shut-up" ,emacs-shut-up)))
16762 (native-inputs
16763 `(("emacs-ert-runner" ,emacs-ert-runner)
16764 ("emacs-undercover" ,emacs-undercover)))
16765 (arguments
16766 `(#:tests? #t
16767 #:test-command '("ert-runner")
16768 #:phases
16769 (modify-phases %standard-phases
16770 (add-before 'check 'disable-refs-next-match-test
16771 ;; Hack to disable the failing test for emacs27
16772 ;; https://github.com/Wilfred/elisp-refs/issues/29
16773 (lambda _
16774 (substitute* "test/unit-test.el"
16775 (("ert-deftest elisp-refs-next-match")
16776 "defun elisp-refs-next-match"))
16777 #t)))))
16778 (home-page "https://github.com/Wilfred/elisp-refs")
16779 (synopsis "Find callers of elisp functions or macros")
16780 (description "Find references to functions, macros or variables. Unlike a
16781 dumb text search, @code{elisp-refs} actually parses the code, so it's never
16782 confused by comments or @code{foo-bar} matching @code{foo}.")
16783 (license license:gpl3+)))
16784
16785 (define-public emacs-crdt
16786 (let ((commit "44068ae505adf2c3a7bdbf6723a25fc45d6d1666")
16787 (revision "0"))
16788 (package
16789 (name "emacs-crdt")
16790 (version (git-version "0.0.0" revision commit))
16791 (source
16792 (origin
16793 (method git-fetch)
16794 (uri (git-reference
16795 (url "https://code.librehq.com/qhong/crdt.el")
16796 (commit commit)))
16797 (file-name (git-file-name name version))
16798 (sha256
16799 (base32 "130fkhvi757pfnbz70g6nw2n71k89cwwx7yzvsd5v177228c8w7w"))))
16800 (build-system emacs-build-system)
16801 (home-page "https://code.librehq.com/qhong/crdt.el")
16802 (synopsis "Real-time collaborative editing environment")
16803 (description
16804 "@code{crdt.el} is a real-time collaborative editing environment for
16805 Emacs using Conflict-free Replicated Data Types. With it, you can share
16806 multiple buffer in one session, and see other users’ cursor and region. It
16807 also synchronizes Org mode folding status. It should work with all of Org
16808 mode.")
16809 (license license:gpl3+))))
16810
16811 (define-public emacs-crux
16812 (let ((commit "308f17d914e2cd79cbc809de66d02b03ceb82859")
16813 (revision "2"))
16814 (package
16815 (name "emacs-crux")
16816 (version (git-version "0.3.0" revision commit))
16817 (source
16818 (origin
16819 (method git-fetch)
16820 (uri (git-reference
16821 (url "https://github.com/bbatsov/crux")
16822 (commit commit)))
16823 (file-name (git-file-name name version))
16824 (sha256
16825 (base32
16826 "0rf84finwlvmy0xpgyljjvnrijlmkzjyw9rh97svgxp9c1rzfk0x"))))
16827 (build-system emacs-build-system)
16828 (home-page "https://github.com/bbatsov/crux")
16829 (synopsis "Collection of useful functions for Emacs")
16830 (description
16831 "@code{crux} provides a collection of useful functions for Emacs.")
16832 (license license:gpl3+))))
16833
16834 (define-public emacs-edit-server
16835 (package
16836 (name "emacs-edit-server")
16837 (version "1.16")
16838 (source
16839 (origin
16840 (method git-fetch)
16841 (uri (git-reference
16842 (url "https://github.com/stsquad/emacs_chrome")
16843 (commit (string-append "v" version))))
16844 (file-name (git-file-name name version))
16845 (sha256
16846 (base32 "0m7gj224sqxjjw5sxky92fnrxg9jy4nf33kwf0aqxnfhqlgh545k"))))
16847 (build-system emacs-build-system)
16848 (arguments
16849 `(#:phases
16850 (modify-phases %standard-phases
16851 (add-after 'unpack 'chdir-elisp
16852 ;; Elisp directory is not in root of the source.
16853 (lambda _
16854 (chdir "servers"))))))
16855 (propagated-inputs `(("emacs-ert-async" ,emacs-ert-async)))
16856 (home-page "https://github.com/stsquad/emacs_chrome")
16857 (synopsis "Server that responds to edit requests from Chromium")
16858 (description
16859 "This package provides an edit server to respond to requests from Emacs.")
16860 (license license:gpl3+)))
16861
16862 (define-public emacs-m-buffer-el
16863 (package
16864 (name "emacs-m-buffer-el")
16865 (version "0.15")
16866 (source
16867 (origin
16868 (method git-fetch)
16869 (uri (git-reference
16870 (url "https://github.com/phillord/m-buffer-el")
16871 (commit (string-append "v" version))))
16872 (file-name (git-file-name name version))
16873 (sha256
16874 (base32
16875 "1sx76i59razwccvn6x7rx5a124bfyjw9fcbxf4gj7nsg33qiq809"))))
16876 (arguments
16877 `(#:phases
16878 (modify-phases %standard-phases
16879 (add-before 'install 'check
16880 (lambda* (#:key inputs #:allow-other-keys)
16881 (invoke "emacs" "--batch" "-L" "."
16882 "-l" "test/m-buffer-test.el"
16883 "-l" "test/m-buffer-at-test.el"
16884 "-f" "ert-run-tests-batch-and-exit"))))))
16885 (build-system emacs-build-system)
16886 (home-page "https://github.com/phillord/m-buffer-el")
16887 (synopsis "List oriented buffer operations for Emacs")
16888 (description "@code{m-buffer} provides a set of list-orientated functions
16889 for operating over the contents of Emacs buffers.")
16890 (license license:gpl3+)))
16891
16892 (define-public emacs-let-alist
16893 (package
16894 (name "emacs-let-alist")
16895 (version "1.0.6")
16896 (source
16897 (origin
16898 (method url-fetch)
16899 (uri (string-append
16900 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
16901 (sha256
16902 (base32 "0szj7vnjzz4zci5fvz7xqgcpi4pzdyyf4qi2s8xar2hi7v3yaawr"))))
16903 (build-system emacs-build-system)
16904 (home-page "https://elpa.gnu.org/packages/let-alist.html")
16905 (synopsis "Easily let-bind values of an assoc-list by their names")
16906 (description "This package offers a single macro, @code{let-alist}. This
16907 macro takes a first argument (whose value must be an alist) and a body.")
16908 (license license:gpl3+)))
16909
16910 (define-public emacs-esup
16911 (let ((commit "0de8af8233d9ce1b67f05a50f25c481c4f1118d8")
16912 (revision "1"))
16913 (package
16914 (name "emacs-esup")
16915 (version (git-version "0.7.1" revision commit))
16916 (source
16917 (origin
16918 (method git-fetch)
16919 (uri (git-reference
16920 (url "https://github.com/jschaf/esup")
16921 (commit commit)))
16922 (file-name (git-file-name name version))
16923 (sha256
16924 (base32
16925 "01khb3xyj0ylwib6ryzzvqmkh5wvzxiq2n3l0s3h9zv7wx849bzv"))))
16926 (build-system emacs-build-system)
16927 (native-inputs
16928 `(("emacs-noflet" ,emacs-noflet)
16929 ("emacs-undercover" ,emacs-undercover)
16930 ("emacs-buttercup" ,emacs-buttercup)))
16931 (propagated-inputs
16932 `(("emacs-dash" ,emacs-dash)))
16933 (arguments
16934 `(#:tests? #t
16935 #:test-command '("buttercup" "-L" ".")))
16936 (home-page "https://github.com/jschaf/esup")
16937 (synopsis "Emacs start up profiler")
16938 (description "Benchmark Emacs Startup time without ever leaving
16939 your Emacs.")
16940 (license license:gpl2+))))
16941
16942 (define-public emacs-restart-emacs
16943 (let ((commit "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9")
16944 (revision "1"))
16945 (package
16946 (name "emacs-restart-emacs")
16947 (version (git-version "0.1.1" revision commit))
16948 (source
16949 (origin
16950 (method git-fetch)
16951 (uri (git-reference
16952 (url "https://github.com/iqbalansari/restart-emacs")
16953 (commit commit)))
16954 (file-name (git-file-name name version))
16955 (sha256
16956 (base32 "02x1a85k7r95z8091zgjiaj9nf0zvx1jy4xvl3hr12qbnrx1wfav"))))
16957 (build-system emacs-build-system)
16958 (home-page "https://github.com/iqbalansari/restart-emacs")
16959 (synopsis "Restart Emacs from within Emacs")
16960 (description "This package provides a simple command to restart Emacs from
16961 within Emacs.")
16962 (license license:gpl3+))))
16963
16964 (define-public emacs-svg-tag-mode
16965 (let ((commit "87489d28450559078aa15b4a435143a297508e48")
16966 (revision "1"))
16967 (package
16968 (name "emacs-svg-tag-mode")
16969 (version (git-version "0.1" revision commit))
16970 (source
16971 (origin
16972 (method git-fetch)
16973 (uri (git-reference
16974 (url "https://github.com/rougier/svg-tag-mode")
16975 (commit commit)))
16976 (file-name (git-file-name name version))
16977 (sha256
16978 (base32 "0gyhmv60dx0zxx4bmhzsd7q5vfnkpfwlj6539bn272fwcr7zncp8"))))
16979 (build-system emacs-build-system)
16980 (home-page "https://github.com/rougier/svg-tag-mode")
16981 (synopsis "Replace keywords with SVG tags")
16982 (description "This package provides a minor mode that replaces keywords
16983 or expressions with SVG rounded box labels that are fully customizable.")
16984 (license license:gpl3+))))
16985
16986 (define-public emacs-svg-icon
16987 (let ((commit "ebc2b8d0f6c680fd575a90e683cc7b832acd1eb7")
16988 (revision "1"))
16989 (package
16990 (name "emacs-svg-icon")
16991 (version (git-version "0.1" revision commit))
16992 (source
16993 (origin
16994 (method git-fetch)
16995 (uri (git-reference
16996 (url "https://github.com/rougier/emacs-svg-icon")
16997 (commit commit)))
16998 (file-name (git-file-name name version))
16999 (sha256
17000 (base32 "1qzqfa8xyw1nkb89kbvw9qcgdwr8g017n8gf3yzwn816qhkfkjrj"))))
17001 (build-system emacs-build-system)
17002 (home-page "https://github.com/rougier/emacs-svg-icon")
17003 (synopsis "Emacs library to create SVG icons on the fly")
17004 (description "This library allows to create SVG icons by parsing remote
17005 collections whose license are compatibles with Emacs. The default size of an
17006 icon is exactly 2x1 characters such that it can be inserted inside a text
17007 without disturbing alignment.")
17008 (license (list license:gpl3+)))))
17009
17010 (define-public emacs-sourcemap
17011 (package
17012 (name "emacs-sourcemap")
17013 (version "0.03")
17014 (source
17015 (origin
17016 (method git-fetch)
17017 (uri (git-reference
17018 (url "https://github.com/syohex/emacs-sourcemap")
17019 (commit version)))
17020 (file-name (git-file-name name version))
17021 (sha256
17022 (base32 "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582"))))
17023 (build-system emacs-build-system)
17024 (home-page "https://github.com/syohex/emacs-sourcemap")
17025 (synopsis "Sourcemap parser")
17026 (description "Sourcemap parser")
17027 (license license:gpl3+)))
17028
17029 (define-public emacs-macrostep
17030 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
17031 (package
17032 (name "emacs-macrostep")
17033 (version (git-version "0.9" "1" commit))
17034 (source (origin
17035 (method git-fetch)
17036 (uri (git-reference
17037 (url "https://github.com/joddie/macrostep")
17038 (commit commit)))
17039 (file-name (git-file-name name version))
17040 (sha256
17041 (base32
17042 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
17043 (build-system emacs-build-system)
17044 (arguments
17045 '(#:phases
17046 (modify-phases %standard-phases
17047 (add-before 'check 'remove-test
17048 ;; Fails because of requirement ‘/bin/sh’.
17049 (lambda _
17050 (let ((file "macrostep-test.el"))
17051 (chmod file #o644)
17052 (emacs-batch-edit-file file
17053 `(progn (progn (goto-char (point-min))
17054 (re-search-forward
17055 "(ert-deftest macrostep-expand-c-macros")
17056 (beginning-of-line)
17057 (kill-sexp))
17058 (basic-save-buffer))))))
17059 (add-before 'install 'check
17060 (lambda _
17061 (invoke "emacs" "--batch" "-L" "."
17062 "-l" "macrostep-test.el"
17063 "-f" "ert-run-tests-batch-and-exit"))))))
17064 (home-page "https://github.com/joddie/macrostep")
17065 (synopsis "Interactive macro-expander for Emacs")
17066 (description "@code{macrostep} is an Emacs minor mode for interactively
17067 stepping through the expansion of macros in Emacs Lisp source code. It lets
17068 you see exactly what happens at each step of the expansion process by
17069 pretty-printing the expanded forms inline in the source buffer, which is
17070 temporarily read-only while macro expansions are visible. You can expand and
17071 collapse macro forms one step at a time, and evaluate or instrument the
17072 expansions for debugging with Edebug as normal (but see “Bugs and known
17073 limitations”, below). Single-stepping through the expansion is particularly
17074 useful for debugging macros that expand into another macro form. These can be
17075 difficult to debug with Emacs’ built-in macroexpand, which continues expansion
17076 until the top-level form is no longer a macro call.")
17077 (license license:gpl3+))))
17078
17079 (define-public emacs-parent-mode
17080 (package
17081 (name "emacs-parent-mode")
17082 (version "2.3")
17083 (source
17084 (origin
17085 (method git-fetch)
17086 (uri (git-reference
17087 (url "https://github.com/Fanael/parent-mode")
17088 (commit version)))
17089 (file-name (git-file-name name version))
17090 (sha256
17091 (base32 "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni"))))
17092 (build-system emacs-build-system)
17093 (home-page "https://github.com/Fanael/parent-mode")
17094 (synopsis "Get major mode's parent modes")
17095 (description "Get major mode's parent modes")
17096 (license license:gpl3+)))
17097
17098 (define-public emacs-lacarte
17099 (package
17100 (name "emacs-lacarte")
17101 (version "0.1")
17102 (source (origin
17103 (method url-fetch)
17104 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
17105 (sha256
17106 (base32
17107 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
17108 (build-system emacs-build-system)
17109 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
17110 (synopsis "Execute menu items as commands, with completion")
17111 (description "Execute menu items as commands, with completion.")
17112 (license license:gpl3)))
17113
17114 (define-public emacs-isearch-prop
17115 (let ((commit "4a2765f835dd115d472142da05215c4c748809f4")
17116 (revision "2"))
17117 (package
17118 (name "emacs-isearch-prop")
17119 (version (git-version "0" revision commit))
17120 (source
17121 (origin
17122 (method git-fetch)
17123 (uri (git-reference
17124 (url "https://github.com/emacsmirror/isearch-prop")
17125 (commit commit)))
17126 (file-name (git-file-name name version))
17127 (sha256
17128 (base32
17129 "06gdk5m84q6pxwng8rjxny1zkll8f3m2x6lw4xyib2dvg7iaslh3"))))
17130 (build-system emacs-build-system)
17131 (home-page "https://www.emacswiki.org/emacs/isearch-prop.el")
17132 (synopsis "Extensions to @code{isearch.el}")
17133 (description "The Emacs library @code{isearch-prop.el} lets you search within
17134 contexts. You can limit incremental search to a set of zones of
17135 buffer text, search contexts that in effect constitute a multi-region.
17136 These zones can be defined in various ways, including some ways
17137 provided specially by this library.")
17138 (license license:gpl3+))))
17139
17140 (define-public emacs-company-lua
17141 (let ((commit "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52")
17142 (revision "2"))
17143 (package
17144 (name "emacs-company-lua")
17145 (version (git-version "0.1" "2" commit))
17146 (source
17147 (origin
17148 (method git-fetch)
17149 (uri (git-reference
17150 (url "https://github.com/ptrv/company-lua")
17151 (commit commit)))
17152 (file-name (git-file-name name version))
17153 (sha256
17154 (base32
17155 "0ny2dcc7c585p7v3j6q0rpkbj1qmf2ismy8a5020jpr585xvz0hh"))))
17156 (build-system emacs-build-system)
17157 (propagated-inputs
17158 `(("emacs-company" ,emacs-company)
17159 ("emacs-s" ,emacs-s)
17160 ("emacs-f" ,emacs-f)
17161 ("emacs-lua-mode" ,emacs-lua-mode)))
17162 (arguments
17163 `(#:include (cons* "^lua\\/" %default-include)))
17164 (home-page "https://github.com/ptrv/company-lua")
17165 (synopsis "Company backend for Lua")
17166 (description
17167 "This package provides Company backend for Lua programming language.")
17168 (license license:gpl3+))))
17169
17170 (define-public emacs-beginend
17171 (package
17172 (name "emacs-beginend")
17173 (version "2.2.0")
17174 (source
17175 (origin
17176 (method git-fetch)
17177 (uri (git-reference
17178 (url "https://github.com/DamienCassou/beginend")
17179 (commit (string-append "v" version))))
17180 (file-name (git-file-name name version))
17181 (sha256
17182 (base32 "1r9033zlx2q2dk3bjz004flxdiw79qiswq0zqdjnlzwassvk0f35"))))
17183 ;; TODO: Run tests.
17184 (build-system emacs-build-system)
17185 (inputs
17186 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
17187 (home-page "https://github.com/DamienCassou/beginend")
17188 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
17189 (description "@code{beginend} redefines @code{M-<} and @code{M->}
17190 keybindings for Emacs modes so that point moves to meaningful
17191 locations. Redefined keys are still accessible by pressing the same
17192 key again.")
17193 (license license:gpl3+)))
17194
17195 (define-public emacs-mbsync
17196 (let ((commit "b62491c0e0d89eb9c66261a16d7ac81231c9c453")
17197 (revision "4"))
17198 (package
17199 (name "emacs-mbsync")
17200 (version (git-version "0.1.2" revision commit))
17201 (source
17202 (origin
17203 (method git-fetch)
17204 (uri (git-reference
17205 (url "https://github.com/dimitri/mbsync-el")
17206 (commit commit)))
17207 (file-name (git-file-name name version))
17208 (sha256
17209 (base32
17210 "1zlih37mkqjn2czl12zn7lgxxljvrwhqqpbksj9c91zn0f0rm3mz"))))
17211 (build-system emacs-build-system)
17212 (home-page "https://github.com/dimitri/mbsync-el")
17213 (synopsis "Interface to mbsync for Emacs")
17214 (description "This package calls @code{mbsync} from
17215 within Emacs.")
17216 (license license:gpl3+))))
17217
17218 (define-public emacs-ibuffer-projectile
17219 (package
17220 (name "emacs-ibuffer-projectile")
17221 (version "0.3")
17222 (source
17223 (origin
17224 (method git-fetch)
17225 (uri (git-reference
17226 (url "https://github.com/purcell/ibuffer-projectile")
17227 (commit version)))
17228 (file-name (git-file-name name version))
17229 (sha256
17230 (base32
17231 "18cqxnwzzbkcj9jcaw89b210432yzhrl1dwsv48p0jbhfnr17k41"))))
17232 (build-system emacs-build-system)
17233 (propagated-inputs
17234 `(("emacs-projectile" ,emacs-projectile)))
17235 (home-page "https://github.com/purcell/ibuffer-projectile")
17236 (synopsis "Group ibuffer's list by projectile root")
17237 (description "Adds functionality to Emacs @code{ibuffer} for
17238 grouping buffers by their projectile root directory.")
17239 (license license:gpl3+)))
17240
17241 (define-public emacs-elm-mode
17242 (package
17243 (name "emacs-elm-mode")
17244 (version "0.21.0")
17245 (source
17246 (origin
17247 (method git-fetch)
17248 (uri
17249 (git-reference
17250 (url "https://github.com/jcollard/elm-mode")
17251 (commit (string-append "v" version))))
17252 (file-name (git-file-name name version))
17253 (sha256
17254 (base32 "0iwk4fmw8hq3ry4ky1zc7lgl4cpbnrjyk74c2xzddfspi3ks41fd"))))
17255 (propagated-inputs
17256 `(("emacs-dash" ,emacs-dash)
17257 ("emacs-f" ,emacs-f)
17258 ("emacs-reformatter" ,emacs-reformatter)
17259 ("emacs-s" ,emacs-s)))
17260 (build-system emacs-build-system)
17261 (home-page "https://github.com/jcollard/elm-mode")
17262 (synopsis "Emacs major mode for editing Elm source code")
17263 (description
17264 "This package provides a major mode for editing Elm source code, and
17265 working with common core and third-party Elm tools. Its features are:
17266
17267 @itemize
17268 @item Syntax highlighting
17269 @item Intelligent indentation
17270 @item Integration with elm-make
17271 @item Integration with elm-repl
17272 @item Integration with elm-reactor
17273 @item Integration with elm-package
17274 @item Integration with elm-oracle
17275 @item Integration with elm-format
17276 @item Integration with elm-test
17277 @end itemize")
17278 (license license:gpl3+)))
17279
17280 (define-public emacs-helm-mode-manager
17281 (package
17282 (name "emacs-helm-mode-manager")
17283 (version "1.0.0")
17284 (source
17285 (origin
17286 (method git-fetch)
17287 (uri (git-reference
17288 (url "https://github.com/istib/helm-mode-manager")
17289 (commit version)))
17290 (file-name (git-file-name name version))
17291 (sha256
17292 (base32
17293 "1srx5f0s9x7zan7ayqd6scxfhcvr3nkd4yzs96hphd87rb18apzk"))))
17294 (build-system emacs-build-system)
17295 (propagated-inputs
17296 `(("emacs-helm" ,emacs-helm)))
17297 (home-page "https://github.com/istib/helm-mode-manager/")
17298 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
17299 (description "This package provides a Helm interface for toggling Emacs
17300 major or minor mode.
17301
17302 @itemize
17303 @item @code{helm-switch-major-mode} list of all major modes
17304 @item @code{helm-enable-minor-mode} list of all inactive minor modes
17305 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
17306 @end itemize\n
17307
17308 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
17309 documentation.")
17310 (license license:gpl3+)))
17311
17312 (define-public emacs-hy-mode
17313 (package
17314 (name "emacs-hy-mode")
17315 (version "1.0.4")
17316 (source
17317 (origin
17318 (method git-fetch)
17319 (uri (git-reference
17320 (url "https://github.com/hylang/hy-mode")
17321 (commit (string-append "v" version))))
17322 (file-name (git-file-name name version))
17323 (sha256
17324 (base32 "0gihxlmfminadaqdr8d2zccd7wwygl3m0gfzxsk5izi7f8hl4w7f"))))
17325 (build-system emacs-build-system)
17326 (propagated-inputs
17327 `(("emacs-dash" ,emacs-dash)
17328 ("emacs-s" ,emacs-s)))
17329 (home-page "https://github.com/hylang/hy-mode")
17330 (synopsis "Major mode for Hylang")
17331 (description "This package provides a major mode for Hylang.")
17332 (license license:gpl3+)))
17333
17334 (define-public emacs-web-beautify
17335 (package
17336 (name "emacs-web-beautify")
17337 (version "0.3.2")
17338 (source
17339 (origin
17340 (method git-fetch)
17341 (uri (git-reference
17342 (url "https://github.com/yasuyk/web-beautify")
17343 (commit version)))
17344 (file-name (git-file-name name version))
17345 (sha256
17346 (base32 "0vms7zz3ym53wf1zdrkbf2ky2xjr1v134ngsd0jr8azyi8siw84d"))))
17347 (build-system emacs-build-system)
17348 (home-page "https://github.com/yasuyk/web-beautify")
17349 (synopsis "Format HTML, CSS and JavaScript, JSON")
17350 (description "This package provides an Emacs functions to format HTML,
17351 CSS, JavaScript, JSON.")
17352 (license license:gpl3+)))
17353
17354 (define-public emacs-helm-shell-history
17355 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
17356 (package
17357 (name "emacs-helm-shell-history")
17358 (version (git-version "0.1" "1" commit))
17359 (source
17360 (origin
17361 (method git-fetch)
17362 (uri (git-reference
17363 (url "https://github.com/yuutayamada/helm-shell-history")
17364 (commit commit)))
17365 (file-name (git-file-name name version))
17366 (sha256
17367 (base32
17368 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
17369 (build-system emacs-build-system)
17370 (arguments
17371 '(#:phases
17372 (modify-phases %standard-phases
17373 (add-before 'check 'patch-helm-shell-history-file
17374 (lambda _
17375 (let ((file "helm-shell-history.el"))
17376 (chmod file #o644)
17377 (emacs-substitute-sexps file
17378 ("(defvar helm-shell-history-file"
17379 `(expand-file-name "~/.bash_history"))))
17380 #t)))))
17381 (propagated-inputs
17382 `(("emacs-helm" ,emacs-helm)))
17383 (home-page "https://github.com/yuutayamada/helm-shell-history")
17384 (synopsis "Find shell history with Emacs Helm")
17385 (description "This package provides an Emacs Helm interface to search
17386 throw a shell history.")
17387 (license license:gpl3+))))
17388
17389 (define-public emacs-discover-my-major
17390 (package
17391 (name "emacs-discover-my-major")
17392 (version "1.0")
17393 (source
17394 (origin
17395 (method git-fetch)
17396 (uri (git-reference
17397 (url "https://framagit.org/steckerhalter/discover-my-major.git/")
17398 (commit version)))
17399 (file-name (git-file-name name version))
17400 (sha256
17401 (base32
17402 "1wlqyl03hhnflbyay3qlvdzqzvv5rbybcjpfddggda7ias9h0pr4"))))
17403 (build-system emacs-build-system)
17404 (propagated-inputs
17405 `(("emacs-makey" ,emacs-makey)))
17406 (home-page "https://framagit.org/steckerhalter/discover-my-major/")
17407 (synopsis "Discover key bindings for the current Emacs major mode")
17408 (description "This package discovers key bindings and
17409 their meaning for the current Emacs major-mode.")
17410 (license license:gpl3+)))
17411
17412 (define-public emacs-org-ref
17413 ;; No release since June 2017.
17414 (let ((commit "5bb9be2232db72b04754d7e4c02a3976ad422f6f")
17415 (revision "2"))
17416 (package
17417 (name "emacs-org-ref")
17418 (version (git-version "1.1.1" revision commit))
17419 (source
17420 (origin
17421 (method git-fetch)
17422 (uri (git-reference
17423 (url "https://github.com/jkitchin/org-ref")
17424 (commit commit)))
17425 (file-name (git-file-name name version))
17426 (sha256
17427 (base32 "15gcvbfj19kyv4nxa632b261dwhb26m99plq230qhv9ssfwfgxbx"))))
17428 (build-system emacs-build-system)
17429 (propagated-inputs
17430 `(("emacs-dash" ,emacs-dash)
17431 ("emacs-f" ,emacs-f)
17432 ("emacs-helm" ,emacs-helm)
17433 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
17434 ("emacs-htmlize" ,emacs-htmlize)
17435 ("emacs-hydra" ,emacs-hydra)
17436 ("emacs-ivy" ,emacs-ivy)
17437 ("emacs-key-chord" ,emacs-key-chord)
17438 ("emacs-pdf-tools" ,emacs-pdf-tools)
17439 ("emacs-s" ,emacs-s)))
17440 (home-page "https://github.com/jkitchin/org-ref")
17441 (synopsis "Citations, cross-references and bibliographies in Org mode")
17442 (description
17443 "Org Ref is an Emacs library that provides rich support for citations,
17444 labels and cross-references in Org mode.
17445
17446 The basic idea of Org Ref is that it defines a convenient interface to insert
17447 citations from a reference database (e.g., from BibTeX files), and a set of
17448 functional Org links for citations, cross-references and labels that export
17449 properly to LaTeX, and that provide clickable functionality to the user. Org
17450 Ref interfaces with Helm BibTeX to facilitate citation entry, and it can also
17451 use RefTeX.
17452
17453 It also provides a fairly large number of utilities for finding bad citations,
17454 extracting BibTeX entries from citations in an Org file, and functions to
17455 create and modify BibTeX entries from a variety of sources, most notably from
17456 a DOI.
17457
17458 Org Ref is especially suitable for Org documents destined for LaTeX export and
17459 scientific publication. Org Ref is also useful for research documents and
17460 notes.")
17461 (license license:gpl3+))))
17462
17463 (define-public emacs-org-reveal
17464 (let ((commit "84039bb499290926511b04749882ecb5eda45a0c"))
17465 (package
17466 (name "emacs-org-reveal")
17467 (version (git-version "20200607" "1" commit))
17468 (source (origin
17469 (method git-fetch)
17470 (uri (git-reference
17471 (url "https://github.com/yjwen/org-reveal")
17472 (commit commit)))
17473 (file-name (git-file-name name version))
17474 (sha256
17475 (base32
17476 "1fx3xmnkpfljrdmy0dsyq79k93ky57gcqm1ad9qbzykk7qjvmmi8"))))
17477 (build-system emacs-build-system)
17478 (home-page "https://github.com/yjwen/org-reveal")
17479 (synopsis "Org and Reveal.js powered HTML presentation tool")
17480 (description "Org-Reveal is a @command{org-mode} extension that allows
17481 to create beautiful presentations (slides) with 3D effects from simple but
17482 powerful Org contents.")
17483 (license license:gpl3+))))
17484
17485 (define-public emacs-org-re-reveal
17486 (package
17487 (name "emacs-org-re-reveal")
17488 (version "3.7.0")
17489 (source (origin
17490 (method git-fetch)
17491 (uri (git-reference
17492 (url "https://gitlab.com/oer/org-re-reveal")
17493 (commit version)))
17494 (file-name (git-file-name name version))
17495 (sha256
17496 (base32
17497 "1vzn0l8ig4rzh5h8j7kxn8kslqrij97qqv98fbnlwmrw4z87v8dr"))))
17498 (build-system emacs-build-system)
17499 (propagated-inputs
17500 `(("emacs-htmlize" ,emacs-htmlize)
17501 ("emacs-org" ,emacs-org)))
17502 (home-page "https://gitlab.com/oer/org-re-reveal")
17503 (synopsis "Build HTML presentations with reveal.js from Org source files")
17504 (description "This project started as fork of org-reveal. It provides an
17505 export back-end for HTML presentations with reveal.js from Org mode source
17506 files.")
17507 (license license:gpl3+)))
17508
17509 (define-public emacs-add-hooks
17510 (package
17511 (name "emacs-add-hooks")
17512 (version "3.1.1")
17513 (source
17514 (origin
17515 (method git-fetch)
17516 (uri (git-reference
17517 (url "https://github.com/nickmccurdy/add-hooks")
17518 (commit version)))
17519 (file-name (git-file-name name version))
17520 (sha256
17521 (base32 "1jv9fpcsm572zg0j1mbpbfkqgdlqapy89xhhj19pswkhjns1y2wl"))))
17522 (build-system emacs-build-system)
17523 (home-page "https://github.com/nickmccurdy/add-hooks/")
17524 (synopsis "Emacs function for setting multiple hooks")
17525 (description "This package provides a @code{add-hooks} function tidies up
17526 duplicate hook and function names further into a single declarative call.")
17527 (license license:gpl3+)))
17528
17529 (define-public emacs-fancy-battery
17530 (package
17531 (name "emacs-fancy-battery")
17532 (version "0.2")
17533 (source
17534 (origin
17535 (method git-fetch)
17536 (uri (git-reference
17537 (url "https://github.com/emacsorphanage/fancy-battery")
17538 (commit version)))
17539 (file-name (git-file-name name version))
17540 (sha256
17541 (base32 "05lwcwf412m717yhwpjrswqkm8c3i7391rmiwv2k8xc1vk6dpp4g"))))
17542 (build-system emacs-build-system)
17543 (home-page "https://github.com/emacsorphanage/fancy-battery")
17544 (synopsis "Display battery status in Emacs mode line")
17545 (description "This package provides @code{fancy-battery-mode} which is
17546 like the built-in @code{display-battery-mode}, but more fancy. It just the
17547 remaining time, uses colours to indicate the status of the battery, and is
17548 more customizable.")
17549 (license license:gpl3)))
17550
17551 (define-public emacs-fancy-narrow
17552 (package
17553 (name "emacs-fancy-narrow")
17554 (version "0.9.5")
17555 (source
17556 (origin
17557 (method git-fetch)
17558 (uri (git-reference
17559 (url "https://github.com/Malabarba/fancy-narrow")
17560 (commit version)))
17561 (file-name (git-file-name name version))
17562 (sha256
17563 (base32 "0vcr1gnqawvc1yclqs23jvxm6bqix8kpflf1c7znb0wzxmz9kx7y"))))
17564 (build-system emacs-build-system)
17565 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
17566 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
17567 (description
17568 "Unlike @code{narrow-to-region}, which completely hides text outside
17569 the narrowed region, this package simply de-emphasizes the text, makes it
17570 read-only, and makes it unreachable. This leads to a much more natural
17571 feeling where the region stays static (instead of being brutally moved to a
17572 blank slate) and is clearly highlighted with respect to the rest of the
17573 buffer.")
17574 (license license:gpl2+)))
17575
17576 (define-public emacs-know-your-http-well
17577 (package
17578 (name "emacs-know-your-http-well")
17579 (version "0.5.0")
17580 (source
17581 (origin
17582 (method git-fetch)
17583 (uri (git-reference
17584 (url "https://github.com/for-GET/know-your-http-well")
17585 (commit (string-append "v" version))))
17586 (file-name (git-file-name name version))
17587 (sha256
17588 (base32 "1lppggnii2r9fvlhh33gbdrwb50za8lnalavlq9s86ngndn4n94k"))))
17589 (arguments
17590 `(#:phases
17591 (modify-phases %standard-phases
17592 (add-after 'unpack 'install-json-files
17593 (lambda* (#:key outputs #:allow-other-keys)
17594 (for-each (lambda (directory)
17595 (copy-recursively directory
17596 (string-append
17597 (assoc-ref outputs "out")
17598 directory)))
17599 '("js" "json"))))
17600 (add-after 'unpack 'chdir-elisp
17601 ;; Elisp directory is not in root of the source.
17602 (lambda _
17603 (chdir "emacs"))))))
17604 (build-system emacs-build-system)
17605 (home-page "https://github.com/for-GET/know-your-http-well")
17606 (synopsis "Meaning of HTTP headers codes")
17607 (description "Meaning of HTTP headers codes.")
17608 (license license:gpl3+)))
17609
17610 (define-public emacs-navi-mode
17611 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
17612 (package
17613 (name "emacs-navi-mode")
17614 (version (git-version "2.0" "1" commit))
17615 (source
17616 (origin
17617 (method git-fetch)
17618 (uri (git-reference
17619 (url "https://github.com/alphapapa/navi")
17620 (commit commit)))
17621 (file-name (git-file-name name version))
17622 (sha256
17623 (base32
17624 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
17625 (build-system emacs-build-system)
17626 (propagated-inputs
17627 `(("emacs-outshine" ,emacs-outshine)
17628 ("emacs-outorg" ,emacs-outorg)))
17629 (home-page "https://github.com/alphapapa/navi")
17630 (synopsis "Emacs major-mode for easy buffer-navigation")
17631 (description
17632 "This package provides an Emacs major-mode for easy buffer-navigation")
17633 (license license:gpl3+))))
17634
17635 (define-public emacs-download-region
17636 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
17637 (revision "1"))
17638 (package
17639 (name "emacs-download-region")
17640 (version (string-append "0.0.1" "-" revision "."
17641 (string-take commit 7)))
17642 (source
17643 (origin
17644 (method git-fetch)
17645 (uri (git-reference
17646 (url "https://github.com/zk-phi/download-region")
17647 (commit commit)))
17648 (file-name (git-file-name name version))
17649 (sha256
17650 (base32
17651 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
17652 (build-system emacs-build-system)
17653 (home-page "https://github.com/zk-phi/download-region")
17654 (synopsis "In buffer download manager for Emacs")
17655 (description "@code{download-region} provides in buffer
17656 downloading manager for Emacs.")
17657 (license license:gpl3+))))
17658
17659 (define-public emacs-helpful
17660 (package
17661 (name "emacs-helpful")
17662 (version "0.18")
17663 (source
17664 (origin
17665 (method git-fetch)
17666 (uri (git-reference
17667 (url "https://github.com/Wilfred/helpful")
17668 (commit version)))
17669 (file-name (git-file-name name version))
17670 (sha256
17671 (base32 "0gdjxykqkal2x765mi51m99i5ql23i1fy909wy4mzj5ajhjfgqcc"))))
17672 (build-system emacs-build-system)
17673 (propagated-inputs
17674 `(("emacs-elisp-refs" ,emacs-elisp-refs)
17675 ("emacs-dash" ,emacs-dash)
17676 ("emacs-s" ,emacs-s)
17677 ("emacs-f" ,emacs-f)
17678 ("emacs-shut-up" ,emacs-shut-up)))
17679 (native-inputs
17680 `(("emacs-ert-runner" ,emacs-ert-runner)
17681 ("emacs-undercover" ,emacs-undercover)))
17682 (arguments
17683 `(#:tests? #t
17684 #:test-command '("ert-runner")))
17685 (home-page "https://github.com/Wilfred/helpful")
17686 (synopsis "More contextual information in Emacs help")
17687 (description "@code{helpful} is an alternative to the built-in Emacs help
17688 that provides much more contextual information.
17689
17690 @itemize
17691 @item Show the source code for interactively defined functions (unlike the
17692 built-in Help).
17693 @item Fall back to the raw sexp if no source is available.
17694 @item Show where a function is being called.
17695 @item Docstrings will Highlight the summary (the first sentence), include
17696 cross-references, hide superfluous puncuation.
17697 @item Show you the properties that have been applied to the current
17698 symbol. This provides visibility of features like edebug or byte-code
17699 optimisation.
17700 @item Provide a separate @code{helpful-command} function to view interactive
17701 functions.
17702 @item Display any keybindings that apply to interactive functions.
17703 @item Trace, disassemble functions from inside Helpful. This is discoverable
17704 and doesn't require memorisation of commands.
17705 @end itemize\n")
17706 (license license:gpl3+)))
17707
17708 (define-public emacs-logview
17709 (package
17710 (name "emacs-logview")
17711 (version "0.14")
17712 (source
17713 (origin
17714 (method git-fetch)
17715 (uri (git-reference
17716 (url "https://github.com/doublep/logview")
17717 (commit version)))
17718 (file-name (git-file-name name version))
17719 (sha256
17720 (base32 "1cchmr25z5zj7rgb2fyxkaq8kpw7i5yg1pvn42dvm09c2wrfbj46"))))
17721 (propagated-inputs
17722 `(("emacs-datetime" ,emacs-datetime)
17723 ("emacs-extmap" ,emacs-extmap)))
17724 (build-system emacs-build-system)
17725 (home-page "https://github.com/doublep/logview/")
17726 (synopsis "Emacs mode for viewing log files")
17727 (description "@code{logview} provides an Emacs mode to view log files.")
17728 (license license:gpl3+)))
17729
17730 (define-public emacs-suggest
17731 (package
17732 (name "emacs-suggest")
17733 (version "0.7")
17734 (home-page "https://github.com/Wilfred/suggest.el")
17735 (source
17736 (origin
17737 (method git-fetch)
17738 (uri (git-reference
17739 (url home-page)
17740 (commit version)))
17741 (file-name (git-file-name name version))
17742 (sha256
17743 (base32
17744 "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"))))
17745 (build-system emacs-build-system)
17746 (propagated-inputs
17747 `(("emacs-loop" ,emacs-loop)
17748 ("emacs-dash" ,emacs-dash)
17749 ("emacs-s" ,emacs-s)
17750 ("emacs-f" ,emacs-f)
17751 ("emacs-spinner" ,emacs-spinner)
17752 ("emacs-shut-up" ,emacs-shut-up)))
17753 (native-inputs
17754 `(("emacs-ert-runner" ,emacs-ert-runner)
17755 ("emacs-undercover" ,emacs-undercover)))
17756 (arguments
17757 `(#:tests? #t
17758 #:test-command '("ert-runner")))
17759 (synopsis "Suggest Elisp functions that give the output requested")
17760 (description "Suggest.el will find functions that give the output
17761 requested. It's a great way of exploring list, string and arithmetic
17762 functions.")
17763 (license license:gpl3+)))
17764
17765 (define-public emacs-benchmark-init
17766 (package
17767 (name "emacs-benchmark-init")
17768 (version "1.0")
17769 (source
17770 (origin
17771 (method git-fetch)
17772 (uri (git-reference
17773 (url "https://github.com/dholm/benchmark-init-el")
17774 (commit version)))
17775 (file-name (git-file-name name version))
17776 (sha256
17777 (base32 "1kyn1izm5sbqbp9whnhk9dn3yc7zy8bz5san5w3ivi3rpx15fh94"))))
17778 (build-system emacs-build-system)
17779 (home-page "https://github.com/dholm/benchmark-init-el")
17780 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
17781 (description "@code{benchmark-init} provides a way to keep track of where
17782 time is being spent during Emacs startup in order to optimize startup time.")
17783 (license license:gpl3+)))
17784
17785 (define-public emacs-magit-gerrit
17786 (let ((version "0.3")
17787 (revision "1")
17788 (commit "ece6f369694aca17f3ac166ed2801b432acfe20d"))
17789 (package
17790 (name "emacs-magit-gerrit")
17791 (version (git-version version revision commit))
17792 (source (origin
17793 (method git-fetch)
17794 (uri (git-reference
17795 (url "https://github.com/terranpro/magit-gerrit")
17796 (commit commit)))
17797 (file-name (git-file-name name version))
17798 (sha256
17799 (base32
17800 "0mms0gxv9a3ns8lk5k2wjibm3088y1cmpr3axjdh6ppv7r5wdvii"))))
17801 (build-system emacs-build-system)
17802 (propagated-inputs
17803 `(("emacs-magit" ,emacs-magit)))
17804 (home-page "https://github.com/terranpro/magit-gerrit")
17805 (synopsis "Magit extension for Gerrit")
17806 (description "This Magit extension provides integration with Gerrit,
17807 which makes it possible to conduct Gerrit code reviews directly from within
17808 Emacs.")
17809 (license license:gpl3+))))
17810
17811 (define-public emacs-magit-org-todos-el
17812 (package
17813 (name "emacs-magit-org-todos-el")
17814 (version "0.1.2")
17815 (source
17816 (origin
17817 (method git-fetch)
17818 (uri (git-reference
17819 (url "https://github.com/danielma/magit-org-todos.el")
17820 (commit version)))
17821 (file-name (git-file-name name version))
17822 (sha256
17823 (base32
17824 "07r5x256k1fjjxs1yfg41kc94nwvnjlk2vvknkra3j8v9p0j88m7"))))
17825 (propagated-inputs
17826 `(("magit" ,emacs-magit)))
17827 (build-system emacs-build-system)
17828 (home-page "https://github.com/danielma/magit-org-todos.el")
17829 (synopsis "Get todo.org into Emacs Magit status")
17830 (description "This package allows you to get @file{todo.org} into your
17831 magit status.
17832
17833 If you have a @file{todo.org} file with @code{TODO} items in the root of your
17834 repository, @code{magit-org-todos} will create a section in your Magit status
17835 buffer with each of your todos.")
17836 (license license:gpl3+)))
17837
17838 (define-public emacs-vcsh
17839 (package
17840 (name "emacs-vcsh")
17841 (version "0.4.4")
17842 (source
17843 (origin
17844 (method git-fetch)
17845 (uri (git-reference
17846 (url "https://gitlab.com/stepnem/vcsh-el.git")
17847 (commit version)))
17848 (file-name (git-file-name name version))
17849 (sha256
17850 (base32 "183pffdiqb7qqmjq31wxl3fpv8qswqgg99gb716rddiyk15ysri7"))))
17851 (build-system emacs-build-system)
17852 (home-page "https://gitlab.com/stepnem/vcsh-el")
17853 (synopsis "Emacs VCSH integration")
17854 (description
17855 "This library provides basic ``enter'' functionality and a few
17856 convenience commands to initialize a @acronym{VCSH, Version Control System for
17857 $HOME} repository and add files to it. It can be used in conjunction with
17858 Magit.")
17859 (license license:public-domain)))
17860
17861 (define-public emacs-f3
17862 (package
17863 (name "emacs-f3")
17864 (version "0.1")
17865 (source
17866 (origin
17867 (method git-fetch)
17868 (uri (git-reference
17869 (url "https://github.com/cosmicexplorer/f3")
17870 (commit version)))
17871 (file-name (git-file-name name version))
17872 (sha256
17873 (base32 "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi"))))
17874 (build-system emacs-build-system)
17875 (propagated-inputs
17876 `(("emacs-helm" ,emacs-helm)))
17877 (home-page "https://github.com/cosmicexplorer/f3")
17878 (synopsis "Fantastic File Finder for Emacs")
17879 (description
17880 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
17881 (license license:gpl3+)))
17882
17883 (define-public emacs-lice-el
17884 (let ((commit "482e58ab83fff86ed754b00be27b62a219597e7c"))
17885 (package
17886 (name "emacs-lice-el")
17887 (version (git-version "0.2" "2" commit))
17888 (source (origin
17889 (method git-fetch)
17890 (uri (git-reference
17891 (url "https://github.com/buzztaiki/lice-el")
17892 (commit commit)))
17893 (file-name (git-file-name name version))
17894 (sha256
17895 (base32
17896 "0yxkjyhfk8kpr8yqz54gdx6xwkj4s8bnbz60162jh12crj0bs5n7"))))
17897 (build-system emacs-build-system)
17898 (arguments
17899 `(#:phases
17900 (modify-phases %standard-phases
17901 (add-after 'unpack 'patch-template-directory
17902 (lambda* (#:key outputs #:allow-other-keys)
17903 (chmod "lice.el" #o666)
17904 (emacs-substitute-variables "lice.el"
17905 ("lice:system-template-directory"
17906 (string-append (assoc-ref outputs "out")
17907 "/share/emacs-lice-el/template")))
17908 #t))
17909 (add-after 'install 'install-templates
17910 (lambda* (#:key outputs #:allow-other-keys)
17911 (copy-recursively
17912 "template"
17913 (string-append (assoc-ref outputs "out")
17914 "/share/emacs-lice-el/template"))
17915 #t)))))
17916 (home-page "https://github.com/buzztaiki/lice-el")
17917 (synopsis "License and header template for Emacs")
17918 (description "@code{lice.el} provides following features:
17919
17920 @itemize
17921 @item License template management.
17922 @item File header insertion.
17923 @end itemize\n")
17924 (license license:gpl3+))))
17925
17926 (define-public emacs-academic-phrases
17927 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
17928 (package
17929 (name "emacs-academic-phrases")
17930 (version (git-version "0.1" "1" commit))
17931 (source
17932 (origin
17933 (method git-fetch)
17934 (uri (git-reference
17935 (url "https://github.com/nashamri/academic-phrases")
17936 (commit commit)))
17937 (file-name (git-file-name name version))
17938 (sha256
17939 (base32
17940 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
17941 (build-system emacs-build-system)
17942 (propagated-inputs
17943 `(("emacs-dash" ,emacs-dash)
17944 ("emacs-s" ,emacs-s)
17945 ("emacs-ht" ,emacs-ht)))
17946 (home-page "https://github.com/nashamri/academic-phrases")
17947 (synopsis "Bypass that mental block when writing your papers")
17948 (description
17949 "When writing your academic paper, you might get stuck trying to find
17950 the right phrase that captures your intention. This package tries to
17951 alleviate that problem by presenting you with a list of phrases organized by
17952 the topic or by the paper section that you are writing. This package has
17953 around 600 phrases so far.
17954
17955 Using this package is easy, just call @code{academic-phrases} to get a list of
17956 phrases organized by topic, or call @code{academic-phrases-by-section} to
17957 browse the phrases by the paper section and fill-in the blanks if required.")
17958 (license license:gpl3+))))
17959
17960 (define-public emacs-auto-yasnippet
17961 (let ((commit "624b0d9711222073a2a3f2186e2605eb99fc83c9")
17962 (revision "2"))
17963 (package
17964 (name "emacs-auto-yasnippet")
17965 (version (git-version "0.3.0" revision commit))
17966 (source (origin
17967 (method git-fetch)
17968 (uri (git-reference
17969 (url "https://github.com/abo-abo/auto-yasnippet")
17970 (commit commit)))
17971 (file-name (git-file-name name version))
17972 (sha256
17973 (base32
17974 "15g8wi067f345xhpi0c12w0h04p4f4lpccwmdjdfj8hzfl4gyxy9"))))
17975 (build-system emacs-build-system)
17976 (arguments
17977 '(#:tests? #t
17978 #:test-command '("make" "test")))
17979 (propagated-inputs
17980 `(("emacs-yasnippet" ,emacs-yasnippet)))
17981 (home-page "https://github.com/abo-abo/auto-yasnippet/")
17982 (synopsis "Quickly create disposable yasnippets")
17983 (description "This package provides a hybrid of keyboard macros and
17984 yasnippet. You create the snippet on the go, usually to be used just in the
17985 one place. It's fast, because you're not leaving the current buffer, and all
17986 you do is enter the code you'd enter anyway, just placing ~ where you'd like
17987 yasnippet fields and mirrors to be.")
17988 (license license:gpl3+))))
17989
17990 (define-public emacs-highlight-numbers
17991 (package
17992 (name "emacs-highlight-numbers")
17993 (version "0.2.3")
17994 (source
17995 (origin
17996 (method git-fetch)
17997 (uri (git-reference
17998 (url "https://github.com/Fanael/highlight-numbers")
17999 (commit version)))
18000 (file-name (git-file-name name version))
18001 (sha256
18002 (base32 "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"))))
18003 (build-system emacs-build-system)
18004 (propagated-inputs
18005 `(("emacs-parent-mode" ,emacs-parent-mode)))
18006 (home-page "https://github.com/Fanael/highlight-numbers")
18007 (synopsis "Highlight numbers in source code")
18008 (description "@code{highlight-numbers-mode} provides a minor mode for
18009 syntax highlighting of numeric literals in source code.
18010
18011 It s customizable: it's easy to add or redefine what exactly constitutes a
18012 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
18013 (license license:gpl3+)))
18014
18015 (define-public emacs-darkroom
18016 (package
18017 (name "emacs-darkroom")
18018 (version "0.3")
18019 (source
18020 (origin
18021 (method url-fetch)
18022 (uri (string-append "https://elpa.gnu.org/packages/"
18023 "darkroom-" version ".el"))
18024 (sha256
18025 (base32 "0l1xg5kqmjw22k78qnsln0ifx2dx74xxqj0qp8xxcpqvzzx0xh86"))))
18026 (build-system emacs-build-system)
18027 (home-page "https://elpa.gnu.org/packages/darkroom.html")
18028 (synopsis "Remove visual distractions and focus on writing")
18029 (description "@code{darkroom-mode} makes visual distractions disappear.
18030 The mode-line is temporarily elided, text is enlarged and margins are adjusted
18031 so that it's centered on the window.
18032
18033 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
18034 @code{darkroom-mode}, unless the current buffer lives in the sole window of
18035 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
18036 split to display more windows and more buffers, the buffer exits
18037 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
18038 @code{darkroom-mode}.")
18039 (license license:gpl3+)))
18040
18041 (define-public emacs-rsw-elisp
18042 (package
18043 (name "emacs-rsw-elisp")
18044 (version "1.0.5")
18045 (source (origin
18046 (method git-fetch)
18047 (uri (git-reference
18048 (url "https://github.com/rswgnu/rsw-elisp")
18049 (commit version)))
18050 (file-name (git-file-name name version))
18051 (sha256
18052 (base32
18053 "0dfq8myg0r91900bk1s70amsmm4mjk2qsg12v5pk7lla5d2vnyaf"))))
18054 (build-system emacs-build-system)
18055 (home-page "https://github.com/rswgnu/rsw-elisp")
18056 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
18057 (description "This package improves and replaces the GNU Emacs commands
18058 that interactively evaluate Emacs Lisp expressions. The new commands replace
18059 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
18060 the same way as the old commands when called non-interactively; only the
18061 interactive behavior should be different.")
18062 (license license:gpl3+)))
18063
18064 (define-public emacs-default-text-scale
18065 (package
18066 (name "emacs-default-text-scale")
18067 (version "0.2")
18068 (source (origin
18069 (method git-fetch)
18070 (uri (git-reference
18071 (url "https://github.com/purcell/default-text-scale")
18072 (commit version)))
18073 (file-name (git-file-name name version))
18074 (sha256
18075 (base32
18076 "0h42jiwxrxjmk7ccwh3h25n7dy2rq61ncm5wx27jhkncc5jdm4h6"))))
18077 (build-system emacs-build-system)
18078 (home-page "https://github.com/purcell/default-text-scale")
18079 (synopsis "Adjust the font size in all Emacs frames")
18080 (description "This package provides commands for increasing or
18081 decreasing the default font size in all GUI Emacs frames.")
18082 (license license:gpl3+)))
18083
18084 (define-public emacs-mixed-pitch
18085 (package
18086 (name "emacs-mixed-pitch")
18087 (version "1.1.1")
18088 (source
18089 (origin
18090 (method git-fetch)
18091 (uri (git-reference
18092 (url "https://gitlab.com/jabranham/mixed-pitch.git")
18093 (commit version)))
18094 (file-name (git-file-name name version))
18095 (sha256
18096 (base32 "1dhljrh44dsnixd8hbb11k6dgap8r8n7jknhfy2afdzq889fih74"))))
18097 (build-system emacs-build-system)
18098 (home-page "https://gitlab.com/jabranham/mixed-pitch")
18099 (synopsis "Mix variable- and fixed-pitch fonts in the same Emacs buffer")
18100 (description
18101 "@code{mixed-pitch-mode} is a minor mode that enables mixing
18102 variable-pitch and fixed-pitch fonts in the same buffer. The list
18103 @code{mixed-pitch-fixed-pitch-faces} defines the faces that are kept
18104 fixed-pitch,everything else becomes variable-pitch.")
18105 (license license:gpl3+)))
18106
18107 (define-public emacs-visual-regexp
18108 (package
18109 (name "emacs-visual-regexp")
18110 (version "1.1.2")
18111 (source
18112 (origin
18113 (method git-fetch)
18114 (uri (git-reference
18115 (url "https://github.com/benma/visual-regexp.el")
18116 (commit (string-append "v" version))))
18117 (file-name (git-file-name name version))
18118 (sha256
18119 (base32 "12p3rlhdphwmx1kxsjzcl2wj3i6qgpvw8iwhg1whs6yqgaxivixd"))))
18120 (build-system emacs-build-system)
18121 (home-page "https://github.com/benma/visual-regexp.el/")
18122 (synopsis "Regexp command with interactive visual feedback")
18123 (description "This package provides an Emacs regexp command with
18124 interactive visual feedback.")
18125 (license license:gpl3+)))
18126
18127 (define-public emacs-faceup
18128 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
18129 (revision "1"))
18130 (package
18131 (name "emacs-faceup")
18132 (version (string-append "0.0.1" "-" revision "."
18133 (string-take commit 7)))
18134 (source
18135 (origin
18136 (method git-fetch)
18137 (uri (git-reference
18138 (url "https://github.com/Lindydancer/faceup")
18139 (commit commit)))
18140 (file-name (git-file-name name version))
18141 (sha256
18142 (base32
18143 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
18144 (build-system emacs-build-system)
18145 (home-page "https://github.com/Lindydancer/faceup")
18146 (synopsis "Markup language for faces and font-lock regression testing")
18147 (description "Emacs is capable of highlighting buffers based on
18148 language-specific @code{font-lock} rules. This package makes it possible to
18149 perform regression test for packages that provide font-lock rules.")
18150 (license license:gpl3+))))
18151
18152 (define-public emacs-racket-mode
18153 (let ((commit "5eb31a284c8db5102bc71b1e2c6ce3a095ae085b")
18154 (revision "6"))
18155 (package
18156 (name "emacs-racket-mode")
18157 (version (git-version "0.0.2" revision commit))
18158 (source
18159 (origin
18160 (method git-fetch)
18161 (uri (git-reference
18162 (url "https://github.com/greghendershott/racket-mode")
18163 (commit commit)))
18164 (file-name (git-file-name name version))
18165 (sha256
18166 (base32
18167 "081h6rd0gv88m0wvnmghi242kl39x1sz34qr4cq9vz04iwvnmgrm"))))
18168 (build-system emacs-build-system)
18169 (arguments
18170 `(#:include '("\\.el$" "\\.rkt$")))
18171 (propagated-inputs
18172 `(("emacs-faceup" ,emacs-faceup)
18173 ("emacs-pos-tip" ,emacs-pos-tip)
18174 ("emacs-s" ,emacs-s)))
18175 (home-page "https://www.racket-mode.com/")
18176 (synopsis "Major mode for the Racket language")
18177 (description "@code{racket-mode} provides:
18178
18179 @itemize
18180 @item Focus on Racket (not various Schemes).
18181 @item Follow DrRacket concepts where applicable.
18182 @item Thorough font-lock and indent.
18183 @end itemize\n")
18184 (license license:gpl3+))))
18185
18186 (define-public emacs-grep-context
18187 (let ((commit "5a4e3efdf775755c1bbefcfe4b461c1166d81d7d")
18188 (revision "1"))
18189 (package
18190 (name "emacs-grep-context")
18191 (version (git-version "0.1.0" revision commit))
18192 (source
18193 (origin
18194 (method git-fetch)
18195 (uri (git-reference
18196 (url "https://github.com/mkcms/grep-context")
18197 (commit commit)))
18198 (file-name (git-file-name name version))
18199 (sha256
18200 (base32
18201 "00q7l4a3c0ay6g5ff9bfa2qgkiswsyh4s6pqnpg0zpzhvv5710f5"))))
18202 (build-system emacs-build-system)
18203 (propagated-inputs
18204 `(("emacs-dash" ,emacs-dash)))
18205 (home-page "https://github.com/mkcms/grep-context")
18206 (synopsis "Increase context in compilation and grep buffers")
18207 (description
18208 "This package provides an Emacs package for more context in
18209 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
18210 @code{ivy}.")
18211 (license license:gpl3+))))
18212
18213 (define-public emacs-helm-firefox
18214 (package
18215 (name "emacs-helm-firefox")
18216 (version "1.3")
18217 (source
18218 (origin
18219 (method git-fetch)
18220 (uri (git-reference
18221 (url "https://github.com/emacs-helm/helm-firefox")
18222 (commit (string-append "v" version))))
18223 (file-name (git-file-name name version))
18224 (sha256
18225 (base32
18226 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
18227 (propagated-inputs
18228 `(("emacs-helm" ,emacs-helm)))
18229 (build-system emacs-build-system)
18230 (home-page "https://github.com/emacs-helm/helm-firefox")
18231 (synopsis "Display firefox bookmarks with Emacs Helm interface")
18232 (description "Display firefox bookmarks with Emacs Helm interface")
18233 (license license:gpl3+)))
18234
18235 (define-public emacs-interactive-align
18236 (package
18237 (name "emacs-interactive-align")
18238 (version "0.4.2")
18239 (source
18240 (origin
18241 (method git-fetch)
18242 (uri (git-reference
18243 (url "https://github.com/mkcms/interactive-align")
18244 (commit (string-append "v" version))))
18245 (file-name (git-file-name name version))
18246 (sha256
18247 (base32
18248 "0bh03w91i622hbar5dcq631ndxx1y8kd3h655pgw1g0lqkv1mlnc"))))
18249 (build-system emacs-build-system)
18250 (home-page "https://github.com/mkcms/interactive-align/")
18251 (synopsis "Interactive align-regexp command in Emacs")
18252 (description "Interactive align-regexp command in Emacs")
18253 (license license:gpl3+)))
18254
18255 (define-public emacs-shift-number
18256 (package
18257 (name "emacs-shift-number")
18258 (version "0.1")
18259 (source
18260 (origin
18261 (method git-fetch)
18262 (uri (git-reference
18263 (url "https://github.com/alezost/shift-number.el")
18264 (commit (string-append "v" version))))
18265 (file-name (git-file-name name version))
18266 (sha256
18267 (base32
18268 "0zlwmzsxkv4mkggylxfx2fkrwgz7dz3zbg2gkn2rxcpy2k2gla64"))))
18269 (build-system emacs-build-system)
18270 (home-page "https://github.com/alezost/shift-number.el")
18271 (synopsis "Increase or decrease the number at point")
18272 (description "@code{emacs-shift-number} provides commands
18273 @code{shift-number-up} to increase and @code{shift-number-down} to
18274 decrease the number at point.")
18275 (license license:gpl3+)))
18276
18277 (define-public emacs-highlight-defined
18278 (package
18279 (name "emacs-highlight-defined")
18280 (version "0.1.5")
18281 (source
18282 (origin
18283 (method git-fetch)
18284 (uri (git-reference
18285 (url "https://github.com/Fanael/highlight-defined")
18286 (commit version)))
18287 (file-name (git-file-name name version))
18288 (sha256
18289 (base32 "08czwa165rnd5z0dwwdddn7zi5w63sdk31l47bj0598kbly01n7r"))))
18290 (build-system emacs-build-system)
18291 (home-page "https://github.com/Fanael/highlight-defined")
18292 (synopsis "Syntax highlighting of known Elisp symbols")
18293 (description "Minor mode providing syntax highlighting of known Emacs Lisp
18294 symbols. Currently the code distinguishes Lisp functions, built-in functions,
18295 macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
18296 (license license:gpl3+)))
18297
18298 (define-public emacs-parinfer-mode
18299 (package
18300 (name "emacs-parinfer-mode")
18301 (version "0.4.10")
18302 (source
18303 (origin
18304 (method git-fetch)
18305 (uri (git-reference
18306 (url "https://github.com/DogLooksGood/parinfer-mode")
18307 (commit (string-append "v" version))))
18308 (file-name (git-file-name name version))
18309 (sha256
18310 (base32 "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"))))
18311 (propagated-inputs
18312 `(("emacs-dash" ,emacs-dash)
18313 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
18314 ("emacs-company" ,emacs-company)))
18315 (build-system emacs-build-system)
18316 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
18317 (synopsis "Lisp structure editing mode")
18318 (description "@code{parinfer-mode} is a proof-of-concept editor
18319 mode for Lisp programming languages. It will infer some changes to
18320 keep Parens and Indentation inline with one another.")
18321 (license license:gpl3+)))
18322
18323 (define-public emacs-helm-eww
18324 (package
18325 (name "emacs-helm-eww")
18326 (version "1.2")
18327 (source (origin
18328 (method git-fetch)
18329 (uri (git-reference
18330 (url "https://github.com/emacs-helm/helm-eww")
18331 (commit version)))
18332 (file-name (git-file-name name version))
18333 (sha256
18334 (base32
18335 "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"))))
18336 (propagated-inputs
18337 `(("emacs-helm" ,emacs-helm)))
18338 (build-system emacs-build-system)
18339 (home-page "https://github.com/emacs-helm/helm-eww/")
18340 (synopsis "Helm interface to EWW")
18341 (description "This package provides a Helm interface for EWW buffers,
18342 bookmarks and history.")
18343 (license license:gpl3+)))
18344
18345 (define-public emacs-stumpwm-mode
18346 (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d6")
18347 (revision "3"))
18348 (package
18349 (name "emacs-stumpwm-mode")
18350 (version (git-version "0.0.1" revision commit))
18351 (source (origin
18352 (method git-fetch)
18353 (uri (git-reference
18354 (url "https://github.com/stumpwm/stumpwm-contrib")
18355 (commit commit)))
18356 (file-name (git-file-name name version))
18357 (sha256
18358 (base32
18359 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
18360 (build-system emacs-build-system)
18361 (arguments
18362 `(#:phases
18363 (modify-phases %standard-phases
18364 (add-after 'unpack 'chdir-elisp
18365 ;; Elisp directory is not in root of the source.
18366 (lambda _
18367 (chdir "util/swm-emacs"))))))
18368 (home-page "https://github.com/stumpwm/stumpwm-contrib")
18369 (synopsis "Emacs minor-mode for Stumpwm")
18370 (description "Emacs minor-mode for Stumpwm")
18371 (license license:gpl3+))))
18372
18373 (define-public emacs-irfc
18374 (package
18375 (name "emacs-irfc")
18376 (version "20130824.507-1")
18377 (source
18378 (origin
18379 (method url-fetch)
18380 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
18381 (file-name (string-append "irfc-" version ".el"))
18382 (sha256
18383 (base32
18384 "0rbfrza56kvspvgrwg0b5bj30d0qncqdsmfxn3y5caq4ifcj77hv"))))
18385 (build-system emacs-build-system)
18386 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
18387 (synopsis "Interface for IETF RFC document")
18388 (description
18389 "This package provides an Emacs interface for IETF RFC document.")
18390 (license license:gpl3+)))
18391
18392 (define-public emacs-ido-at-point
18393 (package
18394 (name "emacs-ido-at-point")
18395 (version "1.0.0")
18396 (source
18397 (origin
18398 (method git-fetch)
18399 (uri (git-reference
18400 (url "https://github.com/katspaugh/ido-at-point")
18401 (commit (string-append "v" version))))
18402 (file-name (git-file-name name version))
18403 (sha256
18404 (base32 "1bii7vj8pmmijcpvq3a1scky4ais7k6d7zympb3m9dmz355m9rpp"))))
18405 (build-system emacs-build-system)
18406 (synopsis "Ido-style completion at point")
18407 (description
18408 "This package is an alternative frontend for @code{completion-at-point}.
18409 It replaces the standard completions buffer with Ido prompt.")
18410 (home-page "https://github.com/katspaugh/ido-at-point")
18411 (license license:gpl3+)))
18412
18413 (define-public emacs-ido-vertical-mode
18414 (package
18415 (name "emacs-ido-vertical-mode")
18416 (version "0.1.6")
18417 (source
18418 (origin
18419 (method git-fetch)
18420 (uri (git-reference
18421 (url "https://github.com/creichert/ido-vertical-mode.el")
18422 (commit (string-append "v" version))))
18423 (file-name (git-file-name name version))
18424 (sha256
18425 (base32 "1lv82q639xjnmvby56nwqn23ijh6f163bk675s33dkingm8csj8k"))))
18426 (build-system emacs-build-system)
18427 (home-page "https://github.com/creichert/ido-vertical-mode.el")
18428 (synopsis "Makes ido-mode display vertically")
18429 (description "Makes ido-mode display prospects vertically.")
18430 (license license:gpl3+)))
18431
18432 (define-public emacs-wordgen
18433 (package
18434 (name "emacs-wordgen")
18435 (version "0.1.4")
18436 (source
18437 (origin
18438 (method git-fetch)
18439 (uri (git-reference
18440 (url "https://github.com/Fanael/wordgen.el")
18441 (commit version)))
18442 (file-name (git-file-name name version))
18443 (sha256
18444 (base32 "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"))))
18445 (build-system emacs-build-system)
18446 (home-page "https://github.com/Fanael/wordgen.el")
18447 (synopsis "Random word generator")
18448 (description "This package provides functions to generate random words
18449 using user-provided rules.")
18450 (license license:gpl3+)))
18451
18452 (define-public emacs-on-screen
18453 (package
18454 (name "emacs-on-screen")
18455 (version "1.3.3")
18456 (source
18457 (origin
18458 (method url-fetch)
18459 (uri (string-append
18460 "https://elpa.gnu.org/packages/on-screen-" version ".el"))
18461 (file-name (string-append name "-" version ".el"))
18462 (sha256
18463 (base32 "0ga4hw23ki583li2z2hr7l6hk1nc2kdg4afndg06cm9jn158wza7"))))
18464 (build-system emacs-build-system)
18465 (home-page "https://github.com/michael-heerdegen/on-screen.el")
18466 (synopsis "Guide your eyes while scrolling")
18467 (description
18468 "Scrolling can be distracting because your eyes may lose
18469 orientation. This library implements a minor mode that highlights
18470 the previously visible buffer part after each scroll.")
18471 (license license:gpl3+)))
18472
18473 (define-public emacs-highlight-escape-sequences
18474 ;; No release upstream. Extract version from main file.
18475 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
18476 (revision "0"))
18477 (package
18478 (name "emacs-highlight-escape-sequences")
18479 (version (git-version "0.4" revision commit))
18480 (source
18481 (origin
18482 (method git-fetch)
18483 (uri (git-reference
18484 (url "https://github.com/dgutov/highlight-escape-sequences")
18485 (commit commit)))
18486 (file-name (git-file-name name version))
18487 (sha256
18488 (base32 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
18489 (build-system emacs-build-system)
18490 (home-page "https://github.com/dgutov/highlight-escape-sequences")
18491 (synopsis "Highlight escape sequences in Emacs")
18492 (description "@code{highlight-escape-sequences} provides an
18493 Emacs minor mode to escape sequences in code.")
18494 (license license:gpl3+))))
18495
18496 (define-public emacs-dashboard
18497 (package
18498 (name "emacs-dashboard")
18499 (version "1.7.0")
18500 (source
18501 (origin
18502 (method git-fetch)
18503 (uri (git-reference
18504 (url "https://github.com/rakanalh/emacs-dashboard")
18505 (commit version)))
18506 (file-name (git-file-name name version))
18507 (sha256
18508 (base32 "1qv4cqjy2s2d2bysbq10vq1axpbd8qc3jn1s1r81lxqkcja8zasa"))))
18509 (build-system emacs-build-system)
18510 (propagated-inputs
18511 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
18512 (arguments
18513 '(#:include '("\\.el$" "\\.txt$" "\\.png$")
18514 #:phases
18515 (modify-phases %standard-phases
18516 (add-after 'unpack 'patch-dashboard-widgets
18517 ;; This phase fixes compilation error.
18518 (lambda _
18519 (chmod "dashboard-widgets.el" #o666)
18520 (emacs-substitute-variables "dashboard-widgets.el"
18521 ("dashboard-init-info"
18522 '(format "Loaded in %s" (emacs-init-time))))
18523 #t)))))
18524 (home-page "https://github.com/rakanalh/emacs-dashboard")
18525 (synopsis "Startup screen extracted from Spacemacs")
18526 (description "This package provides an extensible Emacs dashboard, with
18527 sections for bookmarks, projectil projects, org-agenda and more. ")
18528 (license license:gpl3+)))
18529
18530 (define-public emacs-slime-company
18531 (package
18532 (name "emacs-slime-company")
18533 (version "1.6")
18534 (source
18535 (origin
18536 (method git-fetch)
18537 (uri (git-reference
18538 (url "https://github.com/anwyn/slime-company")
18539 (commit (string-append "v" version))))
18540 (file-name (git-file-name name version))
18541 (sha256
18542 (base32 "05dnnc4ms5c9yp9h65k2gbkg3pw9k38nx5wzlwdlfr4shqmw54w0"))))
18543 (build-system emacs-build-system)
18544 (propagated-inputs
18545 `(("emacs-slime" ,emacs-slime)
18546 ("emacs-company" ,emacs-company)))
18547 (home-page "https://company-mode.github.io")
18548 (synopsis "SLIME completion backend for @code{company-mode}")
18549 (description
18550 "This is a backend implementation for the completion package
18551 @code{company-mode} which supports the normal and the fuzzy completion
18552 modes of SLIME.")
18553 (license license:gpl3+)))
18554
18555 (define-public emacs-sml-mode
18556 (package
18557 (name "emacs-sml-mode")
18558 (version "6.10")
18559 (source
18560 (origin
18561 (method url-fetch)
18562 (uri (string-append "https://elpa.gnu.org/packages/sml-mode-"
18563 version ".el"))
18564 (sha256
18565 (base32 "01yf0s474r9xhj6nbs14ljn9ccxb5yy758i17c8nmgmqvm8fx7sb"))))
18566 (build-system emacs-build-system)
18567 (home-page "https://elpa.gnu.org/packages/sml-mode.html")
18568 (synopsis "Major mode for editing (Standard) ML")
18569 (description "SML-MODE is a major Emacs mode for editing Standard ML.
18570 It provides syntax highlighting and automatic indentation and
18571 comes with sml-proc which allows interaction with an inferior SML
18572 interactive loop.")
18573 (license license:gpl3+)))
18574
18575 (define-public emacs-eros
18576 (let ((commit "dd8910279226259e100dab798b073a52f9b4233a")
18577 (revision "2"))
18578 (package
18579 (name "emacs-eros")
18580 (version (git-version "0.0.1" revision commit))
18581 (source
18582 (origin
18583 (method git-fetch)
18584 (uri (git-reference
18585 (url "https://github.com/xiongtx/eros")
18586 (commit commit)))
18587 (file-name (git-file-name name version))
18588 (sha256
18589 (base32
18590 "08chj3a0lw4ygi2sv7wj0i6ihfbi8jhylr8p92inif8b88r6wg3k"))))
18591 (build-system emacs-build-system)
18592 (home-page "https://github.com/xiongtx/eros")
18593 (synopsis "Evaluation result overlays")
18594 (description "@code{eros} provides evaluation result overlays.")
18595 (license license:gpl3+))))
18596
18597 (define-public emacs-stickyfunc-enhance
18598 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
18599 (revision "1"))
18600 (package
18601 (name "emacs-stickyfunc-enhance")
18602 (version "0.1")
18603 (source
18604 (origin
18605 (method git-fetch)
18606 (uri (git-reference
18607 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance")
18608 (commit commit)))
18609 (file-name (git-file-name name version))
18610 (sha256
18611 (base32
18612 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
18613 (build-system emacs-build-system)
18614 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
18615 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
18616 (description
18617 "@code{semantic-stickyfunc-mode} shows the function point is currently
18618 in at the first line of the current buffer. This is useful when you have a
18619 very long function that spreads more than a screen, and you don't have to
18620 scroll up to read the function name and then scroll down to original position.")
18621 (license license:gpl3+))))
18622
18623 (define-public emacs-git-auto-commit-mode
18624 (package
18625 (name "emacs-git-auto-commit-mode")
18626 (version "4.7.0")
18627 (source
18628 (origin
18629 (method git-fetch)
18630 (uri (git-reference
18631 (url "https://github.com/ryuslash/git-auto-commit-mode")
18632 (commit version)))
18633 (file-name (git-file-name name version))
18634 (sha256
18635 (base32 "0gpib57f7xza04g3iyihw5v15hb7pncqsmvyggib902yvcxlkvqf"))))
18636 (build-system emacs-build-system)
18637 (native-inputs
18638 `(("emacs-buttercup" ,emacs-buttercup)
18639 ("git" ,git)))
18640 (arguments
18641 `(#:tests? #t
18642 #:test-command '("buttercup" "-L" ".")))
18643 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
18644 (synopsis "Emacs Minor mode to automatically commit and push")
18645 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
18646 tries to commit changes to a file after every save.
18647
18648 When @code{gac-automatically-push-p} is non-nil, it also tries to push to the
18649 current upstream.")
18650 (license license:gpl3+)))
18651
18652 (define-public emacs-scroll-on-drag
18653 (let ((commit "888abd04c34753b1fc4b2fe541bc004ebec5c996")
18654 (revision "1"))
18655 (package
18656 (name "emacs-scroll-on-drag")
18657 (version (git-version "0.1" revision commit))
18658 (source
18659 (origin
18660 (method git-fetch)
18661 (uri (git-reference
18662 (url "https://gitlab.com/ideasman42/emacs-scroll-on-drag.git")
18663 (commit commit)))
18664 (file-name (git-file-name name version))
18665 (sha256
18666 (base32
18667 "1si4hdqa3jw1inbyh3wb3i5i9grbms1nwky3vyk9zg7iznwm8a9p"))))
18668 (build-system emacs-build-system)
18669 (home-page "https://gitlab.com/ideasman42/emacs-scroll-on-drag")
18670 (synopsis "Interactive scrolling")
18671 (description "This package permits scrolling at increasing speeds based
18672 on drag distance.")
18673 (license license:gpl3+))))
18674
18675 (define-public emacs-company-restclient
18676 (package
18677 (name "emacs-company-restclient")
18678 (version "0.3.0")
18679 (source
18680 (origin
18681 (method git-fetch)
18682 (uri (git-reference
18683 (url "https://github.com/iquiw/company-restclient")
18684 (commit (string-append "v" version))))
18685 (file-name (git-file-name name version))
18686 (sha256
18687 (base32 "0yp0hlrgcr6yy1xkjvfckys2k24x9xg7y6336ma61bdwn5lpv0x0"))))
18688 (build-system emacs-build-system)
18689 (propagated-inputs
18690 `(("emacs-company" ,emacs-company)
18691 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
18692 ("emacs-restclient" ,emacs-restclient)))
18693 (home-page "https://github.com/iquiw/company-restclient")
18694 (synopsis "Company-mode completion back-end for restclient-mode")
18695 (description "@code{company-mode} back-end for
18696 @code{restclient-mode}.
18697
18698 It provides auto-completion for HTTP methods and headers in
18699 @code{restclient-mode}. Completion source is given by
18700 @code{know-your-http-well}.")
18701 (license license:gpl3+)))
18702
18703 (define-public emacs-noflet
18704 (let ((version "20170629")
18705 (revision "1")
18706 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
18707 (package
18708 (name "emacs-noflet")
18709 (version (git-version version revision commit))
18710 (source
18711 (origin
18712 (method git-fetch)
18713 (uri (git-reference
18714 (url "https://github.com/nicferrier/emacs-noflet")
18715 (commit commit)))
18716 (file-name (git-file-name name version))
18717 (sha256
18718 (base32
18719 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
18720 (build-system emacs-build-system)
18721 (arguments
18722 `(#:phases
18723 (modify-phases %standard-phases
18724 (add-after 'unpack 'require-dash
18725 ;; noflet.el uses -map from dash, but (require 'dash) is
18726 ;; missing. So, add it.
18727 (lambda _
18728 (substitute* "noflet.el"
18729 ((";;; Code:") ";;; Code:\n(require 'dash)"))
18730 #t)))))
18731 (propagated-inputs
18732 `(("emacs-dash" ,emacs-dash)))
18733 (home-page "https://github.com/nicferrier/emacs-noflet")
18734 (synopsis "Locally override functions")
18735 (description "@code{emacs-noflet} lets you locally override functions,
18736 in the manner of @command{flet}, but with access to the original function
18737 through the symbol: @command{this-fn}.")
18738 (license license:gpl3+))))
18739
18740 (define-public emacs-dumb-jump
18741 (package
18742 (name "emacs-dumb-jump")
18743 (version "0.5.3")
18744 (source
18745 (origin
18746 (method git-fetch)
18747 (uri (git-reference
18748 (url "https://github.com/jacktasia/dumb-jump")
18749 (commit (string-append "v" version))))
18750 (file-name (git-file-name name version))
18751 (sha256
18752 (base32 "1njf60264snhxrd36m4z687lqfkis0p9mmrr7cf1c8l0lfdvawxi"))))
18753 (build-system emacs-build-system)
18754 (arguments
18755 `(#:tests? #f ; FIXME: Tests freeze when run.
18756 #:test-command '("ert-runner")
18757 #:phases
18758 (modify-phases %standard-phases
18759 (add-after 'unpack 'set-shell
18760 (lambda _
18761 ;; Setting the SHELL environment variable is required for the
18762 ;; tests to find sh.
18763 (setenv "SHELL" (which "sh"))
18764 #t)))))
18765 (native-inputs
18766 `(("emacs-el-mock" ,emacs-el-mock)
18767 ("emacs-noflet" ,emacs-noflet)
18768 ("emacs-undercover" ,emacs-undercover)
18769 ("ert-runner" ,emacs-ert-runner)))
18770 (propagated-inputs
18771 `(("emacs-f" ,emacs-f)
18772 ("emacs-popup" ,emacs-popup)))
18773 (home-page "https://github.com/jacktasia/dumb-jump")
18774 (synopsis "Jump to definition for multiple languages without configuration")
18775 (description "Dumb Jump is an Emacs \"jump to definition\" package with
18776 support for multiple programming languages that favors \"just working\" over
18777 speed or accuracy. This means minimal --- and ideally zero --- configuration
18778 with absolutely no stored indexes (tags) or persistent background processes.
18779 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
18780 @command{rg} installed.")
18781 (license license:gpl3+)))
18782
18783 (define-public emacs-dts-mode
18784 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
18785 (revision "1"))
18786 (package
18787 (name "emacs-dts-mode")
18788 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
18789 (source
18790 (origin
18791 (method git-fetch)
18792 (uri (git-reference
18793 (url "https://github.com/bgamari/dts-mode")
18794 (commit commit)))
18795 (file-name (git-file-name name version))
18796 (sha256
18797 (base32
18798 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
18799 (build-system emacs-build-system)
18800 (home-page "https://github.com/bgamari/dts-mode")
18801 (synopsis "Emacs minor mode for editing device tree files")
18802 (description
18803 "This package provides an Emacs minor mode for highlighting
18804 device tree files.")
18805 (license license:gpl3+))))
18806
18807 (define-public emacs-daemons
18808 (package
18809 (name "emacs-daemons")
18810 (version "2.0.0")
18811 (source
18812 (origin
18813 (method git-fetch)
18814 (uri (git-reference
18815 (url "https://github.com/cbowdon/daemons.el")
18816 (commit version)))
18817 (file-name (git-file-name name version))
18818 (sha256
18819 (base32
18820 "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
18821 (build-system emacs-build-system)
18822 (home-page "https://github.com/cbowdon/daemons.el")
18823 (synopsis "Emacs UI for managing init system services")
18824 (description
18825 "This is an Emacs mode to give you a UI for managing init system
18826 daemons (services) for those getting tired of typing out @code{sudo service
18827 my_thing reload} all the time. It offers a consistent UI over different init
18828 systems.")
18829 (license license:gpl3+)))
18830
18831 (define-public emacs-isearch+
18832 (let ((commit "7c251b91a67bf914066e23e269ba52fda5b45f5f")
18833 (revision "2"))
18834 (package
18835 (name "emacs-isearch+")
18836 (version (git-version "0" revision commit))
18837 (source
18838 (origin
18839 (method git-fetch)
18840 (uri (git-reference
18841 (url "https://github.com/emacsmirror/isearch-plus")
18842 (commit commit)))
18843 (file-name (git-file-name name version))
18844 (sha256
18845 (base32
18846 "1w2799714jcdycjlxgs8lpmmz6dmzvcvqy8xwxhvmgpb60g4f2yr"))))
18847 (build-system emacs-build-system)
18848 (home-page "https://www.emacswiki.org/emacs/isearch+.el")
18849 (synopsis "Extensions to @code{isearch.el}")
18850 (description "This package extends @code{isearch} with advice, dynamic
18851 filters, highlighting of regexp group levels, and more.")
18852 (license license:gpl2+))))
18853
18854 (define-public emacs-eshell-bookmark
18855 (package
18856 (name "emacs-eshell-bookmark")
18857 (version "2.0.0")
18858 (source
18859 (origin
18860 (method git-fetch)
18861 (uri (git-reference
18862 (url "https://github.com/Fuco1/eshell-bookmark")
18863 (commit version)))
18864 (file-name (git-file-name name version))
18865 (sha256
18866 (base32
18867 "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"))))
18868 (build-system emacs-build-system)
18869 (home-page "https://github.com/Fuco1/eshell-bookmark")
18870 (synopsis "Provide @file{bookmark.el} integration for @code{eshell}")
18871 (description
18872 "This package allows for bookmarking @code{eshell} buffers. Upon
18873 visiting the bookmark, a new @code{eshell} session will be opened in the
18874 appropriate directory if no @code{eshell} session is active.")
18875 (license license:gpl3+)))
18876
18877 (define-public emacs-eshell-syntax-highlighting
18878 (package
18879 (name "emacs-eshell-syntax-highlighting")
18880 (version "0.3")
18881 (source
18882 (origin
18883 (method git-fetch)
18884 (uri (git-reference
18885 (url "https://github.com/akreisher/eshell-syntax-highlighting")
18886 (commit (string-append "v" version))))
18887 (file-name (git-file-name name version))
18888 (sha256
18889 (base32 "1fb9aa85a3hx1rcmv71j6sc3y278452p1y4dabpwy07avb6apd0p"))))
18890 (build-system emacs-build-system)
18891 (home-page "https://github.com/akreisher/eshell-syntax-highlighting")
18892 (synopsis "Add syntax highlighting to Eshell")
18893 (description
18894 "This package highlights user commands at the Eshell interactive prompt
18895 to provide feedback on the validity of commands and syntax.")
18896 (license license:gpl3+)))
18897
18898 (define-public emacs-eshell-z
18899 (package
18900 (name "emacs-eshell-z")
18901 (version "0.4")
18902 (source
18903 (origin
18904 (method git-fetch)
18905 (uri (git-reference
18906 (url "https://github.com/xuchunyang/eshell-z")
18907 (commit (string-append "v" version))))
18908 (file-name (git-file-name name version))
18909 (sha256
18910 (base32
18911 "13dwaq8q23rwmrkpy3gvf7aswrkk6b9ak5221xl7n0bld4wdhq3j"))))
18912 (build-system emacs-build-system)
18913 (home-page "https://github.com/xuchunyang/eshell-z")
18914 (synopsis "Quick navigation to frequently visited directories")
18915 (description
18916 "This package is a port of @code{z}, and keeps track of visited directories
18917 and commands invoked within them in order to enable navigation via input of
18918 matching regexps.")
18919 (license license:gpl3+)))
18920
18921 (define-public emacs-esh-autosuggest
18922 (package
18923 (name "emacs-esh-autosuggest")
18924 (version "2.0.1")
18925 (source
18926 (origin
18927 (method git-fetch)
18928 (uri (git-reference
18929 (url "https://github.com/dieggsy/esh-autosuggest")
18930 (commit version)))
18931 (file-name (git-file-name name version))
18932 (sha256
18933 (base32
18934 "0l2nnlr3b6df1xn0qjf5d5ryy1wcs1jczyfy795vsasd5gm3g0xh"))))
18935 (build-system emacs-build-system)
18936 (propagated-inputs `(("emacs-company" ,emacs-company)))
18937 (home-page "https://github.com/dieggsy/esh-autosuggest")
18938 (synopsis "Fish-like autosuggestions in Eshell")
18939 (description
18940 "This package assumes you use something other than company for eshell
18941 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
18942 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
18943 for history autosuggestions.
18944
18945 Unless you're using @code{use-package}'s hook keyword, you can enable the
18946 autosuggestions with:
18947 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
18948 (license license:gpl3+)))
18949
18950 (define-public emacs-desktop-environment
18951 (package
18952 (name "emacs-desktop-environment")
18953 (version "0.4.0")
18954 (source
18955 (origin
18956 (method git-fetch)
18957 (uri (git-reference
18958 (url "https://gitlab.petton.fr/DamienCassou/desktop-environment")
18959 (commit (string-append "v" version))))
18960 (file-name (git-file-name name version))
18961 (sha256
18962 (base32
18963 "0s33jncjg8c2xlr90qjk1ishwmwxm9yg0z6n3kzilawcilpxidsh"))))
18964 (build-system emacs-build-system)
18965 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
18966 (synopsis "Control your GNU/Linux desktop environment from Emacs")
18967 (description
18968 "This package helps you control your GNU/Linux desktop from Emacs.
18969 With @code{desktop-environment}, you can control the brightness and volume as
18970 well as take screenshots and lock your screen. The package depends on the
18971 availability of shell commands to do the hard work for us. These commands can
18972 be changed by customizing the appropriate variables.")
18973 (license license:gpl3+)))
18974
18975 (define-public emacs-org-caldav
18976 (let ((commit "8569941a0a5a9393ba51afc8923fd7b77b73fa7a")
18977 (revision "2"))
18978 (package
18979 (name "emacs-org-caldav")
18980 (version (git-version "0.0.0" revision commit))
18981 (source
18982 (origin
18983 (method git-fetch)
18984 (uri (git-reference
18985 (url "https://github.com/dengste/org-caldav")
18986 (commit commit)))
18987 (file-name (git-file-name name version))
18988 (sha256
18989 (base32 "05lgxqaffnqaqnzl24frafdkskran88hl2ml05qvyjhs4jjbgw9g"))))
18990 (build-system emacs-build-system)
18991 (arguments
18992 ;; Tests require to have two specific calendars on a test server.
18993 `(#:exclude '("^org-caldav-testsuite\\.el")))
18994 (propagated-inputs
18995 `(("emacs-org" ,emacs-org)))
18996 (home-page "https://github.com/dengste/org-caldav")
18997 (synopsis "Sync Org files with external calendars via the CalDAV protocol")
18998 (description
18999 "Org CalDAV synchronizes events between Org files and a CalDAV
19000 calendar.")
19001 (license license:gpl3+))))
19002
19003 (define-public emacs-zotxt
19004 (package
19005 (name "emacs-zotxt")
19006 (version "5.0.5")
19007 (source
19008 (origin
19009 (method git-fetch)
19010 (uri (git-reference
19011 (url "https://github.com/egh/zotxt-emacs")
19012 (commit (string-append "v" version))))
19013 (file-name (git-file-name name version))
19014 (sha256
19015 (base32 "1zr67h0w49rsi84mgf6jdili28h8782q6vjl8za0iq1hcx9zqxyf"))))
19016 (build-system emacs-build-system)
19017 (propagated-inputs
19018 `(("emacs-deferred" ,emacs-deferred)
19019 ("emacs-request" ,emacs-request)))
19020 (home-page "https://github.com/egh/zotxt-emacs")
19021 (synopsis "Integrate Emacs with Zotero")
19022 (description "This package provides two integration features between Emacs
19023 and the Zotero research assistant: Insertion of links to Zotero items into an
19024 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
19025 (license license:gpl3+)))
19026
19027 (define-public emacs-evil-magit
19028 (let ((commit "253c644807013fe92429acdef418748794b8f254")
19029 (revision "4"))
19030 (package
19031 (name "emacs-evil-magit")
19032 (version (git-version "0.4.2" revision commit))
19033 (source
19034 (origin
19035 (method git-fetch)
19036 (uri (git-reference
19037 (url "https://github.com/emacs-evil/evil-magit")
19038 (commit commit)))
19039 (file-name (git-file-name name version))
19040 (sha256
19041 (base32
19042 "08mh7phxsdb9w4dfs0pmr4l4fdzzr2rm88z2s8karfi5j5ik2ag5"))))
19043 (build-system emacs-build-system)
19044 (propagated-inputs
19045 `(("emacs-evil" ,emacs-evil)
19046 ("magit" ,emacs-magit)))
19047 (arguments
19048 `(#:tests? #t
19049 #:test-command '("emacs" "-Q" "-batch"
19050 "-L" "."
19051 "-l" "evil-magit-tests"
19052 "-f" "ert-run-tests-batch-and-exit")))
19053 (home-page
19054 "https://github.com/emacs-evil/evil-magit")
19055 (synopsis "Evil-based key bindings for Magit")
19056 (description
19057 "This Emacs library configures Magit and Evil to play well with each other.
19058 For some background see @url{https://github.com/magit/evil-magit/issues/1}.
19059 See the README at @url{https://github.com/justbur/evil-magit} for a table
19060 describing the key binding changes.")
19061 (license license:gpl3+))))
19062
19063 (define-public emacs-evil-multiedit
19064 (package
19065 (name "emacs-evil-multiedit")
19066 (version "1.3.9")
19067 (source
19068 (origin
19069 (method git-fetch)
19070 (uri (git-reference
19071 (url "https://github.com/hlissner/evil-multiedit")
19072 (commit (string-append "v" version))))
19073 (file-name (git-file-name name version))
19074 (sha256
19075 (base32
19076 "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"))))
19077 (build-system emacs-build-system)
19078 (propagated-inputs
19079 `(("emacs-evil" ,emacs-evil)
19080 ("emacs-iedit" ,emacs-iedit)))
19081 (native-inputs
19082 `(("emacs-ert-runner" ,emacs-ert-runner)))
19083 (arguments
19084 `(#:phases
19085 (modify-phases %standard-phases
19086 (add-before 'check 'fix-makefile
19087 (lambda _
19088 (substitute* "Makefile"
19089 (("@cask exec ") ""))
19090 #t)))
19091 #:tests? #t
19092 #:test-command '("make" "test")))
19093 (home-page
19094 "https://github.com/hlissner/evil-multiedit")
19095 (synopsis "Multiple cursors for Evil mode")
19096 (description
19097 "This plugin was an answer to the lack of proper multiple cursor support
19098 in Emacs+Evil. It allows you to select and edit matches interactively,
19099 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
19100 defaults.")
19101 (license license:gpl3+)))
19102
19103 (define-public emacs-evil-mc
19104 (let ((commit "1cabb869fe70cef49f7dc06f015c3ade1a969c8c")
19105 (revision "2"))
19106 (package
19107 (name "emacs-evil-mc")
19108 (version (git-version "0.0.3" revision commit))
19109 (source
19110 (origin
19111 (method git-fetch)
19112 (uri (git-reference
19113 (url "https://github.com/gabesoft/evil-mc")
19114 (commit commit)))
19115 (file-name (git-file-name name version))
19116 (sha256
19117 (base32 "0p83p90faq1p02lmsfs7zrnky3cyzgy8z4m83a81r9kakjzhkrnb"))))
19118 (build-system emacs-build-system)
19119 (propagated-inputs
19120 `(("emacs-evil" ,emacs-evil)))
19121 (native-inputs
19122 `(("emacs-espuds" ,emacs-espuds)))
19123 (home-page "https://github.com/gabesoft/evil-mc")
19124 (synopsis "Interactive search compatible with @code{multiple-cursors}")
19125 (description "This package can be used with @code{multiple-cursors} to
19126 provide an incremental search that moves all fake cursors in sync.")
19127 (license license:expat))))
19128
19129 (define-public emacs-evil-org
19130 (let ((commit "9d4be14118bf27094a30dbff349b815f098aacbf"))
19131 (package
19132 (name "emacs-evil-org")
19133 (version (git-version "1.0.2" "1" commit))
19134 (source
19135 (origin
19136 (method git-fetch)
19137 (uri (git-reference
19138 (url "https://github.com/Somelauw/evil-org-mode")
19139 (commit commit)))
19140 (file-name (git-file-name name version))
19141 (sha256
19142 (base32
19143 "1fxxfkinb0gq4p5b686r7z4jrkv98zfgh5z889zkjacncv8ibswn"))))
19144 (build-system emacs-build-system)
19145 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
19146 (home-page
19147 "https://github.com/Somelauw/evil-org-mode")
19148 (synopsis "Evil keybindings for Org mode")
19149 (description
19150 "This package adds supplemental Evil mode key-bindings to Emacs
19151 Org-mode. It features:
19152 @itemize
19153 @item normal, visual and insert mode bindings;
19154 @item key bindings organised in key themes;
19155 @item operators like > and < to work on headings;
19156 @item text objects;
19157 @item table support;
19158 @item calendar (date selection) support;
19159 @item agenda support.
19160 @end itemize\n")
19161 (license license:gpl3+))))
19162
19163 (define-public emacs-debpaste
19164 (package
19165 (name "emacs-debpaste")
19166 (version "0.1.5")
19167 (home-page "https://github.com/alezost/debpaste.el")
19168 (source
19169 (origin
19170 (method git-fetch)
19171 (uri (git-reference (url home-page)
19172 (commit (string-append "v" version))))
19173 (file-name (git-file-name name version))
19174 (sha256
19175 (base32
19176 "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
19177 (build-system emacs-build-system)
19178 (propagated-inputs
19179 `(("emacs-xml-rpc" ,emacs-xml-rpc)))
19180 (synopsis "Manipulate pastes from the Debian Pastezone")
19181 (description "Debpaste is an Emacs interface for the Debian Pastezone,
19182 allowing you to receive, post, and delete pastes. It communicates with the
19183 server using XML-RPC.")
19184 (license license:gpl3+)))
19185
19186 (define-public emacs-xml-rpc
19187 (package
19188 (name "emacs-xml-rpc")
19189 (version "1.6.15")
19190 (source
19191 (origin
19192 (method git-fetch)
19193 (uri (git-reference
19194 (url "https://github.com/hexmode/xml-rpc-el")
19195 (commit version)))
19196 (file-name (git-file-name name version))
19197 (sha256
19198 (base32 "07vgwnk96i1vpsv2glg6kbkamjcs72xiznsa6xk7nl0nranzr3hd"))))
19199 (build-system emacs-build-system)
19200 (home-page "https://github.com/hexmode/xml-rpc-el")
19201 (synopsis "XML-RPC client for Emacs")
19202 (description "This package provides an XML-RPC client for Emacs capable
19203 of both synchronous and asynchronous method calls using the @code{url}
19204 package's async retrieval functionality. @file{xml-rpc.el} represents XML-RPC
19205 datatypes as Lisp values, automatically converting to and from the XML
19206 datastructures as needed, both for method parameters and return values, making
19207 using XML-RPC methods fairly transparent to the Lisp code.")
19208 (license license:gpl3+)))
19209
19210 (define-public emacs-xpm
19211 (package
19212 (name "emacs-xpm")
19213 (version "1.0.4")
19214 (source
19215 (origin
19216 (method url-fetch)
19217 (uri (string-append "https://elpa.gnu.org/packages/xpm-"
19218 version ".tar"))
19219 (sha256
19220 (base32
19221 "075miyashh9cm3b0gk6ngld3rm8bfgnh4qxnhxmmvjgzf6a64grh"))))
19222 (build-system emacs-build-system)
19223 (home-page "https://elpa.gnu.org/packages/xpm.html")
19224 (synopsis "XPM image editing mode for Emacs")
19225 (description "This Emacs package makes editing XPM images easy (and maybe
19226 fun). Editing is done directly on the (textual) image format, for maximal
19227 cohesion with the Emacs Way.")
19228 (license license:gpl3+)))
19229
19230 (define-public emacs-fish-completion
19231 (package
19232 (name "emacs-fish-completion")
19233 (version "1.2")
19234 (source
19235 (origin
19236 (method git-fetch)
19237 (uri (git-reference
19238 (url "https://gitlab.com/Ambrevar/emacs-fish-completion.git")
19239 (commit version)))
19240 (file-name (git-file-name name version))
19241 (sha256
19242 (base32
19243 "17lqip1i1rrsvxzz4bx9rqf1fvwd3hriwg3sj6qxmfc8pylnp37q"))))
19244 (build-system emacs-build-system)
19245 (inputs `(("fish" ,fish)))
19246 (arguments
19247 `(#:phases
19248 (modify-phases %standard-phases
19249 (add-after 'unpack 'configure
19250 (lambda* (#:key inputs outputs #:allow-other-keys)
19251 (let ((fish (assoc-ref inputs "fish")))
19252 ;; Specify the absolute file names of the various
19253 ;; programs so that everything works out-of-the-box.
19254 (make-file-writable "fish-completion.el")
19255 (emacs-substitute-variables
19256 "fish-completion.el"
19257 ("fish-completion-command"
19258 (string-append fish "/bin/fish")))))))))
19259 (home-page
19260 "https://gitlab.com/Ambrevar/emacs-fish-completion")
19261 (synopsis "Fish completion for Emacs pcomplete")
19262 (description
19263 "This package provides completion for the Fish shell to pcomplete (used
19264 by shell and Eshell). You can set it up globally with:
19265
19266 @example
19267 (when (and (executable-find \"fish\")
19268 (require 'fish-completion nil t))
19269 (global-fish-completion-mode))
19270 @end example
19271
19272 Alternatively, you can call the @code{fish-completion-mode} manually or in
19273 shell/Eshell mode hook.
19274
19275 The package @code{emacs-bash-completion} is an optional dependency: if available,
19276 @code{fish-completion-complete} can be configured to fall back on bash to further
19277 try completing. See @code{fish-completion-fallback-on-bash-p}.")
19278 (license license:gpl3+)))
19279
19280 (define-public emacs-gif-screencast
19281 (package
19282 (name "emacs-gif-screencast")
19283 (version "1.2")
19284 (source
19285 (origin
19286 (method git-fetch)
19287 (uri (git-reference
19288 (url "https://gitlab.com/Ambrevar/emacs-gif-screencast.git")
19289 (commit version)))
19290 (file-name (git-file-name name version))
19291 (sha256
19292 (base32
19293 "1yf6yipvhhna29mzaan5vb3d5qvbrkp2awr5diyf381mvxgk8akh"))))
19294 (build-system emacs-build-system)
19295 (inputs
19296 `(("scrot" ,scrot)
19297 ("imagemagick" ,imagemagick)
19298 ("gifsicle" ,gifsicle)))
19299 (arguments
19300 `(#:phases
19301 (modify-phases %standard-phases
19302 (add-after 'unpack 'configure
19303 (lambda* (#:key inputs outputs #:allow-other-keys)
19304 (let ((scrot (assoc-ref inputs "scrot"))
19305 (imagemagick (assoc-ref inputs "imagemagick"))
19306 (gifsicle (assoc-ref inputs "gifsicle")))
19307 (make-file-writable "gif-screencast.el")
19308 ;; Specify the absolute file names of the various
19309 ;; programs so that everything works out-of-the-box.
19310 (emacs-substitute-variables
19311 "gif-screencast.el"
19312 ("gif-screencast-program"
19313 (string-append scrot "/bin/scrot"))
19314 ("gif-screencast-convert-program"
19315 (string-append imagemagick "/bin/convert"))
19316 ("gif-screencast-cropping-program"
19317 (string-append imagemagick "/bin/mogrify"))
19318 ("gif-screencast-optimize-program"
19319 (string-append gifsicle "/bin/gifsicle")))))))))
19320 (home-page
19321 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
19322 (synopsis "One-frame-per-action GIF recording")
19323 (description
19324 "Call @code{gif-screencast} to start a recording.
19325 A screenshot is taken for every user action. Call
19326 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
19327 the GIF result.")
19328 (license license:gpl3+)))
19329
19330 (define-public emacs-google-translate
19331 (package
19332 (name "emacs-google-translate")
19333 (version "0.12.0")
19334 (source
19335 (origin
19336 (method git-fetch)
19337 (uri (git-reference
19338 (url "https://github.com/atykhonov/google-translate/")
19339 (commit (string-append "v" version))))
19340 (file-name (git-file-name name version))
19341 (sha256
19342 (base32
19343 "0rwpij2bm8d4jq2w5snkp88mfryplw8166dsrjm407n2p6xr48zx"))))
19344 (build-system emacs-build-system)
19345 (home-page "https://github.com/atykhonov/google-translate")
19346 (synopsis "Emacs interface to Google Translate")
19347 (description
19348 "This package provides an Emacs interface to the Google Translate
19349 on-line service.")
19350 (license license:gpl3+)))
19351
19352 (define-public emacs-helm-company
19353 (package
19354 (name "emacs-helm-company")
19355 (version "0.2.5")
19356 (source
19357 (origin
19358 (method git-fetch)
19359 (uri (git-reference
19360 (url "https://github.com/Sodel-the-Vociferous/helm-company")
19361 (commit (string-append "v" version))))
19362 (file-name (git-file-name name version))
19363 (sha256
19364 (base32
19365 "1ci37w6ahnqrfpb284gjvxmimlf61sdxb9k192yy9q983cksv2hx"))))
19366 (build-system emacs-build-system)
19367 (propagated-inputs
19368 `(("emacs-helm" ,emacs-helm)
19369 ("emacs-company" ,emacs-company)))
19370 (native-inputs
19371 `(("emacs-ert-runner" ,emacs-ert-runner)))
19372 (arguments
19373 `(#:tests? #t
19374 #:test-command '("ert-runner")))
19375 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
19376 (synopsis "Helm interface for company-mode")
19377 (description
19378 "This is a Helm interface to company-mode, a text completion
19379 framework.")
19380 (license license:gpl3+)))
19381
19382 (define-public emacs-helm-descbinds
19383 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
19384 (package
19385 (name "emacs-helm-descbinds")
19386 (version (git-version "1.13" "1" commit))
19387 (source
19388 (origin
19389 (method git-fetch)
19390 (uri (git-reference
19391 (url "https://github.com/emacs-helm/helm-descbinds")
19392 (commit commit)))
19393 (file-name (git-file-name name version))
19394 (sha256
19395 (base32
19396 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
19397 (build-system emacs-build-system)
19398 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
19399 (home-page "https://github.com/emacs-helm/helm-descbinds")
19400 (synopsis "Convenient @code{describe-bindings} with Helm")
19401 (description
19402 "This package is a replacement of @code{describe-bindings} for Helm.
19403 @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
19404 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
19405 @code{helm-descbinds}. The bindings are presented in a similar way as
19406 @code{describe-bindings} does, but you can use completion to find the command
19407 you searched for and execute it, or view its documentation.")
19408 (license license:gpl3+))))
19409
19410 (define-public emacs-helm-emms
19411 (let ((commit "37e5aa029abfa5a5c48636314de8157142944fa2"))
19412 (package
19413 (name "emacs-helm-emms")
19414 (version (git-version "1.3" "3" commit))
19415 (source
19416 (origin
19417 (method git-fetch)
19418 (uri (git-reference
19419 (url "https://github.com/emacs-helm/helm-emms")
19420 (commit commit)))
19421 (file-name (git-file-name name version))
19422 (sha256
19423 (base32
19424 "0r1ai6xhzayyik30w2sx9n62bxxwm12vfmjspv0daqif9az8y3vg"))))
19425 (build-system emacs-build-system)
19426 (propagated-inputs
19427 `(("emacs-helm" ,emacs-helm)
19428 ("emacs-emms" ,emacs-emms)))
19429 (home-page
19430 "https://github.com/emacs-helm/helm-emms")
19431 (synopsis "Emms for Helm")
19432 (description "Helm interface for Emms to browse all tracks and all folders
19433 from @code{emms-source-file-default-directory}.")
19434 (license license:gpl3+))))
19435
19436 (define-public emacs-helm-exwm
19437 (package
19438 (name "emacs-helm-exwm")
19439 (version "0.0.2")
19440 (source
19441 (origin
19442 (method git-fetch)
19443 (uri (git-reference
19444 (url "https://github.com/emacs-helm/helm-exwm")
19445 (commit version)))
19446 (file-name (git-file-name name version))
19447 (sha256
19448 (base32 "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v"))))
19449 (build-system emacs-build-system)
19450 (propagated-inputs
19451 `(("emacs-helm" ,emacs-helm)
19452 ("emacs-exwm" ,emacs-exwm)))
19453 (home-page
19454 "https://github.com/emacs-helm/helm-exwm")
19455 (synopsis "Helm for EXWM buffers")
19456 (description
19457 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
19458 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
19459 switch between the various windows of one or several specific applications.
19460 See @code{helm-exwm-switch-browser} for an example.")
19461 (license license:gpl3+)))
19462
19463 (define-public emacs-helm-flycheck
19464 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
19465 (package
19466 (name "emacs-helm-flycheck")
19467 (version (git-version "0.4" "1" commit))
19468 (source
19469 (origin
19470 (method git-fetch)
19471 (uri (git-reference
19472 (url "https://github.com/yasuyk/helm-flycheck")
19473 (commit commit)))
19474 (file-name (git-file-name name version))
19475 (sha256
19476 (base32
19477 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
19478 (build-system emacs-build-system)
19479 (propagated-inputs
19480 `(("emacs-dash" ,emacs-dash)
19481 ("emacs-flycheck" ,emacs-flycheck)
19482 ("emacs-helm" ,emacs-helm)))
19483 (home-page "https://github.com/yasuyk/helm-flycheck")
19484 (synopsis "Show Flycheck errors with Helm")
19485 (description
19486 "This integrates Flycheck with Helm.")
19487 (license license:gpl3+))))
19488
19489 (define-public emacs-helm-ls-git
19490 (let ((commit "4da1a53f2f0a078ee2e896a914a1b19c0bf1d5ed"))
19491 (package
19492 (name "emacs-helm-ls-git")
19493 (version (git-version "1.9.1" "2" commit))
19494 (source
19495 (origin
19496 (method git-fetch)
19497 (uri (git-reference
19498 (url "https://github.com/emacs-helm/helm-ls-git")
19499 (commit commit)))
19500 (file-name (git-file-name name version))
19501 (sha256
19502 (base32
19503 "12fi08w20yjsdfkxl1pk9q4w0z9l92va5fa5ghay9w33xlymc8dc"))))
19504 (build-system emacs-build-system)
19505 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
19506 (home-page "https://github.com/emacs-helm/helm-ls-git")
19507 (synopsis "Helm interface for listing the files in a Git repository")
19508 (description
19509 "This package provides a Helm interface for Git files.
19510 @itemize
19511 @item Display the open buffers in project.
19512 @item Display a status source showing state of project (modified files etc.).
19513 @item Display a list of all files in project under git control.
19514 @item Quickly look at diffs of modified files.
19515 @item Allow switching to @code{git status} with your preferred frontend
19516 (vc-dir, Magit,etc.).
19517 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
19518 can use ack-grep instead of grep).
19519 @item Integrate usage of gid from id-utils.
19520 @item Full integration with @code{helm-find-files}, allow you to browse
19521 projects unrelated to current-buffer.
19522 @item In addition, all actions of type files and buffers are provided.
19523 @end itemize\n")
19524 (license license:gpl3+))))
19525
19526 (define-public emacs-helm-mu
19527 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
19528 (package
19529 (name "emacs-helm-mu")
19530 (version (git-version "20180513" "1" commit))
19531 (source
19532 (origin
19533 (method git-fetch)
19534 (uri (git-reference
19535 (url "https://github.com/emacs-helm/helm-mu")
19536 (commit commit)))
19537 (file-name (git-file-name name version))
19538 (sha256
19539 (base32 "1lh0ahxdc5b2z18m9p30gwg8sbg33sjwkjr38p7h5xsm5fm7i0fz"))))
19540 (build-system emacs-build-system)
19541 (propagated-inputs
19542 `(("emacs-helm" ,emacs-helm)
19543 ("mu" ,mu)))
19544 (home-page
19545 "https://github.com/emacs-helm/helm-mu")
19546 (synopsis
19547 "Helm sources for searching emails and contacts")
19548 (description
19549 "Helm sources for searching emails and contacts using @code{mu} and
19550 @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
19551 Emacs build on top of mu. Mu is highly efficient making it possible to get
19552 instant results even for huge maildirs. It also provides search operators,
19553 e.g: @code{from:Peter to:Anne flag:attach search term}.")
19554 (license license:gpl3+))))
19555
19556 (define-public emacs-helm-pass
19557 (package
19558 (name "emacs-helm-pass")
19559 (version "0.4")
19560 (source
19561 (origin
19562 (method git-fetch)
19563 (uri (git-reference
19564 (url "https://github.com/emacs-helm/helm-pass")
19565 (commit version)))
19566 (file-name (git-file-name name version))
19567 (sha256
19568 (base32
19569 "19w24isddzamkikq17vbv3y7ha22i7wc09d2nqw1j0qwhrrfkng9"))))
19570 (build-system emacs-build-system)
19571 (propagated-inputs
19572 `(("emacs-helm" ,emacs-helm)
19573 ("emacs-password-store" ,emacs-password-store)))
19574 (home-page "https://github.com/emacs-helm/helm-pass")
19575 (synopsis "Helm interface to pass, the standard Unix password manager")
19576 (description
19577 "Users of @code{helm-pass} may also be interested in functionality
19578 provided by other Emacs packages dealing with pass:
19579 @itemize
19580 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
19581 @item @code{emacs-pass}, a major mode for @code{pass}.
19582 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
19583 @code{pass}, included in Emacs 26+).
19584 @end itemize\n")
19585 (license license:gpl3+)))
19586
19587 (define-public emacs-image+
19588 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
19589 (package
19590 (name "emacs-image+")
19591 (version (git-version "0.6.2" "1" commit))
19592 (source
19593 (origin
19594 (method git-fetch)
19595 (uri (git-reference
19596 (url "https://github.com/mhayashi1120/Emacs-imagex")
19597 (commit commit)))
19598 (file-name (git-file-name name version))
19599 (sha256
19600 (base32
19601 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
19602 (build-system emacs-build-system)
19603 (inputs `(("imagemagick" ,imagemagick)))
19604 (arguments
19605 `(#:phases
19606 (modify-phases %standard-phases
19607 (add-after 'unpack 'configure
19608 (lambda* (#:key inputs outputs #:allow-other-keys)
19609 (let ((imagemagick (assoc-ref inputs "imagemagick")))
19610 ;; Specify the absolute file names of the various
19611 ;; programs so that everything works out-of-the-box.
19612 (chmod "image+.el" #o666)
19613 (emacs-substitute-variables
19614 "image+.el"
19615 ("imagex-convert-command"
19616 (string-append imagemagick "/bin/convert"))
19617 ("imagex-identify-command"
19618 (string-append imagemagick "/bin/identify")))))))))
19619 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
19620 (synopsis "Image manipulation extensions for Emacs")
19621 (description
19622 "Image+ provides keybindings allowing you to zoom in or zoom out of an
19623 image, rotate it, save modified images, and more.")
19624 (license license:gpl3+))))
19625
19626 (define-public emacs-package-lint
19627 ;; The commit below includes a fix for a missing file, "stdlib-changes",
19628 ;; preventing build.
19629 (let ((commit "14c216f4889e71eec2a9da64e36ab8990337e82d")
19630 (version "0.13")
19631 (revision "0"))
19632 (package
19633 (name "emacs-package-lint")
19634 (version (git-version version revision commit))
19635 (source
19636 (origin
19637 (method git-fetch)
19638 (uri (git-reference
19639 (url "https://github.com/purcell/package-lint")
19640 (commit commit)))
19641 (file-name (git-file-name name version))
19642 (sha256
19643 (base32
19644 "1zifiqmpj9j14fnrm3jxapady25m1nlm514nfry0jfrhhikvj6i8"))))
19645 (arguments
19646 '(#:include (cons "^data/" %default-include)))
19647 (build-system emacs-build-system)
19648 (home-page "https://github.com/purcell/package-lint")
19649 (synopsis "Linting library for elisp package authors")
19650 (description
19651 "This provides a list of issues with the Emacs package metadata of a file,
19652 e.g. the package dependencies it requires. See function
19653 @code{package-lint-buffer}. Checks will currently be enabled only if a
19654 \"Package-Requires:\" or \"Package-Version:\" header is present in the
19655 file.")
19656 (license license:gpl3+))))
19657
19658 (define-public emacs-picpocket
19659 (let ((version "40")
19660 (commit "6fd88b8711c4370662c0f9c462170187d092a046"))
19661 (package
19662 (name "emacs-picpocket")
19663 (version version)
19664 (source
19665 (origin
19666 (method git-fetch)
19667 (uri (git-reference
19668 (url "https://github.com/johanclaesson/picpocket")
19669 (commit commit)))
19670 (file-name (git-file-name name version))
19671 (sha256
19672 (base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"))))
19673 (build-system emacs-build-system)
19674 (arguments ; needed for running tests
19675 `(#:tests? #t
19676 #:emacs ,emacs
19677 #:test-command '("emacs" "--batch"
19678 "-l" "picpocket-test.el"
19679 "-f" "ert-run-tests-batch-and-exit")))
19680 (home-page "https://github.com/johanclaesson/picpocket")
19681 (synopsis "Image viewer for Emacs")
19682 (description
19683 "Picpocket is an image viewer for GNU Emacs. It has commands for:
19684
19685 @itemize
19686 @item File operations on the picture files (delete, move, copy, hardlink).
19687 @item Scale and rotate the picture.
19688 @item Associate pictures with tags which are saved to disk.
19689 @item Filter pictures according to tags.
19690 @item Customizing keystrokes for quick tagging and file operations.
19691 @item Undo and browse history of undoable commands.
19692 @end itemize")
19693 (license license:gpl3+))))
19694
19695 (define-public emacs-mu4e-conversation
19696 (let ((commit "98110bb9c300fc9866dee8e0023355f9f79c9b96")
19697 (revision "5"))
19698 (package
19699 (name "emacs-mu4e-conversation")
19700 (version (git-version "0.0.1" revision commit))
19701 (source
19702 (origin
19703 (method git-fetch)
19704 (uri (git-reference
19705 (url "https://gitlab.com/Ambrevar/mu4e-conversation.git")
19706 (commit commit)))
19707 (file-name (git-file-name name version))
19708 (sha256
19709 (base32
19710 "080s96jkcw2p288sp1vgds91rgl693iz6hi2dv56p2ih0nnivwlg"))))
19711 (build-system emacs-build-system)
19712 (propagated-inputs
19713 `(("mu" ,mu)))
19714 (home-page
19715 "https://gitlab.com/Ambrevar/mu4e-conversation")
19716 (synopsis
19717 "Show a complete thread in a single buffer")
19718 (description
19719 "This package offers an alternate view to mu4e's e-mail display. It
19720 shows all e-mails of a thread in a single view, where each correspondent has
19721 their own face. Threads can be displayed linearly (in which case e-mails are
19722 displayed in chronological order) or as an Org document where the node tree
19723 maps the thread tree.")
19724 (license license:gpl3+))))
19725
19726 (define-public emacs-pinentry
19727 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
19728 (revision "1"))
19729 (package
19730 (name "emacs-pinentry")
19731 (version (git-version "0.1" revision commit))
19732 (source
19733 (origin
19734 (method url-fetch)
19735 (uri (string-append
19736 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
19737 "/packages/pinentry/pinentry.el?id=" commit))
19738 (file-name (string-append "pinentry.el"))
19739 (sha256
19740 (base32
19741 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
19742 (build-system emacs-build-system)
19743 (propagated-inputs
19744 `(("gnupg" ,gnupg)))
19745 (home-page "https://elpa.gnu.org/packages/pinentry.html")
19746 (synopsis "GnuPG Pinentry server implementation")
19747 (description
19748 "This package allows GnuPG passphrase to be prompted through the
19749 minibuffer instead of graphical dialog.
19750
19751 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
19752 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
19753 server with @code{M-x pinentry-start}.")
19754 (license license:gpl3+))))
19755
19756 (define-public emacs-so-long
19757 (let ((commit "cfae473b1bf65f78ddb015159e667ec0103d881c")
19758 (revision "2"))
19759 (package
19760 (name "emacs-so-long")
19761 (version (git-version "1.0" revision commit))
19762 (source
19763 (origin
19764 (method git-fetch)
19765 (uri (git-reference
19766 (url "https://git.savannah.gnu.org/git/so-long.git")
19767 (commit commit)))
19768 (file-name (git-file-name name version))
19769 (sha256
19770 (base32
19771 "0g943n5cl9lz5s7hszg6yvp10xd1xvd8mfgxyg0yckmp8fqkswin"))))
19772 (build-system emacs-build-system)
19773 (home-page "https://www.emacswiki.org/emacs/SoLong")
19774 (synopsis "Improve performance in files with long lines")
19775 (description "This package improves the performance of Emacs when
19776 viewing files with long lines. It is included as standard with Emacs 27 or
19777 later.")
19778 (license license:gpl3+))))
19779
19780 (define-public emacs-github-review
19781 (let ((commit "a13a3b4f1b6114a32af843971a145ab880f51232")
19782 (revision "2"))
19783 (package
19784 (name "emacs-github-review")
19785 (version (git-version "0.1" revision commit))
19786 (source
19787 (origin
19788 (method git-fetch)
19789 (uri (git-reference
19790 (url "https://github.com/charignon/github-review")
19791 (commit commit)))
19792 (file-name (git-file-name name version))
19793 (sha256
19794 (base32
19795 "0injfpxzgfhmqalba845j5l5cdcxxqz43knhxwinf36g52nfabl0"))))
19796 (build-system emacs-build-system)
19797 (inputs
19798 `(("emacs-dash" ,emacs-dash)
19799 ("emacs-s" ,emacs-s)
19800 ("emacs-ghub" ,emacs-ghub)))
19801 (native-inputs
19802 `(("emacs-buttercup" ,emacs-buttercup)
19803 ("emacs-undercover" ,emacs-undercover)))
19804 (arguments
19805 `(#:tests? #t
19806 #:test-command '("buttercup" "-L" "test/github-review-test.el")))
19807 (home-page "https://github.com/charignon/github-review")
19808 (synopsis "Review GitHub pull requests within Emacs")
19809 (description "This package provides commands to pull in, comment on, and
19810 accept and reject GitHub pull requests.")
19811 (license license:gpl3+))))
19812
19813 (define-public emacs-deadgrep
19814 (let ((commit "7e50e71c6ff4e17dded43e0836dae4e5ec020fcf")
19815 (revision "1"))
19816 (package
19817 (name "emacs-deadgrep")
19818 (version (git-version "0.10" revision commit))
19819 (source
19820 (origin
19821 (method git-fetch)
19822 (uri (git-reference
19823 (url "https://github.com/Wilfred/deadgrep")
19824 (commit commit)))
19825 (file-name (git-file-name name version))
19826 (sha256
19827 (base32
19828 "1vjhrq02l8gvdn2haygzq7277hnhjchs9xrfpcnh76gqip200gx4"))))
19829 (build-system emacs-build-system)
19830 (propagated-inputs
19831 `(("emacs-dash" ,emacs-dash)
19832 ("emacs-s" ,emacs-s)
19833 ("emacs-spinner" ,emacs-spinner)))
19834 (home-page "https://github.com/Wilfred/deadgrep")
19835 (synopsis "Frontend for @code{ripgrep}")
19836 (description "This package provides an Emacs interface for performing
19837 searches with @code{ripgrep}.")
19838 (license license:gpl3+))))
19839
19840 (define-public emacs-focus
19841 (let ((commit "5f3f20e7f22fb9fd7c48abce8bd38061d97e4bc0")
19842 (version "1.0.0")
19843 (revision "1"))
19844 (package
19845 (name "emacs-focus")
19846 (version (git-version version revision commit))
19847 (source
19848 (origin
19849 (method git-fetch)
19850 (uri (git-reference
19851 (url "https://github.com/larstvei/Focus")
19852 (commit commit)))
19853 (file-name (git-file-name name version))
19854 (sha256
19855 (base32
19856 "0a55i4bychfnnzjg67a9h4j130hchcg44446dwwx1l1h48i692dw"))))
19857 (build-system emacs-build-system)
19858 (home-page "https://github.com/larstvei/Focus")
19859 (synopsis "Minor mode for focusing in on relevant text")
19860 (description "This package provides a minor mode that dims the color of
19861 text in neighboring sections.")
19862 (license license:gpl3+))))
19863
19864 (define-public emacs-pandoc-mode
19865 (package
19866 (name "emacs-pandoc-mode")
19867 (version "2.30.1")
19868 (source
19869 (origin
19870 (method git-fetch)
19871 (uri (git-reference
19872 (url "https://github.com/joostkremers/pandoc-mode")
19873 (commit version)))
19874 (file-name (git-file-name name version))
19875 (sha256
19876 (base32
19877 "1k31pkvd9m798i6phcr0y3wd34fgq6ii41hx3lszmikvxb1yvm2y"))))
19878 (build-system emacs-build-system)
19879 (propagated-inputs
19880 `(("emacs-dash" ,emacs-dash)
19881 ("emacs-hydra" ,emacs-hydra)))
19882 (home-page "https://github.com/joostkremers/pandoc-mode")
19883 (synopsis "Minor mode for interacting with Pandoc")
19884 (description "This package provides a Hydra menu for interacting with the
19885 Pandoc, the document-conversion tool.")
19886 (license license:bsd-3)))
19887
19888 (define-public emacs-hlint-refactor-mode
19889 (let ((commit "c4307f86aad6d02e32e9b30cb6edc115584c791c")
19890 (revision "1"))
19891 (package
19892 (name "emacs-hlint-refactor-mode")
19893 (version (git-version "0.0.1" revision commit))
19894 (source
19895 (origin
19896 (method git-fetch)
19897 (uri (git-reference
19898 (url "https://github.com/mpickering/hlint-refactor-mode")
19899 (commit commit)))
19900 (file-name (git-file-name name version))
19901 (sha256
19902 (base32
19903 "1c71w9s34n0i7mm4njchxn6s3ri1y6mh3akgbg4nq41d42h8iap3"))))
19904 (build-system emacs-build-system)
19905 (propagated-inputs
19906 `(("apply-refact" ,apply-refact)
19907 ("hlint" ,hlint)))
19908 (home-page "https://github.com/mpickering/hlint-refactor-mode")
19909 (synopsis "Emacs bindings for @code{hlint}'s @code{--refactor} option")
19910 (description "This package applies refactoring suggestions from
19911 @code{hlint}.")
19912 (license license:expat))))
19913
19914 (define-public emacs-ccls
19915 (let ((commit "675a5704c14a27931e835a431beea3631d92e8e6")
19916 (revision "5"))
19917 (package
19918 (name "emacs-ccls")
19919 (version (git-version "0.1" revision commit))
19920 (source
19921 (origin
19922 (method git-fetch)
19923 (uri (git-reference
19924 (url "https://github.com/MaskRay/emacs-ccls")
19925 (commit commit)))
19926 (file-name (git-file-name name version))
19927 (sha256
19928 (base32
19929 "0l4bhyr9d8ljz1f0cfg1s2cjcmh6fiwbk5mdlvc7rrwz5hxc21is"))))
19930 (build-system emacs-build-system)
19931 (propagated-inputs
19932 `(("ccls" ,ccls)
19933 ("emacs-dash" ,emacs-dash)
19934 ("emacs-lsp-mode" ,emacs-lsp-mode)))
19935 (home-page "https://github.com/MaskRay/emacs-ccls")
19936 (synopsis "Emacs support for the @code{ccls} language server")
19937 (description "This package extends @code{lsp-mode} to work with @code{C}
19938 and @code{C++} files through the @code{ccls} language server.")
19939 (license license:expat))))
19940
19941 (define-public emacs-org-brain
19942 (package
19943 (name "emacs-org-brain")
19944 (version "0.5")
19945 (source
19946 (origin
19947 (method git-fetch)
19948 (uri (git-reference
19949 (url "https://github.com/Kungsgeten/org-brain")
19950 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
19951 (file-name (git-file-name name version))
19952 (sha256
19953 (base32
19954 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
19955 (build-system emacs-build-system)
19956 (home-page "https://github.com/Kungsgeten/org-brain")
19957 (synopsis "Org-mode wiki and concept-mapping for Emacs")
19958 (description "@code{emacs-org-brain} implements a variant of concept
19959 mapping in Emacs, using @code{org-mode}. An org-brain is a network of
19960 org-mode entries, where each entry is a file or a headline, and you can get a
19961 visual overview of the relationships between the entries: parents, children,
19962 siblings and friends. This visual overview can also be used to browse your
19963 entries. You can think of entries as nodes in a mind map, or pages in a
19964 wiki.")
19965 (license license:expat)))
19966
19967 (define-public emacs-recent-addresses
19968 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
19969 (revision "1"))
19970 (package
19971 (name "emacs-recent-addresses")
19972 (home-page "https://nschum.de/src/emacs/recent-addresses/")
19973 (version (git-version "0.1" revision commit))
19974 (source (origin
19975 (method git-fetch)
19976 (uri (git-reference
19977 ;; Note: Use a branch that works with Helm. Submitted
19978 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
19979 (url "https://github.com/civodul/recent-addresses.el")
19980 (commit commit)))
19981 (sha256
19982 (base32
19983 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
19984 (file-name (git-file-name name version))))
19985 (build-system emacs-build-system)
19986 (synopsis "Record recently-used email addressed and auto-complete them")
19987 (description
19988 "@code{recent-addresses} is an Emacs package that allows you to quickly
19989 look up previously used email addresses. It can be used alongside the Gnus
19990 email client.")
19991 (license license:gpl2+))))
19992
19993 (define-public emacs-fold-dwim
19994 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
19995 (revision "0"))
19996 (package
19997 (name "emacs-fold-dwim")
19998 (version (git-version "1.2" revision commit))
19999 (home-page "https://github.com/emacsattic/fold-dwim")
20000 (source (origin
20001 (method git-fetch)
20002 (uri (git-reference (url home-page) (commit commit)))
20003 (sha256
20004 (base32
20005 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
20006 (file-name (git-file-name name version))))
20007 (build-system emacs-build-system)
20008 (synopsis "Unified user interface for Emacs folding modes")
20009 (description
20010 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
20011 can do different things depending on the context. In this package, it means
20012 that, if the cursor is in a currently hidden folded construction, we want to
20013 show it; if it's not, we want to hide whatever fold the cursor is in.")
20014 (license license:gpl2+))))
20015
20016 (define-public emacs-markup-faces
20017 (package
20018 (name "emacs-markup-faces")
20019 (version "1.0.0")
20020 (source
20021 (origin
20022 (method url-fetch)
20023 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
20024 version ".el"))
20025 (sha256
20026 (base32
20027 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
20028 (build-system emacs-build-system)
20029 (home-page "https://github.com/sensorflo/markup-faces")
20030 (synopsis "Collection of Emacs faces for markup language modes")
20031 (description "emacs-markup-faces is like font-lock-faces, but tailored for
20032 markup languages instead programming languages. The sub group markup-faces-text
20033 is also intended for 'text viewing modes' such as info or (wo)man. This gives a
20034 common look and feel, or let's say theme, across different markup language modes
20035 and 'text viewing modes' respectively.")
20036 (license license:gpl3+)))
20037
20038 (define-public emacs-adoc-mode
20039 (package
20040 (name "emacs-adoc-mode")
20041 (version "0.6.6")
20042 (source
20043 (origin
20044 (method git-fetch)
20045 (uri (git-reference
20046 (url "https://github.com/sensorflo/adoc-mode")
20047 (commit (string-append "V" version))))
20048 (file-name (git-file-name name version))
20049 (sha256
20050 (base32
20051 "0kp2aafjhqxz3mjr9hkkss85r4n51chws5a2qj1xzb63dh36liwm"))))
20052 (build-system emacs-build-system)
20053 (arguments
20054 `(#:phases
20055 (modify-phases %standard-phases
20056 ;; See: https://github.com/sensorflo/adoc-mode/issues/39.
20057 (add-after 'unpack 'disable-failing-tests
20058 (lambda _
20059 (let-syntax
20060 ((disable-tests
20061 (syntax-rules ()
20062 ((_ file ())
20063 (syntax-error "test names list must not be empty"))
20064 ((_ file (test-name ...))
20065 (substitute* file
20066 (((string-append "^\\(ert-deftest " test-name ".*") all)
20067 (string-append all "(skip-unless nil)\n")) ...)))))
20068 (disable-tests "adoc-mode-test.el"
20069 ("adoctest-test-tempo-delimited-blocks"
20070 "adoctest-test-tempo-macros"
20071 "adoctest-test-tempo-paragraphs"
20072 "adoctest-test-tempo-passthroug-macros"
20073 "adoctest-test-tempo-quotes")))
20074 #t)))
20075 #:tests? #t
20076 #:test-command '("emacs" "-Q" "-batch"
20077 "-l" "adoc-mode-test.el"
20078 "-f" "ert-run-tests-batch-and-exit")))
20079 (propagated-inputs
20080 `(("emacs-markup-faces" ,emacs-markup-faces)))
20081 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
20082 (synopsis "AsciiDoc mode for Emacs")
20083 (description "This package provides an Emacs major mode for editing AsciiDoc
20084 files. It focuses on highlighting the document to improve readability.")
20085 (license license:gpl2+)))
20086
20087 (define-public emacs-racer
20088 (package
20089 (name "emacs-racer")
20090 (version "1.2")
20091 (source
20092 (origin
20093 (method git-fetch)
20094 (uri
20095 (git-reference
20096 (url "https://github.com/racer-rust/emacs-racer")
20097 (commit version)))
20098 (file-name (git-file-name name version))
20099 (sha256
20100 (base32 "0xj5iki10cg8j8vvqjlw6lfx97k3agwirhchcjnzbnkry48x9qi6"))))
20101 (arguments
20102 `(#:tests? #t
20103 #:test-command '("make" "test")
20104 #:phases
20105 (modify-phases %standard-phases
20106 (add-before 'check 'fix-makefile
20107 (lambda _
20108 (substitute* "Makefile"
20109 (("\\$\\{CASK\\} exec ") ""))
20110 #t))
20111 ;; Two tests are failing with Emacs 27, as reported here:
20112 ;; <https://github.com/racer-rust/emacs-racer/issues/136>. Disable
20113 ;; them.
20114 (add-before 'check 'fix-failing-tests
20115 (lambda _
20116 (substitute* "test/racer-test.el"
20117 (("`Write`") "Write")
20118 (("^\\\\\\[`str\\]:.*") "")
20119 ((" \\[`str`\\]") " str"))
20120 #t)))))
20121 (native-inputs
20122 `(("emacs-ert-runner" ,emacs-ert-runner)
20123 ("emacs-undercover" ,emacs-undercover)))
20124 (propagated-inputs
20125 `(("emacs-dash" ,emacs-dash)
20126 ("emacs-f" ,emacs-f)
20127 ("emacs-pos-tip" ,emacs-pos-tip)
20128 ("emacs-rust-mode" ,emacs-rust-mode)
20129 ("emacs-s" ,emacs-s)))
20130 (build-system emacs-build-system)
20131 (home-page "https://github.com/racer-rust/emacs-racer")
20132 (synopsis "Racer support for Emacs")
20133 (description
20134 "This is the official Emacs package for Racer. It supports code
20135 completion of variables, functions and modules. It can also jump to
20136 definition of functions and types, and show a help buffer based on the
20137 docstring of the thing at point.")
20138 (license license:expat)))
20139
20140 (define-public emacs-rust-mode
20141 (package
20142 (name "emacs-rust-mode")
20143 (version "0.5.0")
20144 (source (origin
20145 (method git-fetch)
20146 (uri (git-reference
20147 (url "https://github.com/rust-lang/rust-mode")
20148 (commit version)))
20149 (file-name (git-file-name name version))
20150 (sha256
20151 (base32
20152 "1f3nnl0d7p9b5cv1bpm0hj898qmr2psxfvmqr61bh684z7fgc045"))))
20153 (build-system emacs-build-system)
20154 (arguments
20155 `(#:phases
20156 (modify-phases %standard-phases
20157 (replace 'check
20158 (lambda _
20159 (invoke "sh" "run_rust_emacs_tests.sh"))))))
20160 (home-page "https://github.com/rust-lang/rust-mode")
20161 (synopsis "Major Emacs mode for editing Rust source code")
20162 (description "This package provides a major Emacs mode for editing Rust
20163 source code.")
20164 (license (list license:expat
20165 license:asl2.0))))
20166
20167 (define-public emacs-ztree
20168 (let ((commit "6eee81d2691009ce60b2edf7c298b227caf1b0d6"))
20169 (package
20170 (name "emacs-ztree")
20171 (version (git-version "1.0.5" "2" commit))
20172 (source
20173 (origin
20174 (method git-fetch)
20175 (uri (git-reference
20176 (url "https://github.com/fourier/ztree")
20177 (commit commit)))
20178 (file-name (git-file-name name version))
20179 (sha256
20180 (base32
20181 "1xmimjflylssx63g1kpd5n34gdlpivgg9ih8nwplad57bxiy2yqb"))))
20182 (build-system emacs-build-system)
20183 (home-page "https://github.com/fourier/ztree")
20184 (synopsis "Directory tree comparison mode for Emacs")
20185 (description "Ztree is a project dedicated to implementation of several
20186 text-tree applications inside GNU Emacs. It consists of 2 subprojects:
20187 @command{ztree-diff} and @command{ztree-dir} (the basis of
20188 @command{ztree-diff}).")
20189 (license license:gpl3))))
20190
20191 (define-public emacs-helm-org-contacts
20192 (let ((commit "e7f11615802df55bb8b679450b5a5ef82a9081f9"))
20193 (package
20194 (name "emacs-helm-org-contacts")
20195 (version (git-version "20200310" "1" commit))
20196 (source
20197 (origin
20198 (method git-fetch)
20199 (uri (git-reference
20200 (url "https://github.com/tmalsburg/helm-org-contacts")
20201 (commit commit)))
20202 (file-name (git-file-name name version))
20203 (sha256
20204 (base32
20205 "06a1gbrq3qcfsn0kyv4i24x1xxfrrwqa3kgfj4xa4va88q2vqyb5"))))
20206 (build-system emacs-build-system)
20207 (propagated-inputs
20208 `(("emacs-dash" ,emacs-dash)
20209 ("emacs-helm" ,emacs-helm)
20210 ("emacs-s" ,emacs-s)))
20211 (home-page "https://github.com/tmalsburg/helm-org-contacts")
20212 (synopsis "Helm source for org-contacts")
20213 (description "This Helm source can be used to search contacts stored in
20214 org-contacts format. There are actions for inserting postal addresses, email
20215 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
20216 was called.")
20217 (license license:gpl3))))
20218
20219 (define-public emacs-dired-du
20220 (package
20221 (name "emacs-dired-du")
20222 (version "0.5.2")
20223 (source
20224 (origin
20225 (method url-fetch)
20226 (uri (string-append
20227 "https://elpa.gnu.org/packages/dired-du-" version ".tar"))
20228 (sha256
20229 (base32 "0vhph7vcicsiq28b10h3b4dvnhckcy4gccpdgsad5j7pwa5k26m1"))))
20230 (build-system emacs-build-system)
20231 (home-page "https://elpa.gnu.org/packages/dired-du.html")
20232 (synopsis "Dired with recursive directory sizes")
20233 (description
20234 "Display the recursive size of directories in Dired.
20235 This file defines a minor mode @command{dired-du-mode} to show the recursive
20236 size of directories in Dired buffers. If @command{du} program is available,
20237 then the directory sizes are obtained with it. Otherwise, the directory sizes
20238 are obtained with Lisp. The former is faster and provide a more precise
20239 value. For directories where the user doesn't have read permission, the
20240 recursive size is not obtained. Once this mode is enabled, every new Dired
20241 buffer displays recursive dir sizes.")
20242 (license license:gpl3+)))
20243
20244 (define-public emacs-dired-rsync
20245 (package
20246 (name "emacs-dired-rsync")
20247 (version "0.6")
20248 (source (origin
20249 (method git-fetch)
20250 (uri (git-reference
20251 (url "https://github.com/stsquad/dired-rsync")
20252 (commit version)))
20253 (file-name (git-file-name name version))
20254 (sha256
20255 (base32
20256 "19za6i96xrmczdh928n5ixd7j7pvy175sz1msaiwvdjwysjr8k51"))))
20257 (build-system emacs-build-system)
20258 (propagated-inputs
20259 `(("emacs-s" ,emacs-s)
20260 ("emacs-dash" ,emacs-dash)))
20261 (home-page "https://github.com/stsquad/dired-rsync/")
20262 (synopsis "Support for rsync from Emacs dired buffers")
20263 (description "This package adds a single command @code{dired-rsync} which
20264 allows the user to copy marked files in a dired buffer via @code{rsync}. This
20265 is useful, especially for large files, because the copy happens in the
20266 background and doesn’t lock up Emacs. It is also more efficient than using
20267 tramps own encoding methods for moving data between systems.")
20268 (license license:gpl3+)))
20269
20270 (define-public emacs-pcre2el
20271 ;; Last release is very old so we get the latest commit.
20272 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
20273 (package
20274 (name "emacs-pcre2el")
20275 (version (git-version "1.8" "1" commit))
20276 (source
20277 (origin
20278 (method git-fetch)
20279 (uri (git-reference
20280 (url "https://github.com/joddie/pcre2el")
20281 (commit commit)))
20282 (file-name (git-file-name name version))
20283 (sha256
20284 (base32
20285 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
20286 (build-system emacs-build-system)
20287 (home-page "https://github.com/joddie/pcre2el")
20288 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
20289 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
20290 Tools) is a utility for working with regular expressions in Emacs, based on a
20291 recursive-descent parser for regexp syntax. In addition to converting (a
20292 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
20293
20294 @itemize
20295 @item convert Emacs syntax to PCRE
20296 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
20297 @item untangle complex regexps by showing the parse tree in @code{rx} form and
20298 highlighting the corresponding chunks of code
20299 @item show the complete list of strings (productions) matching a regexp,
20300 provided the list is finite
20301 @item provide live font-locking of regexp syntax (so far only for Elisp
20302 buffers – other modes on the TODO list).
20303 @end itemize\n")
20304 (license license:gpl3))))
20305
20306 (define-public emacs-magit-todos
20307 (package
20308 (name "emacs-magit-todos")
20309 (version "1.5.3")
20310 (source
20311 (origin
20312 (method git-fetch)
20313 (uri (git-reference
20314 (url "https://github.com/alphapapa/magit-todos")
20315 (commit version)))
20316 (file-name (git-file-name name version))
20317 (sha256
20318 (base32
20319 "12ay02vk6bk77k33mhlqi41m03a77y80b15rj1dbh1n6jfrjwkfy"))))
20320 (build-system emacs-build-system)
20321 (propagated-inputs
20322 `(("emacs-async" ,emacs-async)
20323 ("emacs-dash" ,emacs-dash)
20324 ("emacs-f" ,emacs-f)
20325 ("emacs-hl-todo" ,emacs-hl-todo)
20326 ("magit" ,emacs-magit)
20327 ("emacs-pcre2el" ,emacs-pcre2el)
20328 ("emacs-s" ,emacs-s)))
20329 (home-page "https://github.com/alphapapa/magit-todos")
20330 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
20331 (description "This package displays keyword entries from source code
20332 comments and Org files in the Magit status buffer. Activating an item jumps
20333 to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
20334 few (like NOTE).")
20335 (license license:gpl3)))
20336
20337 (define-public emacs-git-annex
20338 ;; Unreleased version has a fontification fix.
20339 (let ((commit "1324d3f23c534fe79391a2c256bb8803054e383b")
20340 (revision "2"))
20341 (package
20342 (name "emacs-git-annex")
20343 (version (git-version "1.1" revision commit))
20344 (source
20345 (origin
20346 (method git-fetch)
20347 (uri (git-reference
20348 (url "https://github.com/jwiegley/git-annex-el")
20349 (commit commit)))
20350 (file-name (git-file-name name version))
20351 (sha256
20352 (base32
20353 "1lfky2nsrlndlbvk6vwbswnvbvkz1sxgg0n3r5q6xykdkjym0lrh"))))
20354 (build-system emacs-build-system)
20355 (home-page "https://github.com/jwiegley/git-annex-el")
20356 (synopsis "Emacs integration for git-annex")
20357 (description "Enhances Dired and buffers visiting annex files with
20358 git-annex functionality. In Dired, the names of annex files are shortened by
20359 hiding the symbolic links and fontified based on whether content is present.
20360 Commands for performing some common operations (e.g., unlocking and adding
20361 files) are provided.")
20362 (license license:gpl2+))))
20363
20364 (define-public emacs-hackernews
20365 (package
20366 (name "emacs-hackernews")
20367 (version "0.6.1")
20368 (source
20369 (origin
20370 (method git-fetch)
20371 (uri (git-reference
20372 (url "https://github.com/clarete/hackernews.el")
20373 (commit (string-append "v" version))))
20374 (file-name (git-file-name name version))
20375 (sha256
20376 (base32
20377 "17lkjcka6ydd6khhz5jbjlybfpx05153z0d8s1rxaxcwl7z2y6cf"))))
20378 (build-system emacs-build-system)
20379 (home-page "https://github.com/clarete/hackernews.el")
20380 (synopsis "Hacker News client for Emacs")
20381 (description "The @command{hackernews} package is able to fetch stories
20382 from six different Hacker News feeds, namely top, new, best, ask, show and job
20383 stories. The default feed is top stories, which corresponds to the Hacker
20384 News homepage.")
20385 (license license:gpl3)))
20386
20387 (define-public emacs-youtube-dl
20388 (let ((commit "af877b5bc4f01c04fccfa7d47a2c328926f20ef4")
20389 (revision "2"))
20390 (package
20391 (name "emacs-youtube-dl")
20392 (version (git-version "1.0" "2" commit))
20393 (source
20394 (origin
20395 (method git-fetch)
20396 (uri (git-reference
20397 (url "https://github.com/skeeto/youtube-dl-emacs/")
20398 (commit commit)))
20399 (file-name (git-file-name name version))
20400 (sha256
20401 (base32
20402 "0zkl9jkjbx0lmp9ylv4rqg1zwqibk053s4rp7s1h0i18nzk7vn8j"))))
20403 (build-system emacs-build-system)
20404 (inputs
20405 `(("youtube-dl" ,youtube-dl)))
20406 (arguments
20407 `(#:phases
20408 (modify-phases %standard-phases
20409 (add-after 'unpack 'configure
20410 (lambda* (#:key inputs #:allow-other-keys)
20411 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
20412 ;; .el is read-only in git.
20413 (chmod "youtube-dl.el" #o644)
20414 ;; Specify the absolute file names of the various
20415 ;; programs so that everything works out-of-the-box.
20416 (emacs-substitute-variables
20417 "youtube-dl.el"
20418 ("youtube-dl-program"
20419 (string-append youtube-dl "/bin/youtube-dl")))))))))
20420 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
20421 (synopsis "Emacs youtube-dl download manager")
20422 (description "This package manages a video download queue for
20423 @command{youtube-dl}, which serves as the back end. It manages a single
20424 @command{youtube-dl} subprocess, downloading one video at a time. New videos
20425 can be queued at any time.")
20426 (license license:unlicense))))
20427
20428 (define-public emacs-ytdl
20429 (package
20430 (name "emacs-ytdl")
20431 (version "1.3.5")
20432 (source
20433 (origin
20434 (method git-fetch)
20435 (uri (git-reference
20436 (url "https://gitlab.com/tuedachu/ytdl")
20437 (commit version)))
20438 (file-name (git-file-name name version))
20439 (sha256
20440 (base32 "1xv93ny942gha1ipic5r6z4icjsb7src7ssdck9983kks3zacjk7"))))
20441 (build-system emacs-build-system)
20442 (inputs
20443 `(("youtube-dl" ,youtube-dl)))
20444 (propagated-inputs
20445 `(("async" ,emacs-async)
20446 ("transient" ,emacs-transient)))
20447 (arguments
20448 `(#:phases
20449 (modify-phases %standard-phases
20450 (add-after 'unpack 'configure
20451 (lambda* (#:key inputs #:allow-other-keys)
20452 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
20453 ;; .el is read-only in git.
20454 (make-file-writable "ytdl.el")
20455 ;; Specify the absolute file names of the various programs so
20456 ;; that everything works out-of-the-box.
20457 (emacs-substitute-variables "ytdl.el"
20458 ("ytdl-command" (string-append youtube-dl "/bin/youtube-dl")))
20459 #t))))))
20460 (home-page "https://gitlab.com/tuedachu/ytdl")
20461 (synopsis "Emacs interface for youtube-dl")
20462 (description
20463 "This package manages a video download queue for @command{youtube-dl},
20464 which serves as the back end. New videos can be queued at any time. All
20465 youtube-dl backends are supported. It is possible to create download profiles
20466 depending on the downloaded URL.")
20467 (license license:gpl3+)))
20468
20469 (define-public emacs-org-web-tools
20470 (package
20471 (name "emacs-org-web-tools")
20472 (version "1.1.1")
20473 (source
20474 (origin
20475 (method git-fetch)
20476 (uri (git-reference
20477 (url "https://github.com/alphapapa/org-web-tools")
20478 (commit version)))
20479 (file-name (git-file-name name version))
20480 (sha256
20481 (base32
20482 "0v4qad54r0z7dr7kg5lpfdsazi44qvrbybx9aciyl4w9grfajphb"))))
20483 (build-system emacs-build-system)
20484 (propagated-inputs
20485 `(("emacs-dash" ,emacs-dash)
20486 ("emacs-esxml" ,emacs-esxml)
20487 ("emacs-request" ,emacs-request)
20488 ("emacs-s" ,emacs-s)))
20489 (inputs
20490 `(("pandoc" ,pandoc)))
20491 (arguments
20492 `(#:phases
20493 (modify-phases %standard-phases
20494 (add-after 'unpack 'patch-exec-paths
20495 (lambda* (#:key inputs #:allow-other-keys)
20496 (let ((pandoc (assoc-ref inputs "pandoc")))
20497 (substitute* "org-web-tools.el"
20498 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
20499 #t))))))
20500 (home-page "https://github.com/alphapapa/org-web-tools")
20501 (synopsis "Display/Process web page as Org-mode content")
20502 (description "This package contains library functions and commands useful
20503 for retrieving web page content and processing it into Org-mode content.
20504
20505 For example, you can copy a URL to the clipboard or kill-ring, then run a
20506 command that downloads the page, isolates the “readable” content with
20507 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
20508 displays it in an Org-mode buffer. Another command does all of that but
20509 inserts it as an Org entry instead of displaying it in a new buffer.")
20510 (license license:gpl3+)))
20511
20512 (define-public emacs-blimp
20513 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
20514 (package
20515 (name "emacs-blimp")
20516 (version (git-version "0.0.0" "1" commit))
20517 (source
20518 (origin
20519 (method git-fetch)
20520 (uri (git-reference
20521 (url "https://github.com/walseb/blimp")
20522 (commit commit)))
20523 (file-name (git-file-name name version))
20524 (sha256
20525 (base32
20526 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
20527 (build-system emacs-build-system)
20528 (propagated-inputs
20529 `(("emacs-eimp" ,emacs-eimp)))
20530 (home-page "https://github.com/walseb/blimp")
20531 (synopsis "Emacs wrapper around all Imagemagick commands")
20532 (description "Blimp (Bustling Image Manipulation Package) is a complete
20533 wrapper around all Imagemagick commands with descriptions, autocompletion (for
20534 some commands) and hints displayed in prompt using @command{eimp.el} to
20535 execute its commands and resize images.")
20536 (license license:gpl3+))))
20537
20538 (define-public emacs-synosaurus
20539 (package
20540 (name "emacs-synosaurus")
20541 (version "0.2.0")
20542 (source
20543 (origin
20544 (method git-fetch)
20545 (uri (git-reference
20546 (url "https://github.com/hpdeifel/synosaurus")
20547 (commit (string-append "v" version))))
20548 (file-name (git-file-name name version))
20549 (sha256
20550 (base32
20551 "14dd6p89pmpf1w3nx4f9mzm4sn2b64nicws436ck7pmp223pwciv"))))
20552 (build-system emacs-build-system)
20553 (propagated-inputs
20554 `(("wordnet" ,wordnet)))
20555 (arguments
20556 `(#:phases
20557 (modify-phases %standard-phases
20558 (add-after 'unpack 'configure
20559 (lambda* (#:key inputs outputs #:allow-other-keys)
20560 (let ((wn (assoc-ref inputs "wordnet")))
20561 ;; .el is read-only in git.
20562 (make-file-writable "synosaurus-wordnet.el")
20563 ;; Specify the absolute file names of the various
20564 ;; programs so that everything works out-of-the-box.
20565 (emacs-substitute-variables "synosaurus-wordnet.el"
20566 ("synosaurus-wordnet--command"
20567 (string-append wn "/bin/wn")))))))))
20568 (home-page "https://github.com/hpdeifel/synosaurus")
20569 (synopsis "Extensible thesaurus mode for Emacs")
20570 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
20571 backends, including the @command{wordnet} offline backend.")
20572 (license license:gpl3+)))
20573
20574 (define-public emacs-editorconfig
20575 (package
20576 (name "emacs-editorconfig")
20577 (version "0.8.1")
20578 (source
20579 (origin
20580 (method git-fetch)
20581 (uri (git-reference
20582 (url "https://github.com/editorconfig/editorconfig-emacs")
20583 (commit (string-append "v" version))))
20584 (file-name (git-file-name name version))
20585 (sha256
20586 (base32
20587 "1djlhkap7zddknzvjsjz0agpfsms1ih05zcpg1bikid2vs4gddyr"))))
20588 (build-system emacs-build-system)
20589 (home-page "https://github.com/editorconfig/editorconfig-emacs")
20590 (synopsis "Define and maintain consistent coding styles between different
20591 editors and IDEs")
20592 (description "The EditorConfig project consists of a file format for
20593 defining coding styles and a collection of text editor plugins that enable
20594 editors to read the file format and adhere to defined styles. EditorConfig
20595 files are easily readable and they work nicely with version control systems.")
20596 (license license:gpl3+)))
20597
20598 (define-public emacs-all-the-icons
20599 (package
20600 (name "emacs-all-the-icons")
20601 (version "4.0.1")
20602 (source
20603 (origin
20604 (method git-fetch)
20605 (uri (git-reference
20606 (url "https://github.com/domtronn/all-the-icons.el")
20607 (commit version)))
20608 (file-name (git-file-name name version))
20609 (sha256
20610 (base32 "0yh7gnv9xfqn8q4rzaa6wpyn9575vyfxy7d3afly2mqsb367fgm5"))))
20611 (build-system emacs-build-system)
20612 (arguments
20613 `(#:include '("\\.el$" "^data/" "^fonts/")
20614 ;; Compiling "test/" fails with "Symbol’s value as variable is void:
20615 ;; all-the-icons--root-code". Ignoring tests.
20616 #:exclude '("^test/")
20617 #:tests? #f))
20618 (propagated-inputs
20619 `(("f" ,emacs-f)
20620 ("memoize" ,emacs-memoize)))
20621 (home-page "https://github.com/domtronn/all-the-icons.el")
20622 (synopsis "Collect icon fonts and propertize them within Emacs")
20623 (description
20624 "All-the-icons is a utility package to collect various icon fonts and
20625 propertize them within Emacs. Icon fonts allow you to propertize and format
20626 icons the same way you would normal text. This enables things such as better
20627 scaling of and anti aliasing of the icons.")
20628 ;; Package is released under Expat license. Elisp files are licensed
20629 ;; under GPL3+. Fonts come with various licenses: Expat for
20630 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
20631 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
20632 ;; "ocitcons.ttf" and "weathericons.ttf".
20633 (license
20634 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
20635
20636 (define-public emacs-wttrin
20637 (let ((commit "df5427ce2a5ad4dab652dbb1c4a1834d7ddc2abc")
20638 (revision "1"))
20639 (package
20640 (name "emacs-wttrin")
20641 (version (git-version "0.2.0" revision commit))
20642 (source (origin
20643 (method git-fetch)
20644 (uri (git-reference
20645 (url "https://github.com/bcbcarl/emacs-wttrin")
20646 (commit commit)))
20647 (file-name (git-file-name name version))
20648 (sha256
20649 (base32
20650 "1ai655f10iayb4vw0ass2j3x83f4vsv90326mnywkzfl3sxd432z"))))
20651 (build-system emacs-build-system)
20652 (propagated-inputs
20653 `(("emacs-xterm-color" ,emacs-xterm-color)))
20654 (home-page "https://github.com/bcbcarl/emacs-wttrin")
20655 (synopsis "Frontend for weather web service @url{wttr.in}")
20656 (description "This package provides local weather information from
20657 @url{wttr.in}.")
20658 (license license:expat))))
20659
20660 (define-public emacs-browse-kill-ring
20661 (let ((commit "1ef72cc6accd94cd7032c02b1b2c78ae7f1d1965")
20662 (revision "0"))
20663 (package
20664 (name "emacs-browse-kill-ring")
20665 (version (git-version "2.0.0" revision commit))
20666 (source
20667 (origin
20668 (method git-fetch)
20669 (uri (git-reference
20670 (url "https://github.com/browse-kill-ring/browse-kill-ring")
20671 (commit commit)))
20672 (file-name (git-file-name name version))
20673 (sha256
20674 (base32
20675 "0mil32g7hcw376jibs5hdyv00xbaql3m4a27rwqaafg0x59avxdj"))))
20676 (build-system emacs-build-system)
20677 (home-page "https://github.com/browse-kill-ring/browse-kill-ring")
20678 (synopsis "Interactively insert items from kill-ring")
20679 (description
20680 "Did you ever feel that @code{C-y M-y M-y M-y ...} is not a great way
20681 of trying to find that piece of text you know you killed a while back? Then
20682 @code{browse-kill-ring.el} is for you.")
20683 (license license:gpl2+))))
20684
20685 (define-public emacs-powerline
20686 (package
20687 (name "emacs-powerline")
20688 (version "2.4")
20689 (source
20690 (origin
20691 (method git-fetch)
20692 (uri (git-reference
20693 (url "https://github.com/milkypostman/powerline")
20694 (commit version)))
20695 (file-name (git-file-name name version))
20696 (sha256
20697 (base32
20698 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
20699 (build-system emacs-build-system)
20700 (home-page "https://github.com/milkypostman/powerline/")
20701 (synopsis "Mode-line plugin for Emacs")
20702 (description "Powerline is a utility plugin which allows you to create
20703 a better-looking, more functional Emacs mode-line. A collection of predefined
20704 themes comes with the package.")
20705 (license license:gpl3+)))
20706
20707 (define-public emacs-spaceline
20708 (package
20709 (name "emacs-spaceline")
20710 (version "2.0.1")
20711 (source
20712 (origin
20713 (method git-fetch)
20714 (uri (git-reference
20715 (url "https://github.com/TheBB/spaceline")
20716 (commit (string-append "v" version))))
20717 (file-name (git-file-name name version))
20718 (sha256
20719 (base32
20720 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
20721 (build-system emacs-build-system)
20722 (propagated-inputs
20723 `(("dash" ,emacs-dash)
20724 ("powerline" ,emacs-powerline)
20725 ("s" ,emacs-s)))
20726 (home-page "https://github.com/TheBB/spaceline")
20727 (synopsis "Powerline theme from Spacemacs")
20728 (description "Spaceline provides Spacemacs' mode-line theme.
20729 This package provides features for three kinds of users.
20730
20731 @itemize
20732 @item You just want to use the Spacemacs mode-line theme and forget about it.
20733 @item You want to use something similar to the Spacemacs mode-line theme, but
20734 with a handful of easy tweaks.
20735 @item You want an easy-to-use library for building your own mode-line from
20736 scratch, and you think the Spacemacs theme looks good.
20737 @end itemize")
20738 (license license:gpl3+)))
20739
20740 (define-public emacs-spaceline-next
20741 (let ((commit "1b26af2c1a701481ac5d90928fe0200e389756c3")
20742 (last-release-version "2.0.1")
20743 (revision "0"))
20744 (package
20745 (inherit emacs-spaceline)
20746 (name "emacs-spaceline-next")
20747 (version (git-version last-release-version revision commit))
20748 (source
20749 (origin
20750 (method git-fetch)
20751 (uri (git-reference
20752 (url "https://github.com/TheBB/spaceline")
20753 (commit commit)))
20754 (sha256
20755 (base32 "11lwckqcgzsahrkkm5wk1ph4kc7d4yz05r7251g8c9f0q6vdj9dp"))
20756 (file-name (git-file-name name version)))))))
20757
20758 (define-public emacs-column-marker
20759 (package
20760 (name "emacs-column-marker")
20761 (version "9")
20762 (source
20763 (origin
20764 (method url-fetch)
20765 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
20766 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
20767 (build-system emacs-build-system)
20768 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
20769 (synopsis "Emacs mode for highlighting columns")
20770 (description
20771 "With @code{column-marker.el} you can highlight any number of text columns.
20772 Three such highlight column markers are provided by default. This is
20773 especially useful for languages like COBOL or Fortran where certain columns
20774 have special meaning. It is also handy for aligning text across long vertical
20775 distances. Multi-column characters, such as @kbd{TAB} are treated
20776 correctly.")
20777 (license license:gpl2+)))
20778
20779 (define-public emacs-slime-repl-ansi-color
20780 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
20781 (package
20782 (name "emacs-slime-repl-ansi-color")
20783 (version (git-version "0.0.0" "1" commit))
20784 (source (origin
20785 (method git-fetch)
20786 (uri (git-reference
20787 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
20788 (commit commit)))
20789 (file-name (git-file-name name version))
20790 (sha256
20791 (base32
20792 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
20793 (build-system emacs-build-system)
20794 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
20795 (synopsis "Color ANSI codes in the REPL of SLIME")
20796 (description "Color ANSI codes in the REPL of SLIME")
20797 (license license:gpl2+))))
20798
20799 (define-public emacs-helm-slime
20800 (package
20801 (name "emacs-helm-slime")
20802 (version "0.4.0")
20803 (source (origin
20804 (method git-fetch)
20805 (uri (git-reference
20806 (url "https://github.com/emacs-helm/helm-slime")
20807 (commit version)))
20808 (file-name (git-file-name name version))
20809 (sha256
20810 (base32
20811 "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"))))
20812 (build-system emacs-build-system)
20813 (propagated-inputs
20814 `(("emacs-helm" ,emacs-helm)
20815 ("emacs-slime" ,emacs-slime)))
20816 (home-page "https://github.com/emacs-helm/helm-slime")
20817 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
20818 (description "Helm-SLIME defines a few new commands:
20819
20820 @itemize
20821 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
20822 @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
20823 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
20824 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
20825 @end itemize\n")
20826 (license license:gpl3+)))
20827
20828 (define-public emacs-helm-sly
20829 (package
20830 (name "emacs-helm-sly")
20831 (version "0.7.2")
20832 (source (origin
20833 (method git-fetch)
20834 (uri (git-reference
20835 (url "https://github.com/emacs-helm/helm-sly")
20836 (commit version)))
20837 (file-name (git-file-name name version))
20838 (sha256
20839 (base32
20840 "06x8wyx1r0s7askkvlbklgz1cszv34qsvv3gryndw350smk1v8kx"))))
20841 (build-system emacs-build-system)
20842 (propagated-inputs
20843 `(("emacs-helm" ,emacs-helm)
20844 ("emacs-sly" ,emacs-sly)))
20845 (home-page "https://github.com/emacs-helm/helm-sly")
20846 (synopsis "Helm for SLY, a Common Lisp interaction mode for Emacs")
20847 (description "Helm-SLY defines a few new commands:
20848
20849 @itemize
20850 @item @code{helm-sly-list-connections}: Yet another Lisp connection list with
20851 Helm.
20852 @item @code{helm-sly-apropos}: Yet another @command{apropos} with Helm.
20853 @item @code{helm-sly-mini}: Like @command{helm-sly-list-connections}, but
20854 include an extra source of Lisp-related buffers, like the events buffer or the
20855 scratch buffer.
20856 @end itemize\n")
20857 (license license:gpl3+)))
20858
20859 (define-public emacs-gtk-look
20860 (package
20861 (name "emacs-gtk-look")
20862 (version "29")
20863 (source (origin
20864 (method url-fetch)
20865 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
20866 (sha256
20867 (base32
20868 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
20869 (build-system emacs-build-system)
20870 (arguments
20871 `(#:phases
20872 (modify-phases %standard-phases
20873 (add-after 'unpack 'configure
20874 (lambda _
20875 ;; File is read-only.
20876 (chmod "gtk-look.el" #o644)
20877 (emacs-substitute-variables "gtk-look.el"
20878 ("gtk-lookup-devhelp-indices"
20879 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
20880 #t)))))
20881 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
20882 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
20883 (description "@command{gtk-look} finds and displays HTML documentation for
20884 GTK, GNOME and Glib functions and variables in Emacs, similar to what
20885 info-lookup-symbol does for info files (C-h S). The documentation is expected
20886 to be devhelp indexes with HTML files. The location of the indexes can be
20887 customized. In addition to C code development @command{gtk-look} is good for
20888
20889 @itemize
20890 @item @command{perl-gtk2}, recognising class funcs like
20891 @command{Gtk2::Label->new} and bare method names like @command{set_text}.
20892 @item @command{guile-gnome}, recognising methods like @command{set-text} and
20893 classes like @command{<gtk-window>}.
20894 @end itemize\n")
20895 (license license:gpl3+)))
20896
20897 (define-public emacs-ov
20898 (package
20899 (name "emacs-ov")
20900 (version "1.0.6")
20901 (source (origin
20902 (method git-fetch)
20903 (uri (git-reference
20904 (url "https://github.com/ShingoFukuyama/ov.el")
20905 (commit version)))
20906 (file-name (git-file-name name version))
20907 (sha256
20908 (base32
20909 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
20910 (build-system emacs-build-system)
20911 (home-page "https://github.com/ShingoFukuyama/ov.el")
20912 (synopsis "Overlay library for Emacs Lisp")
20913 (description "@code{ov.el} provides a simple way to manipulate overlays in
20914 Emacs.")
20915 (license license:gpl3+)))
20916
20917 (define-public emacs-matrix-client
20918 (let ((commit "d2ac55293c96d4c95971ed8e2a3f6f354565c5ed"))
20919 (package
20920 (name "emacs-matrix-client")
20921 (version (git-version "0.0.0" "6" commit))
20922 (source (origin
20923 (method git-fetch)
20924 (uri (git-reference
20925 (url "https://github.com/jgkamat/matrix-client-el")
20926 (commit commit)))
20927 (file-name (git-file-name name version))
20928 (sha256
20929 (base32
20930 "1scfv1502yg7x4bsl253cpr6plml1j4d437vci2ggs764sh3rcqq"))))
20931 (build-system emacs-build-system)
20932 (propagated-inputs
20933 `(("a" ,emacs-a)
20934 ("anaphora" ,emacs-anaphora)
20935 ("dash" ,emacs-dash)
20936 ("esxml" ,emacs-esxml)
20937 ("f" ,emacs-f)
20938 ("frame-purpose" ,emacs-frame-purpose)
20939 ("ht" ,emacs-ht)
20940 ("ov" ,emacs-ov)
20941 ("rainbow-identifiers" ,emacs-rainbow-identifiers)
20942 ("request" ,emacs-request)
20943 ("s" ,emacs-s)
20944 ("tracking" ,emacs-tracking)))
20945 (home-page "https://github.com/jgkamat/matrix-client-el")
20946 (synopsis "Matrix client for Emacs")
20947 (description "@code{matrix-client} is a simple chat UI to Matrix.org
20948 rooms. It also provides an API which allows Emacs to seamlessly create
20949 RPC channels with users and other software.")
20950 (license license:gpl3+))))
20951
20952 (define-public emacs-sesman
20953 (package
20954 (name "emacs-sesman")
20955 (version "0.3.4")
20956 (source
20957 (origin
20958 (method git-fetch)
20959 (uri (git-reference
20960 (url "https://github.com/vspinu/sesman")
20961 (commit (string-append "v" version))))
20962 (file-name (git-file-name name version))
20963 (sha256
20964 (base32
20965 "0z5jb4vpbjsi63w3wjy6d2lgz33qdfvrgfb3bszv4hcf6a96y7fc"))))
20966 (build-system emacs-build-system)
20967 (arguments
20968 `(#:phases
20969 (modify-phases %standard-phases
20970 (add-after 'unpack 'set-shell
20971 ;; Setting the SHELL environment variable is required for the tests
20972 ;; to find sh.
20973 (lambda _
20974 (setenv "SHELL" (which "sh"))
20975 #t)))
20976 #:tests? #t
20977 #:test-command '("make" "test")))
20978 (home-page "https://github.com/vspinu/sesman")
20979 (synopsis "Session manager for Emacs based IDEs")
20980 (description "Sesman provides facilities for session management and
20981 interactive session association with the current contexts (project, directory,
20982 buffers). While sesman can be used to manage arbitrary sessions, it primary
20983 targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
20984 (license license:gpl3+)))
20985
20986 (define-public emacs-buttercup
20987 (package
20988 (name "emacs-buttercup")
20989 (version "1.24")
20990 (source
20991 (origin
20992 (method git-fetch)
20993 (uri (git-reference
20994 (url "https://github.com/jorgenschaefer/emacs-buttercup")
20995 (commit (string-append "v" version))))
20996 (file-name (git-file-name name version))
20997 (sha256
20998 (base32
20999 "1w02p4bfkyga6sign4flq2kw0hawyvnv63410pyh8nm7acp311gg"))))
21000 (build-system emacs-build-system)
21001 (arguments
21002 `(#:tests? #t
21003 #:test-command '("make" "test")
21004 #:phases
21005 (modify-phases %standard-phases
21006 (add-after 'install 'install-bin
21007 (lambda* (#:key outputs #:allow-other-keys)
21008 (install-file "bin/buttercup"
21009 (string-append (assoc-ref outputs "out") "/bin"))
21010 #t)))))
21011 (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
21012 (synopsis "Behavior driven emacs lisp testing framework")
21013 (description "Buttercup is a behavior-driven development framework for
21014 testing Emacs Lisp code. It groups related tests so they can share
21015 common set-up and tear-down code, and allows the programmer to \"spy\" on
21016 functions to ensure they are called with the right arguments during testing.")
21017 (license license:gpl3+)))
21018
21019 (define-public emacs-cort
21020 (package
21021 (name "emacs-cort")
21022 (version "7.1.0")
21023 (source (origin
21024 (method git-fetch)
21025 (uri (git-reference
21026 (url "https://github.com/conao3/cort.el")
21027 (commit (string-append "v" version))))
21028 (file-name (git-file-name name version))
21029 (sha256
21030 (base32
21031 "03c223nczpbdkjmq69panhbsq2a0zj20w329jgj4c0zsj8m1a32a"))))
21032 (build-system emacs-build-system)
21033 (propagated-inputs
21034 `(("emacs-ansi" ,emacs-ansi)))
21035 (arguments
21036 `(#:tests? #t
21037 #:test-command '("emacs" "--batch" "--quick"
21038 "--directory=." "--load=cort-tests.el"
21039 "--funcall=cort-test-run")))
21040 (home-page "https://github.com/conao3/cort.el")
21041 (synopsis "Unit test framework for the Emacs Lisp")
21042 (description "@code{cort} is a lightweight Emacs Lisp unit test library.")
21043 (license license:gpl3+)))
21044
21045 (define-public emacs-wordnut
21046 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
21047 (revision "0"))
21048 (package
21049 (name "emacs-wordnut")
21050 (version (git-version "0.1" revision commit))
21051 (home-page "https://github.com/gromnitsky/wordnut")
21052 (source (origin
21053 (method git-fetch)
21054 (uri (git-reference (url home-page) (commit commit)))
21055 (sha256
21056 (base32
21057 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
21058 (patches
21059 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
21060 (file-name (git-file-name name version))))
21061 (build-system emacs-build-system)
21062 (propagated-inputs
21063 `(("wordnet" ,wordnet)
21064 ("emacs-adaptive-wrap" ,emacs-adaptive-wrap)))
21065 (synopsis "Major mode for WordNet")
21066 (description "This Emacs package provides an interface for
21067 @code{wordnet}. Features include completion, if the query is not found
21068 too ambiguous and navigation in the result buffer.")
21069 (license license:gpl3+))))
21070
21071 (define-public emacs-frame-local
21072 ;; There is no release yet. Version is extracted from the main
21073 ;; file.
21074 (let ((version "0.0.1")
21075 (revision "0")
21076 (commit "7ee1106c3bcd4022f48421f8cb1ef4f995da816e"))
21077 (package
21078 (name "emacs-frame-local")
21079 (version (git-version version revision commit))
21080 (source
21081 (origin
21082 (method git-fetch)
21083 (uri (git-reference
21084 (url "https://github.com/sebastiencs/frame-local")
21085 (commit commit)))
21086 (file-name (git-file-name name version))
21087 (sha256
21088 (base32 "0zfxsxdh3bd3fd566zl0byp13p5b8f4cgkwl637imvarvahczigp"))))
21089 (build-system emacs-build-system)
21090 (home-page "https://github.com/sebastiencs/frame-local")
21091 (synopsis "Access variables local to an Emacs frame")
21092 (description
21093 "This package allows setting and accessing variables local to
21094 an Emacs frame. Note that the variables created with this package do
21095 not have any relation with variables defined by @code{defvar},
21096 @code{defconst}, etc.")
21097 (license license:gpl3+))))
21098
21099 (define-public emacs-frame-purpose
21100 (package
21101 (name "emacs-frame-purpose")
21102 (version "1.0")
21103 (source (origin
21104 (method git-fetch)
21105 (uri (git-reference
21106 (url "https://github.com/alphapapa/frame-purpose.el")
21107 (commit version)))
21108 (sha256
21109 (base32
21110 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
21111 (file-name (git-file-name name version))))
21112 (build-system emacs-build-system)
21113 (inputs
21114 `(("dash" ,emacs-dash)))
21115 (synopsis "Purpose-specific frames for Emacs")
21116 (description "@code{frame-purpose} makes it easy to open purpose-specific
21117 frames that only show certain buffers, e.g. by buffers’ major mode, their
21118 filename or directory, etc, with custom frame/X-window titles, icons, and
21119 other frame parameters.")
21120 (home-page "https://github.com/alphapapa/frame-purpose.el")
21121 (license license:gpl3+)))
21122
21123 (define-public emacs-arduino-mode
21124 (let ((commit "23ae47c9f28f559e70b790b471f20310e163a39b")
21125 (revision "1")) ;no release yet
21126 (package
21127 (name "emacs-arduino-mode")
21128 (version (git-version "0" revision commit))
21129 (source (origin
21130 (method git-fetch)
21131 (uri (git-reference
21132 (url "https://github.com/stardiviner/arduino-mode")
21133 (commit commit)))
21134 (sha256
21135 (base32
21136 "08vnbz9gpah1l93fzfd87aawrhcnh2v1kyfxgsn88pdwg8awz8rx"))
21137 (file-name (git-file-name name version))))
21138 (build-system emacs-build-system)
21139 (inputs
21140 `(("spinner" ,emacs-spinner)
21141 ("flycheck" ,emacs-flycheck)))
21142 (arguments
21143 `(#:phases
21144 (modify-phases %standard-phases
21145 ;; Emacs complains that "defmethod" and "defgeneric" are obsolete
21146 ;; macros when compiling. Substitute them with the recommended
21147 ;; macros "cl-defmethod" and "cl-defgeneric", respectively.
21148 (add-after 'unpack 'fix-obsolete
21149 (lambda _
21150 (substitute* "ede-arduino.el"
21151 (("defmethod") "cl-defmethod")
21152 (("defgeneric") "cl-defgeneric"))
21153 #t)))))
21154 (synopsis "Emacs major mode for editing Arduino sketches")
21155 (description "Emacs major mode for editing Arduino sketches.")
21156 (home-page "https://github.com/stardiviner/arduino-mode")
21157 (license license:gpl3+))))
21158
21159 (define-public emacs-annalist
21160 (package
21161 (name "emacs-annalist")
21162 (version "1.0.1")
21163 (source (origin
21164 (method git-fetch)
21165 (uri (git-reference
21166 (url "https://github.com/noctuid/annalist.el")
21167 (commit version)))
21168 (sha256
21169 (base32
21170 "1jlb5w4972l8m2aa18q2l6arfpm65g4nk21dn1yi8c9dbpk2g67c"))
21171 (file-name (git-file-name name version))))
21172 (build-system emacs-build-system)
21173 (native-inputs
21174 `(("emacs-buttercup" ,emacs-buttercup)
21175 ("emacs-lispy" ,emacs-lispy)
21176 ("emacs-evil" ,emacs-evil)))
21177 (arguments
21178 `(#:phases
21179 (modify-phases %standard-phases
21180 (add-before 'check 'fix-makefile
21181 (lambda _
21182 (substitute* "Makefile"
21183 (("cask exec ") ""))
21184 #t)))
21185 #:tests? #t
21186 #:test-command '("make" "test")))
21187 (home-page "https://github.com/noctuid/annalist.el")
21188 (synopsis "Record and display information with Org headings and tables")
21189 (description "This package allows for keybindings, settings, hooks, and
21190 advice to be recorded and displayed.")
21191 (license license:gpl3+)))
21192
21193 (define-public emacs-general
21194 (let ((commit "a0b17d207badf462311b2eef7c065b884462cb7c")
21195 (revision "4"))
21196 (package
21197 (name "emacs-general")
21198 (version (git-version "0" revision commit))
21199 (source
21200 (origin
21201 (method git-fetch)
21202 (uri (git-reference
21203 (url "https://github.com/noctuid/general.el")
21204 (commit commit)))
21205 (sha256
21206 (base32 "0wn5rk3gkimdklip392mnjrmkymgrb7q9skifi03cbpjam1anzvv"))
21207 (file-name (git-file-name name version))))
21208 (build-system emacs-build-system)
21209 (native-inputs
21210 `(("emacs-buttercup" ,emacs-buttercup)
21211 ("emacs-evil" ,emacs-evil)
21212 ("emacs-which-key" ,emacs-which-key)
21213 ("emacs-use-package" ,emacs-use-package)))
21214 (arguments
21215 `(#:tests? #t
21216 #:test-command '("buttercup" "-L" "test/test-general.el")))
21217 (home-page "https://github.com/noctuid/general.el")
21218 (synopsis "More convenient key definitions in emacs")
21219 (description "@code{general.el} provides a more convenient method for
21220 binding keys in emacs (for both evil and non-evil users). Like
21221 @code{use-package}, which provides a convenient, unified interface for
21222 managing packages, @code{general.el} is intended to provide a convenient,
21223 unified interface for key definitions. While this package does implement some
21224 completely new functionality (such as the ability to make vim-style
21225 keybindings under non-prefix keys with an optional timeout), its primary
21226 purpose is to build on existing functionality to make key definition more
21227 clear and concise. @code{general-define-key} is user-extensible and supports
21228 defining multiple keys in multiple keymaps at once, implicitly wrapping key
21229 strings with (@code{kbd ...}), using named prefix key sequences (like the
21230 leader key in vim), and much more.")
21231 (license license:gpl3+))))
21232
21233 (define-public emacs-tldr
21234 (let ((commit "7203d1be3dcbf12131846ffe06601933fa874d74"))
21235 (package
21236 (name "emacs-tldr")
21237 (version (git-version "0" "1" commit))
21238 (home-page "https://github.com/kuanyui/tldr.el")
21239 (source (origin
21240 (method git-fetch)
21241 (uri (git-reference
21242 (url (string-append home-page ".git"))
21243 (commit commit)))
21244 (sha256
21245 (base32
21246 "1bw6la463l2yfm7rp76ga4makfy4kpxgwi7ni5gxk31w11g26ryk"))
21247 (file-name (git-file-name name version))))
21248 (build-system emacs-build-system)
21249 (propagated-inputs
21250 `(("emacs-request" ,emacs-request)))
21251 (synopsis "Simplified and community-driven man pages for Emacs")
21252 (description "@code{emacs-tldr} allows the user to access tldr pages
21253 from within emacs. The @code{tldr} pages are a community effort to simplify
21254 the man pages with practical examples.")
21255 (license license:wtfpl2))))
21256
21257 (define-public emacs-window-layout
21258 (package
21259 (name "emacs-window-layout")
21260 (version "1.4")
21261 (home-page "https://github.com/kiwanami/emacs-window-layout")
21262 (source (origin
21263 (method git-fetch)
21264 (uri (git-reference
21265 (url home-page)
21266 (commit (string-append "v" version))))
21267 (sha256
21268 (base32
21269 "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"))
21270 (file-name (git-file-name name version))))
21271 (build-system emacs-build-system)
21272 (synopsis "Simple window layout management framework for emacs")
21273 (description "A window-layout management library that can split a frame
21274 or a window into some windows according to a layout recipe.")
21275 (license license:gpl3+)))
21276
21277 (define-public emacs-e2wm
21278 (package
21279 (name "emacs-e2wm")
21280 (version "1.4")
21281 (home-page "https://github.com/kiwanami/emacs-window-manager")
21282 (source (origin
21283 (method git-fetch)
21284 (uri (git-reference
21285 (url home-page)
21286 (commit (string-append "v" version))))
21287 (sha256
21288 (base32
21289 "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
21290 (file-name (git-file-name name version))))
21291 (build-system emacs-build-system)
21292 (propagated-inputs
21293 `(("emacs-window-layout" ,emacs-window-layout)))
21294 (synopsis "Equilibrium Emacs Window Manager")
21295 (description "E2WM is a window manager for Emacs. It enables to
21296 customize the place of pop-up window, how the windows are split, how the
21297 buffers are located in the windows, keybinds to manipulate windows and
21298 buffers, etc. It also has plug-ins to help your Emacs life.")
21299 (license license:gpl3+)))
21300
21301 (define-public emacs-ctable
21302 (let ((commit "b8830d1ca95abb100a81bc32011bd17d5ecba000"))
21303 (package
21304 (name "emacs-ctable")
21305 (version (git-version "0.1.2" "1" commit))
21306 (home-page "https://github.com/kiwanami/emacs-ctable")
21307 (source (origin
21308 (method git-fetch)
21309 (uri (git-reference
21310 (url home-page)
21311 (commit commit)))
21312 (sha256
21313 (base32
21314 "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h"))
21315 (file-name (git-file-name name version))))
21316 (build-system emacs-build-system)
21317 (synopsis "Table component for Emacs Lisp")
21318 (description "This program is a table component for Emacs Lisp. Other
21319 programs can use this table component for the application UI.")
21320 (license license:gpl3+))))
21321
21322 (define-public emacs-leetcode
21323 (let ((commit "8624496af9e105c3e07d88844b37ede87540d604")
21324 (revision "1"))
21325 (package
21326 (name "emacs-leetcode")
21327 (version (git-version "0" "1" commit))
21328 (home-page "https://github.com/ginqi7/leetcode-emacs")
21329 (source (origin
21330 (method git-fetch)
21331 (uri (git-reference
21332 (url "https://github.com/ginqi7/leetcode-emacs")
21333 (commit commit)))
21334 (sha256
21335 (base32
21336 "11pp7ydlmwrv7djf9mwk4xzn295xbmdnj5x13bfj5yjpjr89p531"))
21337 (file-name (git-file-name name version))))
21338 (build-system emacs-build-system)
21339 (propagated-inputs
21340 `(("emacs-names" ,emacs-names)
21341 ("emacs-ctable" ,emacs-ctable)))
21342 (synopsis "Solve and submit LeetCode problems from within Emacs")
21343 (description "This package provides an Emacs interface to LeetCode
21344 allowing users to log in and solve problems of their choice using Emacs.")
21345 (license license:unlicense))))
21346
21347 (define-public emacs-epc
21348 (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
21349 (package
21350 (name "emacs-epc")
21351 (version (git-version "0.1.1" "1" commit))
21352 (home-page "https://github.com/kiwanami/emacs-epc")
21353 (source (origin
21354 (method git-fetch)
21355 (uri (git-reference
21356 (url home-page)
21357 (commit commit)))
21358 (sha256
21359 (base32
21360 "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
21361 (file-name (git-file-name name version))))
21362 (build-system emacs-build-system)
21363 (propagated-inputs
21364 `(("emacs-deferred" ,emacs-deferred)
21365 ("emacs-ctable" ,emacs-ctable)))
21366 (synopsis "RPC stack for Emacs Lisp")
21367 (description "This program is an asynchronous RPC stack for Emacs.
21368 Using this RPC stack, Emacs can communicate with the peer process
21369 smoothly. Because the protocol employs S-expression encoding and consists of
21370 asynchronous communications, the RPC response is fairly good.")
21371 (license license:gpl3+))))
21372
21373 (define-public emacs-edbi
21374 (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
21375 (package
21376 (name "emacs-edbi")
21377 (version (git-version "0.1.3" "1" commit))
21378 (home-page "https://github.com/kiwanami/emacs-edbi")
21379 (source (origin
21380 (method git-fetch)
21381 (uri (git-reference
21382 (url home-page)
21383 (commit commit)))
21384 (sha256
21385 (base32
21386 "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
21387 (file-name (git-file-name name version))))
21388 (build-system emacs-build-system)
21389 (inputs
21390 `(("perl" ,perl)
21391 ("perl-rpc-epc-service" ,perl-rpc-epc-service)
21392 ("perl-dbi" ,perl-dbi)
21393 ;; TODO: Adding support for perl-dbd-mysql and others would
21394 ;; dramatically increase the closure size. Make several packages?
21395 ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
21396 (propagated-inputs
21397 `(("emacs-e2wm" ,emacs-e2wm)
21398 ("emacs-epc" ,emacs-epc)))
21399 (arguments
21400 `(#:include '("\\.el$" "\\.pl$")
21401 #:phases
21402 (modify-phases %standard-phases
21403 (add-after 'install 'patch-path
21404 (lambda* (#:key inputs outputs #:allow-other-keys)
21405 (let ((perl (assoc-ref inputs "perl"))
21406 (dir (string-append (assoc-ref outputs "out")
21407 "/share/emacs/site-lisp")))
21408 (substitute* (string-append dir "/edbi.el")
21409 (("\"perl\"") (string-append "\"" perl "/bin/perl\"")))
21410 (chmod (string-append dir "/edbi-bridge.pl") #o555)
21411 (wrap-program (string-append dir "/edbi-bridge.pl")
21412 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))
21413 #t))))))
21414 (synopsis "Database Interface for Emacs Lisp")
21415 (description "This program connects the database server through Perl's
21416 DBI, and provides DB-accessing API and the simple management UI.")
21417 (license license:gpl3+))))
21418
21419 (define-public emacs-edbi-sqlite
21420 (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
21421 (package
21422 (name "emacs-edbi-sqlite")
21423 (version (git-version "0.1.1" "1" commit))
21424 (home-page "https://github.com/proofit404/edbi-sqlite")
21425 (source (origin
21426 (method git-fetch)
21427 (uri (git-reference
21428 (url home-page)
21429 (commit commit)))
21430 (sha256
21431 (base32
21432 "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
21433 (file-name (git-file-name name version))))
21434 (build-system emacs-build-system)
21435 (propagated-inputs
21436 `(("emacs-edbi" ,emacs-edbi)))
21437 (synopsis "Open SQLite files in Emacs")
21438 (description "This package is a convenience wrapper for @command{edbi}
21439 to open SQLite databases.")
21440 (license license:gpl3+))))
21441
21442 (define-public emacs-nice-citation
21443 (let ((commit "1013b56d9d1495a335f40a5f76203034dc5fa0ea")
21444 (revision "0"))
21445 (package
21446 (name "emacs-nice-citation")
21447 (version (git-version "0.0.2" revision commit))
21448 (source
21449 (origin
21450 (method git-fetch)
21451 (uri (git-reference
21452 (url "https://github.com/damiencollard/nice-citation")
21453 (commit commit)))
21454 (sha256
21455 (base32 "00xqr7haca5vd0bzd043lc6x4fjb903z96frz9b8cbd7spp63z7q"))
21456 (file-name (git-file-name name version))))
21457 (build-system emacs-build-system)
21458 (home-page "https://github.com/damiencollard/nice-citation")
21459 (synopsis "Depth-colored citations for Gnus")
21460 (description
21461 "This package replaces the traditional chevron citation marks @samp{>}
21462 with a Unicode vertical bar with the same color as the text it is quoting.
21463
21464 It is purely presentation: the underlying text is unchanged. In particular,
21465 if you send a message containing a citation, it will contain the traditional
21466 chevron marks.")
21467 (license license:gpl3+))))
21468
21469 (define-public emacs-nix-mode
21470 (package
21471 (name "emacs-nix-mode")
21472 (version "1.4.5")
21473 (source
21474 (origin
21475 (method git-fetch)
21476 (uri (git-reference
21477 (url "https://github.com/NixOS/nix-mode")
21478 (commit (string-append "v" version))))
21479 (file-name (git-file-name name version))
21480 (sha256
21481 (base32 "1bqlhkxg0faddhvxx909dq46dxdxk4mdyhdpww92dmzgxdpq38sx"))))
21482 (build-system emacs-build-system)
21483 (inputs
21484 `(("emacs-company" ,emacs-company)
21485 ("emacs-json-mode" ,emacs-json-mode)
21486 ("emacs-mmm-mode" ,emacs-mmm-mode)))
21487 (home-page "https://github.com/NixOS/nix-mode")
21488 (synopsis "Emacs major mode for editing Nix expressions")
21489 (description "@code{nixos-mode} provides an Emacs major mode for editing
21490 Nix expressions. It supports syntax highlighting, indenting and refilling of
21491 comments.")
21492 (license license:lgpl2.1+)))
21493
21494 (define-public emacs-libmpdel
21495 (package
21496 (name "emacs-libmpdel")
21497 (version "1.2.0")
21498 (source (origin
21499 (method git-fetch)
21500 (uri (git-reference
21501 (url "https://gitea.petton.fr/mpdel/libmpdel.git")
21502 (commit (string-append "v" version))))
21503 (file-name (git-file-name name version))
21504 (sha256
21505 (base32
21506 "1nzs6g2mg3jhfhhfcxjhd9sbvwzhmr6j6mc80ln2nr4gzjqgaa4k"))))
21507 (build-system emacs-build-system)
21508 (home-page "https://gitea.petton.fr/mpdel/libmpdel")
21509 (synopsis "Emacs library to communicate with Music Player Daemon (MPD)")
21510 (description
21511 "An Emacs library client to communicate with Music Player Daemon (MPD), a
21512 flexible, powerful, server-side application for playing music.")
21513 (license license:gpl3+)))
21514
21515 (define-public emacs-mpdel
21516 (package
21517 (name "emacs-mpdel")
21518 (version "1.0.0")
21519 (source
21520 (origin
21521 (method git-fetch)
21522 (uri (git-reference
21523 (url "https://gitea.petton.fr/mpdel/mpdel.git")
21524 (commit (string-append "v" version))))
21525 (file-name (git-file-name name version))
21526 (sha256
21527 (base32
21528 "0pyyvbzskr44dxbmlp3y0r6s459fd51cvwjmnjaqxfxflr5v891g"))))
21529 (build-system emacs-build-system)
21530 (inputs
21531 `(("emacs-libmpdel" ,emacs-libmpdel)))
21532 (home-page "https://gitea.petton.fr/mpdel/mpdel")
21533 (synopsis "Emacs user interface for Music Player Daemon (MPD)")
21534 (description
21535 "MPDel provides an Emacs user interface to control playback (play, pause,
21536 next, volume) and display and control the current playlist as well as your
21537 stored playlists.")
21538 (license license:gpl3+)))
21539
21540 (define-public emacs-vterm
21541 (let ((version "0.0.1")
21542 (revision "0")
21543 (commit "a670b786539d3c8865d8f68fe0c67a2d4afbf1aa"))
21544 (package
21545 (name "emacs-vterm")
21546 (version (git-version version revision commit))
21547 (source (origin
21548 (method git-fetch)
21549 (uri (git-reference
21550 (url "https://github.com/akermu/emacs-libvterm")
21551 (commit commit)))
21552 (file-name (git-file-name name version))
21553 (sha256
21554 (base32
21555 "0s244crjkbzl2jhp9m4sm1xdhbpxwph0m3jg18livirgajvdz6hn"))))
21556 (build-system emacs-build-system)
21557 (arguments
21558 `(#:modules ((guix build emacs-build-system)
21559 ((guix build cmake-build-system) #:prefix cmake:)
21560 (guix build emacs-utils)
21561 (guix build utils))
21562 #:imported-modules (,@%emacs-build-system-modules
21563 (guix build cmake-build-system))
21564 #:phases
21565 (modify-phases %standard-phases
21566 (add-before 'add-source-to-load-path 'substitute-vterm-module-path
21567 (lambda* (#:key outputs #:allow-other-keys)
21568 (chmod "vterm.el" #o644)
21569 (emacs-substitute-sexps "vterm.el"
21570 ("(require 'vterm-module nil t)"
21571 `(module-load
21572 ,(string-append (assoc-ref outputs "out")
21573 "/lib/vterm-module.so"))))
21574 #t))
21575 (add-after 'build 'configure
21576 ;; Run cmake.
21577 (lambda* (#:key outputs #:allow-other-keys)
21578 ((assoc-ref cmake:%standard-phases 'configure)
21579 #:outputs outputs
21580 #:out-of-source? #f
21581 #:configure-flags '("-DUSE_SYSTEM_LIBVTERM=ON"))
21582 #t))
21583 (add-after 'configure 'make
21584 ;; Run make.
21585 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
21586 ;; Compile the shared object file.
21587 (apply invoke "make" "all" make-flags)
21588 ;; Move the file into /lib.
21589 (install-file
21590 "vterm-module.so"
21591 (string-append (assoc-ref outputs "out") "/lib"))
21592 #t)))
21593 #:tests? #f))
21594 (native-inputs
21595 `(("cmake" ,cmake-minimal)
21596 ("libtool" ,libtool)
21597 ("libvterm" ,libvterm)))
21598 (home-page "https://github.com/akermu/emacs-libvterm")
21599 (synopsis "Emacs libvterm integration")
21600 (description "This package implements a bridge to @code{libvterm} to
21601 display a terminal in an Emacs buffer.")
21602 (license license:gpl3+))))
21603
21604 (define-public emacs-vterm-toggle
21605 ;; There have been no releases.
21606 (let ((commit "d10239b7bb89b78dddb82f66ac2286bc0b02747b")
21607 (revision "1"))
21608 (package
21609 (name "emacs-vterm-toggle")
21610 (version (git-version "0.0.4" revision commit))
21611 (source
21612 (origin
21613 (method git-fetch)
21614 (uri (git-reference
21615 (url "https://github.com/jixiuf/vterm-toggle")
21616 (commit commit)))
21617 (file-name (git-file-name name version))
21618 (sha256
21619 (base32 "0r9n23wg9cfy10h5f9zqr8jpkvw34f9rylri3nxq870awjab7rqi"))))
21620 (build-system emacs-build-system)
21621 (propagated-inputs `(("emacs-vterm" ,emacs-vterm)))
21622 (home-page "https://github.com/jixiuf/vterm-toggle")
21623 (synopsis "Toggle between a vterm buffer and other buffers")
21624 (description
21625 "This package provides a DWIM way to switch from an Emacs buffer to
21626 a vterm buffer and back again.")
21627 (license license:gpl3+))))
21628
21629 (define-public emacs-simple-mpc
21630 ;; There have been no releases.
21631 (let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
21632 (revision "1"))
21633 (package
21634 (name "emacs-simple-mpc")
21635 (version (git-version "0" revision commit))
21636 (source
21637 (origin
21638 (method git-fetch)
21639 (uri (git-reference
21640 (url "https://github.com/jorenvo/simple-mpc")
21641 (commit commit)))
21642 (file-name (git-file-name name version))
21643 (sha256
21644 (base32
21645 "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"))))
21646 (build-system emacs-build-system)
21647 (propagated-inputs `(("emacs-s" ,emacs-s)))
21648 (home-page "https://github.com/jorenvo/simple-mpc")
21649 (synopsis "Simple Emacs frontend to mpc")
21650 (description "This package provides an Emacs major mode which acts as a
21651 front end to mpc, a client for the @dfn{Music Player Daemon} (MPD).")
21652 (license license:gpl3+))))
21653
21654 (define-public emacs-mkmcc-gnuplot-mode
21655 (package
21656 (name "emacs-mkmcc-gnuplot-mode")
21657 (version "1.2.0")
21658 (source
21659 (origin
21660 (method git-fetch)
21661 (uri (git-reference
21662 (url "https://github.com/mkmcc/gnuplot-mode")
21663 (commit "601f6392986f0cba332c87678d31ae0d0a496ce7")))
21664 (file-name (git-file-name name version))
21665 (sha256
21666 (base32
21667 "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"))))
21668 (build-system emacs-build-system)
21669 (home-page "https://mkmcc.github.io/software/gnuplot-mode.html")
21670 (synopsis "Minimal emacs major mode for editing gnuplot scripts")
21671 (description "@code{emacs-mkmcc-gnuplot-mode} is a minimal emacs major
21672 mode for editing gnuplot scripts. It provides syntax highlighting,
21673 indentation and a command to plot the file.")
21674 (license license:gpl3+)))
21675
21676 (define-public emacs-cmake-font-lock
21677 (let ((commit "e0ceaaae19c13b66f781512e3295bfc6707b56f4")
21678 (revision "1"))
21679 (package
21680 (name "emacs-cmake-font-lock")
21681 (version (git-version "0.1.5" revision commit))
21682 (source (origin
21683 (method git-fetch)
21684 (uri (git-reference
21685 (url "https://github.com/Lindydancer/cmake-font-lock")
21686 (commit commit)))
21687 (file-name (git-file-name name version))
21688 (sha256
21689 (base32
21690 "03gsyn95dlmsn15bl353bphi3qy7ccn5bss3f7n97kf38bllh0yf"))))
21691 (build-system emacs-build-system)
21692 (native-inputs
21693 `(("emacs-faceup" ,emacs-faceup)))
21694 (arguments
21695 `(#:include (cons "^admin\\/" %default-include)))
21696 (home-page "https://github.com/Lindydancer/cmake-font-lock")
21697 (synopsis "Advanced type-aware syntax-highlighting for CMake")
21698 (description "This package highlights function arguments in CMake
21699 according to their use.")
21700 (license license:gpl3+))))
21701
21702 (define-public emacs-dtrt-indent
21703 (package
21704 (name "emacs-dtrt-indent")
21705 (version "1.4")
21706 (source (origin
21707 (method git-fetch)
21708 (uri (git-reference
21709 (url "https://github.com/jscheid/dtrt-indent")
21710 (commit version)))
21711 (file-name (git-file-name name version))
21712 (sha256
21713 (base32
21714 "11r68sh3yrrfib7pixnazispwsffrygmgplffrv8qq57xrqzyxih"))))
21715 (build-system emacs-build-system)
21716 (home-page "https://github.com/jscheid/dtrt-indent")
21717 (synopsis "Minor mode that guesses the indentation offset")
21718 (description "This package provides a minor mode that guesses the
21719 indentation offset originally used for creating source code files and
21720 transparently adjusts the corresponding settings in Emacs, making it more
21721 convenient to edit foreign files.")
21722 (license license:gpl2+)))
21723
21724 (define-public emacs-repo
21725 (package
21726 (name "emacs-repo")
21727 (version "0.2.0")
21728 (source (origin
21729 (method git-fetch)
21730 (uri (git-reference
21731 (url "https://github.com/canatella/repo-el")
21732 (commit version)))
21733 (file-name (git-file-name name version))
21734 (sha256
21735 (base32
21736 "0jgiawdnzjlrpx2j1y6djwbqncdpmyfd31q1qf1890049y8ppxnb"))))
21737 (build-system emacs-build-system)
21738 (native-inputs
21739 `(("emacs-el-mock" ,emacs-el-mock)
21740 ("ert-runner" ,emacs-ert-runner)))
21741 (propagated-inputs
21742 `(("emacs-f" ,emacs-f)
21743 ("magit" ,emacs-magit)))
21744 (home-page "https://github.com/canatella/repo-el")
21745 (synopsis "Emacs interface for the Google Repo tool")
21746 (description "This package provides integration of the Google Repo tool
21747 with emacs. It displays the output of the @code{repo status} command in a
21748 buffer and launches Magit from the status buffer for the project at point.")
21749 (license license:gpl3+)))
21750
21751 (define-public emacs-repology
21752 (package
21753 (name "emacs-repology")
21754 (version "1.1.0")
21755 (source
21756 (origin
21757 (method url-fetch)
21758 (uri (string-append "https://elpa.gnu.org/packages/"
21759 "repology-" version ".tar"))
21760 (sha256
21761 (base32 "031245rrhazj53bk1csa6x3ygzvg74w2hwjf08ficwvmdn97li90"))))
21762 (build-system emacs-build-system)
21763 (home-page "https://elpa.gnu.org/packages/repology.html")
21764 (synopsis "Repology API access via Elisp")
21765 (description
21766 "This package provides tools to query Repology API (see
21767 @url{https://repology.org/api}), process results, and display them.")
21768 (license license:gpl3+)))
21769
21770 (define-public emacs-alect-themes
21771 (package
21772 (name "emacs-alect-themes")
21773 (version "0.9")
21774 (source (origin
21775 (method git-fetch)
21776 (uri (git-reference
21777 (url "https://github.com/alezost/alect-themes")
21778 (commit (string-append "v" version))))
21779 (file-name (git-file-name name version))
21780 (sha256
21781 (base32
21782 "0nffxpdm0sa7bynwi0rmlwpc4qmvbda5ankhzz7fmk4ap9fkjxv9"))))
21783 (build-system emacs-build-system)
21784 (home-page "https://github.com/alezost/alect-themes")
21785 (synopsis "Low contrast, light, dark and black color theme for Emacs")
21786 (description "@code{emacs-alect-themes} provides configurable light, dark
21787 and black color themes for Emacs. The themes are intended to be used with
21788 GUI.")
21789 (license license:gpl3+)))
21790
21791 (define-public emacs-google-c-style
21792 (let ((commit "6271f3f473ceb3a7fef99388a3040903b1a145f1")
21793 (revision "0"))
21794 (package
21795 (name "emacs-google-c-style")
21796 (version (git-version "0.1" revision commit))
21797 (source (origin
21798 (method git-fetch)
21799 (uri (git-reference
21800 (url "https://github.com/google/styleguide")
21801 (commit commit)))
21802 (file-name (git-file-name name version))
21803 (sha256
21804 (base32
21805 "1jghyyasdl15c4gaqaxmdn43am63k6bykn5ab83f1ahv9zi1krxk"))))
21806 (build-system emacs-build-system)
21807 (home-page "https://github.com/google/styleguide")
21808 (synopsis "Emacs settings file for Google C/C++ style")
21809 (description "@code{emacs-google-c-style} provides an Emacs settings
21810 file for Google C and C++ style.")
21811 (license license:gpl1+))))
21812
21813 (define-public emacs-redshank
21814 (let ((commit "f98e68f532e622bcd464292ca4a9cf5fbea14ebb")
21815 (revision "1"))
21816 (package
21817 (name "emacs-redshank")
21818 (version (git-version "0.1" revision commit))
21819 (source (origin
21820 (method git-fetch)
21821 (uri (git-reference
21822 (url "http://www.foldr.org/~michaelw/projects/redshank.git")
21823 (commit commit)))
21824 (file-name (git-file-name name version))
21825 (sha256
21826 (base32
21827 "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"))))
21828 (build-system emacs-build-system)
21829 (propagated-inputs
21830 `(("emacs-paredit" ,emacs-paredit)))
21831 (home-page "http://www.foldr.org/~michaelw/emacs/redshank/")
21832 (synopsis "Common Lisp Editing Extensions (for Emacs)")
21833 (description "Redshank is a collection of code-wrangling Emacs macros
21834 mostly geared towards Common Lisp, but some are useful for other Lisp
21835 dialects, too. Redshank's code transformations aim to be expression-based (as
21836 opposed to character-based).")
21837 (license license:gpl1+))))
21838
21839 (define-public emacs-disk-usage
21840 (package
21841 (name "emacs-disk-usage")
21842 (version "1.3.3")
21843 (source
21844 (origin
21845 (method git-fetch)
21846 (uri (git-reference
21847 (url "https://gitlab.com/Ambrevar/emacs-disk-usage")
21848 (commit version)))
21849 (file-name (git-file-name name version))
21850 (sha256
21851 (base32
21852 "0hv2gsd8k5fbjgckgiyisq4rn1i7y4rchbjy8kmixjv6mx563bll"))))
21853 (build-system emacs-build-system)
21854 (home-page "https://gitlab.com/Ambrevar/emacs-disk-usage")
21855 (synopsis "Sort and browse disk usage listings with Emacs")
21856 (description "Disk Usage is a file system analyzer: it offers a tabulated
21857 view of file listings sorted by size. Directory sizes are computed
21858 recursively. The results are cached for speed.")
21859 (license license:gpl3+)))
21860
21861 (define-public emacs-orgit
21862 (package
21863 (name "emacs-orgit")
21864 (version "1.6.3")
21865 (home-page "https://github.com/magit/orgit")
21866 (source (origin
21867 (method git-fetch)
21868 (uri (git-reference
21869 (url home-page)
21870 (commit (string-append "v" version))))
21871 (file-name (git-file-name name version))
21872 (sha256
21873 (base32
21874 "08amzcvw483dpfq5r34ysn84wzd538qk0jblc94vgcaidspx6481"))))
21875 (build-system emacs-build-system)
21876 (propagated-inputs
21877 `(("emacs-dash" ,emacs-dash)
21878 ("emacs-magit" ,emacs-magit)))
21879 (synopsis "Support for Org links to Magit buffers")
21880 (description "This package defines several Org link types, which can be
21881 used to link to certain Magit buffers. Use the command
21882 @command{org-store-link} while such a buffer is current to store a link.
21883 Later you can insert it into an Org buffer using the command
21884 @code{org-insert-link}.")
21885 (license license:gpl3+)))
21886
21887 (define-public emacs-amx
21888 (package
21889 (name "emacs-amx")
21890 (version "3.3")
21891 (source
21892 (origin
21893 (method git-fetch)
21894 (uri (git-reference
21895 (url "https://github.com/DarwinAwardWinner/amx")
21896 (commit (string-append "v" version))))
21897 (file-name (git-file-name name version))
21898 (sha256
21899 (base32 "0ikjzs119g57cwh2v3jmy63lggqc0ib99q5gsl93slkk4y2ihavw"))))
21900 (build-system emacs-build-system)
21901 (propagated-inputs
21902 `(("emacs-s" ,emacs-s)))
21903 (home-page "https://github.com/DarwinAwardWinner/amx")
21904 (synopsis "Alternative M-x interface for Emacs")
21905 (description "Amx is an alternative interface for M-x in Emacs. It
21906 provides several enhancements over the ordinary
21907 @code{execute-extended-command}, such as prioritizing your most-used commands
21908 in the completion list and showing keyboard shortcuts, and it supports several
21909 completion systems for selecting commands, such as Ido and Ivy.")
21910 (license license:gpl3+)))
21911
21912 (define-public emacs-lorem-ipsum
21913 (let ((commit "4b39f6fed455d67f635b3837cf5668bf74d0f6cd"))
21914 (package
21915 (name "emacs-lorem-ipsum")
21916 (version (git-version "0.2" "1" commit))
21917 (home-page "https://github.com/jschaf/emacs-lorem-ipsum/")
21918 (source (origin
21919 (method git-fetch)
21920 (uri (git-reference
21921 (url home-page)
21922 (commit commit)))
21923 (file-name (git-file-name name version))
21924 (sha256
21925 (base32
21926 "0a3b18p3vdjci89prsgdzjnfxsl8p67vjhf8ai4qdng7zvh50lir"))))
21927 (build-system emacs-build-system)
21928 (synopsis "Insert dummy pseudo Latin text in Emacs")
21929 (description "This package provides convenience functions to insert
21930 dummy Latin text into a buffer. This can be useful if you need to produce
21931 paragraphs or pages of text for testing purposes.")
21932 (license license:gpl3+))))
21933
21934 (define-public emacs-lisp-extra-font-lock
21935 (let ((commit "4605eccbe1a7fcbd3cacf5b71249435413b4db4f"))
21936 (package
21937 (name "emacs-lisp-extra-font-lock")
21938 (version (git-version "0.0.6" "1" commit))
21939 (home-page "https://github.com/Lindydancer/lisp-extra-font-lock")
21940 (source (origin
21941 (method git-fetch)
21942 (uri (git-reference
21943 (url home-page)
21944 (commit commit)))
21945 (file-name (git-file-name name version))
21946 (sha256
21947 (base32
21948 "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w"))))
21949 (build-system emacs-build-system)
21950 (synopsis "Highlight bound variables and quoted expressions in Emacs")
21951 (description "This package highlight the location where local variables
21952 is created (bound, for example, by let) as well as quoted and backquoted
21953 constant expressions.")
21954 (license license:gpl3+))))
21955
21956 (define-public emacs-docker-tramp
21957 (package
21958 (name "emacs-docker-tramp")
21959 (version "0.1")
21960 (source
21961 (origin
21962 (method git-fetch)
21963 (uri (git-reference
21964 (url "https://github.com/emacs-pe/docker-tramp.el")
21965 (commit (string-append "v" version))))
21966 (file-name (git-file-name name version))
21967 (sha256
21968 (base32
21969 "0lxvzmfg52fhxrhbvp92zwp7cv4i1rlxnkyyzgngj3sjm7y60yvg"))))
21970 (build-system emacs-build-system)
21971 (home-page "https://github.com/emacs-pe/docker-tramp.el")
21972 (synopsis "TRAMP integration for docker containers")
21973 (description
21974 "This package provides a TRAMP method for Docker containers.")
21975 (license license:gpl3+)))
21976
21977 (define-public emacs-docker
21978 (package
21979 (name "emacs-docker")
21980 (version "1.3.0")
21981 (source (origin
21982 (method git-fetch)
21983 (uri (git-reference
21984 (url "https://github.com/Silex/docker.el")
21985 (commit version)))
21986 (file-name (git-file-name name version))
21987 (sha256
21988 (base32
21989 "1g8r1faqp0z0vqp9qrl8m84pa0v2ddvc91klphdkfmldwv7rfipw"))))
21990 (inputs
21991 `(("emacs-undercover" ,emacs-undercover)))
21992 (propagated-inputs
21993 `(("emacs-dash" ,emacs-dash)
21994 ("emacs-docker-tramp" ,emacs-docker-tramp)
21995 ("emacs-magit-popup" ,emacs-magit-popup)
21996 ("emacs-s" ,emacs-s)
21997 ("emacs-tablist" ,emacs-tablist)
21998 ("emacs-json-mode" ,emacs-json-mode)))
21999 (arguments
22000 `(#:phases
22001 (modify-phases %standard-phases
22002 (delete 'check)))) ;no tests
22003 (build-system emacs-build-system)
22004 (home-page "https://github.com/Silex/docker.el")
22005 (synopsis "Manage docker from Emacs")
22006 (description "This package provides an Emacs interface for Docker.")
22007 (license license:gpl3+)))
22008
22009 (define-public emacs-dockerfile-mode
22010 (package
22011 (name "emacs-dockerfile-mode")
22012 (version "1.3")
22013 (source
22014 (origin
22015 (method git-fetch)
22016 (uri (git-reference
22017 (url "https://github.com/spotify/dockerfile-mode")
22018 (commit (string-append "v" version))))
22019 (file-name (git-file-name name version))
22020 (sha256
22021 (base32
22022 "1br73dsls42fn4rwagljkpa3l4wwj6f7jxfn3gmgl6c54z81av3v"))))
22023 (build-system emacs-build-system)
22024 (propagated-inputs
22025 `(("emacs-s" ,emacs-s)))
22026 (home-page "https://github.com/spotify/dockerfile-mode")
22027 (synopsis "Major mode for editing Dockerfile")
22028 (description
22029 "This package provides a major mode @code{dockerfile-mode} for use with
22030 the standard @code{Dockerfile} file format.")
22031 (license license:asl2.0)))
22032
22033 (define-public emacs-lsp-mode
22034 (package
22035 (name "emacs-lsp-mode")
22036 (version "7.0.1")
22037 (source
22038 (origin
22039 (method git-fetch)
22040 (uri (git-reference
22041 (url "https://github.com/emacs-lsp/lsp-mode")
22042 (commit version)))
22043 (file-name (git-file-name name version))
22044 (sha256
22045 (base32 "1z8zm7qr21hvhl6rnbznv2l9drh1pp5y4zkjrx5ac4x77b8i4aaz"))))
22046 (build-system emacs-build-system)
22047 (propagated-inputs
22048 `(("emacs-dash" ,emacs-dash)
22049 ("emacs-f" ,emacs-f)
22050 ("emacs-ht" ,emacs-ht)
22051 ("emacs-hydra" ,emacs-hydra)
22052 ("emacs-markdown-mode" ,emacs-markdown-mode)
22053 ("emacs-spinner" ,emacs-spinner)))
22054 (home-page "https://emacs-lsp.github.io/lsp-mode/")
22055 (synopsis "Emacs client and library for the Language Server Protocol")
22056 (description
22057 "LSP mode is a client and library implementation for the Language Server
22058 Protocol. This mode creates an IDE-like experience by providing optional
22059 integration with other popular Emacs packages like Company, Flycheck, and
22060 Projectile.")
22061 (license license:gpl3+)))
22062
22063 (define-public emacs-lsp-treemacs
22064 (package
22065 (name "emacs-lsp-treemacs")
22066 (version "0.3")
22067 (source
22068 (origin
22069 (method git-fetch)
22070 (uri (git-reference
22071 (url "https://github.com/emacs-lsp/lsp-treemacs")
22072 (commit version)))
22073 (file-name (git-file-name name version))
22074 (sha256
22075 (base32 "1z9cb7i546pbzvxii6lsj31jq8m70xrzscphl5z71vh93sydyhkb"))))
22076 (build-system emacs-build-system)
22077 (propagated-inputs
22078 `(("emacs-lsp-mode" ,emacs-lsp-mode)
22079 ("emacs-treemacs" ,emacs-treemacs)))
22080 (home-page "https://github.com/emacs-lsp/lsp-treemacs")
22081 (synopsis "Integration between LSP mode and treemacs")
22082 (description
22083 "This package provides integration between LSP mode and treemacs,
22084 and implementation of treeview controls using treemacs as a tree renderer.")
22085 (license license:gpl3+)))
22086
22087 (define-public emacs-dap-mode
22088 (package
22089 (name "emacs-dap-mode")
22090 (version "0.6")
22091 (source
22092 (origin
22093 (method git-fetch)
22094 (uri (git-reference
22095 (url "https://github.com/emacs-lsp/dap-mode")
22096 (commit version)))
22097 (file-name (git-file-name name version))
22098 (sha256
22099 (base32 "1d4hdydfk86d4slibigyhwng8wx3vzyap8hp5iv0h7wr6868m4iv"))))
22100 (build-system emacs-build-system)
22101 (propagated-inputs
22102 `(("emacs-bui" ,emacs-bui)
22103 ("emacs-lsp-mode" ,emacs-lsp-mode)
22104 ("emacs-posframe" ,emacs-posframe)
22105 ("emacs-lsp-treemacs" ,emacs-lsp-treemacs)))
22106 (home-page "https://emacs-lsp.github.io/dap-mode")
22107 (synopsis "Emacs client/library for Debug Adapter Protocol ")
22108 (description
22109 "Dap mode is an Emacs client/library for Debug Adapter
22110 Protocol (DAP), a wire protocol for communication between client and
22111 debug server. It is similar to the LSP but provides integration with
22112 Debug server.")
22113 (license license:gpl3+)))
22114
22115 (define-public emacs-pfuture
22116 (package
22117 (name "emacs-pfuture")
22118 (version "1.9")
22119 (source (origin
22120 (method git-fetch)
22121 (uri (git-reference
22122 (url "https://github.com/Alexander-Miller/pfuture")
22123 (commit version)))
22124 (file-name (git-file-name name version))
22125 (sha256
22126 (base32
22127 "1chpin5277vbl2xvsl04pzzk7a9dbcvclibm2496gz6yvd19pwsf"))))
22128 (build-system emacs-build-system)
22129 (home-page
22130 "https://github.com/Alexander-Miller/pfuture")
22131 (synopsis "Simple wrapper around asynchronous processes for Emacs")
22132 (description "This package provides a simple wrapper around asynchronous
22133 processes for Emacs")
22134 (license license:gpl3+)))
22135
22136 (define-public emacs-treemacs
22137 (package
22138 (name "emacs-treemacs")
22139 (version "2.8")
22140 (source (origin
22141 (method git-fetch)
22142 (uri (git-reference
22143 (url "https://github.com/Alexander-Miller/treemacs")
22144 (commit version)))
22145 (file-name (git-file-name name version))
22146 (sha256
22147 (base32
22148 "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"))))
22149 (build-system emacs-build-system)
22150 (propagated-inputs
22151 `(("emacs-ace-window" ,emacs-ace-window)
22152 ("emacs-dash" ,emacs-dash)
22153 ("emacs-f" ,emacs-f)
22154 ("emacs-ht" ,emacs-ht)
22155 ("emacs-hydra" ,emacs-hydra)
22156 ("emacs-pfuture" ,emacs-pfuture)
22157 ("emacs-s" ,emacs-s)))
22158 (native-inputs
22159 `(("emacs-buttercup" ,emacs-buttercup)
22160 ("emacs-el-mock" ,emacs-el-mock)))
22161 (inputs
22162 `(("python" ,python)))
22163 (arguments
22164 `(#:tests? #t
22165 #:phases
22166 (modify-phases %standard-phases
22167 (add-after 'unpack 'fix-makefile
22168 (lambda _
22169 (substitute* "Makefile"
22170 (("@\\$\\(CASK\\) exec ") "")
22171 ;; Guix does not need to prepare dependencies before testing.
22172 (("test: prepare") "test:"))
22173 #t))
22174 (add-after 'fix-makefile 'chdir-elisp
22175 ;; Elisp directory is not in root of the source.
22176 (lambda _
22177 (chdir "src/elisp")))
22178 (replace 'check
22179 ;; FIXME: Work around ‘treemacs--parse-collapsed-dirs’ and
22180 ;; `treemacs-collect-child-nodes' test failures.
22181 (lambda _
22182 (with-directory-excursion "../.." ;treemacs root
22183 (chmod "test/test-treemacs.el" #o644)
22184 (emacs-substitute-sexps "test/test-treemacs.el"
22185 ("(describe \"treemacs--parse-collapsed-dirs\"" "")
22186 ("\"Finds only direct childre\"" ""))
22187 (invoke "make" "test"))))
22188 (add-before 'install 'patch-paths
22189 (lambda* (#:key inputs outputs #:allow-other-keys)
22190 (with-directory-excursion "../.." ;treemacs root
22191 (chmod "src/elisp/treemacs-core-utils.el" #o644)
22192 (emacs-substitute-variables "src/elisp/treemacs-core-utils.el"
22193 ("treemacs-dir"
22194 (string-append (assoc-ref outputs "out") "/")))
22195 (chmod "src/elisp/treemacs-icons.el" #o644)
22196 (substitute* "src/elisp/treemacs-icons.el"
22197 (("icons/default") "share/emacs-treemacs/images"))
22198 (chmod "src/elisp/treemacs-customization.el" #o644)
22199 (emacs-substitute-variables "src/elisp/treemacs-customization.el"
22200 ("treemacs-python-executable"
22201 (string-append (assoc-ref inputs "python") "/bin/python3")))
22202 (chmod "src/elisp/treemacs-async.el" #o644)
22203 (substitute* "src/elisp/treemacs-async.el"
22204 (("src/scripts") (string-append "share/" ,name "/scripts"))))
22205 #t))
22206 (add-after 'install 'install-data
22207 (lambda* (#:key outputs #:allow-other-keys)
22208 (let ((out (assoc-ref outputs "out")))
22209 (with-directory-excursion "../.." ;treemacs root
22210 (copy-recursively "icons/default"
22211 (string-append out "/share/" ,name "/images"))
22212 (copy-recursively
22213 "src/scripts"
22214 (string-append out "/share/" ,name "/scripts"))
22215 #t)))))))
22216 (home-page "https://github.com/Alexander-Miller/treemacs")
22217 (synopsis "Emacs tree style file explorer")
22218 (description
22219 "Treemacs is a file and project explorer similar to NeoTree or Vim's
22220 NerdTree, but largely inspired by the Project Explorer in Eclipse. It shows
22221 the file system outlines of your projects in a simple tree layout allowing
22222 quick navigation and exploration, while also possessing basic file management
22223 utilities.")
22224 (license license:gpl3+)))
22225
22226 (define-public emacs-treemacs-extra
22227 (package
22228 (inherit emacs-treemacs)
22229 (name "emacs-treemacs-extra")
22230 (propagated-inputs
22231 `(,@(package-propagated-inputs emacs-treemacs)
22232 ("emacs-evil" ,emacs-evil)
22233 ("emacs-magit" ,emacs-magit)
22234 ("emacs-projectile" ,emacs-projectile)
22235 ("emacs-persp-mode" ,emacs-persp-mode)))
22236 (arguments
22237 (substitute-keyword-arguments
22238 (package-arguments emacs-treemacs)
22239 ((#:phases phases)
22240 `(modify-phases ,phases
22241 (add-after 'chdir-elisp 'copy-extra
22242 (lambda _
22243 (copy-recursively "../extra" ".")))))))))
22244
22245 (define-public emacs-libyaml
22246 ;; Upstream made no release so far.
22247 (let ((version "0")
22248 (revision "1")
22249 (commit "703e0d448c7ee24e25b513a3c65980c80e166805"))
22250 (package
22251 (name "emacs-libyaml")
22252 (version (git-version version revision commit))
22253 (source
22254 (origin
22255 (method git-fetch)
22256 (uri (git-reference
22257 (url "https://github.com/syohex/emacs-libyaml")
22258 (commit commit)))
22259 (file-name (git-file-name name version))
22260 (sha256
22261 (base32 "08l7pm9v50ykd3fkbm0bh2kcd57cadbc5i9r6rj51vd32w3pl2yl"))))
22262 (build-system emacs-build-system)
22263 (arguments
22264 `(#:tests? #f ;no test
22265 #:modules ((guix build emacs-build-system)
22266 (guix build emacs-utils)
22267 (guix build utils))
22268 #:imported-modules (,@%emacs-build-system-modules
22269 (guix build gnu-build-system))
22270 #:phases
22271 (modify-phases %standard-phases
22272 (add-before 'add-source-to-load-path 'substitute-libyaml-core-path
22273 (lambda* (#:key outputs #:allow-other-keys)
22274 (chmod "libyaml.el" #o644)
22275 (substitute* "libyaml.el"
22276 (("^\\(require 'libyaml-core\\)")
22277 (string-append "(module-load \"" (assoc-ref outputs "out")
22278 "/lib/libyaml-core.so\")")))
22279 #t))
22280 (add-after 'check 'make
22281 ;; Run make.
22282 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
22283 ;; Compile the shared object file.
22284 (apply invoke "make" "all" "CPPFLAGS=" make-flags)
22285 ;; Move the file into /lib.
22286 (install-file "libyaml-core.so"
22287 (string-append (assoc-ref outputs "out") "/lib"))
22288 #t)))))
22289 (native-inputs `(("libyaml" ,libyaml)))
22290 (home-page "https://github.com/syohex/emacs-libyaml")
22291 (synopsis "Libyaml bindings for Emacs")
22292 (description
22293 "This package implements bindings for LibYAML to be able to parse YAML
22294 files in Elisp.")
22295 (license license:gpl3+))))
22296
22297 (define-public emacs-lsp-java
22298 (package
22299 (name "emacs-lsp-java")
22300 (version "3.1")
22301 (source (origin
22302 (method git-fetch)
22303 (uri (git-reference
22304 (url "https://github.com/emacs-lsp/lsp-java")
22305 (commit version)))
22306 (file-name (git-file-name name version))
22307 (sha256
22308 (base32
22309 "1h0hqgjpk5mbylma1fkva0vx45achf0k7ab2c5y8a2449niww90h"))))
22310 (build-system emacs-build-system)
22311 (propagated-inputs
22312 `(("emacs-dap-mode" ,emacs-dap-mode)
22313 ("emacs-lsp-mode" ,emacs-lsp-mode)
22314 ("emacs-markdown-mode" ,emacs-markdown-mode)
22315 ("emacs-dash" ,emacs-dash)
22316 ("emacs-f" ,emacs-f)
22317 ("emacs-ht" ,emacs-ht)
22318 ("emacs-request" ,emacs-request)
22319 ("emacs-treemacs" ,emacs-treemacs)))
22320 (home-page "https://github.com/emacs-lsp/lsp-java/")
22321 (synopsis "Java support for lsp-mode")
22322 (description "Emacs Java IDE using Eclipse JDT Language Server.")
22323 (license license:gpl3+)))
22324
22325 (define-public emacs-lsp-ui
22326 (package
22327 (name "emacs-lsp-ui")
22328 (version "7.0.1")
22329 (source (origin
22330 (method git-fetch)
22331 (uri (git-reference
22332 (url "https://github.com/emacs-lsp/lsp-ui")
22333 (commit version)))
22334 (file-name (git-file-name name version))
22335 (sha256
22336 (base32
22337 "09dmhhxmfjnzdc5kygwsjf8nwqlnq9rbgrca679s2wy93miqj7vc"))))
22338 (build-system emacs-build-system)
22339 (propagated-inputs
22340 `(("emacs-dash" ,emacs-dash)
22341 ("emacs-lsp-mode" ,emacs-lsp-mode)
22342 ("emacs-markdown-mode" ,emacs-markdown-mode)
22343 ("emacs-flycheck" ,emacs-flycheck)))
22344 (home-page "https://github.com/emacs-lsp/lsp-ui")
22345 (synopsis "User interface extensions for @code{lsp-mode}")
22346 (description
22347 "@code{LSP-ui} contains several enhancements and integrations for
22348 @code{lsp-mode}, such as visual flychecking, displaying references in-line,
22349 and code peeking.")
22350 (license license:gpl3+)))
22351
22352 (define-public emacs-lsp-lua-emmy
22353 (let ((commit "ab53fb2a8b8942804eb75bab5624fd19f1d360bf"))
22354 (package
22355 (name "emacs-lsp-lua-emmy")
22356 (version (git-version "0.1.0" "1" commit))
22357 (source (origin
22358 (method git-fetch)
22359 (uri (git-reference
22360 (url "https://github.com/phenix3443/lsp-lua-emmy")
22361 (commit commit)))
22362 (file-name (git-file-name name version))
22363 (sha256
22364 (base32
22365 "0rbizis73n1w5ig07fj1han74chbc1zpbp5bn37rj0gz608aqka8"))))
22366 (build-system emacs-build-system)
22367 (propagated-inputs
22368 `(("emacs-lsp-mode" ,emacs-lsp-mode)))
22369 (home-page "https://github.com/phenix3443/lsp-lua-emmy/")
22370 (synopsis "Lua support in @code{lsp-mode} client for Emacs")
22371 (description "This package provides a Lua language support in
22372 @code{lsp-mode} client for Emacs.")
22373 (license license:gpl3+))))
22374
22375 (define-public emacs-lsp-ivy
22376 (package
22377 (name "emacs-lsp-ivy")
22378 (version "0.4")
22379 (source
22380 (origin
22381 (method git-fetch)
22382 (uri (git-reference
22383 (url "https://github.com/emacs-lsp/lsp-ivy")
22384 (commit version)))
22385 (file-name (git-file-name name version))
22386 (sha256
22387 (base32 "08dpn0vcfdwwysijwdpnnj91m69yw0q464i0wmp51zpj3dyd4kb1"))))
22388 (build-system emacs-build-system)
22389 (propagated-inputs
22390 `(("emacs-dash" ,emacs-dash)
22391 ("emacs-ivy" ,emacs-ivy)
22392 ("emacs-lsp-mode" ,emacs-lsp-mode)))
22393 (home-page "https://github.com/emacs-lsp/lsp-ivy")
22394 (synopsis "Provide LSP-enhanced completion for symbols")
22395 (description
22396 "This package enhances @code{ivy} with completion for symbols from
22397 workspaces with a LSP-compliant server running.")
22398 (license license:gpl3+)))
22399
22400 (define-public emacs-helm-lsp
22401 (package
22402 (name "emacs-helm-lsp")
22403 (version "0.2")
22404 (source (origin
22405 (method git-fetch)
22406 (uri (git-reference
22407 (url "https://github.com/emacs-lsp/helm-lsp")
22408 (commit version)))
22409 (file-name (git-file-name name version))
22410 (sha256
22411 (base32
22412 "1vq3qpqm3ndqyvf5bk8qhqcr60x9ykc0ipk2a43rr3yjm4z1b6s9"))))
22413 (build-system emacs-build-system)
22414 (propagated-inputs
22415 `(("emacs-helm" ,emacs-helm)
22416 ("emacs-lsp-mode" ,emacs-lsp-mode)
22417 ("emacs-dash" ,emacs-dash)))
22418 (home-page "https://github.com/emacs-lsp/helm-lsp")
22419 (synopsis "Provide LSP-enhanced completion for symbols")
22420 (description
22421 "This package enhances @code{helm} with completion for symbols from
22422 workspaces with a LSP-compliant server running.")
22423 (license license:gpl3+)))
22424
22425 (define-public emacs-helm-notmuch
22426 (package
22427 (name "emacs-helm-notmuch")
22428 (version "1.2")
22429 (home-page "https://github.com/emacs-helm/helm-notmuch/")
22430 (source (origin
22431 (method git-fetch)
22432 (uri (git-reference
22433 (url home-page)
22434 (commit version)))
22435 (file-name (git-file-name name version))
22436 (sha256
22437 (base32
22438 "1k038dbdpaa411gl4071x19fklhnizhr346plxw23lsnxir9dhqc"))))
22439 (build-system emacs-build-system)
22440 (propagated-inputs
22441 `(("emacs-helm" ,emacs-helm)
22442 ("notmuch" ,notmuch)))
22443 (synopsis "Search emails with Emacs Notmuch and Helm")
22444 (description
22445 "This package can be used to search emails in Emacs, searching result
22446 displays as you type thanks to Helm, though @command{notmuch-search} does the
22447 real search.")
22448 (license license:gpl3+)))
22449
22450 (define-public emacs-elmacro
22451 (package
22452 (name "emacs-elmacro")
22453 (version "1.1.1")
22454 (home-page "https://github.com/Silex/elmacro")
22455 (source (origin
22456 (method git-fetch)
22457 (uri (git-reference
22458 (url home-page)
22459 (commit version)))
22460 (file-name (git-file-name name version))
22461 (sha256
22462 (base32
22463 "1x4wnsshf9h10mp51x92vs5rxw5had4gmw6zz4f53czx1ymcv16a"))))
22464 (build-system emacs-build-system)
22465 (propagated-inputs
22466 `(("emacs-s" ,emacs-s)
22467 ("emacs-dash" ,emacs-dash)))
22468 (synopsis "Convert keyboard macros to Emacs Lisp")
22469 (description
22470 "This package displays keyboard macros or latest interactive commands
22471 as Emacs Lisp.")
22472 (license license:gpl3+)))
22473
22474 (define-public emacs-transient
22475 (package
22476 (name "emacs-transient")
22477 (version "0.3.0")
22478 (source (origin
22479 (method git-fetch)
22480 (uri (git-reference
22481 (url "https://github.com/magit/transient")
22482 (commit (string-append "v" version))))
22483 (file-name (git-file-name name version))
22484 (sha256
22485 (base32
22486 "0g694ydmb9zjn99hxgfjd3m73kpmnkbrgqhr73b4crbxza5sl29c"))))
22487 (build-system emacs-build-system)
22488 (arguments
22489 `(#:tests? #f ;no test suite
22490 #:phases
22491 (modify-phases %standard-phases
22492 (add-after 'unpack 'build-info-manual
22493 (lambda _
22494 (invoke "make" "info")
22495 ;; Move the info file to lisp so that it gets installed by the
22496 ;; emacs-build-system.
22497 (rename-file "docs/transient.info" "lisp/transient.info")
22498 #t))
22499 (add-after 'build-info-manual 'enter-lisp-directory
22500 (lambda _
22501 (chdir "lisp")
22502 #t)))))
22503 (native-inputs
22504 `(("texinfo" ,texinfo)))
22505 (propagated-inputs
22506 `(("dash" ,emacs-dash)))
22507 (home-page "https://magit.vc/manual/transient")
22508 (synopsis "Transient commands in Emacs")
22509 (description "Taking inspiration from prefix keys and prefix arguments
22510 in Emacs, Transient implements a similar abstraction involving a prefix
22511 command, infix arguments and suffix commands. We could call this abstraction
22512 a \"transient command\", but because it always involves at least two
22513 commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
22514 (license license:gpl3+)))
22515
22516 (define-public emacs-forge
22517 (let ((commit "05ef02913004826165c383bd6d2ff6574542b76c"))
22518 (package
22519 (name "emacs-forge")
22520 (version (git-version "0.1.0" "5" commit))
22521 (source
22522 (origin
22523 (method git-fetch)
22524 (uri (git-reference
22525 (url "https://github.com/magit/forge")
22526 (commit commit)))
22527 (file-name (git-file-name name version))
22528 (sha256
22529 (base32
22530 "1vv7xlawj2zmwqk69qlsqflhh0lbyqm5xf4x8l4v2069g0k8mmx1"))))
22531 (build-system emacs-build-system)
22532 (native-inputs
22533 `(("texinfo" ,texinfo)))
22534 (propagated-inputs
22535 `(("emacs-closql" ,emacs-closql)
22536 ("emacs-dash" ,emacs-dash)
22537 ("emacs-emacsql-sqlite" ,emacs-emacsql)
22538 ("emacs-ghub" ,emacs-ghub)
22539 ("emacs-let-alist" ,emacs-let-alist)
22540 ("emacs-magit" ,emacs-magit)
22541 ("emacs-markdown-mode" ,emacs-markdown-mode)
22542 ("emacs-transient" ,emacs-transient)))
22543 (arguments
22544 `(#:tests? #f ;no tests
22545 #:phases
22546 (modify-phases %standard-phases
22547 (add-after 'unpack 'build-info-manual
22548 (lambda _
22549 (invoke "make" "info")
22550 ;; Move the info file to lisp so that it gets installed by the
22551 ;; emacs-build-system.
22552 (rename-file "docs/forge.info" "lisp/forge.info")))
22553 (add-after 'build-info-manual 'chdir-lisp
22554 (lambda _
22555 (chdir "lisp")
22556 #t)))))
22557 (home-page "https://github.com/magit/forge/")
22558 (synopsis "Access Git forges from Magit")
22559 (description "Work with Git forges, such as Github and Gitlab, from the
22560 comfort of Magit and the rest of Emacs.")
22561 (license license:gpl3+))))
22562
22563 (define-public emacs-matcha
22564 (let ((commit "c7df5cf5cdac9ae369e241342389ccda0205eab9"))
22565 (package
22566 (name "emacs-matcha")
22567 (version (git-version "0.0.1" "1" commit)) ;no upstream release
22568 (source (origin
22569 (method git-fetch)
22570 (uri (git-reference
22571 (url "https://github.com/jojojames/matcha")
22572 (commit commit)))
22573 (file-name (git-file-name name version))
22574 (sha256
22575 (base32
22576 "1lfnh1glg6al677m7ci0x8g5wjdhjxlfl3nv1f1ppsw4dpnwsj9b"))))
22577 (propagated-inputs
22578 `(("emacs-hydra" ,emacs-hydra)
22579 ("emacs-transient" ,emacs-transient)))
22580 (build-system emacs-build-system)
22581 (home-page "https://github.com/jojojames/matcha/")
22582 (synopsis "Collection of hydras with a generic interface to launch them")
22583 (description "Matcha provides a collection of transients for various
22584 packages with a consistent way to use them.")
22585 (license license:gpl3+))))
22586
22587 (define-public emacs-undo-propose-el
22588 (let ((commit "f80baee566807d733fbacbab08a897bcd62579c3")
22589 (revision "3"))
22590 (package
22591 (name "emacs-undo-propose-el")
22592 (version (git-version "3.0.0" revision commit))
22593 (source
22594 (origin
22595 (method git-fetch)
22596 (uri (git-reference
22597 (url "https://github.com/jackkamm/undo-propose-el")
22598 (commit commit)))
22599 (file-name (git-file-name name version))
22600 (sha256
22601 (base32
22602 "00rqz63bhh66q78l646q3w16gydygj8h4d8np0dpbifgzciak90b"))))
22603 (build-system emacs-build-system)
22604 (arguments
22605 `(#:tests? #t
22606 #:test-command '("make" "test")))
22607 (home-page "https://github.com/jackkamm/undo-propose-el")
22608 (synopsis "Simple and safe navigation of @code{undo} history")
22609 (description "This package permits navigation of @code{undo} history in a
22610 temporary buffer, which is read-only save for @code{undo} commands, and
22611 subsequent committal of a chain of @code{undo} commands as a single edit in
22612 the @code{undo} history.")
22613 (license license:gpl3+))))
22614
22615 (define-public emacs-elisp-docstring-mode
22616 (let ((commit "f512e509dd690f65133e55563ebbfd2dede5034f")
22617 (version "0.0.1")
22618 (revision "1"))
22619 (package
22620 (name "emacs-elisp-docstring-mode")
22621 (version (git-version version revision commit))
22622 (source
22623 (origin
22624 (method git-fetch)
22625 (uri (git-reference
22626 (url "https://github.com/Fuco1/elisp-docstring-mode")
22627 (commit commit)))
22628 (file-name (git-file-name name version))
22629 (sha256
22630 (base32
22631 "0al8m75p359h4n82rf0dsl22qfdg9cwwywn5pn7x6gb96c7qrqaa"))))
22632 (build-system emacs-build-system)
22633 (home-page "https://github.com/Fuco1/elisp-docstring-mode")
22634 (synopsis "Major mode for editing Emacs Lisp docstrings")
22635 (description "This package provides font lock and automatic escaping and
22636 unescaping of quotes.")
22637 (license license:gpl3+))))
22638
22639 (define-public emacs-vimrc-mode
22640 (let ((commit "13bc150a870d5d4a95f1111e4740e2b22813c30e")
22641 (version "0.3.1")
22642 (revision "1"))
22643 (package
22644 (name "emacs-vimrc-mode")
22645 (version (git-version version revision commit))
22646 (source
22647 (origin
22648 (method git-fetch)
22649 (uri (git-reference
22650 (url "https://github.com/mcandre/vimrc-mode")
22651 (commit commit)))
22652 (file-name (git-file-name name version))
22653 (sha256
22654 (base32
22655 "0026dqs3hwygk2k2xfra90w5sfnxrfj7l69jz7sq5glavbf340pk"))))
22656 (build-system emacs-build-system)
22657 (home-page "https://github.com/mcandre/vimrc-mode")
22658 (synopsis "Major mode for Vimscript")
22659 (description "This package provides font lock and @code{beginning-} and
22660 @code{end-of-defun} functions for Vimscript files.")
22661 (license license:gpl3+))))
22662
22663 (define-public emacs-flycheck-elm
22664 (let ((revision "0")
22665 (commit "1b60050efd4729bfba548f3e5adbcb58436667cb"))
22666 (package
22667 (name "emacs-flycheck-elm")
22668 (version (git-version "0" revision commit))
22669 (source
22670 (origin
22671 (method git-fetch)
22672 (uri
22673 (git-reference
22674 (url "https://github.com/bsermons/flycheck-elm")
22675 (commit commit)))
22676 (file-name (git-file-name name version))
22677 (sha256
22678 (base32 "1kjms9d2c98ffd1qxs879qhg0n4jzic0r5kni9y4gz3v09ww8zms"))))
22679 (build-system emacs-build-system)
22680 (propagated-inputs
22681 `(("emacs-flycheck" ,emacs-flycheck)
22682 ("emacs-let-alist" ,emacs-let-alist)))
22683 (home-page "https://github.com/bsermons/flycheck-elm")
22684 (synopsis "Flycheck support for the Elm language")
22685 (description "Flycheck Elm adds Flycheck support for Elm language.")
22686 (license license:gpl3+))))
22687
22688 (define-public emacs-flycheck-haskell
22689 (let ((commit "32ddff87165a7d3a35e7318bee997b5b4bd41278")
22690 (revision "2"))
22691 (package
22692 (name "emacs-flycheck-haskell")
22693 (version (git-version "0.8" revision commit))
22694 (source
22695 (origin
22696 (method git-fetch)
22697 (uri (git-reference
22698 (url "https://github.com/flycheck/flycheck-haskell")
22699 (commit commit)))
22700 (file-name (git-file-name name version))
22701 (sha256
22702 (base32
22703 "10pgsbagq6qj4mshq5sypv0q0khck92b30sc793b4g1pfpsxvgjn"))))
22704 (build-system emacs-build-system)
22705 (propagated-inputs
22706 `(("emacs-dash" ,emacs-dash)
22707 ("emacs-flycheck" ,emacs-flycheck)
22708 ("emacs-haskell-mode" ,emacs-haskell-mode)
22709 ("emacs-let-alist" ,emacs-let-alist)))
22710 (arguments
22711 `(#:include '("\\.el$" "\\.hs$")))
22712 (home-page "https://github.com/flycheck/flycheck-haskell")
22713 (synopsis "Flycheck for Haskell")
22714 (description "This package configures syntax-checking for Haskell
22715 buffers.")
22716 (license license:gpl3+))))
22717
22718 (define-public emacs-js2-refactor-el
22719 (let ((commit "d4c40b5fc86d3edd7c6a7d83ac86483ee1cb7a28")
22720 (revision "2"))
22721 (package
22722 (name "emacs-js2-refactor-el")
22723 (version (git-version "0.9.0" revision commit))
22724 (source
22725 (origin
22726 (method git-fetch)
22727 (uri (git-reference
22728 (url "https://github.com/magnars/js2-refactor.el")
22729 (commit commit)))
22730 (file-name (git-file-name name version))
22731 (sha256
22732 (base32
22733 "08b25y3raz0p98zxk9xdd8nj9shqd6mzrqhbq1gg4cwsmi7h7ly1"))))
22734 (build-system emacs-build-system)
22735 (propagated-inputs
22736 `(("emacs-dash" ,emacs-dash)
22737 ("emacs-s" ,emacs-s)
22738 ("emacs-js2-mode" ,emacs-js2-mode)
22739 ("emacs-yasnippet" ,emacs-yasnippet)
22740 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
22741 (native-inputs
22742 `(("emacs-buttercup" ,emacs-buttercup)
22743 ("emacs-espuds" ,emacs-espuds)))
22744 (home-page "https://github.com/magnars/js2-refactor.el")
22745 (synopsis "JavaScript refactoring in Emacs")
22746 (description "This package provides various refactoring functions for
22747 JavaScript.")
22748 (license license:gpl3+))))
22749
22750 (define-public emacs-prettier
22751 (let ((commit "e9b73e81d3e1642aec682195f127a42dfb0b5774")
22752 (version "0.1.0")
22753 (revision "1"))
22754 (package
22755 (name "emacs-prettier")
22756 (version (git-version version revision commit))
22757 (source
22758 (origin
22759 (method git-fetch)
22760 (uri (git-reference
22761 (url "https://github.com/prettier/prettier-emacs")
22762 (commit commit)))
22763 (file-name (git-file-name name version))
22764 (sha256
22765 (base32
22766 "0hj4fv3fgc60i6jrsx4a81s5c9fsxxafhhs3q2q1dypsscjci9ph"))))
22767 (build-system emacs-build-system)
22768 (home-page "https://github.com/prettier/prettier-emacs")
22769 (synopsis "Automatic formatting of JavaScript code")
22770 (description "This package integrates Prettier with Emacs, and
22771 provides a minor mode that autoformats the buffer upon saving.")
22772 (license license:expat))))
22773
22774 (define-public emacs-fish-mode
22775 (package
22776 (name "emacs-fish-mode")
22777 (version "0.1.6")
22778 (source
22779 (origin
22780 (method git-fetch)
22781 (uri (git-reference
22782 (url "https://github.com/wwwjfy/emacs-fish")
22783 (commit version)))
22784 (file-name (git-file-name name version))
22785 (sha256
22786 (base32
22787 "1spxxkji9xa930sbwvzyjm8jrqk9ra0xqhivw7zd12a4c56nhna9"))))
22788 (build-system emacs-build-system)
22789 (home-page "https://github.com/wwwjfy/emacs-fish")
22790 (synopsis "Major mode for Fish shell scripts")
22791 (description "This package provides syntax highlighting and indentation
22792 functions for Fish shell scripts.")
22793 (license license:gpl3+)))
22794
22795 (define-public emacs-eshell-up
22796 (let ((commit "9c100bae5c3020e8d9307e4332d3b64e7dc28519")
22797 (version "0.0.3")
22798 (revision "12"))
22799 (package
22800 (name "emacs-eshell-up")
22801 (version (git-version version revision commit))
22802 (source
22803 (origin
22804 (method git-fetch)
22805 (uri (git-reference
22806 (url "https://github.com/peterwvj/eshell-up")
22807 (commit commit)))
22808 (file-name (git-file-name name version))
22809 (sha256
22810 (base32
22811 "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"))))
22812 (build-system emacs-build-system)
22813 (home-page "https://github.com/peterwvj/eshell-up")
22814 (synopsis "Quickly go to a parent directory in @code{Eshell}")
22815 (description "This package provides quick navigation to a specific
22816 parent directory using @code{Eshell}.")
22817 (license license:gpl3+))))
22818
22819 (define-public emacs-springboard
22820 ;; Upstream provides no tag. Using the latest commit. Version is extracted
22821 ;; from "Version:" keyword.
22822 (let ((commit "687d1e5898a880878995dc9bffe93b4598366203")
22823 (version "1.0")
22824 (revision "1"))
22825 (package
22826 (name "emacs-springboard")
22827 (version (git-version version revision commit))
22828 (source
22829 (origin
22830 (method git-fetch)
22831 (uri (git-reference
22832 (url "https://github.com/jwiegley/springboard")
22833 (commit commit)))
22834 (file-name (git-file-name name version))
22835 (sha256
22836 (base32 "0fn8c4hqblfjvcpg68kj2dmdjqsdnxddqbzgvakl43zckjg8pi01"))))
22837 (build-system emacs-build-system)
22838 (propagated-inputs
22839 `(("emacs-helm" ,emacs-helm)
22840 ("emacs-ivy" ,emacs-ivy)))
22841 (home-page "https://github.com/jwiegley/springboard")
22842 (synopsis "Change the Emacs default directory quickly")
22843 (description
22844 "This Emacs package provides a quick way to change the default
22845 directory for only the next invoked command. The directory selection can be
22846 done using Helm, Ido or Ivy.")
22847 (license license:gpl2+))))
22848
22849 (define-public emacs-tco-el
22850 (let ((commit "482db5313f090b17ed22ccd856f0e141dc75afe6")
22851 (revision "1"))
22852 (package
22853 (name "emacs-tco-el")
22854 (version (git-version "0.3" revision commit))
22855 (source
22856 (origin
22857 (method git-fetch)
22858 (uri (git-reference
22859 (url "https://github.com/Wilfred/tco.el")
22860 (commit commit)))
22861 (file-name (git-file-name name version))
22862 (sha256
22863 (base32
22864 "1z7xkbrqznk6ni687qqknp8labcyhl8y6576hjfri89fn21385y9"))))
22865 (build-system emacs-build-system)
22866 (propagated-inputs
22867 `(("emacs-dash" ,emacs-dash)))
22868 (native-inputs
22869 `(("emacs-ert-runner" ,emacs-ert-runner)
22870 ("emacs-undercover" ,emacs-undercover)))
22871 (arguments
22872 `(#:tests? #t
22873 #:test-command '("ert-runner")))
22874 (home-page "https://github.com/Wilfred/tco.el")
22875 (synopsis "Tail-call optimization for Emacs Lisp")
22876 (description "This package provides tail-call optimization for Emacs
22877 Lisp functions that call themselves in tail position.")
22878 (license license:gpl3+))))
22879
22880 (define-public emacs-equake
22881 (let ((commit "7eddc025ee61b83029363e22219af228b8c20681")
22882 (revision "2"))
22883 (package
22884 (name "emacs-equake")
22885 (version (git-version "0.85" revision commit))
22886 (source
22887 (origin
22888 (method git-fetch)
22889 (uri (git-reference
22890 (url "https://gitlab.com/emacsomancer/equake/")
22891 (commit commit)))
22892 (file-name (git-file-name name version))
22893 (sha256
22894 (base32
22895 "1c55pbqak3d02sw6z1139baxzy401b90g0gxzcc3j6sgplz6sc6w"))))
22896 (build-system emacs-build-system)
22897 (propagated-inputs
22898 `(("emacs-dash" ,emacs-dash)
22899 ("emacs-tco-el" ,emacs-tco-el)))
22900 (home-page "https://gitlab.com/emacsomancer/equake/")
22901 (synopsis "Drop-down console for @code{Eshell} and terminal emulators")
22902 (description "This package provides a Quake-style drop-down console
22903 compatible with Emacs' shell modes.")
22904 (license license:gpl3+))))
22905
22906 (define-public emacs-vdiff
22907 ;; There is no proper tag, but the commit below matches the version bump.
22908 (let ((commit "007e44be19d068fd6b49874b6e9b8df8b1f552bd"))
22909 (package
22910 (name "emacs-vdiff")
22911 (version "0.2.4")
22912 (source
22913 (origin
22914 (method git-fetch)
22915 (uri (git-reference
22916 (url "https://github.com/justbur/emacs-vdiff")
22917 (commit commit)))
22918 (file-name (git-file-name name version))
22919 (sha256
22920 (base32 "197xrwph1llrzjgkhlvagiwdgfp68pb45w5afg89ndahpqc2725s"))))
22921 (build-system emacs-build-system)
22922 (propagated-inputs
22923 `(("emacs-hydra" ,emacs-hydra)))
22924 (arguments
22925 `(#:tests? #t
22926 #:test-command '("emacs" "-Q" "-batch" "-L" "."
22927 "-l" "vdiff-test.el"
22928 "-f" "ert-run-tests-batch-and-exit")))
22929 (home-page "https://github.com/justbur/emacs-vdiff/")
22930 (synopsis "Frontend for diffing based on vimdiff")
22931 (description
22932 "This package permits comparisons of two or three buffers based on diff
22933 output.")
22934 (license license:gpl3+))))
22935
22936 (define-public emacs-vdiff-magit
22937 ;; Need to use a more recent commit than the latest release version because
22938 ;; of Magit and Transient
22939 (let ((commit "b100d126c69e5c26a61ae05aa1778bcc4302b597")
22940 (version "0.3.2")
22941 (revision "8"))
22942 (package
22943 (name "emacs-vdiff-magit")
22944 (version (git-version version revision commit))
22945 (source
22946 (origin
22947 (method git-fetch)
22948 (uri (git-reference
22949 (url "https://github.com/justbur/emacs-vdiff-magit/")
22950 (commit commit)))
22951 (file-name (git-file-name name version))
22952 (sha256
22953 (base32
22954 "16cjmrzflf2i1w01973sl944xrfanakba8sb4dpwi79d92xp03xy"))))
22955 (build-system emacs-build-system)
22956 (propagated-inputs
22957 `(("emacs-vdiff" ,emacs-vdiff)
22958 ("emacs-magit" ,emacs-magit)
22959 ("emacs-transient" ,emacs-transient)))
22960 (home-page "https://github.com/justbur/emacs-vdiff-magit/")
22961 (synopsis "Frontend for diffing based on vimdiff")
22962 (description "This package permits comparisons of two or three buffers
22963 based on diff output.")
22964 (license license:gpl3+))))
22965
22966 (define-public emacs-all-the-icons-dired
22967 (let ((commit "fc2dfa1e9eb8bf1c402a675e7089638d702a27a5")
22968 (version "1.0")
22969 (revision "2"))
22970 (package
22971 (name "emacs-all-the-icons-dired")
22972 (version (git-version version revision commit))
22973 (source
22974 (origin
22975 (method git-fetch)
22976 (uri (git-reference
22977 (url "https://github.com/jtbm37/all-the-icons-dired/")
22978 (commit commit)))
22979 (file-name (git-file-name name version))
22980 (sha256
22981 (base32
22982 "0zhyhz4lhx0d8wwh1xxxf7ck4s621fk9757ql2ypxbr4iqh7sjlp"))))
22983 (build-system emacs-build-system)
22984 (propagated-inputs
22985 `(("emacs-all-the-icons" ,emacs-all-the-icons)))
22986 (home-page "https://github.com/jtbm37/all-the-icons-dired/")
22987 (synopsis "Show icons for each file in @code{dired-mode}")
22988 (description "This package allows icons from @file{all-the-icons.el} to
22989 be used in @code{dired-mode}.")
22990 (license license:gpl3+))))
22991
22992 (define-public emacs-exwm-edit
22993 (let ((commit "e1291e311840f1049106fe98cec032a1c75efd2b")
22994 (version "0.0.1")
22995 (revision "3"))
22996 (package
22997 (name "emacs-exwm-edit")
22998 (version (git-version version revision commit))
22999 (source
23000 (origin
23001 (method git-fetch)
23002 (uri (git-reference
23003 (url "https://github.com/agzam/exwm-edit/")
23004 (commit commit)))
23005 (file-name (git-file-name name version))
23006 (sha256
23007 (base32
23008 "031cb8fvv5n30djr9lpl6vz3rl15zykfvjlgkjc8l33a3l5mw8j0"))))
23009 (build-system emacs-build-system)
23010 (propagated-inputs
23011 `(("emacs-exwm" ,emacs-exwm)))
23012 (home-page "https://github.com/agzam/exwm-edit/")
23013 (synopsis "Open temp buffers for editing text from EXWM buffers")
23014 (description "This package facilitates editing text from EXWM buffers by
23015 generating a temp buffer in which any useful Emacs utilities and modes can be
23016 invoked.")
23017 (license license:gpl3+))))
23018
23019 (define-public emacs-ert-async
23020 (package
23021 (name "emacs-ert-async")
23022 (version "0.1.2")
23023 (source
23024 (origin
23025 (method git-fetch)
23026 (uri (git-reference
23027 (url "https://github.com/rejeep/ert-async.el")
23028 (commit (string-append "v" version))))
23029 (file-name (git-file-name name version))
23030 (sha256
23031 (base32
23032 "0hn9i405nfhjd1h9vnwj43nxbbz00khrwkjq0acfyxjaz1shfac9"))))
23033 (build-system emacs-build-system)
23034 (home-page "https://github.com/rejeep/ert-async.el")
23035 (synopsis "Async support for ERT")
23036 (description "This package allows ERT to work with asynchronous tests.")
23037 (license license:gpl3+)))
23038
23039 (define-public emacs-prodigy-el
23040 (let ((commit "0a12eec1f001a4eef16b2c0c524f02f2647a4ff1")
23041 (revision "2"))
23042 (package
23043 (name "emacs-prodigy-el")
23044 (version (git-version "0.7.0" revision commit))
23045 (source
23046 (origin
23047 (method git-fetch)
23048 (uri (git-reference
23049 (url "https://github.com/rejeep/prodigy.el")
23050 (commit commit)))
23051 (file-name (git-file-name name version))
23052 (sha256
23053 (base32
23054 "02kysq57kqzg0zkhaf302ada9cp9spgp71z8vbdq4c7dl6x75h4g"))))
23055 (build-system emacs-build-system)
23056 (propagated-inputs
23057 `(("emacs-dash" ,emacs-dash)
23058 ("emacs-s" ,emacs-s)
23059 ("emacs-f" ,emacs-f)))
23060 (native-inputs
23061 `(("emacs-el-mock" ,emacs-el-mock)
23062 ("emacs-ert-async" ,emacs-ert-async)))
23063 (home-page "https://github.com/rejeep/prodigy.el")
23064 (synopsis "Manage external services from within Emacs")
23065 (description "This package provides a GUI for defining and monitoring services.")
23066 (license license:gpl3+))))
23067
23068 (define-public emacs-web-server
23069 (package
23070 (name "emacs-web-server")
23071 (version "0.1.2")
23072 (source
23073 (origin
23074 (method url-fetch)
23075 (uri (string-append "https://elpa.gnu.org/packages/"
23076 "web-server-" version ".tar"))
23077 (sha256
23078 (base32 "10lcsl4dg2yr9zjd99gq9jz150wvvh6r5y9pd88l8y9vz16f2lim"))))
23079 (build-system emacs-build-system)
23080 (home-page "https://github.com/eschulte/emacs-web-server/")
23081 (synopsis "Web server with handlers in Emacs Lisp")
23082 (description "This package supports HTTP GET and POST requests with
23083 url-encoded parameters, as well as web sockets.")
23084 (license license:gpl3+)))
23085
23086 (define-public emacs-markdown-preview-mode
23087 (package
23088 (name "emacs-markdown-preview-mode")
23089 (version "0.9.2")
23090 (source
23091 (origin
23092 (method git-fetch)
23093 (uri (git-reference
23094 (url "https://github.com/ancane/markdown-preview-mode")
23095 (commit (string-append "v" version))))
23096 (file-name (git-file-name name version))
23097 (sha256
23098 (base32
23099 "1d1id99gagymvzdfa1mwqh8y3szm8ii47rpijkfi1qnifjg5jaq9"))))
23100 (build-system emacs-build-system)
23101 (propagated-inputs
23102 `(("emacs-markdown-mode" ,emacs-markdown-mode)
23103 ("emacs-websocket" ,emacs-websocket)
23104 ("emacs-web-server" ,emacs-web-server)))
23105 (arguments '(#:include '("\\.el$" "\\.html$")))
23106 (home-page "https://github.com/ancane/markdown-preview-mode")
23107 (synopsis "Preview Markdown files")
23108 (description "This package provides a minor mode for preview of Markdown
23109 files, and sends rendered Markdown to a web browser.")
23110 (license license:gpl3+)))
23111
23112 (define-public emacs-dotenv-mode
23113 (package
23114 (name "emacs-dotenv-mode")
23115 (version "0.2.5")
23116 (source
23117 (origin
23118 (method git-fetch)
23119 (uri (git-reference
23120 (url "https://github.com/preetpalS/emacs-dotenv-mode")
23121 (commit (string-append "v" version))))
23122 (file-name (git-file-name name version))
23123 (sha256
23124 (base32
23125 "0ys1czramj3c8zbnxxc599bqc0nqp3nnn3n45ac9cjglx5iaydq3"))))
23126 (build-system emacs-build-system)
23127 (home-page "https://github.com/preetpalS/emacs-dotenv-mode")
23128 (synopsis "Major mode for @file{.env} files")
23129 (description "This package provides syntax highlighting for @file{.env}
23130 files.")
23131 (license license:gpl3+)))
23132
23133 (define-public emacs-add-node-modules-path
23134 (let ((commit "f31e69ccb681f882aebb806ce6e9478e3ac39708")
23135 (version "1.2.0")
23136 (revision "10"))
23137 (package
23138 (name "emacs-add-node-modules-path")
23139 (version (git-version version revision commit))
23140 (source
23141 (origin
23142 (method git-fetch)
23143 (uri (git-reference
23144 (url "https://github.com/codesuki/add-node-modules-path")
23145 (commit commit)))
23146 (file-name (git-file-name name version))
23147 (sha256
23148 (base32
23149 "0p106bqmvdr8by5iv02bshm339qbrjcch2d15mrm4h3nav03v306"))))
23150 (build-system emacs-build-system)
23151 (home-page "https://github.com/codesuki/add-node-modules-path")
23152 (synopsis "Add @file{node_modules} to the buffer-local @file{exec-path}")
23153 (description "This package searches the parent directories of the
23154 current file for the project's @file{node_modules/.bin/} directory, allowing
23155 Emacs to find project-specific installations of packages.")
23156 (license license:expat))))
23157
23158 (define-public emacs-flow-minor-mode
23159 (let ((commit "d1b32a7dd0d33c6a00a106da5f4b2323602cbd3e")
23160 (version "0.3")
23161 (revision "4"))
23162 (package
23163 (name "emacs-flow-minor-mode")
23164 (version (git-version version revision commit))
23165 (source
23166 (origin
23167 (method git-fetch)
23168 (uri (git-reference
23169 (url "https://github.com/an-sh/flow-minor-mode")
23170 (commit commit)))
23171 (file-name (git-file-name name version))
23172 (sha256
23173 (base32
23174 "169r4ib9qg9q6fm3p0p23qs1qx4pa9pg1qvyq4ysr85i7kwygppl"))))
23175 (build-system emacs-build-system)
23176 (home-page "https://github.com/an-sh/flow-minor-mode")
23177 (synopsis "Minor mode for JavaScript Flow files")
23178 (description "This package integrates Flow with Emacs, allowing for
23179 definition-jumping and type-checking on demand.")
23180 (license license:bsd-3))))
23181
23182 (define-public emacs-rjsx-mode
23183 (package
23184 (name "emacs-rjsx-mode")
23185 (version "0.5.0")
23186 (source
23187 (origin
23188 (method git-fetch)
23189 (uri (git-reference
23190 (url "https://github.com/felipeochoa/rjsx-mode")
23191 (commit (string-append "v" version))))
23192 (file-name (git-file-name name version))
23193 (sha256
23194 (base32
23195 "08b4hdgq4hc1yfd9pvyir2j3cqqdqa3j5svgaba97x5fzhsz7y8i"))))
23196 (build-system emacs-build-system)
23197 (propagated-inputs
23198 `(("emacs-js2-mode" ,emacs-js2-mode)))
23199 (arguments
23200 `(#:tests? #t
23201 #:test-command '("make" "test")))
23202 (home-page "https://github.com/felipeochoa/rjsx-mode")
23203 (synopsis "Major mode for JSX files")
23204 (description "This package extends the parser of @code{js2-mode} to
23205 support JSX syntax.")
23206 (license license:expat)))
23207
23208 (define-public emacs-origami-el
23209 (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366")
23210 (version "1.0")
23211 (revision "1"))
23212 (package
23213 (name "emacs-origami-el")
23214 (version (git-version version revision commit))
23215 (source
23216 (origin
23217 (method git-fetch)
23218 (uri (git-reference
23219 (url "https://github.com/gregsexton/origami.el")
23220 (commit commit)))
23221 (file-name (git-file-name name version))
23222 (sha256
23223 (base32
23224 "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x"))))
23225 (build-system emacs-build-system)
23226 (propagated-inputs
23227 `(("emacs-dash" ,emacs-dash)
23228 ("emacs-s" ,emacs-s)))
23229 (home-page "https://github.com/gregsexton/origami.el")
23230 (synopsis "Flexible text-folding")
23231 (description "This package provides a minor mode for collapsing and
23232 expanding regions of text without modifying the actual contents.")
23233 (license license:expat))))
23234
23235 (define-public emacs-peep-dired
23236 (let ((commit "c88a9a3050197840edfe145f11e0bb9488de32f4")
23237 (version "0")
23238 (revision "1"))
23239 (package
23240 (name "emacs-peep-dired")
23241 (version (git-version version revision commit))
23242 (source
23243 (origin
23244 (method git-fetch)
23245 (uri (git-reference
23246 (url "https://github.com/asok/peep-dired")
23247 (commit commit)))
23248 (file-name (git-file-name name version))
23249 (sha256
23250 (base32
23251 "1wy5qpnfri1gha2cnl6q20qar8dbl2mimpb43bnhmm2g3wgjyad6"))))
23252 (build-system emacs-build-system)
23253 (home-page "https://github.com/asok/peep-dired")
23254 (synopsis "Preview files in another window")
23255 (description "This package provides a minor mode that allows files to be
23256 previewed by scrolling up and down within a @code{dired} buffer.")
23257 (license license:gpl3+))))
23258
23259 (define-public emacs-counsel-etags
23260 (package
23261 (name "emacs-counsel-etags")
23262 (version "1.9.16")
23263 (source
23264 (origin
23265 (method git-fetch)
23266 (uri (git-reference
23267 (url "https://github.com/redguardtoo/counsel-etags")
23268 (commit version)))
23269 (file-name (git-file-name name version))
23270 (sha256
23271 (base32 "01si554r0s6m7ypx1m2n0z6j6q6yihifz76dha6q6v56ixdlv626"))))
23272 (build-system emacs-build-system)
23273 (propagated-inputs
23274 `(("emacs-counsel" ,emacs-counsel)))
23275 (arguments
23276 `(#:tests? #t
23277 #:test-command '("make" "test")))
23278 (home-page "https://github.com/redguardtoo/counsel-etags")
23279 (synopsis "Fast @code{Ctags}/@code{Etags} solution with @code{ivy-mode}")
23280 (description "This package uses @code{ivy-mode} to facilitate navigating
23281 and searching through @code{Ctags} files.")
23282 (license license:gpl3+)))
23283
23284 (define-public emacs-ivy-clipmenu
23285 (let ((commit "d2071f2c5043a05d610cd1952e84176ca78c31dc"))
23286 (package
23287 (name "emacs-ivy-clipmenu")
23288 (version (git-version "0.0.1" "1" commit))
23289 (source (origin
23290 (method git-fetch)
23291 (uri (git-reference
23292 (url "https://github.com/wpcarro/ivy-clipmenu.el")
23293 (commit commit)))
23294 (file-name (git-file-name name version))
23295 (sha256
23296 (base32
23297 "0npd8glzk5z4n7y9mzbsbzi0cf3by19fqcki052jr3dga363lds7"))))
23298 (propagated-inputs
23299 `(("emacs-f" ,emacs-f)
23300 ("emacs-ivy" ,emacs-ivy)))
23301 (build-system emacs-build-system)
23302 (home-page "https://github.com/wpcarro/ivy-clipmenu.el")
23303 (synopsis "Ivy integration with clipmenu")
23304 (description "Ivy integration with the clipboard manager, clipmenu.")
23305 (license license:expat))))
23306
23307 (define-public emacs-org-download
23308 (let ((commit "42ac361ef5502017e6fc1bceb00333eba90402f4")
23309 (revision "3"))
23310 (package
23311 (name "emacs-org-download")
23312 (version (git-version "0.1.0" revision commit))
23313 (source (origin
23314 (method git-fetch)
23315 (uri (git-reference
23316 (url "https://github.com/abo-abo/org-download")
23317 (commit commit)))
23318 (file-name (git-file-name name version))
23319 (sha256
23320 (base32 "0cg4y7hy7xbq4vrbdicfzgvyaf3cjbx2zkqd4yl0y2garz71j99l"))))
23321 (build-system emacs-build-system)
23322 (propagated-inputs
23323 `(("emacs-org" ,emacs-org)
23324 ("emacs-async" ,emacs-async)))
23325 (home-page "https://github.com/abo-abo/org-download")
23326 (synopsis "Facilitate moving images")
23327 (description "This package provides utilities for managing image files
23328 copied into @code{org-mode} buffers.")
23329 (license license:gpl3+))))
23330
23331 (define-public emacs-org-drill-table
23332 ;; No releases or tags.
23333 (let ((commit "096387d929bcf3eb479e0a9d5da9cf32c756a759")
23334 (revision "0"))
23335 (package
23336 (name "emacs-org-drill-table")
23337 (version (git-version "0.1" revision commit))
23338 (source
23339 (origin
23340 (method git-fetch)
23341 (uri (git-reference
23342 (url "https://github.com/chrisbarrett/org-drill-table.git")
23343 (commit commit)))
23344 (file-name (git-file-name name version))
23345 (sha256
23346 (base32 "1a8ygrcag8i9hdpy2vsn0sh8lwhl9b56rv91j3rddy1jv5qx1ipb"))))
23347 (build-system emacs-build-system)
23348 (propagated-inputs
23349 `(("emacs-dash" ,emacs-dash)
23350 ("emacs-org" ,emacs-org)
23351 ("emacs-s" ,emacs-s)))
23352 (home-page "https://github.com/chrisbarrett/org-drill-table")
23353 (synopsis "Generate Org drill cards using Org mode tables")
23354 (description
23355 "This package generates drill cards based on an Org mode table in the
23356 current subtree. The cards are inserted under a new ``Cards'' heading in the
23357 current tree.")
23358 (license license:gpl3+))))
23359
23360 (define-public emacs-dash-docs
23361 (let ((commit "dafc8fc9f1ddb2e4e39e0b8d066c42d5d7ce8d06")
23362 (revision "2"))
23363 (package
23364 (name "emacs-dash-docs")
23365 (version (git-version "1.4.0" revision commit))
23366 (source
23367 (origin
23368 (method git-fetch)
23369 (uri (git-reference
23370 (url "https://github.com/dash-docs-el/dash-docs")
23371 (commit commit)))
23372 (file-name (git-file-name name version))
23373 (sha256
23374 (base32
23375 "0n6d3mm43gj16v8kjjradcfik93wb89dsqnfcbskb28bvcamafid"))))
23376 (build-system emacs-build-system)
23377 (propagated-inputs
23378 `(("emacs-async" ,emacs-async)))
23379 (native-inputs
23380 `(("emacs-undercover" ,emacs-undercover)
23381 ("emacs-ert-runner" ,emacs-ert-runner)))
23382 (arguments
23383 `(#:tests? #t
23384 #:test-command '("ert-runner")
23385 #:phases
23386 ;; this test requires network access, so remove it
23387 (modify-phases %standard-phases
23388 (add-before 'check 'make-tests-writable
23389 (lambda _
23390 (make-file-writable "test/dash-docs-test.el")
23391 #t))
23392 (add-before 'check 'delete-test
23393 (lambda _
23394 (emacs-batch-edit-file "test/dash-docs-test.el"
23395 `(progn (progn
23396 (goto-char (point-min))
23397 (re-search-forward "ert-deftest dash-docs-official-docsets-test")
23398 (beginning-of-line)
23399 (kill-sexp))
23400 (basic-save-buffer)))
23401 #t)))))
23402 (home-page "https://github.com/dash-docs-el/dash-docs")
23403 (synopsis "Offline documentation browser for APIs using Dash docsets")
23404 (description "This package exposes functionality to work with Dash docsets.")
23405 (license license:gpl3+))))
23406
23407 (define-public emacs-helm-dash
23408 (let ((commit "7f853bd34da666f0e9a883011c80f451b06f6c59")
23409 (revision "2"))
23410 (package
23411 (name "emacs-helm-dash")
23412 (version (git-version "1.3.0" revision commit))
23413 (source
23414 (origin
23415 (method git-fetch)
23416 (uri (git-reference
23417 (url "https://github.com/areina/helm-dash")
23418 (commit commit)))
23419 (file-name (git-file-name name version))
23420 (sha256
23421 (base32
23422 "0r192vzry1212ihabg9pgw9xar8zdgnbgy0vsgvfm8s5wj6ny7jp"))))
23423 (build-system emacs-build-system)
23424 (propagated-inputs
23425 `(("emacs-helm" ,emacs-helm)
23426 ("emacs-dash-docs" ,emacs-dash-docs)))
23427 (home-page "https://github.com/areina/helm-dash")
23428 (synopsis "Offline documentation browser for APIs using Dash docsets")
23429 (description "This package uses Helm to install and navigate through
23430 Dash docsets.")
23431 (license license:gpl3+))))
23432
23433 (define-public emacs-counsel-dash
23434 (let ((commit "370d5f6f14b5294d0eb717f7b2a6a8e93df1ed24")
23435 (revision "4"))
23436 (package
23437 (name "emacs-counsel-dash")
23438 (version (git-version "0.1.3" revision commit))
23439 (source
23440 (origin
23441 (method git-fetch)
23442 (uri (git-reference
23443 (url "https://github.com/dash-docs-el/counsel-dash")
23444 (commit commit)))
23445 (file-name (git-file-name name version))
23446 (sha256
23447 (base32 "1fn38vbz46ijarjvhgw7iy7dj9s2a2miy95fyy9f8b5sj8nrdfvz"))))
23448 (build-system emacs-build-system)
23449 (propagated-inputs
23450 `(("emacs-counsel" ,emacs-counsel)
23451 ("emacs-dash-docs" ,emacs-dash-docs)))
23452 (home-page "https://github.com/dash-docs-el/counsel-dash")
23453 (synopsis "Offline documentation browser for APIs using Dash docsets")
23454 (description "This package uses @code{ivy-mode} to install and navigate
23455 through Dash docsets.")
23456 (license license:expat))))
23457
23458 (define-public emacs-cascading-dir-locals
23459 (let ((release "0.1")
23460 (revision "0")
23461 (commit "efdf5e6d62b955ee0ca3c170eae1d388799f9fa0"))
23462 (package
23463 (name "emacs-cascading-dir-locals")
23464 (version (git-version release revision commit))
23465 (home-page "https://github.com/fritzgrabo/cascading-dir-locals")
23466 (source
23467 (origin
23468 (method git-fetch)
23469 (uri (git-reference
23470 (url home-page)
23471 (commit commit)))
23472 (file-name (git-file-name name version))
23473 (sha256
23474 (base32 "1jwd99kk5l588n7wwi1x3b4bgimm66x1icna3n20pwaj49kf0zy8"))))
23475 (build-system emacs-build-system)
23476 (synopsis "Apply all @file{.dir-locals.el} from root to current directory")
23477 (description
23478 "This package provides a global minor mode that changes how Emacs
23479 handles the lookup of applicable dir-locals files (@file{.dir-locals.el}):
23480 instead of starting at the directory of the visited file and moving up the
23481 directory tree only until a first dir-locals file is found, collect and apply
23482 all (!) dir-locals files found from the current directory up to the root one.
23483
23484 Values specified in files nearer to the current directory take precedence over
23485 values in files farther away from it.
23486
23487 You might want to use this to globally set dir-local variables that apply to
23488 all of your projects, then override or add variables on a per-project basis.")
23489 (license license:gpl3+))))
23490
23491 (define-public emacs-calibredb
23492 (package
23493 (name "emacs-calibredb")
23494 (version "2.8.0")
23495 (source
23496 (origin
23497 (method git-fetch)
23498 (uri (git-reference
23499 (url "https://github.com/chenyanming/calibredb.el")
23500 (commit version)))
23501 (file-name (git-file-name name version))
23502 (sha256
23503 (base32 "19gc05k2p1l8wlkrqij9cw6d61hzknd6a9n64kzlpi87cpbav3lv"))))
23504 (build-system emacs-build-system)
23505 (arguments
23506 '(#:phases
23507 (modify-phases %standard-phases
23508 (add-after 'unpack 'patch-paths
23509 (lambda* (#:key inputs #:allow-other-keys)
23510 (let ((calibre (assoc-ref inputs "calibre")))
23511 (make-file-writable "calibredb-core.el")
23512 (emacs-substitute-variables "calibredb-core.el"
23513 ("calibredb-program"
23514 (string-append calibre "/bin/calibredb"))
23515 ("calibredb-fetch-metadata-program"
23516 (string-append calibre "/bin/fetch-ebook-metadata"))))
23517 #t)))))
23518 (inputs
23519 `(("calibre" ,calibre)))
23520 (propagated-inputs
23521 `(("emacs-dash" ,emacs-dash)
23522 ("emacs-s" ,emacs-s)
23523 ("emacs-transient" ,emacs-transient)))
23524 (home-page "https://github.com/chenyanming/calibredb.el")
23525 (synopsis "Yet another calibre client for Emacs")
23526 (description "This package integrates calibre into Emacs.
23527 @enumerate
23528 @item Powerful ebook dashboard.
23529 @item Manage ebooks, actually not only ebooks!
23530 @item Manage Ebook libraries.
23531 @item Another bookmarks solution, by setting the tags and comments.
23532 @item Quick search, filter, make actions on items with ivy and helm.
23533 @item Org-ref support.
23534 @end enumerate")
23535 (license license:gpl3)))
23536
23537 (define-public emacs-el-patch
23538 (package
23539 (name "emacs-el-patch")
23540 (version "2.2.3")
23541 (source
23542 (origin
23543 (method git-fetch)
23544 (uri (git-reference
23545 (url "https://github.com/raxod502/el-patch")
23546 (commit version)))
23547 (file-name (git-file-name name version))
23548 (sha256
23549 (base32
23550 "18djslz177q6q33y82zmg2v6n9236a76kiqfvxdk4vbqzjbq82f7"))))
23551 (build-system emacs-build-system)
23552 (home-page "https://github.com/raxod502/el-patch")
23553 (synopsis "Future-proof your Emacs customizations")
23554 (description "This package allows for an alternate definition of an Elisp
23555 function to be specified and for any differences from the original definition
23556 to be examined using Ediff.")
23557 (license license:expat)))
23558
23559 (define-public emacs-info-plus
23560 (let ((commit "29811edf7a71764ac343631facc00268d9483146")
23561 (revision "3"))
23562 (package
23563 (name "emacs-info-plus")
23564 (version (git-version "0" revision commit))
23565 (source
23566 (origin
23567 (method git-fetch)
23568 (uri (git-reference
23569 (url "https://github.com/emacsmirror/info-plus")
23570 (commit commit)))
23571 (file-name (git-file-name name version))
23572 (sha256
23573 (base32
23574 "0ayq7z6dbf43vczbkjm1l976hxcfrmw45nfywbf1kjpzl3viy4gy"))))
23575 (build-system emacs-build-system)
23576 (home-page "https://github.com/emacsmirror/info-plus")
23577 (synopsis "Extensions to @file{info.el}")
23578 (description "This package extends Emacs' @file{info.el} by allowing
23579 outline-enabled table of contents, additional metadata association for Info
23580 nodes, and more.")
23581 (license license:gpl2+))))
23582
23583 (define-public emacs-eval-sexp-fu-el
23584 (package
23585 (name "emacs-eval-sexp-fu-el")
23586 (version "0.6.0")
23587 (source
23588 (origin
23589 (method git-fetch)
23590 (uri (git-reference
23591 (url "https://github.com/hchbaw/eval-sexp-fu.el")
23592 (commit (string-append "v" version))))
23593 (file-name (git-file-name name version))
23594 (sha256
23595 (base32
23596 "19rv0kwajq0j8inglp84sml23ci74wdcvp5bl6zxbw5skqpf6phr"))))
23597 (build-system emacs-build-system)
23598 (home-page "https://github.com/hchbaw/eval-sexp-fu.el")
23599 (synopsis "Enhancements for evaluating s-expressions")
23600 (description "This package provides provides variants of
23601 @code{eval-last-sexp} that work on the containing list or s-expression, as
23602 well as an option for visually flashing evaluated s-expressions.")
23603 (license license:gpl3+)))
23604
23605 (define-public emacs-counsel-tramp
23606 (package
23607 (name "emacs-counsel-tramp")
23608 (version "0.7.5")
23609 (source
23610 (origin
23611 (method git-fetch)
23612 (uri (git-reference
23613 (url "https://github.com/masasam/emacs-counsel-tramp")
23614 (commit version)))
23615 (file-name (git-file-name name version))
23616 (sha256
23617 (base32 "18qlwyjqxap2qfbz14ma6yqp4p3v4q2y8idc355s4szjdd2as2lr"))))
23618 (build-system emacs-build-system)
23619 (propagated-inputs
23620 `(("emacs-counsel" ,emacs-counsel)))
23621 (home-page "https://github.com/masasam/emacs-counsel-tramp")
23622 (synopsis "Ivy interface for TRAMP")
23623 (description
23624 "This package allows @code{ivy-mode} to display and filter SSH servers.")
23625 (license license:gpl3+)))
23626
23627 (define-public emacs-tramp
23628 (package
23629 (name "emacs-tramp")
23630 (version "2.5.0.2")
23631 (source
23632 (origin
23633 (method url-fetch)
23634 (uri (string-append "https://elpa.gnu.org/packages/"
23635 "tramp-" version ".tar"))
23636 (sha256
23637 (base32 "16f782rjkmxxs5sz3wv4d46i7hbl483ashmrkvljf7lpnrl91s93"))))
23638 (build-system emacs-build-system)
23639 (arguments
23640 `(#:emacs ,emacs ;need D-Bus
23641 #:phases
23642 (modify-phases %standard-phases
23643 ;; All but one "/bin/" directory refer to remote
23644 ;; environments, which may not be Guix. Do not patch them
23645 ;; blindly. However, local encoding shell has to be patched.
23646 (replace 'patch-el-files
23647 (lambda* (#:key inputs #:allow-other-keys)
23648 (let ((sh (assoc-ref inputs "bash"))
23649 (file "tramp.el"))
23650 (emacs-substitute-variables file
23651 ("tramp-encoding-shell" (string-append sh "/bin/sh"))))
23652 #t)))))
23653 (inputs
23654 `(("bash" ,bash)))
23655 (home-page "https://savannah.gnu.org/projects/tramp")
23656 (synopsis "Remote file editing package for Emacs")
23657 (description
23658 "Tramp stands for ``Transparent Remote (file) Access, Multiple
23659 Protocol''. This package provides remote file editing, using
23660 a combination of @command{rsh} and @command{rcp} or other work-alike
23661 programs, such as @command{ssh} and @command{scp}.")
23662 (license license:gpl3+)))
23663
23664 (define-public emacs-tramp-auto-auth
23665 (let ((commit "f15a12dfab651aff60f4a9d70f868030a12344ac"))
23666 (package
23667 (name "emacs-tramp-auto-auth")
23668 (version (git-version "20191027" "1" commit))
23669 (source
23670 (origin
23671 (method git-fetch)
23672 (uri (git-reference
23673 (url "https://github.com/oitofelix/tramp-auto-auth")
23674 (commit commit)))
23675 (file-name (git-file-name name version))
23676 (sha256
23677 (base32
23678 "09nkjgwppjfgv04q0gv468qihgx4y3p39lpwbd6vbh3wgbccas9k"))))
23679 (build-system emacs-build-system)
23680 (home-page "https://github.com/oitofelix/tramp-auto-auth")
23681 (synopsis "TRAMP automatic authentication library")
23682 (description "This package provides @code{tramp-auto-auth-mode} Emacs
23683 global minor mode whose purpose is to automatically feed TRAMP sub-processes
23684 with passwords for paths matching regexps.")
23685 (license license:gpl3+))))
23686
23687 (define-public emacs-eacl
23688 (package
23689 (name "emacs-eacl")
23690 (version "2.0.4")
23691 (source
23692 (origin
23693 (method git-fetch)
23694 (uri (git-reference
23695 (url "https://github.com/redguardtoo/eacl")
23696 (commit version)))
23697 (file-name (git-file-name name version))
23698 (sha256
23699 (base32
23700 "0fxb2lv4cqdjxarqhzjgfc43sncc1c6m96n0aflm8l4gdmm090kq"))))
23701 (build-system emacs-build-system)
23702 (propagated-inputs
23703 `(("emacs-ivy" ,emacs-ivy)))
23704 (home-page "https://github.com/redguardtoo/eacl")
23705 (synopsis "Auto-complete lines by using @code{grep} on a project")
23706 (description "This package provides auto-completion commands for single
23707 and multiple lines of code in a project.")
23708 (license license:gpl3+)))
23709
23710 (define-public emacs-semantic-refactor
23711 ;; The last release, 0.5, was made on 2015-07-26 and there have been 47
23712 ;; commits since then.
23713 (let ((commit "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5"))
23714 (package
23715 (name "emacs-semantic-refactor")
23716 (version (git-version "0.5" "1" commit))
23717 (source
23718 (origin
23719 (method git-fetch)
23720 (uri (git-reference
23721 (url "https://github.com/tuhdo/semantic-refactor")
23722 (commit commit)))
23723 (file-name (git-file-name name version))
23724 (sha256
23725 (base32
23726 "1lyz3zjkx2csh0xdy1zpx8s32qp1p3sig57mwi9xhgpqjyf0axmb"))))
23727 (build-system emacs-build-system)
23728 (home-page "https://github.com/tuhdo/semantic-refactor")
23729 (synopsis "Refactoring tool for C/C++ and Lisp dialects")
23730 (description "This package provides a refactoring tool based on the
23731 Emacs Semantic parser framework. For C and C++ it supports operations such as:
23732
23733 @enumerate
23734 @item Generating class implementations
23735 @item Generating function prototypes
23736 @item Converting functions to function pointers
23737 @item Moving semantic units
23738 @item etc...
23739 @end enumerate
23740
23741 For Lisp dialects like Clojure, ELisp, and Scheme, it supports operations such
23742 as:
23743
23744 @enumerate
23745 @item Formatting the whole buffer
23746 @item Converting sexpressions to one or multiple lines
23747 @item etc...
23748 @end enumerate\n")
23749 (license license:gpl3+))))
23750
23751 (define-public emacs-nhexl-mode
23752 (package
23753 (name "emacs-nhexl-mode")
23754 (version "1.5")
23755 (source
23756 (origin
23757 (method url-fetch)
23758 (uri (string-append "https://elpa.gnu.org/packages/"
23759 "nhexl-mode-" version ".el"))
23760 (sha256
23761 (base32 "0qvxfg7sv4iqyjxzaim6b4v9k5hav36qd4vkf9jwzw6p5fri8w8d"))))
23762 (build-system emacs-build-system)
23763 (home-page "https://elpa.gnu.org/packages/nhexl-mode.html")
23764 (synopsis "Minor mode to edit files via hex-dump format")
23765 (description
23766 "This package implements NHexl mode, a minor mode for editing files
23767 in hex dump format. The mode command is called @command{nhexl-mode}.
23768
23769 This minor mode implements similar functionality to @command{hexl-mode},
23770 but using a different implementation technique, which makes it
23771 usable as a \"plain\" minor mode. It works on any buffer, and does
23772 not mess with the undo log or with the major mode.
23773
23774 It also comes with:
23775
23776 @itemize
23777 @item @command{nhexl-nibble-edit-mode}: a \"nibble editor\" minor mode, where
23778 the cursor pretends to advance by nibbles (4-bit) and the self-insertion keys
23779 (which only work for hex-digits) will only modify the nibble under point.
23780 @item @command{nhexl-overwrite-only-mode}: a minor mode to try and avoid
23781 moving text. In this minor mode, not only self-inserting keys overwrite
23782 existing text, but commands like `yank' and @command{kill-region} as well.
23783 @item It overrides @code{C-u} to use hexadecimal, so you can do @code{C-u a 4
23784 C-f} to advance by #xa4 characters.
23785 @end itemize")
23786 (license license:gpl3+)))
23787
23788 (define-public emacs-helm-wikipedia
23789 (let ((commit "126f044e0a0e1432e0791c33ce2a41875d704a9b"))
23790 (package
23791 (name "emacs-helm-wikipedia")
23792 (version (git-version "0.0.0" "1" commit))
23793 (home-page "https://github.com/emacs-helm/helm-wikipedia/")
23794 (source
23795 (origin
23796 (method git-fetch)
23797 (uri (git-reference
23798 (url home-page)
23799 (commit commit)))
23800 (file-name (git-file-name name version))
23801 (sha256
23802 (base32
23803 "148a5xsnbsiddhf9cl7yxdk41lrv38h0pip91kcflw9d7l0dp7pr"))))
23804 (build-system emacs-build-system)
23805 (inputs
23806 `(("helm" ,emacs-helm)))
23807 (synopsis "Search suggestions and article extracts from Wikipedia for Emacs")
23808 (description
23809 "This package provides an Emacs Helm interface for search suggestions
23810 and article extracts for Wikipedia.")
23811 (license license:gpl3+))))
23812
23813 (define-public emacs-webfeeder
23814 (package
23815 (name "emacs-webfeeder")
23816 (version "1.1.1")
23817 (source
23818 (origin
23819 (method url-fetch)
23820 (uri (string-append
23821 "https://elpa.gnu.org/packages/webfeeder-"
23822 version
23823 ".tar"))
23824 (sha256
23825 (base32
23826 "09caj12hfdfhlbcsmjyhw728w1f7yq13hdslh793yvfqv83ipvc4"))))
23827 (build-system emacs-build-system)
23828 (home-page "https://gitlab.com/Ambrevar/emacs-webfeeder")
23829 (synopsis "Build RSS and Atom webfeeds from HTML files")
23830 (description
23831 "Webfeeder is an Emacs library to generate RSS and Atom feeds from HTML
23832 files. The various elements of the HTML input are parsed with customizable
23833 functions (e.g. @code{webfeeder-title-function}).")
23834 (license license:gpl3+)))
23835
23836 (define-public emacs-evil-numbers
23837 (let ((commit "6ea1c8c3a9b37bed63d48f1128e9a4910e68187e"))
23838 (package
23839 (name "emacs-evil-numbers")
23840 (version (git-version "0.4" "1" commit))
23841 (source (origin
23842 (method git-fetch)
23843 (uri (git-reference
23844 (url "https://github.com/dieggsy/evil-numbers")
23845 (commit commit)))
23846 (file-name (git-file-name name version))
23847 (sha256
23848 (base32
23849 "1aq95hj8x13py0pwsnc6wvd8cc5yv5qin8ym9js42y5966vwj4np"))))
23850 (build-system emacs-build-system)
23851 (home-page "https://github.com/dieggsy/evil-numbers")
23852 (synopsis "Increment and decrement numbers in Emacs")
23853 (description "This package increments and decrements binary, octal,
23854 decimal and hex literals. It works like C-a/C-x in Vim, i.e. searches for
23855 number up to EOL and then increments or decrements and keeps zero padding up
23856 (unlike in Vim). When a region is active, as in Evil's visual mode, all the
23857 numbers within that region will be incremented/decremented (unlike in Vim).
23858
23859 It is a fork of https://github.com/cofi/evil-numbers, which is unmaintained.")
23860 (license license:gpl3+))))
23861
23862 (define-public emacs-rotate-text
23863 (package
23864 (name "emacs-rotate-text")
23865 (version "0.1")
23866 (source (origin
23867 (method git-fetch)
23868 (uri (git-reference
23869 (url "https://github.com/nschum/rotate-text.el")
23870 (commit version)))
23871 (file-name (git-file-name name version))
23872 (sha256
23873 (base32
23874 "1cgxv4aibkvv6lnssynn0438a615fz3zq8hg9sb0lhfgsr99pxln"))))
23875 (build-system emacs-build-system)
23876 (home-page "https://nschum.de/src/emacs/rotate-text/")
23877 (synopsis "Cycle through words, symbols and patterns in Emacs")
23878 (description "@code{rotate-text} allows you rotate to commonly
23879 interchanged text with a single keystroke. For example, you can toggle
23880 between \"frame-width\" and \"frame-height\", between \"public\",
23881 \"protected\" and \"private\" and between \"variable1\", \"variable2\" through
23882 \"variableN\".")
23883 (license license:gpl2+)))
23884
23885 (define-public emacs-ediprolog
23886 (package
23887 (name "emacs-ediprolog")
23888 (version "2.1")
23889 (source
23890 (origin
23891 (method url-fetch)
23892 (uri (string-append
23893 "https://elpa.gnu.org/packages/ediprolog-"
23894 version
23895 ".el"))
23896 (sha256
23897 (base32 "1piimsmzpirw8plrpy79xbpnvynzzhcxi31g6lg6is8gridiv3md"))))
23898 (build-system emacs-build-system)
23899 (home-page "https://elpa.gnu.org/packages/ediprolog.html")
23900 (synopsis "Emacs Does Interactive Prolog")
23901 (description "This package provides a major mode that let the user
23902 interact with SWI-Prolog in all buffers. For instance, one can consult Prolog
23903 programs and evaluate embedded queries. This mode is focused on the command
23904 @code{ediprolog-dwim} (Do What I Mean) which is supposed to, depending on the
23905 context, carry out the appropriate action.")
23906 (license license:gpl3+)))
23907
23908 (define-public emacs-evil-cleverparens
23909 (let ((commit "8c45879d49bfa6d4e414b6c1df700a4a51cbb869")
23910 (revision "1"))
23911 (package
23912 (name "emacs-evil-cleverparens")
23913 (version (git-version "2017-07-17" revision commit))
23914 (source (origin
23915 (method git-fetch)
23916 (uri (git-reference
23917 (url "https://github.com/luxbock/evil-cleverparens")
23918 (commit commit)))
23919 (sha256 (base32 "0lhnybpnk4n2yhlcnj9zxn0vi5hpjfaqfhvyfy7ckzz74g8v7iyw"))
23920 (file-name (git-file-name name version))))
23921 (build-system emacs-build-system)
23922 (propagated-inputs
23923 `(("emacs-evil" ,emacs-evil)
23924 ("emacs-paredit" ,emacs-paredit)
23925 ("emacs-smartparens" ,emacs-smartparens)))
23926 (home-page "https://github.com/luxbock/evil-cleverparens")
23927 (synopsis "Emacs modal editing optimized for editing Lisp")
23928 (description "@code{evil-cleverparens} remaps Evil keybindings to allow
23929 modal editing with screwing up the structure of Lisp code. Alternatives for
23930 verb commands which would are normally destructive (such as deletion) are
23931 provided. Those alternative commands are and bound by default to their
23932 corresponding Evil keys.")
23933 (license license:expat))))
23934
23935 (define-public emacs-evil-traces
23936 (let ((commit "1931e3ea2c64b4aec393a9c25063c330deff55e3")
23937 (revision "2"))
23938 (package
23939 (name "emacs-evil-traces")
23940 (version (git-version "0.0.1" revision commit))
23941 (source (origin
23942 (method git-fetch)
23943 (uri (git-reference
23944 (url "https://github.com/mamapanda/evil-traces")
23945 (commit commit)))
23946 (file-name (git-file-name name version))
23947 (sha256
23948 (base32
23949 "12p9lfxscs182vbd4dy0m5gacs3d4kyprbz5yndpwvl8g2qsqplz"))))
23950 (build-system emacs-build-system)
23951 (propagated-inputs
23952 `(("emacs-evil" ,emacs-evil)))
23953 (arguments
23954 `(#:phases
23955 (modify-phases %standard-phases
23956 (add-after 'unpack 'set-shell
23957 ;; Setting the SHELL environment variable is required for the tests
23958 ;; to find sh.
23959 (lambda _
23960 (setenv "SHELL" (which "sh"))
23961 #t)))
23962 #:tests? #t
23963 #:test-command '("make" "test")))
23964 (home-page "https://github.com/mamapanda/evil-traces")
23965 (synopsis "Visual hints for @code{evil-ex}")
23966 (description "This package adds visual hints to certain @code{ex}
23967 commands in @code{evil-mode}.")
23968 (license license:gpl3+))))
23969
23970 (define-public emacs-evil-tmux-navigator
23971 (package
23972 (name "emacs-evil-tmux-navigator")
23973 (version "0.1.5")
23974 (source
23975 (origin
23976 (method git-fetch)
23977 (uri
23978 (git-reference
23979 (url "https://github.com/keith/evil-tmux-navigator")
23980 (commit version)))
23981 (file-name (git-file-name name version))
23982 (sha256
23983 (base32
23984 "1na44rbc03sr5b4z9pvnps6n4nmrqcz58nywix9825l74a419ijx"))))
23985 (propagated-inputs
23986 `(("emacs-evil" ,emacs-evil)))
23987 (build-system emacs-build-system)
23988 (home-page "https://github.com/keith/evil-tmux-navigator")
23989 (synopsis
23990 "Navigate seamlessly between emacs windows and tmux panes")
23991 (description
23992 "This package lets you use C-h, C-j, C-k and C-l to navigate between
23993 Emacs windows and tmux panes.")
23994 (license license:expat)))
23995
23996 (define-public emacs-xclip
23997 (package
23998 (name "emacs-xclip")
23999 (version "1.10")
24000 (source
24001 (origin
24002 (method url-fetch)
24003 (uri (string-append "https://elpa.gnu.org/packages/"
24004 "xclip-" version ".el"))
24005 (sha256
24006 (base32 "0i3i9kwfg8qmhcmqhhnrb1kljgwkccv63s9q1mjwqfjldyfh8j8i"))))
24007 (build-system emacs-build-system)
24008 (home-page "http://elpa.gnu.org/packages/xclip.html")
24009 (synopsis "Copy and paste GUI clipboard from Emacs in text terminal")
24010 (description
24011 "This package allows Emacs to copy to and paste from the GUI clipboard
24012 when running in text terminal.
24013
24014 It can use external command-line tools for that, e.g., @command{xclip} or
24015 @command{xsel}, which you may need to install in order for the package to
24016 work.")
24017 (license license:gpl3+)))
24018
24019 (define-public emacs-xterm-color
24020 (package
24021 (name "emacs-xterm-color")
24022 (version "2.0")
24023 (source
24024 (origin
24025 (method git-fetch)
24026 (uri (git-reference
24027 (url "https://github.com/atomontage/xterm-color")
24028 (commit version)))
24029 (file-name (git-file-name name version))
24030 (sha256
24031 (base32 "127lq50q62x06kd1xrf8lyc4rkqbfhfy86gsx1x4x169am2xk397"))))
24032 (build-system emacs-build-system)
24033 (home-page "https://github.com/atomontage/xterm-color")
24034 (synopsis "ANSI & xterm-256 color text property translator for Emacs")
24035 (description "@code{xterm-color.el} is an ANSI control sequence to
24036 text-property translator.")
24037 (license license:bsd-2)))
24038
24039 (define-public emacs-org-noter
24040 (package
24041 (name "emacs-org-noter")
24042 (version "1.4.1")
24043 (source
24044 (origin
24045 (method git-fetch)
24046 (uri (git-reference
24047 (url "https://github.com/weirdNox/org-noter")
24048 (commit version)))
24049 (file-name (git-file-name name version))
24050 (sha256
24051 (base32
24052 "1vwfpdi7hfkxx4vi0cwg7rvqby3i0mymzdkyzrqzv30dazmcjpag"))))
24053 (build-system emacs-build-system)
24054 (propagated-inputs `(("emacs-org" ,emacs-org)))
24055 (home-page "https://github.com/weirdNox/org-noter")
24056 (synopsis "Synchronized, Org-mode, document annotator")
24057 (description
24058 "This package lets you create notes that are kept in sync when you
24059 scroll through the document, but that are external to it---the notes
24060 themselves live in an Org-mode file. As such, this leverages the power of
24061 Org-mode (the notes may have outlines, latex fragments, babel, etc...) while
24062 acting like notes that are made @emph{in} the document.")
24063 (license license:gpl3+)))
24064
24065 (define-public emacs-org-redmine
24066 (let ((commit "e77d013bc3784947c46a5c53f03cd7d3c68552fc"))
24067 (package
24068 (name "emacs-org-redmine")
24069 (version (git-version "0.1" "1" commit))
24070 (source (origin
24071 (method git-fetch)
24072 (uri (git-reference
24073 (url "https://github.com/gongo/org-redmine")
24074 (commit commit)))
24075 (file-name (git-file-name name version))
24076 (sha256
24077 (base32
24078 "06miv3mf2a39vkf6mmm5ssc47inqh7dq82khsyc03anz4d4lj822"))))
24079 (build-system emacs-build-system)
24080 (home-page "https://github.com/gongo/org-redmine/")
24081 (synopsis "Redmine tools using Emacs")
24082 (description "This program provides an Emacs client for Redmine.")
24083 (license license:gpl3+))))
24084
24085 (define-public emacs-multi-term
24086 ;; No upstream release. Extract version from main file.
24087 (let ((commit "017c77c550115936860e2ea71b88e585371475d5")
24088 (revision "0"))
24089 (package
24090 (name "emacs-multi-term")
24091 (version (git-version "1.5" revision commit))
24092 (source
24093 (origin
24094 (method git-fetch)
24095 (uri (git-reference
24096 (url "https://github.com/manateelazycat/multi-term")
24097 (commit commit)))
24098 (file-name (git-file-name name version))
24099 (sha256
24100 (base32 "043dqd8i8h6hbcg11rzprxin2yq5lb902zlrb7mxah44vyp8wrdi"))))
24101 (build-system emacs-build-system)
24102 (inputs
24103 `(("zsh" ,zsh)))
24104 (home-page "https://github.com/manateelazycat/multi-term")
24105 (synopsis "Manage multiple terminal buffers in Emacs")
24106 (description
24107 "This package enhances @code{term.el} with the following features:
24108
24109 @enumerate
24110 @item Functions to switch between multiple terminal buffers
24111 @item List of keys to be intercepted by @code{emacs-multi-term} instead of by
24112 the underlying terminal
24113 @item Kills the unused buffer left after exiting the terminal
24114 @item Kills the running sub-processes along with the terminal when killing the
24115 it forcibly
24116 @item Dedicated window for debugging program.
24117 @end enumerate")
24118 (license license:gpl3+))))
24119
24120 (define-public emacs-elpher
24121 (package
24122 (name "emacs-elpher")
24123 (version "2.10.2")
24124 (source
24125 (origin
24126 (method git-fetch)
24127 (uri (git-reference
24128 (url "git://thelambdalab.xyz/elpher.git")
24129 (commit (string-append "v" version))))
24130 (file-name (git-file-name name version))
24131 (sha256
24132 (base32 "0xqiisirpvw4ka9417pq4r73x937wl3qbf8cpn2i03akm8d58smd"))))
24133 (build-system emacs-build-system)
24134 (native-inputs
24135 `(("texinfo" ,texinfo)))
24136 (arguments
24137 `(#:phases
24138 (modify-phases %standard-phases
24139 (add-before 'install 'build-doc
24140 (lambda _
24141 (invoke "makeinfo" "elpher.texi"))))))
24142 (home-page "gopher://thelambdalab.xyz/1/projects/elpher/")
24143 (synopsis "Gopher and gemini client for Emacs")
24144 (description "Elpher is a full-featured gopher and gemini client for
24145 Emacs. Its features include intuitive keyboard and mouse-driven browsing,
24146 out-of-the-box compatibility with evil-mode, clickable links in plain text,
24147 caching of visited sites, pleasant and configurable visualization of Gopher
24148 directories, direct visualisation of image files, jumping directly to links by
24149 name (with autocompletion), a simple bookmark management system and
24150 connections using TLS encryption.")
24151 (license license:gpl3+)))
24152
24153 (define-public emacs-zerodark-theme
24154 (package
24155 (name "emacs-zerodark-theme")
24156 (version "4.7")
24157 (source
24158 (origin
24159 (method git-fetch)
24160 (uri (git-reference
24161 (url "https://github.com/NicolasPetton/zerodark-theme")
24162 (commit version)))
24163 (file-name (git-file-name name version))
24164 (sha256
24165 (base32
24166 "1r5s4mvwlxsb9ylr6dkfxpm1l0pbqkmn5gwjdcfk762cnxlam8cm"))))
24167 (build-system emacs-build-system)
24168 (propagated-inputs
24169 `(("emacs-flycheck" ,emacs-flycheck)
24170 ("emacs-all-the-icons" ,emacs-all-the-icons)))
24171 (home-page
24172 "https://gitlab.petton.fr/nico/zerodark-theme")
24173 (synopsis
24174 "Dark, medium contrast theme for Emacs")
24175 (description
24176 "Zerodark is a dark theme inspired from One Dark and Niflheim.
24177 An optional mode-line format can be enabled with @code{zerodark-setup-modeline-format}.")
24178 (license license:gpl3+)))
24179
24180 (define-public emacs-gnus-alias
24181 (package
24182 (name "emacs-gnus-alias")
24183 (version "20150316")
24184 (source (origin
24185 (method git-fetch)
24186 (uri (git-reference
24187 (url "https://github.com/hexmode/gnus-alias")
24188 (commit "9447d3ccb4c0e75d0468899cccff7aa249657bac")))
24189 (file-name (git-file-name name version))
24190 (sha256
24191 (base32
24192 "1i278npayv3kfxxd1ypi9n83q5l402sbc1zkm11pf8g006ifqsp4"))))
24193 (build-system emacs-build-system)
24194 (home-page "https://melpa.org/#/gnus-alias")
24195 (synopsis "Alternative to @code{gnus-posting-styles}")
24196 (description "This Emacs add-on provides a simple mechanism to switch
24197 Identities when using a @code{message-mode} or a @code{message-mode} derived
24198 mode. Identities can include @code{From} and @code{Organisation} headers,
24199 extra headers, body and signature. Other features include:
24200
24201 @itemize
24202 @item Switch Identities in a message buffer.
24203 @item Access original message to help determine Identity of the followup/reply
24204 message.
24205 @item Act on a forwarded message as if it were a message being replied to.
24206 @item Start a new message with a given Identity pre-selected.
24207 @end itemize")
24208 (license license:gpl2+)))
24209
24210 (define-public emacs-ox-epub
24211 (package
24212 (name "emacs-ox-epub")
24213 (version "0.3")
24214 (source (origin
24215 (method git-fetch)
24216 (uri (git-reference
24217 (url "https://github.com/ofosos/ox-epub")
24218 (commit (string-append "v" version))))
24219 (file-name (git-file-name name version))
24220 (sha256
24221 (base32
24222 "057sqmvm8hwkhcg3yd4i8zz2xlqsqrpyiklyiw750s3i5mxdn0k7"))))
24223 (build-system emacs-build-system)
24224 (home-page "https://github.com/ofosos/ox-epub")
24225 (synopsis "Export org mode projects to EPUB")
24226 (description "@code{ox-epub} extends the (X)HTML exporter to generate
24227 @code{.epub} files directly from OrgMode. This will export EPUB version 2,
24228 which should give broad compatibility. It should also be relatiely easy to
24229 convert the resulting @code{.epub} to a @code{.mobi} file. Needs a working
24230 zip utility (default is @code{zip}).")
24231 (license license:gpl3+)))
24232
24233 (define-public emacs-ox-gemini
24234 ;; No releases yet
24235 (let ((commit "d88c10bcb10fc463fa5a2f6e29c8c94b75a314c0")
24236 (revision "0"))
24237 (package
24238 (name "emacs-ox-gemini")
24239 (version (git-version "0" revision commit))
24240 (source
24241 (origin
24242 (method git-fetch)
24243 (uri (git-reference
24244 (url "https://git.sr.ht/~abrahms/ox-gemini")
24245 (commit commit)))
24246 (file-name (git-file-name name version))
24247 (sha256
24248 (base32 "1f8kbg5vjd1k7fak3v56b77yk612j6vmzx4xzx3m2vq3f0nyxq29"))))
24249 (build-system emacs-build-system)
24250 (home-page "https://sr.ht/~abrahms/ox-gemini")
24251 (synopsis "Export Org files in Gemini format")
24252 (description
24253 "@code{ox-gemini} adds support for exporting Org files in Gemini
24254 format. Many things were taken from the ASCII exporter, from which
24255 @code{ox-gemini} derives.")
24256 (license license:gpl3+))))
24257
24258 (define-public emacs-ox-haunt
24259 (package
24260 (name "emacs-ox-haunt")
24261 (version "0.2")
24262 (source
24263 (origin
24264 (method git-fetch)
24265 (uri (git-reference
24266 (url "https://git.sr.ht/~jakob/ox-haunt")
24267 (commit (string-append "v" version))))
24268 (file-name (git-file-name name version))
24269 (sha256
24270 (base32 "1rs1n228c2fmpvirc57bqgf2616ijpphkgf4w9ln5j46snmkam25"))))
24271 (build-system emacs-build-system)
24272 (home-page "https://git.sr.ht/~jakob/ox-haunt")
24273 (synopsis "Export Org files to HTML appropriate for Haunt")
24274 (description
24275 "This library implements an HTML back-end for the Org generic exporter,
24276 producing output appropriate for Haunt's @code{html-reader}.")
24277 (license license:gpl3+)))
24278
24279 (define-public emacs-ox-hugo
24280 (package
24281 (name "emacs-ox-hugo")
24282 (version "0.8")
24283 (source
24284 (origin
24285 (method git-fetch)
24286 (uri (git-reference
24287 (url "https://github.com/kaushalmodi/ox-hugo")
24288 (commit (string-append "v" version))))
24289 (file-name (git-file-name name version))
24290 (sha256
24291 (base32
24292 "11h464cyc28ld0b0zridgm4drydc1qjxbm1y24zrwlkyqqjk6yr7"))))
24293 (build-system emacs-build-system)
24294 (home-page "https://ox-hugo.scripter.co")
24295 (synopsis "Hugo markdown back-end for Org export engine")
24296 (description
24297 "Ox-hugo is an Org exporter backend that exports Org to Hugo-compatible
24298 Markdown, Blackfriday, and also generates the front-matter in TOML or YAML
24299 format.")
24300 (license license:gpl3+)))
24301
24302 (define-public emacs-ox-pandoc
24303 (package
24304 (name "emacs-ox-pandoc")
24305 (version "20180510")
24306 (source (origin
24307 (method git-fetch)
24308 (uri (git-reference
24309 (url "https://github.com/kawabata/ox-pandoc")
24310 (commit "aa37dc7e94213d4ebedb85c384c1ba35007da18e")))
24311 (file-name (git-file-name name version))
24312 (sha256
24313 (base32
24314 "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"))))
24315 (build-system emacs-build-system)
24316 (inputs
24317 `(("pandoc" ,pandoc)))
24318 (propagated-inputs
24319 `(("emacs-dash" ,emacs-dash)
24320 ("emacs-ht" ,emacs-ht)))
24321 (home-page "https://github.com/kawabata/ox-pandoc")
24322 (synopsis "Org exporter for Pandoc")
24323 (description "@code{ox-pandoc} is an exporter for converting Org-mode
24324 files to numerous other formats via Pandoc.")
24325 (license license:gpl3+)))
24326
24327 (define-public emacs-wc-mode
24328 (package
24329 (name "emacs-wc-mode")
24330 (version "1.4")
24331 (source (origin
24332 (method git-fetch)
24333 (uri (git-reference
24334 (url "https://github.com/bnbeckwith/wc-mode")
24335 (commit (string-append "v" version))))
24336 (file-name (git-file-name name version))
24337 (sha256
24338 (base32
24339 "01icd63mb2hg1bgbmkq3jm8kc3ic8whfy2awcgx53zqkmyz87qxc"))))
24340 (build-system emacs-build-system)
24341 (home-page "https://github.com/bnbeckwith/wc-mode")
24342 (synopsis "Running word count with goals (minor mode)")
24343 (description "@code{wc-mode} is a minor mode, providing a ‘wc’ function
24344 for Emacs buffers as well as a modeline addition with live word, line and
24345 character counts. Additionally, a user can set specific goals for adding or
24346 deleting words. These goals were partly inspired by 750words.com where the
24347 goal of the site is to encourage writing by setting a goal of 750 words at a
24348 time.")
24349 (license license:gpl3+)))
24350
24351 (define-public emacs-mastodon
24352 (package
24353 (name "emacs-mastodon")
24354 (version "0.9.0")
24355 (source (origin
24356 (method git-fetch)
24357 (uri (git-reference
24358 (url "https://github.com/jdenen/mastodon.el")
24359 (commit version)))
24360 (file-name (git-file-name name version))
24361 (sha256
24362 (base32
24363 "0hwax6y9dghqwsbnb6f1bnc7gh8xsh5cvcnayk2sn49x8b0zi5h1"))))
24364 (build-system emacs-build-system)
24365 (arguments
24366 `(#:phases
24367 (modify-phases %standard-phases
24368 ;; Move the source files to the top level, which is included in
24369 ;; the EMACSLOADPATH.
24370 (add-after 'unpack 'move-source-files
24371 (lambda _
24372 (let ((el-files (find-files "./lisp" ".*\\.el$")))
24373 (for-each (lambda (f)
24374 (rename-file f (basename f)))
24375 el-files))
24376 #t)))))
24377 (home-page "https://github.com/jdenen/mastodon.el")
24378 (synopsis "Emacs client for Mastodon")
24379 (description "@code{mastodon.el} is an Emacs client for Mastodon, the
24380 federated microblogging social network.")
24381 (license license:gpl3+)))
24382
24383 (define-public emacs-ebdb
24384 (package
24385 (name "emacs-ebdb")
24386 (version "0.6.22")
24387 (source
24388 (origin
24389 (method url-fetch)
24390 (uri (string-append "https://elpa.gnu.org/packages/"
24391 "ebdb-" version ".tar"))
24392 (sha256
24393 (base32 "0dljl21n6508c7ash7l6zgxhpn2wdfzga0va63d4k9nwnqmkvsgz"))))
24394 (build-system emacs-build-system)
24395 (home-page "https://github.com/girzel/ebdb")
24396 (synopsis "EIEIO port of BBDB, Emacs's contact-management package")
24397 (description
24398 "EBDB is a contact management/addressbook package for Emacs. It's
24399 a re-write of the Insidious Big Brother Database (BBDB) using Emacs
24400 Lisp's (relatively new) EIEIO object oriented libraries.")
24401 (license license:gpl3+)))
24402
24403 (define-public emacs-refactor
24404 (package
24405 (name "emacs-refactor")
24406 (version "0.4")
24407 (source (origin
24408 (method git-fetch)
24409 (uri (git-reference
24410 (url "https://github.com/Wilfred/emacs-refactor")
24411 (commit version)))
24412 (file-name (git-file-name name version))
24413 (sha256
24414 (base32
24415 "1yky7vlv91501xb43xk19rr8mxlvrsxhawsc98jivf64nad5dqay"))))
24416 (build-system emacs-build-system)
24417 (propagated-inputs
24418 `(("emacs-dash" ,emacs-dash)
24419 ("emacs-s" ,emacs-s)
24420 ("emacs-popup" ,emacs-popup)
24421 ("emacs-list-utils" ,emacs-list-utils)
24422 ("emacs-iedit" ,emacs-iedit)))
24423 (home-page "https://github.com/Wilfred/emacs-refactor/")
24424 (synopsis "Language-specific refactoring in Emacs")
24425 (description "Emacs Refactor (EMR) is a framework for providing
24426 language-specific refactoring in Emacs. It includes refactoring commands for
24427 a variety of languages, including elisp itself.")
24428 (license license:gpl3+)))
24429
24430 (define-public emacs-flyspell-correct
24431 (package
24432 (name "emacs-flyspell-correct")
24433 (version "0.6.1")
24434 (source
24435 (origin
24436 (method git-fetch)
24437 (uri (git-reference
24438 (url "https://github.com/d12frosted/flyspell-correct")
24439 (commit (string-append "v" version))))
24440 (file-name (git-file-name name version))
24441 (sha256
24442 (base32 "1m5da6r82hk0c2x3lw03qnkk79sx67875afw0ybblj3cmfk6szd1"))))
24443 (build-system emacs-build-system)
24444 ;; XXX: emacs-avy-menu is not packaged, so we ignore the file below.
24445 (arguments
24446 `(#:exclude '("flyspell-correct-avy-menu\\.el")))
24447 (propagated-inputs
24448 `(("emacs-helm" ,emacs-helm)
24449 ("emacs-ivy" ,emacs-ivy)
24450 ("emacs-popup" ,emacs-popup)))
24451 (home-page "https://github.com/d12frosted/flyspell-correct")
24452 (synopsis "Correcting words with flyspell via custom interfaces")
24453 (description
24454 "This package provides functionality for correcting words via custom
24455 interfaces. Several interfaces are supported beside the classic Ido: Popup,
24456 Helm and Ivy.")
24457 (license license:gpl3+)))
24458
24459 (define-public emacs-org-emms
24460 (let ((commit "07a8917f3d628c32e5de1dbd118ac08203772533")
24461 (revision "1"))
24462 (package
24463 (name "emacs-org-emms")
24464 (version
24465 (git-version "0.1" revision commit))
24466 (source
24467 (origin
24468 (method git-fetch)
24469 (uri (git-reference
24470 (url "https://gitlab.com/jagrg/org-emms.git")
24471 (commit commit)))
24472 (file-name (git-file-name name commit))
24473 (sha256
24474 (base32
24475 "1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d"))))
24476 (build-system emacs-build-system)
24477 (propagated-inputs
24478 `(("emms" ,emacs-emms)
24479 ("emacs-org" ,emacs-org)))
24480 (home-page "https://gitlab.com/jagrg/org-emms")
24481 (synopsis "Play multimedia files from org-mode")
24482 (description
24483 "This package provides a new org link type for playing back multimedia
24484 files from org-mode using EMMS, The Emacs Multimedia System. If the link
24485 contains a track position, playback will start at the specified position.")
24486 (license license:gpl3+))))
24487
24488 (define-public emacs-org-jira
24489 (package
24490 (name "emacs-org-jira")
24491 (version "4.3.2")
24492 (source
24493 (origin
24494 (method git-fetch)
24495 (uri (git-reference
24496 (url "https://github.com/ahungry/org-jira")
24497 (commit version)))
24498 (file-name (git-file-name name version))
24499 (sha256
24500 (base32
24501 "1hsfkkm3ykdf7n8a6k0mpzilhjpy7vllwrl2s4rfb9mhnaq5yb8y"))))
24502 (build-system emacs-build-system)
24503 (propagated-inputs
24504 `(("emacs-request" ,emacs-request)
24505 ("emacs-s" ,emacs-s)
24506 ("emacs-dash" ,emacs-dash)
24507 ("emacs-org" ,emacs-org)))
24508 (home-page "https://github.com/ahungry/org-jira")
24509 (synopsis "Syncing between Jira and Org-mode")
24510 (description
24511 "This package provides an extension to org-mode for syncing issues with
24512 JIRA issue servers.")
24513 (license license:gpl3+)))
24514
24515 (define-public emacs-slime-volleyball
24516 (package
24517 (name "emacs-slime-volleyball")
24518 (version "1.1.7")
24519 (source
24520 (origin
24521 (method url-fetch)
24522 (uri (string-append "https://elpa.gnu.org/packages/"
24523 "slime-volleyball-" version ".tar"))
24524 (sha256
24525 (base32 "0dl1x0ghfwg4vv2asz3g4plghjxpzd56fyw09vsa3s3k9xsmy3yy"))))
24526 (build-system emacs-build-system)
24527 (arguments '(#:include '("\\.el$" "\\.svg$" "\\.b64$" "slime\\.el\\.gz$")))
24528 (home-page "http://elpa.gnu.org/packages/slime-volleyball.html")
24529 (synopsis "SVG slime volleyball game")
24530 (description
24531 "Emacs Slime Volleyball is a volleyball game. Win points by
24532 making the ball land on your opponent's side of the court. The first
24533 player to five points wins! You can play against a friend, or
24534 challenge the three computer opponents in one player mode. You can
24535 even train opponent slimes.")
24536 (license license:gpl3+)))
24537
24538 (define-public emacs-systemd-mode
24539 (package
24540 (name "emacs-systemd-mode")
24541 (version "1.6")
24542 (source (origin
24543 (method git-fetch)
24544 (uri (git-reference
24545 (url "https://github.com/holomorph/systemd-mode")
24546 (commit (string-append "v" version))))
24547 (file-name (git-file-name name version))
24548 (sha256
24549 (base32
24550 "0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq"))))
24551 (build-system emacs-build-system)
24552 (arguments '(#:include '("\\.el$" "\\.txt$")))
24553 (home-page "https://github.com/holomorph/systemd-mode")
24554 (synopsis
24555 "Major mode for editing systemd units")
24556 (description
24557 "Major mode for editing systemd units in GNU Emacs.")
24558 (license license:gpl3+)))
24559
24560 (define-public emacs-ssh-config-mode
24561 (let ((commit "4c1dfa57d452cb5654453bf186c8ff63e1e71b56")
24562 (revision "1"))
24563 (package
24564 (name "emacs-ssh-config-mode")
24565 (version (git-version "8.0" revision commit))
24566 (source
24567 (origin
24568 (method git-fetch)
24569 (uri
24570 (git-reference
24571 (url "https://github.com/jhgorrell/ssh-config-mode-el")
24572 (commit commit)))
24573 (file-name (git-file-name name commit))
24574 (sha256
24575 (base32
24576 "0crglfdazzckizbwzmgl2rn6j85avfzkr1q7ijxd17rp2anvr9bd"))))
24577 (build-system emacs-build-system)
24578 (arguments '(#:include '("\\.el$" "\\.txt$")))
24579 (home-page
24580 "https://github.com/jhgorrell/ssh-config-mode-el")
24581 (synopsis
24582 "Mode for fontification of ~/.ssh/config")
24583 (description
24584 "This package fontifies the ssh config keywords and creates
24585 keybindings for skipping from host section to host section.")
24586 (license license:gpl3+))))
24587
24588 (define-public emacs-ssh-agency
24589 (package
24590 (name "emacs-ssh-agency")
24591 (version "0.4.1")
24592 (source (origin
24593 (method git-fetch)
24594 (uri (git-reference
24595 (url "https://github.com/magit/ssh-agency")
24596 (commit version)))
24597 (file-name (git-file-name name version))
24598 (sha256
24599 (base32
24600 "1i3zmsn0w2k7p2hlzssibckm32kf05l56mkhg96x4sf06g3pwq1d"))))
24601 (build-system emacs-build-system)
24602 (propagated-inputs
24603 `(("dash" ,emacs-dash)))
24604 (home-page "https://github.com/magit/ssh-agency")
24605 (synopsis "Manage @code{ssh-agent} from Emacs")
24606 (description
24607 "This package provides functions to startup @code{ssh-agent}, set the
24608 needed environment variables in Emacs, and prompt for passphrases from within
24609 Emacs so that pushes and pulls from @code{magit} will not require entering any
24610 passphrase.
24611
24612 It can also be useful on Unix-like platforms to delay having to enter your
24613 passphrase until the first time you push to a remote.")
24614 (license license:gpl3+)))
24615
24616 (define-public emacs-tao-theme
24617 (let ((commit "468ee4f6ba7afb9dbfc8855ae2c333cb16ca4408")
24618 (revision "1"))
24619 (package
24620 (name "emacs-tao-theme")
24621 (version (git-version "1.1.1" revision commit))
24622 (source
24623 (origin
24624 (method git-fetch)
24625 (uri (git-reference
24626 (url "https://github.com/11111000000/tao-theme-emacs")
24627 (commit commit)))
24628 (file-name (git-file-name name version))
24629 (sha256
24630 (base32
24631 "0yqibx6wcdsj5k6130c3qp0hmj6zwhfjrrvw98lny23ksw6k0s3s"))))
24632 (build-system emacs-build-system)
24633 (home-page "https://github.com/11111000000/tao-theme-emacs")
24634 (synopsis "Parameterized uncolored color themes for Emacs")
24635 (description
24636 "This package provides two parameterized uncolored color themes for
24637 Emacs: @code{tao-yin} and @code{tao-yang}. The default
24638 @code{tao-theme-scale-fn} is @code{tao-theme-golden-scale}.
24639
24640 You can customize: @code{tao-theme-scale-fn}, that returns 16 2-digit numbers;
24641 @code{tao-theme-scale-filter-fn}, for edge filter; and
24642 @code{tao-theme-use-height}.")
24643 (license license:gpl3+))))
24644
24645 (define-public emacs-almost-mono-themes
24646 (let ((commit "c3a85c1a665530a5d830665969725cdba8eceb75")
24647 (revision "0"))
24648 (package
24649 (name "emacs-almost-mono-themes")
24650 (version (git-version "0" revision commit))
24651 (source
24652 (origin
24653 (method git-fetch)
24654 (uri (git-reference
24655 (url "https://github.com/cryon/almost-mono-themes")
24656 (commit commit)))
24657 (file-name (git-file-name name version))
24658 (sha256
24659 (base32
24660 "034k32xkr5ma415hlkbl35z0jxc4sa1inf87hg3y6lrlfl83fyjh"))))
24661 (build-system emacs-build-system)
24662 (home-page "https://github.com/cryon/almost-mono-themes")
24663 (synopsis "Almost monochromatic themes for emacs in a few variants")
24664 (description
24665 "This package provides a collection of almost monochrome Emacs themes:
24666 @code{almost-mono-black} and @code{almost-mono-white}.")
24667 (license license:gpl3+))))
24668
24669 (define-public emacs-quasi-monochrome
24670 (let ((commit "68060dbbc0bbfe4924387392874186c5a29bb434")
24671 (revision "0"))
24672 (package
24673 (name "emacs-quasi-monochrome")
24674 (version (git-version "1.2" revision commit))
24675 (source
24676 (origin
24677 (method git-fetch)
24678 (uri (git-reference
24679 (url "https://github.com/lbolla/emacs-quasi-monochrome")
24680 (commit commit)))
24681 (file-name (git-file-name name version))
24682 (sha256
24683 (base32
24684 "0zp2xr0bjfqrpb0bqczzick1vvbjmipjavrdi70kw6a9caynvq22"))))
24685 (build-system emacs-build-system)
24686 (home-page "https://github.com/lbolla/emacs-quasi-monochrome")
24687 (synopsis "Dark color theme for Emacs")
24688 (description
24689 "This package provides a dark color theme with a black background, high
24690 contrast and few colors.")
24691 (license license:gpl3+))))
24692
24693 (define-public emacs-doom-themes
24694 (let ((commit "e803fc4ac8cf7118e2d1544d8241b848b5e79e9f")
24695 (revision "5")
24696 (version "2.1.6"))
24697 (package
24698 (name "emacs-doom-themes")
24699 (version (git-version version revision commit))
24700 (source (origin
24701 (method git-fetch)
24702 (uri (git-reference
24703 (url "https://github.com/hlissner/emacs-doom-themes")
24704 (commit commit)))
24705 (file-name (git-file-name name version))
24706 (sha256
24707 (base32 "128hdmf0jkzr12fv2r6z349qiwba6q97hsb6b1n2qlhi0v5v3mfh"))))
24708 (build-system emacs-build-system)
24709 (native-inputs
24710 `(("emacs-ert-runner" ,emacs-ert-runner)))
24711 (arguments
24712 `(#:tests? #t
24713 #:test-command '("ert-runner")
24714 #:modules ((guix build emacs-build-system)
24715 (guix build utils)
24716 (guix build emacs-utils)
24717 (srfi srfi-1))
24718 #:phases
24719 (modify-phases %standard-phases
24720 (add-after 'unpack 'move-themes
24721 (lambda _
24722 ;; Move the source files to the top level, which is in the
24723 ;; EMACSLOADPATH.
24724 (for-each (lambda (f)
24725 (rename-file f (basename f)))
24726 (find-files "./themes" ".*\\.el$"))
24727 #t)))))
24728 (synopsis "Wide collection of color themes for Emacs")
24729 (description "Emacs-doom-themes contains numerous popular color themes for
24730 Emacs that integrate with major modes like Org-mode.")
24731 (home-page "https://github.com/hlissner/emacs-doom-themes")
24732 (license license:expat))))
24733
24734 (define-public emacs-modus-themes
24735 (package
24736 (name "emacs-modus-themes")
24737 (version "1.2.3")
24738 (source
24739 (origin
24740 (method git-fetch)
24741 (uri (git-reference
24742 (url "https://gitlab.com/protesilaos/modus-themes")
24743 (commit version)))
24744 (file-name (git-file-name name version))
24745 (sha256
24746 (base32 "1l392hz6zs6wg06x2zxnk7s0h5cpmvbkcynh68gjmqjj84l7mqrk"))))
24747 (build-system emacs-build-system)
24748 (home-page "https://protesilaos.com/modus-themes/")
24749 (synopsis "Accessible themes (WCAG AAA)")
24750 (description
24751 "The Modus themes are designed for accessible readability. They conform
24752 with the highest standard for color contrast between any given combination of
24753 background and foreground values. This corresponds to the WCAG AAA standard,
24754 which specifies a minimum rate of distance in relative luminance of 7:1.
24755
24756 Modus Operandi (modus-operandi) is a light theme, while Modus
24757 Vivendi (modus-vivendi) is dark. Each theme’s color palette is designed to
24758 meet the needs of the numerous interfaces that are possible in the Emacs
24759 computing environment.")
24760 (license license:gpl3+)))
24761
24762 (define-public emacs-modus-operandi-theme
24763 (deprecated-package "emacs-modus-operandi-theme" emacs-modus-themes))
24764
24765 (define-public emacs-modus-vivendi-theme
24766 (deprecated-package "emacs-modus-vivendi-theme" emacs-modus-themes))
24767
24768 (define-public emacs-punpun-theme
24769 (let ((commit "2f78125609277b2478abdebd8f9d5ee10a823b65")
24770 (revision "0"))
24771 (package
24772 (name "emacs-punpun-theme")
24773 (version (git-version "0" revision commit))
24774 (source
24775 (origin
24776 (method git-fetch)
24777 (uri (git-reference
24778 (url "https://github.com/wasamasa/punpun-theme")
24779 (commit commit)))
24780 (file-name (git-file-name name version))
24781 (sha256
24782 (base32
24783 "1sgxrj3igzq86h3whfymxf4qzv9kpvcrlhbvjmnp7fwrplys0n7d"))))
24784 (build-system emacs-build-system)
24785 (home-page "https://github.com/wasamasa/punpun-theme")
24786 (synopsis "Bleak Emacs theme")
24787 (description
24788 "A bleak theme. Uses shades of gray and the occasional splash of
24789 color. Designed for 256-color terminals. Comes in light and dark!")
24790 (license license:gpl3+))))
24791
24792 (define-public emacs-spacemacs-theme
24793 (let ((commit "f79c40fb241e204539fde97200abae91e828e585")
24794 (revision "1"))
24795 (package
24796 (name "emacs-spacemacs-theme")
24797 (version (git-version "0" revision commit)) ;no release yet
24798 (source
24799 (origin
24800 (method git-fetch)
24801 (uri (git-reference
24802 (url "https://github.com/nashamri/spacemacs-theme")
24803 (commit commit)))
24804 (file-name (git-file-name name version))
24805 (sha256
24806 (base32 "1l2kkiyrskkpx8f901v0wrzaah1wjg15zdyv88spj3mh3hwd3b6n"))))
24807 (build-system emacs-build-system)
24808 (home-page "https://github.com/nashamri/spacemacs-theme")
24809 (synopsis
24810 "Light and dark theme for spacemacs that supports GUI and terminal")
24811 (description
24812 "Spacemacs theme is an Emacs color theme that started as
24813 a theme for Spacemacs. The theme comes with dark and light variants
24814 and it should work well with 256 color terminals.")
24815 (license license:gpl3+))))
24816
24817 (define-public emacs-elixir-mode
24818 (package
24819 (name "emacs-elixir-mode")
24820 (version "2.3.2")
24821 (source
24822 (origin
24823 (method git-fetch)
24824 (uri (git-reference
24825 (url "https://github.com/elixir-editors/emacs-elixir")
24826 (commit (string-append "v" version))))
24827 (file-name (git-file-name name version))
24828 (sha256
24829 (base32 "0f2a360h8bizvqk6bmgxm59g8n7id5rzwlbv6d383h15w298mcga"))))
24830 (build-system emacs-build-system)
24831 (propagated-inputs
24832 `(("emacs-pkg-info" ,emacs-pkg-info)))
24833 (home-page
24834 "https://github.com/elixir-editors/emacs-elixir")
24835 (synopsis "Major mode for editing Elixir files")
24836 (description
24837 "Elixir-Mode provides font-locking, indentation and navigation support
24838 for the Elixir programming language.")
24839 (license license:gpl3+)))
24840
24841 (define-public emacs-dimmer
24842 (package
24843 (name "emacs-dimmer")
24844 (version "0.4.2")
24845 (source
24846 (origin
24847 (method git-fetch)
24848 (uri (git-reference
24849 (url "https://github.com/gonewest818/dimmer.el")
24850 (commit version)))
24851 (file-name (git-file-name name version))
24852 (sha256
24853 (base32
24854 "0dw0qh5hm1x76s5cqxvylvmjgy0jwy11xm258g6kmx6w1k6r1d2l"))))
24855 (build-system emacs-build-system)
24856 (home-page "https://github.com/gonewest818/dimmer.el")
24857 (synopsis "Visually highlights the selected buffer in Emacs")
24858 (description "Dimmer provides a minor mode that indicates which buffer is
24859 currently active by dimming the faces in the other buffers. It does this
24860 nondestructively, and computes the dimmed faces dynamically such that your
24861 overall color scheme is shown in a muted form without requiring you to define
24862 what is a \"dim\" version of every face.")
24863 (license license:gpl3+)))
24864
24865 (define-public emacs-minibuffer-line
24866 (package
24867 (name "emacs-minibuffer-line")
24868 (version "0.1")
24869 (source
24870 (origin
24871 (method url-fetch)
24872 (uri (string-append
24873 "https://elpa.gnu.org/packages/minibuffer-line-"
24874 version
24875 ".el"))
24876 (sha256
24877 (base32 "1ny4iirp26na5118wfgxlv6fxlrdclzdbd9m0lkrv51w0qw7spil"))))
24878 (build-system emacs-build-system)
24879 (home-page "https://elpa.gnu.org/packages/minibuffer-line.html")
24880 (synopsis "Display status info in the minibuffer window")
24881 (description
24882 "This package lets you display various status information in the
24883 minibuffer window instead of the mode-line. Of course, this is only displayed
24884 when the minibuffer window is not already used for other things (e.g. a
24885 minibuffer or an each area message).
24886
24887 The contents and aspect is controlled by the @code{minibuffer-line-format}
24888 variable and the @code{minibuffer-line} face.")
24889 (license license:gpl3+)))
24890
24891 (define-public emacs-eshell-prompt-extras
24892 (package
24893 (name "emacs-eshell-prompt-extras")
24894 (version "1.0")
24895 (home-page "https://github.com/zwild/eshell-prompt-extras")
24896 (source
24897 (origin
24898 (method git-fetch)
24899 (uri (git-reference
24900 (url home-page)
24901 (commit version)))
24902 (file-name (git-file-name name version))
24903 (sha256
24904 (base32
24905 "0gb07mns23dgqqr6qfy7d6ndizy15sqgbgfaig6k5xbjnwi02v9g"))))
24906 (build-system emacs-build-system)
24907 (synopsis "Display extra information and color for your Eshell prompt")
24908 (description "This library displays various customizable elements for
24909 @code{eshell} prompts: remote user, remote host, python virtual environment
24910 info, git branch, git dirty info and git unpushed number. Multiple themes are
24911 available.")
24912 (license license:gpl3+)))
24913
24914 (define-public emacs-eshell-did-you-mean
24915 (package
24916 (name "emacs-eshell-did-you-mean")
24917 (version "0.1")
24918 (home-page "https://github.com/xuchunyang/eshell-did-you-mean")
24919 (source
24920 (origin
24921 (method git-fetch)
24922 (uri (git-reference
24923 (url home-page)
24924 (commit (string-append "v" version))))
24925 (file-name (git-file-name name version))
24926 (sha256
24927 (base32
24928 "0v0wshck5n4hspcv1zk1g2nm6xiigcjp16lx0dc8wzkl6ymljvbg"))))
24929 (build-system emacs-build-system)
24930 (synopsis "Display suggestions on 'command not found' in Eshell")
24931 (description "This library adds a list of 'Did you mean...' suggestions
24932 when the command was not found in Eshell. The suggestions are found after the
24933 commands that bear resemblance to the input command.")
24934 (license license:gpl3+)))
24935
24936 (define-public emacs-unfill
24937 (package
24938 (name "emacs-unfill")
24939 (version "0.3")
24940 (home-page "https://github.com/purcell/unfill")
24941 (source
24942 (origin
24943 (method git-fetch)
24944 (uri (git-reference
24945 (url home-page)
24946 (commit version)))
24947 (file-name (git-file-name name version))
24948 (sha256
24949 (base32 "0pg64nza2mp4xyr69pjq51jsq1aaym0g38g4jzaxr0hh3w0ris1n"))))
24950 (build-system emacs-build-system)
24951 (synopsis "Inverse of Emacs' @code{fill-paragraph} and @code{fill-region}")
24952 (description
24953 "The functions in this package provide the inverse of Emacs'
24954 @code{fill-paragraph} and @code{fill-region}.")
24955 (license license:gpl3+)))
24956
24957 (define-public emacs-windower
24958 (package
24959 (name "emacs-windower")
24960 (version "0.0.1")
24961 (home-page "https://gitlab.com/ambrevar/emacs-windower")
24962 (source
24963 (origin
24964 (method git-fetch)
24965 (uri (git-reference
24966 (url home-page)
24967 (commit version)))
24968 (file-name (git-file-name name version))
24969 (sha256
24970 (base32 "0h24gb1ip0czfasxm8wwcc3v19g7mznzw2sxkmmfb5iis59p7dfy"))))
24971 (build-system emacs-build-system)
24972 (synopsis "Helper functions for window manipulation in Emacs")
24973 (description
24974 "This package provides helper functions for window manipulation in Emacs,
24975 such as:
24976
24977 @itemize
24978 @item switch to last buffer,
24979 @item toggle single window display,
24980 @item toggle between horizontal and vertical splits,
24981 @item move borders more naturally,
24982 @item swap windows à-la @code{windmove}.
24983 @end itemize")
24984 (license license:gpl3+)))
24985
24986 (define-public emacs-flycheck-cpplint
24987 (let ((commit "1d8a090861572258ab704915263feeb3a436c3d2")
24988 (revision "1"))
24989 (package
24990 (name "emacs-flycheck-cpplint")
24991 (version (git-version "0.1" revision commit))
24992 (source
24993 (origin
24994 (method git-fetch)
24995 (uri (git-reference
24996 (url "https://github.com/flycheck/flycheck-google-cpplint")
24997 (commit commit)))
24998 (file-name (git-file-name name version))
24999 (sha256
25000 (base32 "0l6sg83f6z8x2alnblpv03rj442sbnkkkcbf8i0agjmx3713a5yx"))))
25001 (build-system emacs-build-system)
25002 (arguments
25003 `(#:phases
25004 (modify-phases %standard-phases
25005 (add-after 'unpack 'set-cpplint-path
25006 (lambda _
25007 (substitute* "flycheck-google-cpplint.el"
25008 (("\"cpplint.py\"")
25009 (string-append "\"" (which "cpplint") "\"")))
25010 #t)))))
25011 (inputs
25012 `(("cpplint" ,cpplint)))
25013 (propagated-inputs
25014 `(("flycheck-mode" ,emacs-flycheck)))
25015 (synopsis "Google C++ checker for Flycheck")
25016 (description "This package provides a interface for @code{cpplint} over
25017 Flycheck plugin. @code{cpplint} is a static code checker for C++, following
25018 Google guidelines.")
25019 (home-page "https://github.com/flycheck/flycheck-google-cpplint")
25020 (license license:gpl3+))))
25021
25022 (define-public emacs-helm-fish-completion
25023 (package
25024 (name "emacs-helm-fish-completion")
25025 (version "0.6")
25026 (home-page "https://github.com/emacs-helm/helm-fish-completion")
25027 (source
25028 (origin
25029 (method git-fetch)
25030 (uri (git-reference
25031 (url home-page)
25032 (commit version)))
25033 (file-name (git-file-name name version))
25034 (sha256
25035 (base32 "1j2vfngq3512naaayv9kx0d1q2zg1xgs69l8afc7swg72h0l0imw"))))
25036 (build-system emacs-build-system)
25037 (propagated-inputs
25038 `(("helm" ,emacs-helm)
25039 ("fish-completion" ,emacs-fish-completion)))
25040 (synopsis "Helm interface for Emacs fish-completion")
25041 (description "Helm Fish Completion is a Helm interface for Emacs
25042 fish-completion. It can be used in both Eshell and M-x shell.")
25043 (license license:gpl3+)))
25044
25045 (define-public emacs-helm-switch-to-repl
25046 (package
25047 (name "emacs-helm-switch-to-repl")
25048 (version "0.1.2")
25049 (home-page "https://github.com/emacs-helm/helm-switch-to-repl")
25050 (source
25051 (origin
25052 (method git-fetch)
25053 (uri (git-reference
25054 (url home-page)
25055 (commit version)))
25056 (file-name (git-file-name name version))
25057 (sha256
25058 (base32 "0n8qa549c5syvgqw1h2zrakjjbygddpxzaifaq5irscgdcajrads"))))
25059 (build-system emacs-build-system)
25060 (propagated-inputs
25061 `(("helm" ,emacs-helm)))
25062 (synopsis "Helm action to switch directory in Emacs REPLs")
25063 (description "Helm \"Switch-to-REPL\" offers the
25064 @code{helm-switch-to-repl} action, a generalized and extensible version of
25065 @code{helm-ff-switch-to-shell}. It can be added to @code{helm-find-files} and
25066 other @code{helm-type-file} sources such as @code{helm-locate}.")
25067 (license license:gpl3+)))
25068
25069 (define-public emacs-telega
25070 ;; This package has versions newer than indicated on MELPA.
25071 ;; Get the current version from `telega-version` in telega.el.
25072 ;; or by running M-x telega-version.
25073 (let ((commit "1d28dc209e2acf1a3bf2852cc620b6e412ea73f9")
25074 (revision "1")
25075 (version "0.7.1"))
25076 (package
25077 (name "emacs-telega")
25078 (version (git-version version revision commit))
25079 (source
25080 (origin
25081 (method git-fetch)
25082 (uri (git-reference
25083 (url "https://github.com/zevlg/telega.el")
25084 (commit commit)))
25085 (sha256
25086 (base32
25087 "0h6kj3r36x26v6p4gkzg5s6fv0brlvrf6ycsdwnz27fw5sdb99k7"))
25088 (patches (search-patches
25089 "emacs-telega-patch-server-functions.patch"
25090 "emacs-telega-test-env.patch"))
25091 (file-name (git-file-name name version))))
25092 (build-system gnu-build-system)
25093 (arguments
25094 `(#:modules ((guix build gnu-build-system)
25095 ((guix build emacs-build-system) #:prefix emacs:)
25096 (guix build utils)
25097 (guix build emacs-utils))
25098 #:imported-modules (,@%gnu-build-system-modules
25099 (guix build emacs-build-system)
25100 (guix build emacs-utils))
25101 #:test-target "test"
25102 ;; TODO: Currently tgVOIP is not functional, thus we have disabled it
25103 ;; temporarily.
25104 ;; #:make-flags (list "WITH_VOIP=t")
25105 #:phases
25106 (modify-phases %standard-phases
25107 (add-after 'unpack 'prefix-patch
25108 (lambda _
25109 (substitute* "server/Makefile"
25110 (("CC=cc")
25111 "CC=gcc")
25112 (("INSTALL_PREFIX=\\$\\(HOME\\)/.telega")
25113 (string-append "INSTALL_PREFIX=" (assoc-ref %outputs "out")
25114 "/bin"))
25115 ;; Manually invoke `run_tests.py` after install phase.
25116 (("python3 run_tests.py")
25117 ""))
25118 #t))
25119 (add-after 'check 'telega-paths-patch
25120 (lambda* (#:key inputs #:allow-other-keys)
25121 ;; Hard-code paths to `ffplay` and `ffmpeg`.
25122 (let ((ffplay-bin (string-append (assoc-ref inputs "ffmpeg")
25123 "/bin/ffplay"))
25124 (ffmpeg-bin (string-append (assoc-ref inputs "ffmpeg")
25125 "/bin/ffmpeg")))
25126 (substitute* "telega-ffplay.el"
25127 (("\\(executable-find \"ffplay\"\\)")
25128 (string-append
25129 "(and (file-executable-p \"" ffplay-bin "\")"
25130 "\"" ffplay-bin "\")"))
25131 (("\\(executable-find \"ffmpeg\"\\)")
25132 (string-append
25133 "(and (file-executable-p \"" ffmpeg-bin "\")"
25134 "\"" ffmpeg-bin "\")"))))
25135 ;; Modify telega-util to reflect unique dir name in
25136 ;; `telega-install-data' phase.
25137 (substitute* "telega-util.el"
25138 (("\\(concat \"etc/\" filename\\) telega--lib-directory")
25139 "(concat \"telega-data/\" filename)
25140 (locate-dominating-file telega--lib-directory
25141 \"telega-data\")"))
25142 ;; Modify telega.el to reflect unique dir name in
25143 ;; `telega-install-contrib' phase.
25144 (substitute* "telega.el"
25145 (("\\(push \\(expand-file-name \"contrib\" telega--lib-directory\\) load-path\\)")
25146 "(push (expand-file-name \"telega-contrib\"
25147 (locate-dominating-file telega--lib-directory
25148 \"telega-contrib\")) load-path)"))
25149 #t))
25150 ;; The server test suite has a hardcoded path.
25151 ;; Reset this behavior to use the proper path.
25152 (add-after 'unpack 'server-suite-patch
25153 (lambda _
25154 (substitute* "server/run_tests.py"
25155 (("~/.telega/telega-server")
25156 (string-append (assoc-ref %outputs "out")
25157 "/bin/telega-server")))
25158 #t))
25159 (add-after 'install 'run-server-suite
25160 (lambda _
25161 (invoke "python3" "server/run_tests.py")
25162 #t))
25163 (delete 'configure)
25164 ;; Build emacs-side using `emacs-build-system'
25165 (add-after 'compress-documentation 'emacs-add-source-to-load-path
25166 (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
25167 ;; Manually invoke bytecompilation for the contrib
25168 ;; subdirectory.
25169 (add-after 'emacs-add-source-to-load-path 'emacs-bytecomp-contrib
25170 (lambda _
25171 (substitute* "Makefile"
25172 (("byte-recompile-directory \".\"")
25173 "byte-recompile-directory \"contrib\""))
25174 (invoke "make" "compile")
25175 #t))
25176 (add-after 'emacs-bytecomp-contrib 'emacs-install
25177 (assoc-ref emacs:%standard-phases 'install))
25178 ;; This step installs subdir /etc, which contains images, sounds and
25179 ;; various other data, next to the site-lisp dir.
25180 (add-after 'emacs-install 'telega-install-data
25181 (lambda* (#:key outputs #:allow-other-keys)
25182 (copy-recursively
25183 "etc"
25184 (string-append (assoc-ref outputs "out")
25185 "/share/emacs/telega-data/"))
25186 #t))
25187 (add-after 'emacs-install 'telega-install-contrib
25188 (lambda* (#:key outputs #:allow-other-keys)
25189 (copy-recursively
25190 "contrib"
25191 (string-append (assoc-ref outputs "out")
25192 "/share/emacs/telega-contrib"))
25193 #t))
25194 (add-after 'telega-install-contrib 'emacs-build
25195 (assoc-ref emacs:%standard-phases 'build))
25196 (add-after 'telega-install-contrib 'emacs-make-autoloads
25197 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
25198 (inputs
25199 `(("ffmpeg" ,ffmpeg))) ; mp4/gif support.
25200 (propagated-inputs
25201 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)
25202 ("emacs-company" ,emacs-company)
25203 ("emacs-rainbow-identifiers"
25204 ,emacs-rainbow-identifiers)
25205 ("libwebp" ,libwebp))) ; sticker support.
25206 (native-inputs
25207 `(("tdlib" ,tdlib)
25208 ;; Use Emacs with wide ints on 32-bit architectures.
25209 ("emacs" ,(match (%current-system)
25210 ((or "i686-linux" "armhf-linux")
25211 emacs-wide-int)
25212 (_
25213 emacs)))
25214 ("python" ,python)))
25215 (synopsis "GNU Emacs client for the Telegram messenger")
25216 (description
25217 "Telega is a full-featured, unofficial GNU Emacs-based client for the
25218 Telegram messaging platform.")
25219 (home-page "https://zevlg.github.io/telega.el/")
25220 (license license:gpl3+))))
25221
25222 (define-public emacs-doom-modeline
25223 (package
25224 (name "emacs-doom-modeline")
25225 (version "3.0.0")
25226 (source (origin
25227 (method git-fetch)
25228 (uri (git-reference
25229 (url "https://github.com/seagle0128/doom-modeline")
25230 (commit (string-append "v" version))))
25231 (sha256
25232 (base32
25233 "08m75rl5i812pa87zcsjvb4mm3jjhpwzgx9mf2m7sxj807airz5d"))
25234 (file-name (git-file-name name version))))
25235 (build-system emacs-build-system)
25236 (arguments
25237 `(#:test-command '("ert-runner")))
25238 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
25239 (propagated-inputs
25240 `(("emacs-all-the-icons" ,emacs-all-the-icons)
25241 ("emacs-dash" ,emacs-dash)
25242 ("emacs-shrink-path" ,emacs-shrink-path)))
25243 (synopsis "Fancy and fast mode-line inspired by minimalism design")
25244 (description "Doom modeline is a complete modeline for GNU Emacs inspired
25245 by the Doom theme collection. This modeline features support for mode-specific
25246 icon support, git integration, and several other utilities.")
25247 (home-page "https://github.com/seagle0128/doom-modeline/")
25248 (license license:gpl3+)))
25249
25250 (define-public emacs-mood-line
25251 (package
25252 (name "emacs-mood-line")
25253 (version "1.2.4")
25254 (source
25255 (origin
25256 (method git-fetch)
25257 (uri (git-reference
25258 (url "https://gitlab.com/jessieh/mood-line")
25259 (commit version)))
25260 (file-name (git-file-name name version))
25261 (sha256
25262 (base32 "0fh9j9fkgl433nykfzjnzap5labi4sdndfk1nv4f904ij69pmvxb"))))
25263 (build-system emacs-build-system)
25264 (home-page "https://gitlab.com/jessieh/mood-line")
25265 (synopsis "Minimal mode-line for Emacs")
25266 (description
25267 "Mood-line is a minimal Emacs mode-line configuration that aims to
25268 replicate some of the features of the Doom modeline package.")
25269 (license license:gpl2+)))
25270
25271 (define-public emacs-simple-modeline
25272 (let ((commit "38973dec2912e2136d8fde5f2667063863fee15a")
25273 (revision "1"))
25274 (package
25275 (name "emacs-simple-modeline")
25276 (version (git-version"1.2" revision commit))
25277 (source
25278 (origin
25279 (method git-fetch)
25280 (uri (git-reference
25281 (url "https://github.com/gexplorer/simple-modeline")
25282 (commit commit)))
25283 (file-name (git-file-name name version))
25284 (sha256
25285 (base32
25286 "0y70hc3x8rxr8b5x8d0a23gpcadzrn43wmrsvqqxmmkqqp45n7gj"))))
25287 (build-system emacs-build-system)
25288 (home-page "https://github.com/gexplorer/simple-modeline")
25289 (synopsis "Simple mode-line configuration for Emacs")
25290 (description
25291 "This package provides a simple mode-line configuration for Emacs.")
25292 (license license:gpl3+))))
25293
25294 (define-public emacs-frames-only-mode
25295 (package
25296 (name "emacs-frames-only-mode")
25297 (version "1.0.0")
25298 (source
25299 (origin
25300 (method git-fetch)
25301 (uri (git-reference
25302 (url "https://github.com/davidshepherd7/frames-only-mode")
25303 (commit version)))
25304 (file-name (git-file-name name version))
25305 (sha256
25306 (base32 "0y0sdjixaxvywrlp2sw51wnczhk51q1svl5aghbk9rkxpwv9ys9v"))))
25307 (build-system emacs-build-system)
25308 (propagated-inputs
25309 `(("emacs-dash" ,emacs-dash)
25310 ("emacs-s" ,emacs-s)))
25311 (home-page "https://github.com/davidshepherd7/frames-only-mode")
25312 (synopsis "Use frames instead of Emacs windows")
25313 (description
25314 "This is an Emacs global minor mode to use Emacs frames instead of Emacs'
25315 internal windowing system. This combines particularly well with tiling window
25316 managers such as XMonad.")
25317 (license license:gpl3+)))
25318
25319 (define-public emacs-modalka
25320 (package
25321 (name "emacs-modalka")
25322 (version "0.1.5")
25323 (source
25324 (origin
25325 (method git-fetch)
25326 (uri (git-reference
25327 (url "https://github.com/mrkkrp/modalka")
25328 (commit version)))
25329 (file-name (git-file-name name version))
25330 (sha256
25331 (base32 "0ggj8q92sb6wp3hs1vhpmy56id0p3i9zwnw24g2v7xa7w8ac9s7l"))))
25332 (build-system emacs-build-system)
25333 (home-page "https://github.com/mrkkrp/modalka")
25334 (synopsis "Minor mode to easily define native custom modal editing")
25335 (description
25336 "This is a building kit to help switch to modal editing in Emacs. The
25337 main goal of the package is to make modal editing in Emacs as natural and
25338 native as possible. Modalka lets you define your own keys and does not come
25339 with a preconfigured set of keys.")
25340 (license license:gpl3+)))
25341
25342 (define-public emacs-shrink-path
25343 (package
25344 (name "emacs-shrink-path")
25345 (version "0.3.1")
25346 (source
25347 (origin
25348 (method git-fetch)
25349 (uri (git-reference
25350 (url "https://gitlab.com/bennya/shrink-path.el.git")
25351 (commit (string-append "v" version))))
25352 (sha256
25353 (base32
25354 "0kx0c4syd7k6ff9j463bib32pz4wq0rzjlg6b0yqnymlzfr1mbki"))
25355 (file-name (git-file-name name version))))
25356 (build-system emacs-build-system)
25357 (propagated-inputs
25358 `(("emacs-s" ,emacs-s)
25359 ("emacs-dash" ,emacs-dash)
25360 ("emacs-f" ,emacs-f)))
25361 (home-page "https://gitlab.com/bennya/shrink-path.el")
25362 (synopsis "Fish-style path truncation in emacs-lisp")
25363 (description "This package provides utility functions that allow for
25364 Fish-style truncated directories in eshell and various modelines.")
25365 (license license:gpl3+)))
25366
25367 (define-public emacs-org-present
25368 (let ((commit "d13acd70eff6a1608bc991920232146a0de76b21"))
25369 (package
25370 (name "emacs-org-present")
25371 (version "0.0.1")
25372 (source
25373 (origin
25374 (method git-fetch)
25375 (uri (git-reference
25376 (url "https://github.com/rlister/org-present")
25377 (commit commit)))
25378 (file-name (git-file-name name version))
25379 (sha256
25380 (base32
25381 "0jz8xiny3rv9ql0p623byz32pip1b82j2c2nyfz2wd114kiabb6q"))))
25382 (build-system emacs-build-system)
25383 (synopsis "Ultra-minimalist presentation minor-mode for Emacs org-mode")
25384 (description "Org-present is an extremely minimalist presentation tool
25385 for Emacs org-mode. Simply layout your presentation with each slide under a
25386 top-level header, start the minor mode with @code{org-present}, and page through
25387 each slide with left/right keys.")
25388 (home-page "https://github.com/rlister/org-present")
25389 (license license:gpl2))))
25390
25391 (define-public emacs-fullframe
25392 (package
25393 (name "emacs-fullframe")
25394 (version "0.5.0")
25395 (source
25396 (origin
25397 (method git-fetch)
25398 (uri (git-reference
25399 (url "https://github.com/tomterl/fullframe")
25400 (commit version)))
25401 (sha256
25402 (base32
25403 "0m43qnhp6ibsskpjkxc86p3lrjsjc0ndqml3lbd65s79x4x7i3fi"))
25404 (file-name (git-file-name name version))))
25405 (build-system emacs-build-system)
25406 (home-page "https://github.com/tomterl/fullframe")
25407 (synopsis "Generalized automatic execution in a single frame")
25408 (description "This library provides helpers for single-window-per-frame
25409 execution of buffer-exposing commands.")
25410 (license license:gpl3+)))
25411
25412 (define-public emacs-eshell-toggle
25413 (let ((commit "ddfbe0a693497c4d4bc5494a19970ba4f6ab9033")
25414 (revision "1"))
25415 (package
25416 (name "emacs-eshell-toggle")
25417 (version (git-version "0.10.0" revision commit))
25418 (source
25419 (origin
25420 (method git-fetch)
25421 (uri (git-reference
25422 (url "https://github.com/4DA/eshell-toggle")
25423 (commit commit)))
25424 (sha256
25425 (base32
25426 "0xqrp8pwbmfxjdqipgpw5nw633mvhjjjm3k3j9sh9xdpmw05hhws"))
25427 (file-name (git-file-name name version))))
25428 (build-system emacs-build-system)
25429 (propagated-inputs
25430 `(("emacs-dash" ,emacs-dash)))
25431 (home-page "https://github.com/4DA/eshell-toggle")
25432 (synopsis "Show and hide an @code{eshell} instance")
25433 (description "This package toggles an @code{eshell} instance for the
25434 current buffer.")
25435 (license license:gpl3+))))
25436
25437 (define-public emacs-repl-toggle
25438 (package
25439 (name "emacs-repl-toggle")
25440 (version "0.6.1")
25441 (source
25442 (origin
25443 (method git-fetch)
25444 (uri (git-reference
25445 (url "https://github.com/tomterl/repl-toggle")
25446 (commit version)))
25447 (sha256
25448 (base32
25449 "12h3xxja3isnhvrqx7m2g7a5d8h68cc85pbqyhiipfxyafyl1yxd"))
25450 (file-name (git-file-name name version))))
25451 (build-system emacs-build-system)
25452 (propagated-inputs
25453 `(("emacs-fullframe" ,emacs-fullframe)))
25454 (home-page "https://github.com/tomterl/repl-toggle")
25455 (synopsis "Switch to and from current major mode's REPL")
25456 (description "This package provides a function to switch to and from a
25457 REPL appropriate to the current major mode.")
25458 (license license:gpl3+)))
25459
25460 (define-public emacs-rime
25461 (package
25462 (name "emacs-rime")
25463 (version "1.0.4")
25464 (source
25465 (origin
25466 (method git-fetch)
25467 (uri (git-reference
25468 (url "https://github.com/DogLooksGood/emacs-rime")
25469 (commit (string-append "v" version))))
25470 (file-name (git-file-name name version))
25471 (sha256
25472 (base32 "1a50cziwg7lpgh26yvwxs46jfyfq1m0l6igbg5g5m288mz4d3an9"))))
25473 (build-system emacs-build-system)
25474 (arguments
25475 '(#:phases
25476 (modify-phases %standard-phases
25477 (add-after 'unpack 'patch-rime-data-path
25478 (lambda* (#:key inputs #:allow-other-keys)
25479 (make-file-writable "rime.el")
25480 (emacs-substitute-variables "rime.el"
25481 ("rime-share-data-dir"
25482 (string-append (assoc-ref inputs "rime-data")
25483 "/share/rime-data")))
25484 #t))
25485 (add-before 'install 'build-emacs-module
25486 (lambda _
25487 (invoke "make" "lib")))
25488 (add-after 'install 'install-emacs-module
25489 (lambda* (#:key outputs #:allow-other-keys)
25490 (install-file "librime-emacs.so"
25491 (string-append (assoc-ref outputs "out")
25492 "/share/emacs/site-lisp"))
25493 #t)))))
25494 (inputs
25495 `(("librime" ,librime)
25496 ("rime-data" ,rime-data)))
25497 (propagated-inputs
25498 `(("emacs-dash" ,emacs-dash)
25499 ("emacs-popup" ,emacs-popup)
25500 ("emacs-posframe" ,emacs-posframe)))
25501 (home-page "https://github.com/DogLooksGood/emacs-rime")
25502 (synopsis "Rime input method in Emacs")
25503 (description
25504 "Rime is an Emacs input method built upon Rime input method engine.")
25505 (license license:gpl3+)))
25506
25507 (define-public emacs-blackout
25508 (let ((commit "4bac44671fca4c98d96aa94c79946bf4d4baf0ee")
25509 (revision "1"))
25510 (package
25511 (name "emacs-blackout")
25512 (version (git-version "1.0" revision commit))
25513 (source
25514 (origin
25515 (method git-fetch)
25516 (uri (git-reference
25517 (url "https://github.com/raxod502/blackout")
25518 (commit commit)))
25519 (sha256
25520 (base32
25521 "1wnh0nwy6r3a18sy9sqmrwv04vnmaflxy4g7mq8jiyyjijri7l1b"))
25522 (file-name (git-file-name name version))))
25523 (build-system emacs-build-system)
25524 (home-page "https://github.com/raxod502/blackout")
25525 (synopsis "Clean up mode lighters")
25526 (description "This package provides a function for hiding and customizing
25527 display of major and minor modes in the mode line.")
25528 (license license:gpl3+))))
25529
25530 (define-public emacs-ivy-omni-org
25531 (let ((commit "5460a9fc061a4a5ae8372dc8df966ced94abab58")
25532 (revision "1"))
25533 (package
25534 (name "emacs-ivy-omni-org")
25535 (version (git-version "0.2.1" revision commit))
25536 (source
25537 (origin
25538 (method git-fetch)
25539 (uri (git-reference
25540 (url "https://github.com/akirak/ivy-omni-org")
25541 (commit commit)))
25542 (file-name (git-file-name name version))
25543 (sha256
25544 (base32
25545 "1np1f51hc3phkl5w02a9a79gl38ra2d535i784fn4pqaasvm0rq8"))))
25546 (build-system emacs-build-system)
25547 (propagated-inputs
25548 `(("emacs-ivy" ,emacs-ivy)
25549 ("emacs-dash" ,emacs-dash)))
25550 (synopsis "Browse anything in Org mode")
25551 (description "This package allows Org items to be accessed via the Ivy
25552 interface.")
25553 (home-page "https://github.com/akirak/ivy-omni-org")
25554 (license license:gpl3+))))
25555
25556 (define-public emacs-ivy-posframe
25557 (package
25558 (name "emacs-ivy-posframe")
25559 (version "0.5.5")
25560 (source
25561 (origin
25562 (method url-fetch)
25563 (uri (string-append "https://elpa.gnu.org/packages/"
25564 "ivy-posframe-" version ".tar"))
25565 (sha256
25566 (base32 "184730grclxmlw6nfs41d4g6fvz9c6xnclvwgqx1ii0xm7p9xy95"))))
25567 (build-system emacs-build-system)
25568 (propagated-inputs
25569 `(("emacs-ivy" ,emacs-ivy)
25570 ("emacs-posframe" ,emacs-posframe)))
25571 (home-page "https://github.com/tumashu/ivy-posframe")
25572 (synopsis "Pop a posframe (a child frame) to show Ivy candidates")
25573 (description
25574 "This package provides an Emacs Ivy extension, which let Ivy use
25575 posframe to show its candidate menu.")
25576 (license license:gpl3+)))
25577
25578 (define-public emacs-shackle
25579 (let ((commit "7ccbe513852a1d1700b698547efca14b8940319d")
25580 (revision "1"))
25581 (package
25582 (name "emacs-shackle")
25583 (version (git-version "1.0.3" revision commit))
25584 (source
25585 (origin
25586 (method git-fetch)
25587 (uri (git-reference
25588 (url "https://github.com/wasamasa/shackle")
25589 (commit commit)))
25590 (file-name (git-file-name name version))
25591 (sha256
25592 (base32
25593 "0agsp8ia4irr540r898ifhjqp28n1zsq1pilv1kc272spn3qhvp9"))))
25594 (build-system emacs-build-system)
25595 (synopsis "Enforce rules for popups")
25596 (description "This package provides a global minor mode in which users
25597 can specify how popup-displaying functions occupy the screen.")
25598 (home-page "https://github.com/wasamasa/shackle")
25599 (license license:gpl3+))))
25600
25601 (define-public emacs-showtip
25602 (let ((commit "930da302809a4257e8d69425455b29e1cc91949b")
25603 (revision "0"))
25604 (package
25605 (name "emacs-showtip")
25606 (version (git-version "0.01" revision commit))
25607 (source
25608 (origin
25609 (method git-fetch)
25610 (uri (git-reference
25611 (url "https://github.com/emacsorphanage/showtip")
25612 (commit commit)))
25613 (file-name (git-file-name name version))
25614 (sha256
25615 (base32 "01zak0zhha6dp7a2hm28d065gjnc462iwpsfyxhbxgfzcdlicqc7"))))
25616 (build-system emacs-build-system)
25617 (home-page "https://github.com/emacsorphanage/showtip")
25618 (synopsis "Show tip at cursor")
25619 (description
25620 "This library provide one function to show tooltip near the cursor.")
25621 (license license:gpl2+))))
25622
25623 (define-public emacs-sdcv
25624 ;; No tagged version upstream.
25625 (let ((commit "943ae3e90cc9a0a88a37cc710acd7424fd4defc4" )
25626 (revision "0"))
25627 (package
25628 (name "emacs-sdcv")
25629 (version (git-version "1.5.2" revision commit))
25630 (source
25631 (origin
25632 (method git-fetch)
25633 (uri (git-reference
25634 (url "https://github.com/stardiviner/sdcv.el")
25635 (commit commit)))
25636 (file-name (git-file-name name version))
25637 (sha256
25638 (base32 "0i1ylvw7p46pkf3yyyzcdmdhsspzymnnnvx8s0i7vynngr5x0vzh"))))
25639 (build-system emacs-build-system)
25640 (propagated-inputs
25641 `(("emacs-popup" ,emacs-popup)
25642 ("emacs-pos-tip" ,emacs-pos-tip)
25643 ("emacs-showtip" ,emacs-showtip)))
25644 (home-page "https://www.emacswiki.org/emacs/download/sdcv.el")
25645 (synopsis "Emacs interface for @code{sdcv}")
25646 (description
25647 "This plugin translates words with @code{sdcv}, and displays
25648 translation using a tooltip or in a dedicated buffer.")
25649 (license license:gpl3+))))
25650
25651 (define-public emacs-helm-lacarte
25652 (let ((commit "40a6c449720be521435b6b1da7911af3a0b9dca0")
25653 (revision "1"))
25654 (package
25655 (name "emacs-helm-lacarte")
25656 (version (git-version "0" revision commit))
25657 (source
25658 (origin
25659 (method git-fetch)
25660 (uri (git-reference
25661 (url "https://github.com/emacs-helm/helm-lacarte")
25662 (commit commit)))
25663 (file-name (git-file-name name version))
25664 (sha256
25665 (base32
25666 "0dkfd3lap2v7b4nckzv8v7hczmzwzhbl75haqkra107ln91ldbwc"))))
25667 (build-system emacs-build-system)
25668 (propagated-inputs
25669 `(("emacs-helm" ,emacs-helm)
25670 ("emacs-lacarte" ,emacs-lacarte)))
25671 (synopsis "Helm interface to @code{lacarte.el}")
25672 (description "This package provides a Helm interface to
25673 @code{lacarte.el}, a package that displays mode-specific commands as menu
25674 items.")
25675 (home-page "https://github.com/emacs-helm/helm-lacarte")
25676 (license license:gpl3+))))
25677
25678 (define-public emacs-esh-help
25679 (let ((commit "417673ed18a983930a66a6692dbfb288a995cb80")
25680 (revision "1"))
25681 (package
25682 (name "emacs-esh-help")
25683 (version (git-version "1.0.1" revision commit))
25684 (source
25685 (origin
25686 (method git-fetch)
25687 (uri (git-reference
25688 (url "https://github.com/tom-tan/esh-help")
25689 (commit commit)))
25690 (file-name (git-file-name name version))
25691 (sha256
25692 (base32
25693 "0x7d51a6ljl014zy7mi27vzcqqbcwg9z4drq29fr2ajk82mqhlgd"))))
25694 (build-system emacs-build-system)
25695 (propagated-inputs
25696 `(("emacs-dash" ,emacs-dash)))
25697 (synopsis "Help functions for Eshell")
25698 (description "This package provides a @code{run-help} function inspired
25699 by @code{zsh} as well as @code{eldoc} support.")
25700 (home-page "https://github.com/tom-tan/esh-help")
25701 (license license:gpl3+))))
25702
25703 (define-public emacs-isearch-dabbrev
25704 (let ((commit "1efe7abba4923015cbc2462395deaec5446a9cc8")
25705 (revision "1"))
25706 (package
25707 (name "emacs-isearch-dabbrev")
25708 (version (git-version "0.1" revision commit))
25709 (source
25710 (origin
25711 (method git-fetch)
25712 (uri (git-reference
25713 (url "https://github.com/Dewdrops/isearch-dabbrev")
25714 (commit commit)))
25715 (file-name (git-file-name name version))
25716 (sha256
25717 (base32
25718 "17d0816awadvsw1qc7r0p6ira75jmgxaj9hsk9ypayxsaf6ynyrb"))))
25719 (build-system emacs-build-system)
25720 (synopsis "Use @code{dabbrev} within @code{isearch}")
25721 (description "This package allows @code{dabbrev-expand} to be used
25722 within @code{isearch-mode}.")
25723 (home-page "https://github.com/Dewdrops/isearch-dabbrev")
25724 (license license:gpl3+))))
25725
25726 (define-public emacs-helm-linux-disks
25727 (let ((commit "2cdc8116a08534289eb0dc76461d0f93a0bdf231")
25728 (revision "1"))
25729 (package
25730 (name "emacs-helm-linux-disks")
25731 (version (git-version "0.1" revision commit))
25732 (source
25733 (origin
25734 (method git-fetch)
25735 (uri (git-reference
25736 (url "https://github.com/Akirak/helm-linux-disks")
25737 (commit commit)))
25738 (file-name (git-file-name name version))
25739 (sha256
25740 (base32
25741 "1limw82zd8jz3mhh9rqlmhj4cjhfgybs9argfjid1an3vpyhc85i"))))
25742 (build-system emacs-build-system)
25743 (propagated-inputs
25744 `(("emacs-helm" ,emacs-helm)))
25745 (synopsis "Mount/unmount volumes in Linux via Helm")
25746 (description "This package provides a Helm interface to run operations
25747 on removable volumes in Linux.")
25748 (home-page "https://github.com/Akirak/helm-linux-disks")
25749 (license license:gpl3+))))
25750
25751 (define-public emacs-psession
25752 (let ((commit "3e97267c92b164584e06a6c70ee7491714c7c12c")
25753 (revision "1"))
25754 (package
25755 (name "emacs-psession")
25756 (version (git-version "1.5" revision commit))
25757 (source
25758 (origin
25759 (method git-fetch)
25760 (uri (git-reference
25761 (url "https://github.com/thierryvolpiatto/psession")
25762 (commit commit)))
25763 (file-name (git-file-name name version))
25764 (sha256
25765 (base32
25766 "15frl618393bc891d0yi3mdxzvbq790a86vfvp3dyd5riz4ddg95"))))
25767 (build-system emacs-build-system)
25768 (propagated-inputs
25769 `(("emacs-async" ,emacs-async)))
25770 (synopsis "Persistent save of @code{elisp} objects.")
25771 (description "This package provides minor modes for saving Emacs session
25772 data, including buffers, window configuration, variables, and more.")
25773 (home-page "https://github.com/thierryvolpiatto/psession")
25774 (license license:gpl3+))))
25775
25776 (define-public emacs-parseedn
25777 (package
25778 (name "emacs-parseedn")
25779 (version "0.2.0")
25780 (source
25781 (origin
25782 (method git-fetch)
25783 (uri (git-reference
25784 (url "https://github.com/clojure-emacs/parseedn")
25785 (commit (string-append "v" version))))
25786 (file-name (git-file-name name version))
25787 (sha256
25788 (base32
25789 "0271amhw63650rrzikcyqxa8sb42npnk7q3yrsay2v79wbqkdaw9"))))
25790 (build-system emacs-build-system)
25791 (propagated-inputs
25792 `(("emacs-a" ,emacs-a)
25793 ("emacs-parseclj" ,emacs-parseclj)))
25794 (home-page "https://cider.mx")
25795 (synopsis "EDN parser for Emacs Lisp")
25796 (description
25797 "Parseedn is an Emacs Lisp library for parsing EDN (Clojure) data.
25798 It uses parseclj's shift-reduce parser internally.")
25799 (license license:gpl3+)))
25800
25801 (define-public emacs-parseclj
25802 (package
25803 (name "emacs-parseclj")
25804 (version "0.2.0")
25805 (source
25806 (origin
25807 (method git-fetch)
25808 (uri (git-reference
25809 (url "https://github.com/clojure-emacs/parseclj")
25810 (commit (string-append "v" version))))
25811 (file-name (git-file-name name version))
25812 (sha256
25813 (base32
25814 "0894vhyx1phq8mdynnnqflcgi2a54hi926f4dk8slawzx1cb9xxb"))))
25815 (build-system emacs-build-system)
25816 (propagated-inputs `(("emacs-a" ,emacs-a)))
25817 (home-page "https://cider.mx")
25818 (synopsis "Clojure parser for Emacs Lisp")
25819 (description
25820 "Parseclj is an Emacs Lisp library for parsing Clojure code and EDN data.
25821 It supports several input and output formats, all powered by the same
25822 shift-reduce parser function.")
25823 (license license:gpl3+)))
25824
25825 (define-public emacs-hide-mode-line
25826 (package
25827 (name "emacs-hide-mode-line")
25828 (version "1.0.2")
25829 (source (origin
25830 (method git-fetch)
25831 (uri (git-reference
25832 (url "https://github.com/hlissner/emacs-hide-mode-line")
25833 (commit (string-append "v" version))))
25834 (file-name (git-file-name name version))
25835 (sha256
25836 (base32
25837 "0dfzjgxfkcw4wisbyldsm1km18pfp9j8xgadn6qnsz11l55bpgyp"))))
25838 (build-system emacs-build-system)
25839 (synopsis "Emacs plugin that hides the mode-line")
25840 (description "A minor mode that hides the mode-line in your current
25841 buffer. It can be used to toggle an alternative mode-line, toggle its visibility,
25842 or simply disable the mode-line in buffers where it is not very useful.")
25843 (home-page "https://github.com/hlissner/emacs-hide-mode-line")
25844 (license license:expat)))
25845
25846 (define-public emacs-helm-cider
25847 ;; No new release since March 2018.
25848 (let ((commit "9363cc537f06233345aa3af5cd46aa5681ad607b"))
25849 (package
25850 (name "emacs-helm-cider")
25851 (version (git-version "0.4.0" "1" commit))
25852 (home-page "https://github.com/clojure-emacs/helm-cider")
25853 (source (origin
25854 (method git-fetch)
25855 (uri (git-reference
25856 (url home-page)
25857 (commit commit)))
25858 (file-name (git-file-name name version))
25859 (sha256
25860 (base32
25861 "0vfn4smqba1vsshz48ggkj8gs94la0sxb1sq4shrb41qj2x3dci7"))))
25862 (build-system emacs-build-system)
25863 (propagated-inputs
25864 `(("emacs-helm" ,emacs-helm)
25865 ("emacs-cider" ,emacs-cider)))
25866 (synopsis "Helm interface to Clojure's CIDER")
25867 (description "Helm-CIDER adds Helm interfaces to
25868 @command{cider-apropos}, @command{cider-apropos-documentation},
25869 @command{cider-browse-ns} (namespaces).
25870
25871 It also provides original Helm commands: @command{helm-cider-spec},
25872 @command{helm-cider-spec-ns}, @command{helm-cider-repl-history},
25873 @command{helm-cider-cheatsheet}.")
25874 (license license:gpl3+))))
25875
25876 (define-public emacs-edn
25877 ;; No release since February 2016
25878 (let ((commit "be9e32d1b49e35247b263b0243df7cfdc8d413ab"))
25879 (package
25880 (name "emacs-edn")
25881 (version (git-version "1.1.2" "1" commit))
25882 (home-page "https://github.com/expez/edn.el")
25883 (source (origin
25884 (method git-fetch)
25885 (uri (git-reference
25886 (url home-page)
25887 (commit commit)))
25888 (file-name (git-file-name name version))
25889 (sha256
25890 (base32
25891 "1xp2hjhn52k6l1g6ypva6dsklpawni7gvjafbz6404f9dyxflh7l"))))
25892 (build-system emacs-build-system)
25893 (propagated-inputs
25894 `(("emacs-peg" ,emacs-peg)))
25895 (synopsis "Read and write EDN from Elisp")
25896 (description "This is an Emacs Lisp library for reading and writing the
25897 data format @code{edn}. See @url{https://github.com/edn-format/edn}.")
25898 (license license:gpl3+))))
25899
25900 (define-public emacs-helm-clojuredocs
25901 (let ((commit "5a7f0f2cb401be0b09e73262a1c18265ab9a3cea"))
25902 (package
25903 (name "emacs-helm-clojuredocs")
25904 (version (git-version "0.3" "1" commit))
25905 (home-page "https://github.com/mbuczko/helm-clojuredocs")
25906 (source (origin
25907 (method git-fetch)
25908 (uri (git-reference
25909 (url home-page)
25910 (commit commit)))
25911 (file-name (git-file-name name version))
25912 (sha256
25913 (base32
25914 "015b8zxh91ljhqvn6z43gy08di54xcw9skw0i7frj3d7gk984qhl"))))
25915 (build-system emacs-build-system)
25916 (propagated-inputs
25917 `(("emacs-helm" ,emacs-helm)
25918 ("emacs-edn" ,emacs-edn)))
25919 (synopsis "Search help on clojuredocs.org with Helm")
25920 (description "This package provides a Helm interface to lookup Clojure
25921 documentation on @url{https://clojuredocs.org} with Helm.
25922
25923 Two function are exposed:
25924 @itemize
25925 @item @command{helm-clojuredocs}: opens a Helm session with no initial
25926 pattern. Searching starts with minimal 3 characters entered.
25927 @item @command{helm-clojuredocs-at-point}: opens a Helm session with initial
25928 pattern guessed from thing under current cursor position.
25929 @end itemize\n")
25930 (license license:gpl3+))))
25931
25932 (define-public emacs-helm-selector
25933 (package
25934 (name "emacs-helm-selector")
25935 (version "0.6.1")
25936 (home-page "https://github.com/emacs-helm/helm-selector")
25937 (source
25938 (origin
25939 (method git-fetch)
25940 (uri (git-reference
25941 (url home-page)
25942 (commit version)))
25943 (file-name (git-file-name name version))
25944 (sha256
25945 (base32
25946 "01lh1df0bnas1p7xlqc4i1jd67f8lxgq0q2zsvx10z8828i76j3v"))))
25947 (build-system emacs-build-system)
25948 (propagated-inputs
25949 `(("emacs-helm" ,emacs-helm)))
25950 (synopsis "Convenient related-buffer selection for Emacs Helm")
25951 (description "Helm Selector is a collection of Helm helper functions for
25952 convenient buffer selection.
25953
25954 It is especially helpful to create Helm sessions to navigate buffers of a
25955 given mode in a “do what I mean” fashion:
25956
25957 If current buffer is not of mode X, switch to last buffer of mode X. If
25958 current buffer is of mode X, show a Helm session of all buffers in mode X. In
25959 the Helm session, it’s also possible to input an arbitrary name which will be
25960 used for the creation of a new buffer of mode X.")
25961 (license license:gpl3+)))
25962
25963 (define-public emacs-helm-wordnut
25964 (let ((commit "9681a9535a839cd5d042c302945ae595852fe7bf"))
25965 (package
25966 (name "emacs-helm-wordnut")
25967 (version (git-version "0.1" "1" commit))
25968 (home-page "https://github.com/emacs-helm/helm-wordnut")
25969 (source
25970 (origin
25971 (method git-fetch)
25972 (uri (git-reference
25973 (url home-page)
25974 (commit commit)))
25975 (file-name (git-file-name name version))
25976 (sha256
25977 (base32
25978 "0msj7nbsb363pxamxi7n2z08cp5jizkpjbwia8f5a161wjglrihs"))))
25979 (build-system emacs-build-system)
25980 (inputs
25981 `(("wordnet" ,wordnet)))
25982 (propagated-inputs
25983 `(("emacs-helm" ,emacs-helm)))
25984 (arguments
25985 `(#:phases
25986 (modify-phases %standard-phases
25987 (add-after 'unpack 'configure
25988 (lambda* (#:key inputs #:allow-other-keys)
25989 (let ((wn (assoc-ref inputs "wordnet")))
25990 ;; .el is read-only in git.
25991 (chmod "helm-wordnut.el" #o644)
25992 ;; Specify the absolute file names of the various
25993 ;; programs so that everything works out-of-the-box.
25994 (emacs-substitute-variables "helm-wordnut.el"
25995 ("helm-wordnut-prog" (string-append wn "/bin/wn"))
25996 ("helm-wordnut-wordnet-location"
25997 (string-append wn "/dict")))))))))
25998 (synopsis "Emacs Helm interface for Wordnet")
25999 (description "This package is merely a combination of two other Emacs
26000 packages: @code{helm-wordnet} and @code{wordnut}. It features word completion
26001 with Helm and displays a buffer of all the different result types available to
26002 Wordnet.")
26003 (license license:gpl3+))))
26004
26005 (define-public emacs-metal-mercury-mode
26006 (let ((commit "99e2d8fb7177cae3bfa2dec2910fc28216d5f5a8")
26007 (revision "1")
26008 (version "0.0.0"))
26009 (package
26010 (name "emacs-metal-mercury-mode")
26011 (version (git-version version revision commit))
26012 (source
26013 (origin
26014 (method git-fetch)
26015 (uri (git-reference
26016 (url "https://github.com/ahungry/metal-mercury-mode")
26017 (commit commit)))
26018 (sha256
26019 (base32
26020 "0iil5k3rgifz2vqwsy12rbv5rzyvidq4sgwazsb2hzys8xynmfn5"))
26021 (file-name (git-file-name name version))))
26022 (build-system emacs-build-system)
26023 (propagated-inputs
26024 `(("emacs-dash" ,emacs-dash)))
26025 (synopsis "Major mode for editing Mercury files")
26026 (description
26027 "Major mode for editing Mercury files. This is a rewrite of the original
26028 mercury-mode provided by Emacs as a wrapper around prolog-mode.")
26029 (home-page "https://github.com/ahungry/metal-mercury-mode")
26030 (license license:gpl3+))))
26031
26032 (define-public emacs-boxquote
26033 (package
26034 (name "emacs-boxquote")
26035 (version "2.2")
26036 (source
26037 (origin
26038 (method git-fetch)
26039 (uri (git-reference
26040 (url "https://github.com/davep/boxquote.el")
26041 (commit (string-append "v" version))))
26042 (file-name (git-file-name name version))
26043 (sha256
26044 (base32 "0wwjawgylaaifdsszqxcfsyhfzgxbjkzqhzrnxnr9b16wghb7xf7"))))
26045 (build-system emacs-build-system)
26046 (home-page "https://github.com/davep/boxquote.el")
26047 (synopsis "Quote text with different kinds of boxes")
26048 (description "@code{boxquote} provides a set of functions for using
26049 a text quoting style that partially boxes in the left hand side of an area of
26050 text, such a marking style might be used to show externally included text or
26051 example code.")
26052 (license license:gpl3+)))
26053
26054 (define-public emacs-buffer-move
26055 (package
26056 (name "emacs-buffer-move")
26057 (version "0.6.2")
26058 (source
26059 (origin
26060 (method git-fetch)
26061 (uri (git-reference
26062 (url "https://github.com/lukhas/buffer-move")
26063 (commit version)))
26064 (file-name (git-file-name name version))
26065 (sha256
26066 (base32 "0xdks4jfqyhkh34y48iq3gz8swp0f526kwnaai5mhgvazvs4za8c"))))
26067 (build-system emacs-build-system)
26068 (home-page "https://github.com/lukhas/buffer-move")
26069 (synopsis "Functions for moving Emacs' buffers around")
26070 (description
26071 "This package define functions for swapping buffers between windows
26072 contained in the same frame. An alternate behavior is to have the current
26073 window switch to the previous buffer instead of swapping with the other
26074 window.")
26075 (license license:gpl3+)))
26076
26077 (define-public emacs-company-ebdb
26078 (package
26079 (name "emacs-company-ebdb")
26080 (version "1.1")
26081 (source
26082 (origin
26083 (method url-fetch)
26084 (uri (string-append "https://elpa.gnu.org/packages/"
26085 "company-ebdb-" version ".el"))
26086 (sha256
26087 (base32 "146qpiigz12zp1823ggxfrx090g0mxs7gz1ba7sa0iq6ibgzwwm9"))))
26088 (build-system emacs-build-system)
26089 (propagated-inputs
26090 `(("emacs-company" ,emacs-company)))
26091 (home-page "https://elpa.gnu.org/packages/company-ebdb.html")
26092 (synopsis "Company completion backend for EBDB in Message mode")
26093 (description "@code{company-ebdb} provides Company mode integration for
26094 EBDB. It is copied more or less intact from @code{company-bbdb}, originally
26095 by Jan Tatarik.")
26096 (license license:gpl3+)))
26097
26098 (define-public emacs-mwim
26099 ;; Use the latest commit not in a release version as of yet, since it
26100 ;; contains a bug fix for the cases where `comment-start-skip' is nil.
26101 (let ((commit "b4f3edb4c0fb8f8b71cecbf8095c2c25a8ffbf85")
26102 (revision "0"))
26103 (package
26104 (name "emacs-mwim")
26105 (version (git-version "0.4" revision commit))
26106 (source
26107 (origin
26108 (method git-fetch)
26109 (uri (git-reference
26110 (url "https://github.com/alezost/mwim.el")
26111 (commit commit)))
26112 (file-name (git-file-name name version))
26113 (sha256
26114 (base32 "0l3k611gp9g2x2vfmh92wnhnda81dslpwwpb8mxmzk308man77ya"))))
26115 (build-system emacs-build-system)
26116 (home-page "https://github.com/alezost/mwim.el")
26117 (synopsis "Move to the beginning/end of line, code or comment")
26118 (description "@code{mwim} provides several commands to switch between
26119 various line positions, like moving to the beginning/end of code, line, or
26120 comment.")
26121 (license license:gpl3+))))
26122
26123 (define-public emacs-delight
26124 (package
26125 (name "emacs-delight")
26126 (version "1.7")
26127 (source
26128 (origin
26129 (method url-fetch)
26130 (uri (string-append "https://elpa.gnu.org/packages/"
26131 "delight-" version ".el"))
26132 (sha256
26133 (base32 "0pihsghrf9xnd1kqlq48qmjcmp5ra95wwwgrb3l8m1wagmmc0bi1"))))
26134 (build-system emacs-build-system)
26135 (home-page "https://elpa.gnu.org/packages/delight.html")
26136 (synopsis "Dimmer switch for your mode-line lighter text")
26137 (description "@code{delight} enables customizing or hiding the
26138 mode-line text (lighter) of major and minor modes.")
26139 (license license:gpl3+)))
26140
26141 (define-public emacs-unkillable-scratch
26142 ;; Use the latest (unreleased) commit as of now, since it contains a handy
26143 ;; `unkillable-scratch-do-not-reset-scratch-buffer' customization to not
26144 ;; repopulate the scratch buffer with `initial-scratch-message'.
26145 (let ((commit "b24c2a760529833f230c14cb02ff6e7ec92288ab")
26146 (revision "0"))
26147 (package
26148 (name "emacs-unkillable-scratch")
26149 (version (git-version "1.0.0" revision commit))
26150 (source
26151 (origin
26152 (method git-fetch)
26153 (uri (git-reference
26154 (url "https://github.com/EricCrosson/unkillable-scratch")
26155 (commit commit)))
26156 (file-name (git-file-name name version))
26157 (sha256
26158 (base32 "13wjbcxr3km4s96yhpavgs5acs5pvqv3ih1p84diqb3x3i6wd4pa"))))
26159 (build-system emacs-build-system)
26160 (home-page "https://github.com/EricCrosson/unkillable-scratch")
26161 (synopsis "Prevents the *scratch* buffer from being killed")
26162 (description "@code{unkillable-scratch} helps prevent killing buffers
26163 matching a given regexp.")
26164 (license license:gpl2+))))
26165
26166 (define-public emacs-switch-buffer-functions
26167 (package
26168 (name "emacs-switch-buffer-functions")
26169 (version "0.0.1")
26170 (source
26171 (origin
26172 (method git-fetch)
26173 (uri (git-reference
26174 (url "https://github.com/10sr/switch-buffer-functions-el")
26175 (commit (string-append "v" version))))
26176 (file-name (git-file-name name version))
26177 (sha256
26178 (base32 "0pq53b8wrjbrxd5hnrcdi0z7mffp4bax55hn90k9ca3j76lhbn1k"))))
26179 (build-system emacs-build-system)
26180 (home-page "https://github.com/10sr/switch-buffer-functions-el")
26181 (synopsis "Hooks run when switching current buffer")
26182 (description "This package provides a hook variable
26183 @code{switch-buffer-functions}. The hooks will be run when the current buffer
26184 is changed after an interactive command, i.e., when @code{post-command-hook}
26185 hooks are run. The hooked functions will be called with both the previous and
26186 the current buffer.")
26187 (license license:unlicense)))
26188
26189 (define-public emacs-erc-scrolltoplace
26190 (package
26191 (name "emacs-erc-scrolltoplace")
26192 (version "0.1.0")
26193 (source
26194 (origin
26195 (method git-fetch)
26196 (uri (git-reference
26197 (url "https://gitlab.com/jgkamat/erc-scrolltoplace.git")
26198 (commit version)))
26199 (file-name (git-file-name name version))
26200 (sha256
26201 (base32 "11zpqwh1mlfifbgnvhc63bvnhg340jgxssm3m43hr1sxsyb52lh6"))))
26202 (build-system emacs-build-system)
26203 (propagated-inputs
26204 `(("emacs-switch-buffer-functions" ,emacs-switch-buffer-functions)))
26205 (home-page "https://gitlab.com/jgkamat/erc-scrolltoplace")
26206 (synopsis "ERC module to replace scrolltobottom while using keep-place")
26207 (description "@code{erc-scrolltoplace} is an ERC module to try
26208 to emulate @code{scrolltobottom} while @code{keep-place} is enabled.")
26209 (license license:gpl3+)))
26210
26211 (define-public emacs-dmenu
26212 ;; Use the latest commit, as there are no tagged releases.
26213 (let ((commit "e8cc9b27c79d3ecc252267c082ab8e9c82eab264")
26214 (revision "0"))
26215 (package
26216 (name "emacs-dmenu")
26217 (version (git-version "0.1" revision commit))
26218 (source
26219 (origin
26220 (method git-fetch)
26221 (uri (git-reference
26222 (url "https://github.com/lujun9972/el-dmenu")
26223 (commit commit)))
26224 (file-name (git-file-name name version))
26225 (sha256
26226 (base32 "098ncygms1r33zhjlq4fj2p4jc91v5whqrm3fazzdk7sd6dilf25"))))
26227 (build-system emacs-build-system)
26228 (home-page "https://github.com/lujun9972/el-dmenu")
26229 (synopsis "Simulate the @command{dmenu} command line program")
26230 (description "This package provides a @command{dmenu} command for
26231 launching other commands/applications from within Emacs, similar to the
26232 @command{dmenu} program. This is especially useful when using EXWM.")
26233 (license license:gpl3+))))
26234
26235 (define-public emacs-no-littering
26236 (package
26237 (name "emacs-no-littering")
26238 (version "1.2.1")
26239 (source
26240 (origin
26241 (method git-fetch)
26242 (uri (git-reference
26243 (url "https://github.com/emacscollective/no-littering")
26244 (commit (string-append "v" version))))
26245 (file-name (git-file-name name version))
26246 (sha256
26247 (base32 "00chkzpjcdll907vpzfzmf9p3jprisnr8i0h1x5gixidwbfc2whi"))))
26248 (build-system emacs-build-system)
26249 (home-page "https://github.com/emacscollective/no-littering")
26250 (synopsis "Help keep @file{~/.emacs.d/} clean")
26251 (description "The default paths used to store configuration files and
26252 persistent data are not consistent across Emacs packages, be them built-in or
26253 third-party ones. @code{no-littering} sets out to help clean
26254 @file{~/.emacs.d/} by putting configuration files and persistent data files in
26255 two user-defined directories, as well as using more descriptive names for
26256 files and subdirectories when appropriate.")
26257 (license license:gpl3+)))
26258
26259 (define-public emacs-meson-mode
26260 (package
26261 (name "emacs-meson-mode")
26262 (version "0.3")
26263 (source
26264 (origin
26265 (method git-fetch)
26266 (uri (git-reference
26267 (url "https://github.com/wentasah/meson-mode")
26268 (commit (string-append "v" version))))
26269 (file-name (git-file-name name version))
26270 (sha256
26271 (base32 "0hlqvq3j4f6g16nj3bm2wbkncn8hv8c8iqd0sch3w80wwqnr622y"))))
26272 (build-system emacs-build-system)
26273 (home-page "https://github.com/wentasah/meson-mode")
26274 (synopsis "Major mode for Meson build system files")
26275 (description
26276 "This is an Emacs major mode for Meson build system files. Syntax
26277 highlighting works reliably. Indentation works too, but there are probably
26278 cases where it breaks.")
26279 (license license:gpl3+)))
26280
26281 (define-public emacs-message-x
26282 ;; Use the latest commit, as there are no tagged releases.
26283 (let ((commit "5524de7bbfdd8749c110f48de5afb024d9f83133")
26284 (revision "0"))
26285 (package
26286 (name "emacs-message-x")
26287 (version (git-version "1.23" revision commit))
26288 (source
26289 (origin
26290 (method git-fetch)
26291 (uri (git-reference
26292 (url "https://github.com/emacsmirror/message-x")
26293 (commit commit)))
26294 (file-name (git-file-name name version))
26295 (sha256
26296 (base32 "0qy1xf11j357lsnbb829hnbg7fq1cii4cx54fwf0wgjh1bv2abvj"))))
26297 (build-system emacs-build-system)
26298 (home-page "https://www.emacswiki.org/emacs/message-x.el")
26299 (synopsis "Customizable completion in message headers")
26300 (description "@code{message-x} assigns a context-sensitive function to
26301 the TAB key in Message mode. When on a header line, it performs completion
26302 based on which header we are in (for example, newsgroup name completion makes
26303 sense on the @samp{Newsgroups} header, whereas mail alias expansion makes
26304 sense in the @samp{To} and @samp{Cc} headers). When in the message body, this
26305 executes a different function (default: @code{indent-relative}).")
26306 (license license:gpl2+))))
26307
26308 (define-public emacs-glsl-mode
26309 ;; No tag, version grabbed from source .el file.
26310 (let ((commit "b07112016436d9634cd4ef747f9af6b01366d136")
26311 (revision "0"))
26312 (package
26313 (name "emacs-glsl-mode")
26314 (version (git-version "2.4" revision commit))
26315 (source
26316 (origin
26317 (method git-fetch)
26318 (uri (git-reference
26319 (url "https://github.com/jimhourihan/glsl-mode")
26320 (commit commit)))
26321 (file-name (git-file-name name version))
26322 (sha256
26323 (base32 "0bav9ipfm0vy26n74ngsmjzc7fsyqz6xmriadzx55s44h8p5dn1s"))))
26324 (build-system emacs-build-system)
26325 (home-page "https://github.com/jimhourihan/glsl-mode")
26326 (synopsis "Major mode for Open GLSL shader files")
26327 (description
26328 "This package provides a major mode for editing OpenGLSL grammar files,
26329 usually files ending with @file{.vert}, @file{.frag}, @file{.glsl} or
26330 @file{.geom}. It is based on C mode plus some features and pre-specified
26331 fontifications.")
26332 (license license:gpl3+))))
26333
26334 (define-public emacs-gnus-harvest
26335 (let ((commit "feda071a87b799bd5d23cacde3ee71f0b166e75d")
26336 (revision "0"))
26337 (package
26338 (name "emacs-gnus-harvest")
26339 (version (git-version "1.0" revision commit))
26340 (source
26341 (origin
26342 (method git-fetch)
26343 (uri (git-reference
26344 (url "https://github.com/jwiegley/gnus-harvest")
26345 (commit commit)))
26346 (file-name (git-file-name name version))
26347 (sha256
26348 (base32 "08zb7vc3v3wdxkzgi902vlc5ybfvm8fxrvm5drnwfsjj9873pbcb"))))
26349 (build-system emacs-build-system)
26350 (inputs
26351 `(("sqlite" ,sqlite)))
26352 (arguments
26353 `(#:phases
26354 (modify-phases %standard-phases
26355 (add-before 'build 'patch-exec-paths
26356 (lambda* (#:key inputs #:allow-other-keys)
26357 (let ((sqlite (assoc-ref inputs "sqlite"))
26358 (file "gnus-harvest.el"))
26359 (make-file-writable file)
26360 (emacs-substitute-variables file
26361 ("gnus-harvest-sqlite-program"
26362 (string-append sqlite "/bin/sqlite3"))))
26363 #t)))))
26364 (home-page "https://github.com/jwiegley/gnus-harvest")
26365 (synopsis
26366 "Harvest email addresses from read/written Gnus articles")
26367 (description "@code{gnus-harvest} notices email address in every message
26368 or post you read or write, and collects them in a SQLite database, which can
26369 be easily and quickly queried to determine the completion list. It optionally
26370 uses BBDB and Message-X.")
26371 (license license:gpl3+))))
26372
26373 (define-public emacs-auto-dictionary-mode
26374 (package
26375 (name "emacs-auto-dictionary-mode")
26376 (version "1.1")
26377 (source
26378 (origin
26379 (method git-fetch)
26380 (uri (git-reference
26381 (url "https://github.com/nschum/auto-dictionary-mode")
26382 (commit version)))
26383 (file-name (git-file-name name version))
26384 (sha256
26385 (base32 "191294k92qp8gmfypf0q8j8qrym96aqikzvyb9p03wqvbr3r1dsk"))))
26386 (build-system emacs-build-system)
26387 (home-page "http://nschum.de/src/emacs/auto-dictionary/")
26388 (synopsis "Automatic dictionary switcher for Emacs spell checking")
26389 (description "@code{auto-dictionary} is a minor mode that hooks into
26390 Flyspell's on-the-fly spell checking and extends these checks to also detect
26391 language. Auto-dictionary then sets @code{ispell-dictionary} to use the
26392 detected language.")
26393 (license license:gpl2+)))
26394
26395 (define-public emacs-persist
26396 (package
26397 (name "emacs-persist")
26398 (version "0.4")
26399 (source
26400 (origin
26401 (method url-fetch)
26402 (uri (string-append "https://elpa.gnu.org/packages/"
26403 "persist-" version ".tar"))
26404 (sha256
26405 (base32 "0gpxy41qawzss2526j9a7lys60vqma1lvamn4bfabwza7gfhac0q"))))
26406 (build-system emacs-build-system)
26407 (home-page "http://elpa.gnu.org/packages/persist.html")
26408 (synopsis "Persist variables between Emacs sessions")
26409 (description
26410 "This package provides variables which persist across sessions.
26411 Values are stored in a directory in @code{user-emacs-directory}, using
26412 one file per value. This makes it easy to delete or remove unused
26413 variables.")
26414 (license license:gpl3+)))
26415
26416 (define-public emacs-company-emoji
26417 (package
26418 (name "emacs-company-emoji")
26419 (version "2.6.1")
26420 (source
26421 (origin
26422 (method git-fetch)
26423 (uri (git-reference
26424 (url "https://github.com/dunn/company-emoji/")
26425 (commit version)))
26426 (file-name (git-file-name name version))
26427 (sha256
26428 (base32 "1rhf2hr345953mkn52i58aiq8j16ps2ckapd5f7jxmhkcpzxxfhk"))))
26429 (build-system emacs-build-system)
26430 (propagated-inputs
26431 `(("emacs-company" ,emacs-company)))
26432 (home-page "https://github.com/dunn/company-emoji/")
26433 (synopsis "Company completion back-end for emoji")
26434 (description
26435 "This library is a Company back-end providing auto-completion for
26436 emoji.")
26437 (license license:gpl3+)))
26438
26439 (define-public emacs-exiftool
26440 (package
26441 (name "emacs-exiftool")
26442 (version "0.3.2")
26443 (source
26444 (origin
26445 (method git-fetch)
26446 (uri (git-reference
26447 (url "https://git.systemreboot.net/exiftool.el/")
26448 (commit (string-append "v" version))))
26449 (file-name (git-file-name name version))
26450 (sha256
26451 (base32
26452 "0bv58is66cz21yhc0qqkp1z4nk13zfi2l7i6pjbhyi0g1n88qqyv"))))
26453 (build-system emacs-build-system)
26454 (arguments
26455 `(#:tests? #t
26456 #:test-command '("make" "-C" "tests")
26457 #:phases
26458 (modify-phases %standard-phases
26459 (add-after 'unpack 'configure
26460 (lambda* (#:key inputs #:allow-other-keys)
26461 (make-file-writable "exiftool.el")
26462 (emacs-substitute-variables "exiftool.el"
26463 ("exiftool-executable"
26464 (string-append (assoc-ref inputs "perl-image-exiftool")
26465 "/bin/exiftool")))
26466 #t)))))
26467 (inputs
26468 `(("perl-image-exiftool" ,perl-image-exiftool)))
26469 (home-page "https://git.systemreboot.net/exiftool.el/about/")
26470 (synopsis "Elisp wrapper around ExifTool")
26471 (description "@code{emacs-exiftool} is an Elisp wrapper around ExifTool.
26472 ExifTool supports reading and writing metadata in various formats including
26473 EXIF, XMP and IPTC.")
26474 (license license:gpl3+)))
26475
26476 (define-public emacs-password-generator
26477 (package
26478 (name "emacs-password-generator")
26479 (version "1.01")
26480 (home-page "https://github.com/zargener/emacs-password-genarator")
26481 (source
26482 (origin
26483 (method git-fetch)
26484 (uri (git-reference
26485 (url home-page)
26486 (commit "904cdb591a04305ba882ce19e1d117f5fa60f7d3")))
26487 (file-name (git-file-name name version))
26488 (sha256
26489 (base32
26490 "1qgvn79qz1h8ykm5i1qv2fja4v2y0g2i0n5sf7byhnqhqlwn63nv"))))
26491 (build-system emacs-build-system)
26492 (synopsis "Generate passwords inside Emacs")
26493 (description "@code{emacs-password-generator} provides simple functions to
26494 generate random passwords and insert them into the current buffer. It also
26495 supports generation of phonetic and numeric passwords.")
26496 (license license:artistic2.0)))
26497
26498 (define-public emacs-csv
26499 (package
26500 (name "emacs-csv")
26501 (version "2.1")
26502 (home-page "https://gitlab.com/u11/csv.el")
26503 (source
26504 (origin
26505 (method git-fetch)
26506 (uri (git-reference
26507 (url home-page)
26508 (commit (string-append "V" version))))
26509 (file-name (git-file-name name version))
26510 (sha256
26511 (base32
26512 "1vmazjrfcsa9aa9aw8bq5sazdhqvhxyj837dyw5lmh8gk7z0xdaa"))))
26513 (build-system emacs-build-system)
26514 (synopsis "Elisp functions for reading and parsing CSV files")
26515 (description
26516 "@code{csv.el} provides functions for reading and parsing @acronym{CSV,
26517 Comma-Separated Values} files. It follows the format as defined in RFC 4180
26518 @emph{Common Format and MIME Type for CSV
26519 Files} (@url{http://tools.ietf.org/html/rfc4180}).")
26520 (license license:gpl3+)))
26521
26522 (define-public emacs-org-journal
26523 (package
26524 (name "emacs-org-journal")
26525 (version "2.1.2")
26526 (source
26527 (origin
26528 (method git-fetch)
26529 (uri (git-reference
26530 (url "https://github.com/bastibe/org-journal")
26531 (commit version)))
26532 (file-name (git-file-name name version))
26533 (sha256
26534 (base32 "0s82sh2svc0mzr1ak414n5r2j0dmwvvyx4swk2c61zivc2gjd778"))))
26535 (build-system emacs-build-system)
26536 (home-page "https://github.com/bastibe/org-journal")
26537 (synopsis "Simple Org mode journaling mode")
26538 (description
26539 "Org Journal is a set of functions to maintain a simple personal diary /
26540 journal using in Emacs, adapted from
26541 @url{https://www.emacswiki.org/emacs/PersonalDiary}. Convenient bindings
26542 allow the creation of journal records in the current daily, weekly, monthly or
26543 yearly file and search within all records or specified time intervals. All
26544 records can be browsed and searched from the Emacs Calendar for convenience.
26545 All entries in a specified TODO state will be carried over to the next day.")
26546 (license license:bsd-3)))
26547
26548 (define-public emacs-org-static-blog
26549 (package
26550 (name "emacs-org-static-blog")
26551 (version "1.4.0")
26552 (source
26553 (origin
26554 (method git-fetch)
26555 (uri (git-reference
26556 (url "https://github.com/bastibe/org-static-blog")
26557 (commit version)))
26558 (file-name (git-file-name name version))
26559 (sha256
26560 (base32 "00yhgxg87mfaflrkh0i905hr873yd03a7znw5hkrps43zxha9kb9"))))
26561 (build-system emacs-build-system)
26562 (home-page "https://github.com/bastibe/org-static-blog")
26563 (synopsis
26564 "Simple Org mode based static blog generator")
26565 (description
26566 "@code{emacs-org-static-blog} is one more static blog generator, it
26567 focuses on being simple. All files are simple Org files in a directory. The
26568 only requirement is that every Org file must have a @samp{title} and
26569 a @samp{date} keywords, and optionally, a @samp{filetags} keyword.")
26570 (license license:bsd-3)))
26571
26572 (define-public emacs-ddskk
26573 ;; XXX: Upstream adds code names to their release tags, so version and code
26574 ;; name below need to be updated together.
26575 (let ((version "17.1")
26576 (code-name "Neppu"))
26577 (package
26578 (name "emacs-ddskk")
26579 (version version)
26580 (source
26581 (origin
26582 (method git-fetch)
26583 (uri (git-reference
26584 (url "https://github.com/skk-dev/ddskk")
26585 (commit (string-append "ddskk-" version "_" code-name))))
26586 (file-name (git-file-name name version))
26587 (sha256
26588 (base32 "0xm53rybxki2784gyjkafg6956viyhhcq51kbmnrwc6aw3yzh7aw"))))
26589 (build-system gnu-build-system)
26590 (arguments
26591 `(#:modules ((guix build gnu-build-system)
26592 (guix build utils)
26593 (guix build emacs-utils))
26594 #:imported-modules (,@%gnu-build-system-modules
26595 (guix build emacs-utils))
26596 #:test-target "test"
26597 #:phases
26598 (modify-phases %standard-phases
26599 (replace 'configure
26600 (lambda* (#:key outputs #:allow-other-keys)
26601 (make-file-writable "SKK-MK")
26602 (emacs-substitute-variables "SKK-MK"
26603 ("PREFIX" (assoc-ref outputs "out"))
26604 ("LISPDIR" '(expand-file-name "/share/emacs/site-lisp" PREFIX))
26605 ("SKK_PREFIX" "")
26606 ("SKK_INFODIR" '(expand-file-name "info" PREFIX)))
26607 (for-each make-file-writable (find-files "./doc"))
26608 #t))
26609 (add-after 'unpack 'fix-test
26610 (lambda _
26611 (substitute* "Makefile"
26612 (("/bin/rm") (which "rm"))))))))
26613 (native-inputs
26614 `(("emacs-minimal" ,emacs-minimal)
26615 ("ruby" ,ruby)))
26616 (home-page "https://github.com/skk-dev/ddskk")
26617 (synopsis "Simple Kana to Kanji conversion program")
26618 (description
26619 "Daredevil SKK is a version of @acronym{SKK, Simple Kana to Kanji
26620 conversion program}, a Japanese input method on Emacs.")
26621 (license license:gpl2+))))
26622
26623 (define-public emacs-objed
26624 (package
26625 (name "emacs-objed")
26626 (version "0.8.3")
26627 (source
26628 (origin
26629 (method url-fetch)
26630 (uri (string-append
26631 "https://elpa.gnu.org/packages/objed-" version ".tar"))
26632 (sha256
26633 (base32
26634 "1s38d6bvggdk5p45ww1jb4gxifzgjwgw1m6ar920nlg0j4fgbcvr"))))
26635 (build-system emacs-build-system)
26636 (home-page "https://github.com/clemera/objed")
26637 (synopsis "Navigate and edit text objects")
26638 (description
26639 "@code{emacs-objed} allows navigating and editing text objects. It
26640 enables modal editing and composition of commands, too. It combines ideas of
26641 other Editors like Vim or Kakoune and tries to align them with regular Emacs
26642 conventions.")
26643 (license license:gpl3+)))
26644
26645 (define-public emacs-haskell-snippets
26646 ;; The commit below is 5 commits ahead of release, and includes a build fix.
26647 (let ((commit "07b0f460b946fd1be26c29652cb0468b47782f3a"))
26648 (package
26649 (name "emacs-haskell-snippets")
26650 (version (git-version "0.1.0" "0" commit))
26651 (source
26652 (origin
26653 (method git-fetch)
26654 (uri
26655 (git-reference
26656 (url "https://github.com/haskell/haskell-snippets")
26657 (commit commit)))
26658 (file-name (git-file-name name version))
26659 (sha256
26660 (base32 "0a7y3awi9hcyahggf0ghsdwvsmrhr9yq634wy9lkqjzrm2hqj0ci"))))
26661 (build-system emacs-build-system)
26662 (arguments
26663 `(#:phases
26664 (modify-phases %standard-phases
26665 (add-after 'install 'install-snippets
26666 (lambda* (#:key outputs #:allow-other-keys)
26667 (let* ((out (assoc-ref outputs "out"))
26668 (snippets
26669 (string-append
26670 out "/share/emacs/site-lisp/snippets/haskell-mode")))
26671 (mkdir-p snippets)
26672 (copy-recursively "snippets/haskell-mode" snippets)
26673 #t))))))
26674 (propagated-inputs
26675 `(("emacs-yasnippet" ,emacs-yasnippet)))
26676 (home-page "https://github.com/haskell/haskell-snippets")
26677 (synopsis "Official collection of YASnippet Haskell snippets for Emacs")
26678 (description "Haskell-Snippets is a collection of YASnippet Haskell
26679 snippets for Emacs.")
26680 (license license:expat))))
26681
26682 (define-public emacs-org-roam
26683 (let ((commit "8ad57b121831eda8d226faa14ff2ba7ab652849c")
26684 (revision "0")
26685 (version "1.2.3"))
26686 (package
26687 (name "emacs-org-roam")
26688 (version (git-version version revision commit))
26689 (source
26690 (origin
26691 (method git-fetch)
26692 (uri (git-reference
26693 (url "https://github.com/org-roam/org-roam")
26694 (commit commit)))
26695 (file-name (git-file-name name version))
26696 (sha256
26697 (base32 "162qhb6rkpl1n0l8yhnwgagsx56ykaj9lchsny1id5z1257kgw9w"))))
26698 (build-system emacs-build-system)
26699 (propagated-inputs
26700 `(("emacs-dash" ,emacs-dash)
26701 ("emacs-emacsql-sqlite3" ,emacs-emacsql-sqlite3)
26702 ("emacs-f" ,emacs-f)
26703 ("emacs-org" ,emacs-org)
26704 ("emacs-s" ,emacs-s)))
26705 (home-page "https://github.com/org-roam/org-roam/")
26706 (synopsis "Non-hierarchical note-taking with Org mode")
26707 (description "Emacs Org Roam is a solution for taking non-hierarchical
26708 notes with Org mode. Notes are captured without hierarchy and are connected
26709 by tags. Notes can be found and created quickly. Org Roam should also work
26710 as a plug-and-play solution for anyone already using Org mode for their
26711 personal wiki.")
26712 (license license:gpl3+))))
26713
26714 (define-public emacs-org-roam-bibtex
26715 (package
26716 (name "emacs-org-roam-bibtex")
26717 (version "0.4.0")
26718 (source
26719 (origin
26720 (method git-fetch)
26721 (uri (git-reference
26722 (url "https://github.com/org-roam/org-roam-bibtex")
26723 (commit (string-append "v" version))))
26724 (file-name (git-file-name name version))
26725 (sha256
26726 (base32 "13pll793khyfncpwm2dg24w747sqp7kgf7m3fqw2xzhv9cx2g7nq"))))
26727 (build-system emacs-build-system)
26728 (propagated-inputs
26729 `(("emacs-helm-bibtex" ,emacs-helm-bibtex)
26730 ("emacs-org-ref" ,emacs-org-ref)
26731 ("emacs-org-roam" ,emacs-org-roam)))
26732 (home-page "https://github.com/org-roam/org-roam-bibtex")
26733 (synopsis "Connector between Org Roam, BibTeX-completion, and Org Ref")
26734 (description
26735 "Org Roam BibTeX is a library which offers a tighter integration between
26736 Org Roam, Helm-BibTeX, and Org Ref. It allows users to access their
26737 bibliographical notes in Org Roam directory via Helm BibTeX, Ivy BibTeX, or by
26738 opening Org Ref's @code{cite:} links.")
26739 (license license:gpl3+)))
26740
26741 (define-public emacs-org-generate
26742 (package
26743 (name "emacs-org-generate")
26744 (version "1.0.0")
26745 (source (origin
26746 (method git-fetch)
26747 (uri (git-reference
26748 (url "https://github.com/conao3/org-generate.el")
26749 (commit (string-append "v" version))))
26750 (file-name (git-file-name name version))
26751 (sha256
26752 (base32
26753 "0z2frp5mn3lp2xskwanw2rncrwa50x3aphy87vfxmhx4fqlqrzy8"))))
26754 (inputs
26755 `(("emacs-cort" ,emacs-cort))) ;tests suite
26756 (propagated-inputs
26757 `(("emacs-mustache" ,emacs-mustache)))
26758 (arguments
26759 `(#:tests? #t
26760 #:test-command '("emacs" "--batch" "--quick"
26761 "--directory=." "--load=org-generate-tests.el"
26762 "--funcall=cort-test-run")))
26763 (build-system emacs-build-system)
26764 (home-page "https://github.com/conao3/org-generate.el")
26765 (synopsis "Generate template files and folders from Org document")
26766 (description "This package generates files and folders from Emacs
26767 org-mode templates.")
26768 (license license:gpl3+)))
26769
26770 (define-public emacs-uml-mode
26771 ;; Package has no release. Version is extracted from "Version:" keyword in
26772 ;; main file.
26773 (let ((commit "4c37ac1c4424b2313cd8f16ba48a98a4cc214200")
26774 (revision "1"))
26775 (package
26776 (name "emacs-uml-mode")
26777 (version (git-version "0.0.4" revision commit))
26778 (source
26779 (origin
26780 (method git-fetch)
26781 (uri (git-reference
26782 (url "https://github.com/ianxm/emacs-uml")
26783 (commit commit)))
26784 (file-name (git-file-name name version))
26785 (sha256
26786 (base32 "145i4srnfvd1vyibri2a1l6p9mbjvkkwlrpi41134pbarqffcnka"))))
26787 (build-system emacs-build-system)
26788 (home-page "https://github.com/ianxm/emacs-uml")
26789 (synopsis "Minor mode for editing ASCII UML sequence diagrams")
26790 (description "Emacs UML mode is a minor mode that makes it easy to build
26791 ASCII UML sequence diagrams in Emacs, which can be embedded in source code,
26792 comments or emails.")
26793 (license license:gpl3+))))
26794
26795 (define-public emacs-trashed
26796 (package
26797 (name "emacs-trashed")
26798 (version "2.1.2")
26799 (source
26800 (origin
26801 (method git-fetch)
26802 (uri (git-reference
26803 (url "https://github.com/shingo256/trashed/")
26804 (commit version)))
26805 (file-name (git-file-name name version))
26806 (sha256
26807 (base32 "0lfza55nbb62nmr27cwpcz2ad1vm95piq4nfd8zvkwqbn6klwmm6"))))
26808 (build-system emacs-build-system)
26809 (home-page "https://github.com/shingo256/trashed/")
26810 (synopsis "View and edit system trash can in Emacs")
26811 (description "Open, view, browse, restore or permanently delete trashed
26812 files or directories in trash can with Dired-like look and feel. The trash
26813 can has to be compliant with freedesktop.org. In Emacs, you can trash files by
26814 deleting them with @code{(setq delete-by-moving-to-trash t)}. This package
26815 provides a simple but convenient user interface to manage those trashed
26816 files.")
26817 (license license:gpl3+)))
26818
26819 (define-public emacs-plantuml-mode
26820 (package
26821 (name "emacs-plantuml-mode")
26822 (version "1.4.1")
26823 (source
26824 (origin
26825 (method git-fetch)
26826 (uri (git-reference
26827 (url "https://github.com/skuro/plantuml-mode")
26828 (commit (string-append "v" version))))
26829 (file-name (git-file-name name version))
26830 (sha256
26831 (base32 "0yp41d2dmf3sx7qnl5x0zdjcr9y71b2wwc9m0q31v22xqn938ipc"))))
26832 (arguments
26833 '(#:phases
26834 (modify-phases %standard-phases
26835 (add-after 'unpack 'use-local-plantuml
26836 (lambda* (#:key inputs #:allow-other-keys)
26837 (let ((plantuml (assoc-ref inputs "plantuml"))
26838 (file "plantuml-mode.el"))
26839 (chmod file #o644)
26840 (emacs-substitute-variables file
26841 ("plantuml-jar-path"
26842 (string-append plantuml "/share/java/plantuml.jar"))
26843 ("plantuml-executable-path"
26844 (string-append plantuml "/bin/plantuml"))
26845 ("plantuml-server-url" 'nil)
26846 ("plantuml-default-exec-mode" ''executable))
26847 (emacs-batch-edit-file file
26848 `(progn (progn
26849 (goto-char (point-min))
26850 (re-search-forward "(defun plantuml-download-jar")
26851 (beginning-of-line)
26852 (kill-sexp))
26853 (basic-save-buffer)))
26854 #t))))))
26855 (inputs
26856 `(("plantuml" ,plantuml)))
26857 (propagated-inputs
26858 `(("emacs-dash" ,emacs-dash)))
26859 (build-system emacs-build-system)
26860 (home-page "https://github.com/skuro/plantuml-mode")
26861 (synopsis "Major mode for editing PlantUML sources")
26862 (description "This package provides a major mode for editing PlantUML
26863 sources. It features syntax highlighting, autocompletion, preview of buffer
26864 or region and use of locally installed binaries.")
26865 (license license:gpl3+)))
26866
26867 (define-public emacs-execline
26868 (package
26869 (name "emacs-execline")
26870 (version "1.1")
26871 (source (origin
26872 (method git-fetch)
26873 (uri (git-reference
26874 (url "https://gitlab.com/KAction/emacs-execline/")
26875 (commit (string-append "v" version))))
26876 (file-name (git-file-name name version))
26877 (sha256
26878 (base32
26879 "02q531c9wvdwflhggflnci4a36h2bb90bq25bbhw6i2lvrd9sk55"))))
26880 (build-system emacs-build-system)
26881 (propagated-inputs
26882 `(("emacs-s" ,emacs-s)))
26883 (arguments
26884 `(#:tests? #t
26885 #:test-command '("emacs" "-Q" "-batch" "-L" "."
26886 "-l" "t/indent.el"
26887 "-f" "ert-run-tests-batch-and-exit")))
26888 (home-page "https://gitlab.com/KAction/emacs-execline/")
26889 (synopsis "Major Emacs mode for editing execline scripts")
26890 (description
26891 "This package provides a major mode for editing execline scripts.
26892
26893 Features:
26894 @itemize
26895 @item Syntax highlighting of commends, builtin commands and variable substitution.
26896 @item Completion of builtin commands.
26897 @item Working @code{comment-region} command.
26898 @item Indentation of blocks.
26899 @item Automatic enable of mode in @file{*.exec} files.
26900 @item Automatic enable of mode in files with @code{execlineb} interpreter.
26901 @end itemize\n")
26902 (license license:gpl3+)))
26903
26904 (define-public emacs-shell-pop
26905 (let ((commit "4b4394037940a890a313d715d203d9ead2d156a6")
26906 (revision "0"))
26907 (package
26908 (name "emacs-shell-pop")
26909 (version (git-version "0.64" revision commit))
26910 (source
26911 (origin
26912 (method git-fetch)
26913 (uri (git-reference
26914 (url "https://github.com/kyagi/shell-pop-el")
26915 (commit commit)))
26916 (file-name (git-file-name name version))
26917 (sha256
26918 (base32 "0s77n6b9iw1x3dv91ybkpgy3zvqd12si7zw3lg0m2b6j1akrawsg"))))
26919 (build-system emacs-build-system)
26920 (home-page "https://github.com/kyagi/shell-pop-el")
26921 (synopsis "Utility which helps with pop up shell buffer")
26922 (description
26923 "This Emacs utility helps you pop up and pop out shell buffer window
26924 easily. Four pre-set options are: @samp{shell}, @samp{terminal},
26925 @samp{ansi-term}, and @samp{eshell}. You can also set your custom shell if
26926 you use some other configuration.")
26927 (license license:gpl3+))))
26928
26929 (define-public emacs-extmap
26930 (package
26931 (name "emacs-extmap")
26932 (version "1.1.1")
26933 (source
26934 (origin
26935 (method git-fetch)
26936 (uri (git-reference
26937 (url "https://github.com/doublep/extmap")
26938 (commit version)))
26939 (file-name (git-file-name name version))
26940 (sha256
26941 (base32
26942 "09kia3mr4si8kn46kyiza9nl669b22vmgc70ng3mqz742lph5siw"))))
26943 (build-system emacs-build-system)
26944 (home-page "https://github.com/doublep/extmap")
26945 (synopsis "Externally-stored constant mapping for Emacs Lisp")
26946 (description "A very simple package that lets you build a
26947 read-only, constant database that maps Emacs Lisp symbols to
26948 arbitrary Emacs Lisp objects.")
26949 (license license:gpl3+)))
26950
26951 (define-public emacs-csound-mode
26952 (package
26953 (name "emacs-csound-mode")
26954 (version "0.2.1")
26955 (source
26956 (origin
26957 (method git-fetch)
26958 (uri (git-reference
26959 (url "https://github.com/hlolli/csound-mode")
26960 (commit version)))
26961 (file-name (git-file-name name version))
26962 (sha256
26963 (base32
26964 "1c88ak0jaj51fwiqniqxd7xyk23wjl9m57znzm8j267ld8g12znp"))))
26965 (build-system emacs-build-system)
26966 (arguments
26967 `(#:phases
26968 (modify-phases %standard-phases
26969 (add-after 'unpack 'disable-breaking-compilation
26970 (lambda _
26971 (for-each (lambda (file)
26972 (chmod file #o600) ; needed to write changes.
26973 (emacs-batch-disable-compilation file))
26974 '("csound-font-lock.el"))
26975 #t)))))
26976 (inputs
26977 `(("emacs-highlight" ,emacs-highlight)
26978 ("emacs-multi" ,emacs-multi)
26979 ("emacs-shut-up" ,emacs-shut-up)))
26980 (home-page "https://github.com/hlolli/csound-mode")
26981 (synopsis "Emacs major mode for coding in CSound")
26982 (description "Provides both a basic major mode for editing
26983 CSound files, as well as a REPL for fast feedback when composing
26984 and sound-designing.")
26985 (license license:gpl3+)))
26986
26987 (define-public emacs-multi
26988 (package
26989 (name "emacs-multi")
26990 (version "2.0.1")
26991 (source
26992 (origin
26993 (method git-fetch)
26994 (uri (git-reference
26995 (url "https://github.com/kurisuwhyte/emacs-multi")
26996 (commit (string-append "v" version))))
26997 (file-name (git-file-name name version))
26998 (sha256
26999 (base32
27000 "11zabs7qpdhri6n90ck7pgwcbz46d813nyl73h5m1i8jvz1wzx7v"))))
27001 (build-system emacs-build-system)
27002 (home-page "https://github.com/kurisuwhyte/emacs-multi")
27003 (synopsis "Clojure-style multi-methods for Emacs Lisp")
27004 (description "Provides Emacs Lisp with a form of polymorphism
27005 by way of predicate dispatching. Methods consist of a dispatch
27006 function, and a series of branches. The dispatch function is
27007 applied to the arguments, and the result value is checked against
27008 the expectations of each branch to define which one to invoke.")
27009 (license license:expat)))
27010
27011 (define-public emacs-highlight
27012 (let ((commit "9258a2b8362d737115cbd87618f947eadb140411")
27013 (revision "1"))
27014 (package
27015 (name "emacs-highlight")
27016 (version "0.0.0")
27017 (source
27018 (origin
27019 (method git-fetch)
27020 (uri (git-reference
27021 (url "https://github.com/emacsmirror/highlight/")
27022 (commit commit)))
27023 (file-name (git-file-name name commit))
27024 (sha256
27025 (base32
27026 "0pbqzgbfkm8smi23j94hirxh2r1yc0ipyjbbv1y906br6bx5c1a8"))))
27027 (build-system emacs-build-system)
27028 (home-page "https://github.com/emacsmirror/highlight")
27029 (synopsis "Highlighting commands for GNU Emacs")
27030 (description "This library adds the possibility for ad-hoc
27031 applying highlighting to any face in GNU Emacs. The functionality
27032 of this library depends on overlays, which by default are not
27033 picked up when copy-pasting text from buffer to buffer.")
27034 (license license:gpl2+))))
27035
27036 (define-public emacs-org-webring
27037 (package
27038 (name "emacs-org-webring")
27039 (version "2.0.0")
27040 (source
27041 (origin
27042 (method git-fetch)
27043 (uri (git-reference
27044 (url "https://git.sr.ht/~brettgilio/org-webring")
27045 (commit version)))
27046 (file-name (git-file-name name version))
27047 (sha256
27048 (base32
27049 "1si0jah7n2gvlvghjy5dpannqpkxni5rczfp1x2a4z6ydalr3bn5"))))
27050 (build-system emacs-build-system)
27051 (arguments
27052 `(#:phases
27053 (modify-phases %standard-phases
27054 (add-after 'install 'install-assets
27055 (lambda* (#:key outputs #:allow-other-keys)
27056 (let* ((out (assoc-ref outputs "out"))
27057 (assets
27058 (string-append out "/share/emacs/org-webring-assets")))
27059 (mkdir-p assets)
27060 (copy-recursively "assets" assets)
27061 #t))))))
27062 (propagated-inputs
27063 `(("emacs-xmlgen" ,emacs-xmlgen)))
27064 (home-page "https://sr.ht/~brettgilio/org-webring")
27065 (synopsis "Generate webrings for Org-based sites / blogs")
27066 (description "Org-webring is an alternative implementation of a
27067 feed-based webring, taking inspiration from openring by Drew DeVault.
27068 Intended to integrate with Org-based websites and blogs (either
27069 directly, or indirectly, as in ox-hugo), it will fetch a given list of
27070 web feed files and correctly parse and format the elements to be
27071 displayed for sharing.")
27072 (license license:gpl3+)))
27073
27074 (define-public emacs-scpaste
27075 (let ((commit "cd4fa0aafecd839736e0b6cba68b4fc4d7045472")
27076 (revision "0"))
27077 (package
27078 (name "emacs-scpaste")
27079 (version "0.6.5")
27080 (source
27081 (origin
27082 (method git-fetch)
27083 (uri (git-reference
27084 (url "https://git.sr.ht/~technomancy/scpaste")
27085 (commit commit)))
27086 (file-name (git-file-name name commit))
27087 (sha256
27088 (base32
27089 "1nvwbwl26z03963g9c82b3ggm39r95z1vp7c9qsa9mjm46dyq27w"))))
27090 (build-system emacs-build-system)
27091 (propagated-inputs
27092 `(("emacs-htmlize" ,emacs-htmlize)))
27093 (home-page "https://git.sr.ht/~technomancy/scpaste")
27094 (synopsis "Emacs-based static HTML pastebin")
27095 (description "This library will place an HTML copy of a
27096 buffer on an active webserver to which the user has SSH access.
27097 It is similar in purpose to services such as Gist or Pastebin,
27098 but is much simpler since it assumes the user has access to a
27099 publicly-accessible HTTP server.")
27100 (license license:gpl3+))))
27101
27102 (define-public emacs-company-reftex
27103 (package
27104 (name "emacs-company-reftex")
27105 (version "0.1.0")
27106 (source
27107 (origin
27108 (method git-fetch)
27109 (uri (git-reference
27110 (url "https://github.com/TheBB/company-reftex")
27111 (commit "275ef708f08d3bf0eb30632148e5c6184eeaacdb")))
27112 (file-name (git-file-name name version))
27113 (sha256
27114 (base32
27115 "118cgw5lsffqdqz95mnkw36mmnsbg9m52r2np4m7v14mjjwr9fby"))))
27116 (build-system emacs-build-system)
27117 (propagated-inputs
27118 `(("emacs-company" ,emacs-company)
27119 ("emacs-s" ,emacs-s)))
27120 (home-page "https://github.com/TheBB/company-reftex")
27121 (synopsis "RefTeX backends for company-mode")
27122 (description "This package provides company-mode backends for completing
27123 label references and citations in LaTeX. It is based on RefTeX, which is
27124 included with Emacs.")
27125 (license license:gpl3+)))
27126
27127 (define-public emacs-html-to-hiccup
27128 ;; Package has no release. Version is extracted from "Version:" keyword in
27129 ;; main file.
27130 (let ((commit "50a52e2b0d13d865187acdf775b8203d5003f2f1")
27131 (revision "0"))
27132 (package
27133 (name "emacs-html-to-hiccup")
27134 (version (git-version "1" revision commit))
27135 (source
27136 (origin
27137 (method git-fetch)
27138 (uri (git-reference
27139 (url "https://github.com/plexus/html-to-hiccup")
27140 (commit commit)))
27141 (file-name (git-file-name name version))
27142 (sha256
27143 (base32 "1qi092mw2n08v6yr0j6hlpx0pnlcnhxjqbsrlw9pn4yin6zk91yp"))))
27144 (build-system emacs-build-system)
27145 (propagated-inputs
27146 `(("dash" ,emacs-dash)
27147 ("s" ,emacs-s)))
27148 (home-page "https://github.com/plexus/html-to-hiccup")
27149 (synopsis "Turn HTML into Hiccup syntax")
27150 (description
27151 "This is an Emacs package that turns HTML into Hiccup syntax
27152 which is a popular notation to use when doing Clojure/ClojureScript
27153 web development.")
27154 ;; There is a conflict between the repository official LICENSE
27155 ;; file and the header of the main elisp file which indicates
27156 ;; that it is licensed under the GPL version 3 or later.
27157 (license (list license:mpl2.0 license:gpl3+)))))
27158
27159 (define-public emacs-iter2
27160 (package
27161 (name "emacs-iter2")
27162 (version "1.0")
27163 (source
27164 (origin
27165 (method git-fetch)
27166 (uri (git-reference
27167 (url "https://github.com/doublep/iter2")
27168 (commit version)))
27169 (file-name (git-file-name name version))
27170 (sha256
27171 (base32 "0gaq3z2v1q4r9mkyq71dzmqakhi0p8g7ph4z0n3a11rvyc3z9ykx"))))
27172 (build-system emacs-build-system)
27173 (home-page "https://github.com/doublep/iter2")
27174 (synopsis "Reimplementation of Elisp generators")
27175 (description "@code{iter2} is a fully compatible reimplementation of
27176 built-in generator package. It provides @code{iter2-defun} and
27177 @code{iter2-lambda} forms that can be used in place of @code{iter-defun} and
27178 @code{iter-lambda}. All other functions and macros (e.g. @code{iter-yield},
27179 @code{iter-next}) are intentionally not duplicated: just use the ones from the
27180 original package.")
27181 (license license:gpl3+)))
27182
27183 (define-public emacs-promise
27184 (package
27185 (name "emacs-promise")
27186 (version "1.1")
27187 (source
27188 (origin
27189 (method git-fetch)
27190 (uri (git-reference
27191 (url "https://github.com/chuntaro/emacs-promise")
27192 (commit version)))
27193 (file-name (git-file-name name version))
27194 (sha256
27195 (base32 "1xb34zdbwjvahfhycjphdkm925kgd22dr298c57hwxza4ljc2hxj"))))
27196 (build-system emacs-build-system)
27197 (home-page "https://github.com/chuntaro/emacs-promise")
27198 (synopsis "Promises/A+ for Emacs")
27199 (description "This is a simple implementation of Promises/A+.
27200
27201 This implementation ports the following Promises/A+ features
27202 faithfully. See @url{https://github.com/then/promise}.
27203
27204 @itemize
27205 @item The same API as the JavaScript version of Promise can be used.
27206 @item It has all the @code{then}, @code{catch}, @code{resolve}, @code{reject},
27207 @code{all}, @code{race}, etc.
27208 @item It supports \"thenable\".
27209 @item It supports \"Inheritance of Promise\".
27210 @item It supports \"rejection-tracking\".
27211 @end itemize\n")
27212 (license license:gpl3+)))
27213
27214 (define-public emacs-async-await
27215 (package
27216 (name "emacs-async-await")
27217 (version "1.1")
27218 (source
27219 (origin
27220 (method git-fetch)
27221 (uri (git-reference
27222 (url "https://github.com/chuntaro/emacs-async-await")
27223 (commit version)))
27224 (file-name (git-file-name name version))
27225 (sha256
27226 (base32 "0aav9qdswnw7ynqlzn0sm34as5fj2d85syxgg8zjabzp6646ay29"))))
27227 (build-system emacs-build-system)
27228 (propagated-inputs
27229 `(("promise" ,emacs-promise)
27230 ("iter2" ,emacs-iter2)))
27231 (home-page "https://github.com/chuntaro/emacs-async-await")
27232 (synopsis "Async/Await for Emacs")
27233 (description "This is a simple implementation of Async/Await inspired by
27234 the TypeScript implementation.")
27235 (license license:gpl3+)))
27236
27237 (define-public emacs-rocket-chat
27238 ;; No release.
27239 (let ((commit "96fe27a8678de5ae4061f635108a7192eee13f98"))
27240 (package
27241 (name "emacs-rocket-chat")
27242 (version (git-version "0.0.0" "1" commit))
27243 (source
27244 (origin
27245 (method git-fetch)
27246 (uri (git-reference
27247 (url "https://github.com/4hiziri/rocket-chat")
27248 (commit commit)))
27249 (file-name (git-file-name name version))
27250 (sha256
27251 (base32 "02a4j0yy7330kfr3rd3k2agdj01ii6989nki598anbamq6xvj5ql"))))
27252 (build-system emacs-build-system)
27253 (propagated-inputs
27254 `(("async-await" ,emacs-async-await)
27255 ("request" ,emacs-request)))
27256 (home-page "https://github.com/4hiziri/rocket-chat")
27257 (synopsis "Emacs Rocket.chat client")
27258 (description "This package provides an Emacs client for the Rocket.chat
27259 service.")
27260 (license license:expat))))
27261
27262 (define-public emacs-monokai-theme
27263 (package
27264 (name "emacs-monokai-theme")
27265 (version "3.5.3")
27266 (source
27267 (origin
27268 (method git-fetch)
27269 (uri (git-reference
27270 (url "https://github.com/oneKelvinSmith/monokai-emacs")
27271 (commit (string-append "v" version))))
27272 (file-name (git-file-name name version))
27273 (sha256
27274 (base32 "0dy8c3349j7fmp8052hbgvk0b7ldlv5jqpg0paq1i0hlypivd30i"))))
27275 (build-system emacs-build-system)
27276 (home-page "https://github.com/oneKelvinSmith/monokai-emacs")
27277 (synopsis "High contrast color theme for Emacs")
27278 (description
27279 "Monokai theme is a port of the popular TextMate Monokai theme for
27280 Emacs.")
27281 (license license:gpl3+)))
27282
27283 (define-public emacs-nord-theme
27284 (package
27285 (name "emacs-nord-theme")
27286 (version "0.5.0")
27287 (source
27288 (origin
27289 (method git-fetch)
27290 (uri (git-reference
27291 (url "https://github.com/arcticicestudio/nord-emacs")
27292 (commit (string-append "v" version))))
27293 (file-name (git-file-name name version))
27294 (sha256
27295 (base32 "096f8cik4jz89bvkifwp3gm9iraqrd75ljy2q9js724v7yj88711"))))
27296 (build-system emacs-build-system)
27297 (home-page "https://www.nordtheme.com/")
27298 (synopsis "Low contrast arctic color theme for Emacs")
27299 (description
27300 "Nord is an arctic, north-bluish color scheme created for a clean and
27301 uncluttered design pattern to achieve optimal focus and readability for code
27302 syntax highlighting and UI components.")
27303 (license license:expat)))
27304
27305 (define-public emacs-janet-mode
27306 (let ((commit "2f5bcabcb6953e1ed1926ba6a2328c453e8b4ac7"))
27307 (package
27308 (name "emacs-janet-mode")
27309 (version (git-version "0.1.0" "1" commit))
27310 (source
27311 (origin
27312 (method git-fetch)
27313 (uri (git-reference
27314 (url "https://github.com/ALSchwalm/janet-mode")
27315 (commit commit)))
27316 (file-name (git-file-name name version))
27317 (sha256
27318 (base32 "0qj0gpycv2f3z1dgz1a27bjn983hrr3ppvrp7csl34lagnmp89rz"))))
27319 (build-system emacs-build-system)
27320 (home-page "https://github.com/ALSchwalm/janet-mode")
27321 (synopsis "Emacs major mode for the Janet programming language")
27322 (description
27323 "This package provides an Emacs major mode for editing Janet files.")
27324 (license license:gpl3))))
27325
27326 (define-public emacs-inf-janet
27327 (let ((commit "df46651d3aad32593b2195c80ca91fb64d571fb7"))
27328 (package
27329 (name "emacs-inf-janet")
27330 (version (git-version "0.1.0" "1" commit))
27331 (source
27332 (origin
27333 (method git-fetch)
27334 (uri (git-reference
27335 (url "https://github.com/velkyel/inf-janet")
27336 (commit commit)))
27337 (file-name (git-file-name name version))
27338 (sha256
27339 (base32 "0g0y7q62667j0p32md1h6zb2cap9fga9qgdg7138xwjqnk0328v7"))))
27340 (build-system emacs-build-system)
27341 (propagated-inputs
27342 `(("janet-mode" ,emacs-janet-mode)))
27343 (arguments
27344 `(#:phases
27345 (modify-phases %standard-phases
27346 (add-after 'unpack 'fix-program-name
27347 (lambda _
27348 (make-file-writable "inf-janet.el")
27349 (emacs-substitute-variables "inf-janet.el"
27350 ("inf-janet-program" "janet"))
27351 #t)))))
27352 (home-page "https://github.com/velkyel/inf-janet")
27353 (synopsis "Run an external Janet process in an Emacs buffer")
27354 (description
27355 "This Emacs package provides a Janet REPL to evaluate @code{janet-mode}
27356 s-expression.")
27357 (license license:expat))))
27358
27359 (define-public emacs-map
27360 (package
27361 (name "emacs-map")
27362 (version "3.0")
27363 (source
27364 (origin
27365 (method url-fetch)
27366 (uri (string-append "https://elpa.gnu.org/packages/map-"
27367 version ".tar"))
27368 (sha256
27369 (base32
27370 "00wf8lgh1b1i5l838y6di8194rf5gf5djklkhmxj1nlikz66j2ls"))))
27371 (build-system emacs-build-system)
27372 (home-page "http://elpa.gnu.org/packages/map.html")
27373 (synopsis "Map manipulation functions")
27374 (description "This package provides Emacs map-manipulation functions that
27375 work on alists, hash-table and arrays. All functions are prefixed with
27376 @code{map-}.")
27377 (license license:gpl3+)))
27378
27379 (define-public emacs-xref
27380 (package
27381 (name "emacs-xref")
27382 (version "1.0.4")
27383 (source
27384 (origin
27385 (method url-fetch)
27386 (uri (string-append "https://elpa.gnu.org/packages/"
27387 "xref-" version ".el"))
27388 (sha256
27389 (base32 "0hkm59qqlsfw3w9ws9xhpmmz30ylifmh05a00ba58zvv1kz04x1g"))))
27390 (build-system emacs-build-system)
27391 (home-page "http://elpa.gnu.org/packages/xref.html")
27392 (synopsis "Cross-referencing commands")
27393 (description
27394 "This library provides a generic infrastructure for cross referencing
27395 commands, in particular @code{find-definition}.")
27396 (license license:gpl3+)))
27397
27398 (define-public emacs-burly
27399 (package
27400 (name "emacs-burly")
27401 (version "0.1")
27402 (source
27403 (origin
27404 (method git-fetch)
27405 (uri (git-reference
27406 (url "https://github.com/alphapapa/burly.el")
27407 (commit version)))
27408 (file-name (git-file-name name version))
27409 (sha256
27410 (base32 "1vaikknjzmhpszyi4yxjjkp1ihgmhpbnbx1s5pjy4mnhl1ibi33b"))))
27411 (build-system emacs-build-system)
27412 (propagated-inputs
27413 `(("emacs-map" ,emacs-map)))
27414 (home-page "https://github.com/alphapapa/burly.el")
27415 (synopsis "Save and restore frame/window configurations with buffers")
27416 (description "This package provides tools to save and restore frame and
27417 window configurations in Emacs, including buffers that may not be live
27418 anymore. In this way, it's like a lightweight \"workspace\" manager, allowing
27419 you to easily restore one or more frames, including their windows, the
27420 windows' layout, and their buffers.")
27421 (license license:gpl3+)))
27422
27423 (define-public emacs-smart-hungry-delete
27424 (let ((commit "7c1d56a92481594e14d40b5fdf6c48657a0108a0"))
27425 (package
27426 (name "emacs-smart-hungry-delete")
27427 (version "0.1")
27428 (source
27429 (origin
27430 (method git-fetch)
27431 (uri (git-reference
27432 (url "https://github.com/hrehfeld/emacs-smart-hungry-delete")
27433 (commit commit)))
27434 (file-name (git-file-name name version))
27435 (sha256
27436 (base32
27437 "0mxaslx5823s68a8ggbbnmfk1jiswjvip5s4sg7ihfagnci72wni"))))
27438 (build-system emacs-build-system)
27439 (home-page "https://github.com/hrehfeld/emacs-smart-hungry-delete")
27440 (synopsis "Smart hungry deletion of whitespace")
27441 (description "@code{emacs-smart-hungry-delete} hungrily deletes whitespace
27442 between cursor and next word, parenthesis or delimiter while honoring some
27443 rules about where space should be left to separate words and parentheses.")
27444 (license license:gpl2+))))
27445
27446 (define-public emacs-webpaste
27447 (package
27448 (name "emacs-webpaste")
27449 (version "3.2.0")
27450 (source
27451 (origin
27452 (method git-fetch)
27453 (uri (git-reference
27454 (url "https://github.com/etu/webpaste.el")
27455 (commit version)))
27456 (file-name (git-file-name name version))
27457 (sha256
27458 (base32
27459 "08545ihkzflw80rwklnxiswrpdrl8kr74xzxm5wsgrf36fkj9rn2"))))
27460 (build-system emacs-build-system)
27461 (arguments
27462 `(#:tests? #t
27463 #:test-command '("make" "unit" "integration")
27464 #:phases
27465 (modify-phases %standard-phases
27466 (add-after 'unpack 'fix-tests
27467 (lambda _
27468 ;; Do not use cask to run tests.
27469 (substitute* "Makefile"
27470 (("\\$\\{CASK\\} exec ") ""))
27471 ;; Disable tests that need network access.
27472 (substitute* (list "tests/unit/test-webpaste-provider-creation.el"
27473 "tests/integration/test-webpaste-providers.el")
27474 (("describe") "xdescribe")))))))
27475 (native-inputs
27476 `(("emacs-buttercup" ,emacs-buttercup)))
27477 (propagated-inputs
27478 `(("emacs-request" ,emacs-request)))
27479 (home-page "https://github.com/etu/webpaste.el")
27480 (synopsis "Paste to pastebin-like services")
27481 (description "This mode allows to paste whole buffers or parts of buffers
27482 to pastebin-like services. It supports more than one service and will
27483 failover if one service fails. More services can easily be added over time
27484 and prefered services can easily be configured.")
27485 (license license:gpl3+)))
27486
27487 (define-public emacs-keystore-mode
27488 (let ((release "0.0.1")
27489 (revision "0")
27490 (commit "43bd5926348298d077c7221f37902c990df3f951"))
27491 (package
27492 (name "emacs-keystore-mode")
27493 (version (git-version release revision commit))
27494 (home-page "https://github.com/peterpaul/keystore-mode")
27495 (source
27496 (origin
27497 (method git-fetch)
27498 (uri (git-reference
27499 (url home-page)
27500 (commit commit)))
27501 (file-name (git-file-name name version))
27502 (sha256
27503 (base32 "06cznkqkm04zz5lqfb514aqvsr2p13arzysixv0ss0bqpvdq7cv7"))))
27504 (build-system emacs-build-system)
27505 (arguments
27506 `(#:tests? #t
27507 #:test-command
27508 '("emacs" "--no-init-file" "--batch"
27509 "--eval=(require 'ecukes)" "--eval=(ecukes)")))
27510 (native-inputs
27511 `(("emacs-ecukes" ,emacs-ecukes)
27512 ("emacs-espuds" ,emacs-espuds)
27513 ("emacs-undercover" ,emacs-undercover)
27514 ("openjdk" ,openjdk9)))
27515 (propagated-inputs
27516 `(("emacs-origami" ,emacs-origami-el)
27517 ("emacs-s" ,emacs-s)))
27518 (synopsis "Major mode for viewing and managing Java keystores")
27519 (description
27520 "This package provides an Elisp wrapper around the Java
27521 @command{keytool} command and major mode for viewing Java keystores.")
27522 (license license:expat))))
27523
27524 (define-public emacs-ivy-avy
27525 (package
27526 (name "emacs-ivy-avy")
27527 (version "0.13.4")
27528 (source
27529 (origin
27530 (method url-fetch)
27531 (uri (string-append
27532 "https://elpa.gnu.org/packages/"
27533 "ivy-avy-" version ".tar"))
27534 (sha256
27535 (base32 "1q5caxm4rnh4jy5n88dhkdbx1afsshmfki5dl8xsqbdb3y0zq7yi"))))
27536 (build-system emacs-build-system)
27537 (propagated-inputs
27538 `(("emacs-ivy" ,emacs-ivy)
27539 ("emacs-avy" ,emacs-avy)))
27540 (home-page "https://github.com/abo-abo/swiper")
27541 (synopsis "Avy integration for Ivy")
27542 (description
27543 "This package adds a \"C-'\" binding to Ivy minibuffer that uses Avy.")
27544 (license license:gpl3+)))
27545
27546 (define-public emacs-ivy-hydra
27547 (package
27548 (name "emacs-ivy-hydra")
27549 (version "0.13.5")
27550 (source
27551 (origin
27552 (method url-fetch)
27553 (uri (string-append
27554 "https://elpa.gnu.org/packages/"
27555 "ivy-hydra-" version ".tar"))
27556 (sha256
27557 (base32 "06rln9bnq5hli5rqlm47fb68b8llpqrmzwqqv4rn7mx3854i9a5x"))))
27558 (build-system emacs-build-system)
27559 (propagated-inputs
27560 `(("emacs-ivy" ,emacs-ivy)
27561 ("emacs-hydra" ,emacs-hydra)))
27562 (home-page "https://github.com/abo-abo/swiper")
27563 (synopsis "Additional key bindings for Ivy")
27564 (description
27565 "This package provides the `hydra-ivy/body' command, which is a
27566 quasi-prefix map, with many useful bindings. These bindings are
27567 shorter than usual, using mostly unprefixed keys.")
27568 (license license:gpl3+)))