gnu: emacs-repl-toggle: Update to 0.7.1.
[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 "7.0")
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 "1hryagy2mkx9zgc33mb773ckp5p9bisnny0r78l0h2vc43wanmhz"))))
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.9.0")
2567 (source
2568 (origin
2569 (method url-fetch)
2570 (uri (string-append "https://elpa.gnu.org/packages/ggtags-"
2571 version ".tar"))
2572 (sha256
2573 (base32
2574 "0p79x9g94jynl83ndvqp9349vhgkzxzhnc517r8hn44iqxqf6ghg"))))
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.5")
11013 (source
11014 (origin
11015 (method url-fetch)
11016 (uri (string-append "https://elpa.gnu.org/packages/org-" version ".tar"))
11017 (sha256
11018 (base32 "0h5qhrd984vf17qc227wz68191xfgbpq32dyhw0lcz2d9i0pl3xk"))))
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.5.
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 "20210329")
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 "1l0ycz77hwmjb4sffhabb0d0hg1c9ypxbpbyv8xj5ib4nbi87f2h"))
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 `(#:phases
12490 (modify-phases %standard-phases
12491 (add-after 'unpack 'enter-source-directory
12492 (lambda _
12493 (chdir "lisp"))))))
12494 (propagated-inputs `(("emacs-projectile" ,emacs-projectile)))
12495 (home-page "https://github.com/ejmr/php-mode")
12496 (synopsis "Major mode for editing PHP code")
12497 (description
12498 "PHP mode is a major mode for editing PHP source code. It's an extension
12499 of C mode; thus it inherits all C mode's navigation functionality. But it
12500 colors according to the PHP grammar and indents according to the PEAR coding
12501 guidelines. It also includes a couple handy IDE-type features such as
12502 documentation search and a source and class browser.")
12503 (license license:gpl3+)))
12504
12505 (define-public emacs-pos-tip
12506 (package
12507 (name "emacs-pos-tip")
12508 (version "0.4.6")
12509 (source
12510 (origin
12511 (method git-fetch)
12512 (uri (git-reference
12513 (url "https://github.com/pitkali/pos-tip")
12514 (commit version)))
12515 (file-name (git-file-name name version))
12516 (sha256
12517 (base32 "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33"))))
12518 (build-system emacs-build-system)
12519 ;; The following functions and variables needed by emacs-pos-tip are
12520 ;; not included in emacs-minimal:
12521 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
12522 (arguments `(#:emacs ,emacs))
12523 (home-page "https://github.com/pitkali/pos-tip")
12524 (synopsis "Show tooltip at point")
12525 (description "The standard library tooltip.el provides a function for
12526 displaying a tooltip at the mouse position. However, locating a tooltip at an
12527 arbitrary buffer position in a window is not easy. Pos-tip provides such a
12528 function to be used by other frontend programs.")
12529 (license license:gpl2+)))
12530
12531 (define-public emacs-pyim-basedict
12532 (package
12533 (name "emacs-pyim-basedict")
12534 (version "0.3.1")
12535 (source
12536 (origin
12537 (method git-fetch)
12538 (uri (git-reference
12539 (url "https://github.com/tumashu/pyim-basedict")
12540 (commit (string-append "v" version))))
12541 (file-name (git-file-name name version))
12542 (sha256
12543 (base32 "0576r8ap9gp91ycjf1d47pn13kxp0f9fysn09zlq44hr0s1y2y5d"))))
12544 (build-system emacs-build-system)
12545 (home-page "https://github.com/tumashu/pyim-basedict")
12546 (synopsis "Input method dictionary of pyim")
12547 (description "Pyim-basedict is the default pinyin input method dictionary,
12548 containing words from the Rime project.")
12549 (license license:gpl2+)))
12550
12551 (define-public emacs-pyim
12552 (package
12553 (name "emacs-pyim")
12554 (version "3.2")
12555 (source
12556 (origin
12557 (method url-fetch)
12558 (uri (string-append "https://elpa.gnu.org/packages/pyim-" version ".tar"))
12559 (sha256
12560 (base32 "1rr9mq334dqf7mx1ii7910zkigw7chl63iws4sw0qsn014kjlb0a"))))
12561 (build-system emacs-build-system)
12562 (propagated-inputs
12563 `(("emacs-async" ,emacs-async)
12564 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
12565 ("emacs-popup" ,emacs-popup)
12566 ("emacs-posframe" ,emacs-posframe)
12567 ("emacs-xr" ,emacs-xr)))
12568 (home-page "https://github.com/tumashu/pyim")
12569 (synopsis "Chinese input method")
12570 (description
12571 "This package provides a Chinese input method which supports quanpin,
12572 shuangpin, wubi and cangjie.")
12573 (license license:gpl2+)))
12574
12575 (define-public emacs-posframe
12576 (package
12577 (name "emacs-posframe")
12578 (version "0.9.0")
12579 (source
12580 (origin
12581 (method url-fetch)
12582 (uri (string-append "https://elpa.gnu.org/packages/"
12583 "posframe-" version ".tar"))
12584 (sha256
12585 (base32 "14x63713lbvmp24733j7pqkwvcnhpcgv7pprr8sykan3jnjnnzh3"))))
12586 (build-system emacs-build-system)
12587 ;; emacs-minimal does not include the function font-info.
12588 (arguments
12589 `(#:emacs ,emacs))
12590 (home-page "https://github.com/tumashu/posframe")
12591 (synopsis "Pop a posframe (a child frame) at point")
12592 (description
12593 "Posframe can pop a posframe at point. A posframe is a child frame
12594 displayed within its root window's buffer. Posframe is fast and works well
12595 with CJK languages.")
12596 (license license:gpl3+)))
12597
12598 (define-public emacs-el2org
12599 (package
12600 (name "emacs-el2org")
12601 (version "0.6.0")
12602 (source
12603 (origin
12604 (method git-fetch)
12605 (uri (git-reference
12606 (url "https://github.com/tumashu/el2org")
12607 (commit (string-append "v" version))))
12608 (file-name (git-file-name name version))
12609 (sha256
12610 (base32 "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b"))))
12611 (build-system emacs-build-system)
12612 (home-page "https://github.com/tumashu/el2org")
12613 (synopsis "Convert Emacs-lisp file to org file")
12614 (description "El2org is a simple tool, which can convert Emacs-lisp file
12615 to org file, you can use this tool to write orgify commentary.")
12616 (license license:gpl2+)))
12617
12618 (define-public emacs-mustache
12619 (package
12620 (name "emacs-mustache")
12621 (version "0.23")
12622 (source
12623 (origin
12624 (method git-fetch)
12625 (uri (git-reference
12626 (url "https://github.com/Wilfred/mustache.el")
12627 (commit version)))
12628 (file-name (git-file-name name version))
12629 (sha256
12630 (base32 "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"))))
12631 (build-system emacs-build-system)
12632 (propagated-inputs
12633 `(("emacs-dash" ,emacs-dash)
12634 ("emacs-ht" ,emacs-ht)
12635 ("emacs-s" ,emacs-s)))
12636 (home-page "https://github.com/Wilfred/mustache.el")
12637 (synopsis "Mustache templating library for Emacs")
12638 (description "Mustache templating library for Emacs, mustache is
12639 a simple web template system, which is described as a logic-less system
12640 because it lacks any explicit control flow statements, both looping and
12641 conditional evaluation can be achieved using section tags processing lists
12642 and lambdas.")
12643 (license license:gpl3+)))
12644
12645 (define-public emacs-org2web
12646 (package
12647 (name "emacs-org2web")
12648 (version "0.9.1")
12649 (source
12650 (origin
12651 (method git-fetch)
12652 (uri (git-reference
12653 (url "https://github.com/tumashu/org2web")
12654 (commit (string-append "v" version))))
12655 (file-name (git-file-name name version))
12656 (sha256
12657 (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"))))
12658 (build-system emacs-build-system)
12659 (propagated-inputs
12660 `(("emacs-dash" ,emacs-dash)
12661 ("emacs-el2org" ,emacs-el2org)
12662 ("emacs-ht" ,emacs-ht)
12663 ("emacs-mustache" ,emacs-mustache)
12664 ("emacs-simple-httpd" ,emacs-simple-httpd)))
12665 (home-page "https://github.com/tumashu/org2web")
12666 (synopsis "Static site generator based on org-mode ")
12667 (description "Org2web is a static site generator based on org-mode,
12668 which code derived from Kelvin H's org-page.")
12669 (license license:gpl2+)))
12670
12671 (define-public emacs-xelb
12672 (package
12673 (name "emacs-xelb")
12674 (version "0.18")
12675 (source (origin
12676 (method url-fetch)
12677 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
12678 version ".tar"))
12679 (sha256
12680 (base32
12681 "1fp5mzl63sh0h3ws4l5p4qgvi7ny8a3fj6k4dhqa98xgw2bx03v7"))))
12682 (build-system emacs-build-system)
12683 ;; The following functions and variables needed by emacs-xelb are
12684 ;; not included in emacs-minimal:
12685 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
12686 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
12687 ;; x-display-pixel-width, x-display-pixel-height
12688 (arguments
12689 `(#:emacs ,emacs
12690 #:phases
12691 (modify-phases %standard-phases
12692 (add-after 'unpack 'regenerate-el-files
12693 (lambda* (#:key inputs #:allow-other-keys)
12694 (invoke "make"
12695 (string-append "PROTO_PATH="
12696 (assoc-ref inputs "xcb-proto")
12697 "/share/xcb")
12698 (string-append "EMACS_BIN="
12699 (assoc-ref inputs "emacs")
12700 "/bin/emacs -Q")))))))
12701 (native-inputs `(("xcb-proto" ,xcb-proto)))
12702 (home-page "https://github.com/ch11ng/xelb")
12703 (synopsis "X protocol Emacs Lisp binding")
12704 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
12705 X11 protocol based on the XML description files from the XCB project. It
12706 features an object-oriented API and permits a certain degree of concurrency.
12707 It should enable you to implement low-level X11 applications.")
12708 (license license:gpl3+)))
12709
12710 (define-public emacs-exwm
12711 (package
12712 (name "emacs-exwm")
12713 (version "0.24")
12714 (synopsis "Emacs X window manager")
12715 (source
12716 (origin
12717 (method url-fetch)
12718 (uri (string-append "https://elpa.gnu.org/packages/"
12719 "exwm-" version ".tar"))
12720 (sha256
12721 (base32 "0lj1a3cmbpf4h6x8k6x8cdm1qb51ca6filydnvi5zcda8zpl060s"))
12722 (patches
12723 ;; Patch fixing fullscreen view. Applied upstream as
12724 ;; edb930005b0ba83051ca8a59b493e9a3c8ef580a. It can be removed in
12725 ;; next release.
12726 (search-patches "emacs-exwm-fix-fullscreen-states.patch"))))
12727 (build-system emacs-build-system)
12728 (propagated-inputs
12729 `(("emacs-xelb" ,emacs-xelb)))
12730 (inputs
12731 `(("xhost" ,xhost)
12732 ("dbus" ,dbus)))
12733 ;; The following functions and variables needed by emacs-exwm are
12734 ;; not included in emacs-minimal:
12735 ;; scroll-bar-mode, fringe-mode
12736 ;; x-display-pixel-width, x-display-pixel-height
12737 (arguments
12738 `(#:emacs ,emacs
12739 #:phases
12740 (modify-phases %standard-phases
12741 (add-after 'build 'install-xsession
12742 (lambda* (#:key inputs outputs #:allow-other-keys)
12743 (let* ((out (assoc-ref outputs "out"))
12744 (xsessions (string-append out "/share/xsessions"))
12745 (bin (string-append out "/bin"))
12746 (exwm-executable (string-append bin "/exwm")))
12747 ;; Add a .desktop file to xsessions
12748 (mkdir-p xsessions)
12749 (mkdir-p bin)
12750 (make-desktop-entry-file
12751 (string-append xsessions "/exwm.desktop")
12752 #:name ,name
12753 #:comment ,synopsis
12754 #:exec exwm-executable
12755 #:try-exec exwm-executable)
12756 ;; Add a shell wrapper to bin
12757 (with-output-to-file exwm-executable
12758 (lambda _
12759 (format #t "#!~a ~@
12760 ~a +SI:localuser:$USER ~@
12761 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
12762 (string-append (assoc-ref inputs "bash") "/bin/sh")
12763 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
12764 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
12765 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
12766 '(cond
12767 ((file-exists-p "~/.exwm")
12768 (load-file "~/.exwm"))
12769 ((not (featurep 'exwm))
12770 (require 'exwm)
12771 (require 'exwm-config)
12772 (exwm-config-default)
12773 (message (concat "exwm configuration not found. "
12774 "Falling back to default configuration...")))))))
12775 (chmod exwm-executable #o555)
12776 #t))))))
12777 (home-page "https://github.com/ch11ng/exwm")
12778 (description
12779 "EXWM is a full-featured tiling X window manager for Emacs built on top
12780 of XELB.")
12781 (license license:gpl3+)))
12782
12783 (define-public emacs-xelb-no-x-toolkit
12784 (package
12785 (inherit emacs-xelb)
12786 (name "emacs-xelb-no-x-toolkit")
12787 (arguments
12788 (substitute-keyword-arguments (package-arguments emacs-xelb)
12789 ((#:emacs emacs) `,emacs-no-x-toolkit)))))
12790
12791 (define-public emacs-exwm-no-x-toolkit
12792 (package
12793 (inherit emacs-exwm)
12794 (name "emacs-exwm-no-x-toolkit")
12795 (synopsis "Emacs X window manager (without an X toolkit)")
12796 (propagated-inputs
12797 `(("emacs-xelb-no-x-toolkit" ,emacs-xelb-no-x-toolkit)))
12798 (arguments
12799 (substitute-keyword-arguments (package-arguments emacs-exwm)
12800 ((#:emacs emacs) `,emacs-no-x-toolkit)))))
12801
12802 (define-public emacs-switch-window
12803 (package
12804 (name "emacs-switch-window")
12805 (version "1.6.2")
12806 (source
12807 (origin
12808 (method git-fetch)
12809 (uri (git-reference
12810 (url "https://github.com/dimitri/switch-window")
12811 (commit (string-append "v" version))))
12812 (file-name (git-file-name name version))
12813 (sha256
12814 (base32
12815 "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
12816 (build-system emacs-build-system)
12817 (home-page "https://github.com/dimitri/switch-window")
12818 (synopsis "Emacs window switch tool")
12819 (description "Switch-window is an emacs window switch tool, which
12820 offer a visual way to choose a window to switch to, delete, split or
12821 other operations.")
12822 (license license:wtfpl2)))
12823
12824 (define-public emacs-exwm-x
12825 (package
12826 (name "emacs-exwm-x")
12827 (version "1.9.0")
12828 (synopsis "Derivative window manager based on EXWM")
12829 (source
12830 (origin
12831 (method git-fetch)
12832 (uri (git-reference
12833 (url "https://github.com/tumashu/exwm-x")
12834 (commit (string-append "v" version))))
12835 (file-name (git-file-name name version))
12836 (sha256
12837 (base32
12838 "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4"))))
12839 (build-system emacs-build-system)
12840 (propagated-inputs
12841 `(("emacs-counsel" ,emacs-counsel)
12842 ("emacs-exwm" ,emacs-exwm)
12843 ("emacs-switch-window" ,emacs-switch-window)
12844 ("emacs-use-package" ,emacs-use-package)))
12845 (inputs
12846 `(("xhost" ,xhost)
12847 ("dbus" ,dbus)))
12848 ;; Need emacs instead of emacs-minimal,
12849 ;; for emacs's bin path will be inserted into bin/exwm-x file.
12850 (arguments
12851 `(#:emacs ,emacs
12852 #:phases
12853 (modify-phases %standard-phases
12854 (add-after 'build 'install-xsession
12855 (lambda* (#:key inputs outputs #:allow-other-keys)
12856 (let* ((out (assoc-ref outputs "out"))
12857 (xsessions (string-append out "/share/xsessions"))
12858 (bin (string-append out "/bin"))
12859 (exwm-executable (string-append bin "/exwm-x")))
12860 ;; Add a .desktop file to xsessions
12861 (mkdir-p xsessions)
12862 (mkdir-p bin)
12863 (with-output-to-file
12864 (string-append xsessions "/exwm-x.desktop")
12865 (lambda _
12866 (format #t "[Desktop Entry]~@
12867 Name=~a~@
12868 Comment=~a~@
12869 Exec=~a~@
12870 TryExec=~@*~a~@
12871 Type=Application~%" ,name ,synopsis exwm-executable)))
12872 ;; Add a shell wrapper to bin
12873 (with-output-to-file exwm-executable
12874 (lambda _
12875 (format #t "#!~a ~@
12876 ~a +SI:localuser:$USER ~@
12877 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
12878 (string-append (assoc-ref inputs "bash") "/bin/sh")
12879 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
12880 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
12881 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
12882 '(require 'exwmx-loader))))
12883 (chmod exwm-executable #o555)
12884 #t))))))
12885 (home-page "https://github.com/tumashu/exwm-x")
12886 (description "EXWM-X is a derivative window manager based on EXWM, with focus
12887 on mouse-control.")
12888 (license license:gpl3+)))
12889
12890 (define-public emacs-gnugo
12891 (package
12892 (name "emacs-gnugo")
12893 (version "3.1.0")
12894 (source
12895 (origin
12896 (method url-fetch)
12897 (uri (string-append "https://elpa.gnu.org/packages/gnugo-"
12898 version ".tar"))
12899 (sha256
12900 (base32
12901 "0xpjvs250gg71qwapdsb1hlc61gs0gpkjds01srf784fvyxx2gf1"))))
12902 (build-system emacs-build-system)
12903 (arguments
12904 `(#:phases (modify-phases %standard-phases
12905 (add-after 'unpack 'configure-default-gnugo-xpms-variable
12906 (lambda _
12907 (substitute* "gnugo.el"
12908 (("defvar gnugo-xpms nil")
12909 "defvar gnugo-xpms #'gnugo-imgen-create-xpms"))
12910 #t)))))
12911 (propagated-inputs
12912 `(("emacs-ascii-art-to-unicode" ,emacs-ascii-art-to-unicode)
12913 ("emacs-xpm" ,emacs-xpm)))
12914 (home-page "https://elpa.gnu.org/packages/gnugo.html")
12915 (synopsis "Emacs major mode for playing GNU Go")
12916 (description "This package provides an Emacs based interface for GNU Go.
12917 It has a graphical mode where the board and stones are drawn using XPM images
12918 and supports the use of a mouse.")
12919 (license license:gpl3+)))
12920
12921 (define-public emacs-gnuplot
12922 (package
12923 (name "emacs-gnuplot")
12924 (version "0.8.0")
12925 (source
12926 (origin
12927 (method git-fetch)
12928 (uri (git-reference
12929 (url "https://github.com/emacsorphanage/gnuplot-mode")
12930 (commit version)))
12931 (file-name (git-file-name name version))
12932 (sha256
12933 (base32 "09y177sq24gs7wwjihw59g0m4n1rv2ws9890ynxjxawv823r0fxm"))))
12934 (build-system emacs-build-system)
12935 (home-page "https://github.com/emacsorphanage/gnuplot-mode")
12936 (synopsis "Emacs major mode for interacting with Gnuplot")
12937 (description
12938 "Emacs Gnuplot is an Emacs major mode for interacting with Gnuplot.")
12939 (license license:gpl2+)))
12940
12941 (define-public emacs-transpose-frame
12942 (package
12943 (name "emacs-transpose-frame")
12944 (version "0.2.0")
12945 (source
12946 (origin
12947 (method git-fetch)
12948 (uri (git-reference
12949 (url "https://github.com/emacsorphanage/transpose-frame")
12950 (commit (string-append "v" version))))
12951 (file-name (git-file-name name version))
12952 (sha256
12953 (base32 "01j4ci0c52r2c31hc9r4p7nsb6s8blmvg50g9n5v5h3afjl1c35v"))))
12954 (build-system emacs-build-system)
12955 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
12956 (synopsis "Transpose window arrangement in current frame")
12957 (description "@code{emacs-transpose-frame} provides some interactive
12958 functions which allows users to transpose windows arrangement in currently
12959 selected frame.")
12960 (license license:bsd-2)))
12961
12962 (define-public emacs-key-chord
12963 (package
12964 (name "emacs-key-chord")
12965 (version "0.6")
12966 (source
12967 (origin
12968 (method url-fetch)
12969 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
12970 (file-name (string-append "key-chord-" version ".el"))
12971 (sha256
12972 (base32
12973 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
12974 (build-system emacs-build-system)
12975 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
12976 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
12977 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
12978 mode for binding key chords to commands. A key chord is defined as two keys
12979 pressed simultaneously or a single key quickly pressed twice.")
12980 (license license:gpl2+)))
12981
12982 (define-public emacs-evil-surround
12983 (package
12984 (name "emacs-evil-surround")
12985 (version "1.1.1")
12986 (source
12987 (origin
12988 (method git-fetch)
12989 (uri (git-reference
12990 (url "https://github.com/emacs-evil/evil-surround")
12991 (commit version)))
12992 (file-name (git-file-name name version))
12993 (sha256
12994 (base32 "1gfgmr4909m36gknprcam6q4rkcqfbi6w43ky7x6jnlmgb6mxggg"))))
12995 (build-system emacs-build-system)
12996 (propagated-inputs
12997 `(("emacs-evil" ,emacs-evil)))
12998 (arguments
12999 `(#:tests? #t
13000 #:test-command '("make" "test")))
13001 (home-page "https://github.com/emacs-evil/evil-surround")
13002 (synopsis "Easily modify surrounding parentheses and quotes")
13003 (description "@code{emacs-evil-surround} allows easy deletion, change and
13004 addition of surrounding pairs, such as parentheses and quotes, in evil mode.")
13005 (license license:gpl3+)))
13006
13007 (define-public emacs-evil-commentary
13008 (package
13009 (name "emacs-evil-commentary")
13010 (version "2.1.1")
13011 (source
13012 (origin
13013 (method git-fetch)
13014 (uri (git-reference
13015 (url "https://github.com/linktohack/evil-commentary")
13016 (commit (string-append "v" version))))
13017 (file-name (git-file-name name version))
13018 (sha256
13019 (base32 "0zjs9zyqfygnpxapvf0ymmiid40i06cxbhjzd81zw33nafgkf6r4"))))
13020 (build-system emacs-build-system)
13021 (propagated-inputs
13022 `(("emacs-evil" ,emacs-evil)))
13023 (home-page "https://github.com/linktohack/evil-commentary")
13024 (synopsis "Comment out code in evil mode")
13025 (description "@code{emacs-evil-commentary} adds keybindings to easily
13026 comment out lines of code in evil mode. It provides @code{gcc} to comment out
13027 lines, and @code{gc} to comment out the target of a motion.")
13028 (license license:gpl3+)))
13029
13030 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
13031 ;; therefore cannot be run
13032 (define-public emacs-ansi
13033 (let ((commit "a41d5cc719297515d85bb5256980cd1204a71b88")
13034 (revision "1"))
13035 (package
13036 (name "emacs-ansi")
13037 (version (git-version "0.4.1" revision commit))
13038 (source
13039 (origin
13040 (method git-fetch)
13041 (uri (git-reference
13042 (url "https://github.com/rejeep/ansi.el")
13043 (commit commit)))
13044 (file-name (git-file-name name version))
13045 (sha256
13046 (base32 "051v8dmji90chwbsyqsqry7h35mksal2j6rgw1kpmjsni86d79y1"))))
13047 (build-system emacs-build-system)
13048 (propagated-inputs
13049 `(("emacs-dash" ,emacs-dash)
13050 ("emacs-s" ,emacs-s)))
13051 (home-page "https://github.com/rejeep/ansi.el")
13052 (synopsis "Convert strings to ANSI")
13053 (description "@code{emacs-ansi} defines functions that turns simple
13054 strings to ANSI strings. Turning a string into an ANSI string can be to add
13055 color to a text, add color in the background of a text or adding a style, such
13056 as bold, underscore or italic.")
13057 (license license:gpl3+))))
13058
13059 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
13060 ;; therefore cannot be run
13061 (define-public emacs-commander
13062 (package
13063 (name "emacs-commander")
13064 (version "0.7.0")
13065 (source
13066 (origin
13067 (method git-fetch)
13068 (uri (git-reference
13069 (url "https://github.com/rejeep/commander.el")
13070 (commit (string-append "v" version))))
13071 (file-name (git-file-name name version))
13072 (sha256
13073 (base32 "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45"))))
13074 (build-system emacs-build-system)
13075 (propagated-inputs
13076 `(("emacs-dash" ,emacs-dash)
13077 ("emacs-f" ,emacs-f)
13078 ("emacs-s" ,emacs-s)))
13079 (home-page "https://github.com/rejeep/commander.el")
13080 (synopsis "Emacs command line parser")
13081 (description "@code{emacs-commander} provides command line parsing for
13082 Emacs.")
13083 (license license:gpl3+)))
13084
13085 (define-public emacs-eglot
13086 (package
13087 (name "emacs-eglot")
13088 (version "1.7")
13089 (source
13090 (origin
13091 (method url-fetch)
13092 (uri (string-append "https://elpa.gnu.org/packages/"
13093 "eglot-" version ".tar"))
13094 (sha256
13095 (base32 "1zvs144hxq2mmq1h0ynx9hy7yyccb46f3pjg9mgq8v9cw5y678vk"))))
13096 (build-system emacs-build-system)
13097 (propagated-inputs
13098 `(("emacs-eldoc" ,emacs-eldoc)
13099 ("emacs-jsonrpc" ,emacs-jsonrpc)
13100 ("emacs-project" ,emacs-project)))
13101 (home-page "https://github.com/joaotavora/eglot")
13102 (synopsis "Client for Language Server Protocol (LSP) servers")
13103 (description
13104 "Emacs Polyglot, or Eglot, is an Emacs @acronym{Language Server Protocol,
13105 LSP} client that stays out of the way. It guesses the LSP program to start
13106 for the current file, using the major mode as a hint. It prompts you to enter
13107 one if it fails.")
13108 (license license:gpl3+)))
13109
13110 (define-public emacs-eldoc
13111 (package
13112 (name "emacs-eldoc")
13113 (version "1.11.0")
13114 (source
13115 (origin
13116 (method url-fetch)
13117 (uri (string-append
13118 "https://elpa.gnu.org/packages/eldoc-" version ".el"))
13119 (sha256
13120 (base32 "1py9l1vl7s90y5kfpglhy11jswam2gcrqap09h6wb5ldnyb8cgq2"))))
13121 (build-system emacs-build-system)
13122 (home-page "http://elpa.gnu.org/packages/eldoc.html")
13123 (synopsis "Show function arglist or variable docstring in echo area")
13124 (description
13125 "This program was inspired by the behavior of the ``mouse documentation
13126 window'' on many Lisp Machine systems; as you type a function's symbol name as
13127 part of a sexp, it will print the argument list for that function. Behavior
13128 is not identical; for example, you need not actually type the function name,
13129 you need only move point around in a sexp that calls it. Also, if point is
13130 over a documented variable, it will print the one-line documentation for that
13131 variable instead, to remind you of that variable's meaning.")
13132 (license license:gpl3+)))
13133
13134 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
13135 ;; cannot be run
13136 (define-public emacs-ert-runner
13137 (package
13138 (name "emacs-ert-runner")
13139 (version "0.8.0")
13140 (source
13141 (origin
13142 (method git-fetch)
13143 (uri (git-reference
13144 (url "https://github.com/rejeep/ert-runner.el")
13145 (commit (string-append "v" version))))
13146 (file-name (git-file-name name version))
13147 (sha256
13148 (base32
13149 "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98"))))
13150 (build-system emacs-build-system)
13151 (inputs
13152 `(("emacs-ansi" ,emacs-ansi)
13153 ("emacs-commander" ,emacs-commander)
13154 ("emacs-dash" ,emacs-dash)
13155 ("emacs-f" ,emacs-f)
13156 ("emacs-s" ,emacs-s)
13157 ("emacs-shut-up" ,emacs-shut-up)))
13158 (arguments
13159 `(#:phases
13160 (modify-phases %standard-phases
13161 (add-after 'install 'install-executable
13162 (lambda* (#:key inputs outputs #:allow-other-keys)
13163 (let ((out (assoc-ref outputs "out"))
13164 (source-directory (string-append
13165 (getenv "TMPDIR") "/source")))
13166 (substitute* "bin/ert-runner"
13167 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
13168 (string-append "ERT_RUNNER=\"" out
13169 "/share/emacs/site-lisp")))
13170 (install-file "bin/ert-runner" (string-append out "/bin"))
13171 (wrap-program (string-append out "/bin/ert-runner")
13172 (list "EMACSLOADPATH" ":" 'prefix
13173 ;; Do not capture the transient source directory in
13174 ;; the wrapper.
13175 (delete source-directory
13176 (string-split (getenv "EMACSLOADPATH") #\:))))
13177 #t))))
13178 #:include (cons* "^reporters/.*\\.el$" %default-include)))
13179 (home-page "https://github.com/rejeep/ert-runner.el")
13180 (synopsis "Opinionated Ert testing workflow")
13181 (description "@code{ert-runner} is a tool for Emacs projects tested
13182 using ERT. It assumes a certain test structure setup and can therefore make
13183 running tests easier.")
13184 (license license:gpl3+)))
13185
13186 (define-public emacs-xtest
13187 (package
13188 (name "emacs-xtest")
13189 (version "1.1.0")
13190 (source (origin
13191 (method git-fetch)
13192 (uri (git-reference
13193 (url "https://github.com/promethial/xtest")
13194 (commit (string-append "v" version))))
13195 (file-name (git-file-name name version))
13196 (sha256
13197 (base32
13198 "1wqx6hlqcmqiljydih5fx89dw06g8w728pyn4iqsap8jwgjngb09"))))
13199 (arguments
13200 `(#:exclude '()))
13201 (build-system emacs-build-system)
13202 (home-page "https://github.com/promethial/xtest/")
13203 (synopsis "Simple testing with Emacs")
13204 (description "This package provides a simple testing library for Emacs.")
13205 (license license:gpl3+)))
13206
13207 (define-public emacs-disable-mouse
13208 (package
13209 (name "emacs-disable-mouse")
13210 (version "0.3")
13211 (source
13212 (origin
13213 (method git-fetch)
13214 (uri (git-reference
13215 (url "https://github.com/purcell/disable-mouse")
13216 (commit version)))
13217 (file-name (git-file-name name version))
13218 (sha256
13219 (base32 "0l6mai68ns3qw3rlvjvzsnqwdy7bxqiy0vdwflq0l1plxb1vazyc"))))
13220 (build-system emacs-build-system)
13221 (home-page "https://github.com/purcell/disable-mouse")
13222 (synopsis "Disable mouse commands globally")
13223 (description
13224 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
13225 pair of minor modes which suppress all mouse events by intercepting them and
13226 running a customisable handler command (@code{ignore} by default). ")
13227 (license license:gpl3+)))
13228
13229 (define-public emacs-json-reformat
13230 (package
13231 (name "emacs-json-reformat")
13232 (version "0.0.6")
13233 (source
13234 (origin
13235 (method git-fetch)
13236 (uri (git-reference
13237 (url "https://github.com/gongo/json-reformat")
13238 (commit version)))
13239 (file-name (git-file-name name version))
13240 (sha256
13241 (base32 "0qp4n2k6s69jj4gwwimkpadjv245y54wk3bxb1x96f034gkp81vs"))
13242 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
13243 (build-system emacs-build-system)
13244 (propagated-inputs
13245 `(("emacs-undercover" ,emacs-undercover)))
13246 (native-inputs
13247 `(("emacs-dash" ,emacs-dash)
13248 ("emacs-shut-up" ,emacs-shut-up)
13249 ("ert-runner" ,emacs-ert-runner)))
13250 (arguments
13251 `(#:tests? #t
13252 #:test-command '("ert-runner")
13253 #:phases
13254 (modify-phases %standard-phases
13255 (add-before 'check 'make-tests-writable
13256 (lambda _
13257 (for-each make-file-writable (find-files "test"))
13258 #t))
13259 (add-before 'check 'delete-json-objects-order-test
13260 (lambda _
13261 (emacs-batch-edit-file "test/json-reformat-test.el"
13262 `(progn (progn (goto-char (point-min))
13263 (re-search-forward
13264 "ert-deftest json-reformat-test:json-reformat-region")
13265 (beginning-of-line)
13266 (kill-sexp))
13267 (basic-save-buffer)))
13268 #t)))))
13269 (home-page "https://github.com/gongo/json-reformat")
13270 (synopsis "Reformatting tool for JSON")
13271 (description "@code{json-reformat} provides a reformatting tool for
13272 @url{http://json.org/, JSON}.")
13273 (license license:gpl3+)))
13274
13275 (define-public emacs-json-snatcher
13276 (package
13277 (name "emacs-json-snatcher")
13278 (version "1.0.0")
13279 (source
13280 (origin
13281 (method git-fetch)
13282 (uri (git-reference
13283 (url "https://github.com/Sterlingg/json-snatcher")
13284 (commit version)))
13285 (file-name (git-file-name name version))
13286 (sha256
13287 (base32 "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw"))))
13288 (build-system emacs-build-system)
13289 (home-page "https://github.com/sterlingg/json-snatcher")
13290 (synopsis "Grabs the path to JSON values in a JSON file")
13291 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
13292 a @url{http://json.org/, JSON} file.")
13293 (license license:gpl3+)))
13294
13295 (define-public emacs-json-mode
13296 (package
13297 (name "emacs-json-mode")
13298 (version "1.7.0")
13299 (source
13300 (origin
13301 (method git-fetch)
13302 (uri (git-reference
13303 (url "https://github.com/joshwnj/json-mode")
13304 (commit (string-append "v" version))))
13305 (file-name (git-file-name name version))
13306 (sha256
13307 (base32 "0i79lqzdg59vkqwjd3q092xxn9vhxspb1vn4pkis0vfvn46g01jy"))))
13308 (build-system emacs-build-system)
13309 (propagated-inputs
13310 `(("emacs-json-reformat" ,emacs-json-reformat)
13311 ("emacs-json-snatcher" ,emacs-json-snatcher)))
13312 (home-page "https://github.com/joshwnj/json-mode")
13313 (synopsis "Major mode for editing JSON files")
13314 (description "@code{json-mode} extends the builtin js-mode syntax
13315 highlighting.")
13316 (license license:gpl3+)))
13317
13318 (define-public emacs-jsonrpc
13319 (package
13320 (name "emacs-jsonrpc")
13321 (version "1.0.14")
13322 (source
13323 (origin
13324 (method url-fetch)
13325 (uri (string-append "https://elpa.gnu.org/packages/"
13326 "jsonrpc-" version ".el"))
13327 (sha256
13328 (base32 "069l0sqkambam4ikj9id36kdw1jdjna8v586d51m64hiz96rmvm6"))))
13329 (build-system emacs-build-system)
13330 (home-page "http://elpa.gnu.org/packages/jsonrpc.html")
13331 (synopsis "JSON-RPC library")
13332 (description
13333 "This library implements the JSONRPC 2.0 specification as
13334 described in @url{http://www.jsonrpc.org/}. As the name suggests,
13335 JSONRPC is a generic Remote Procedure Call protocol designed around
13336 JSON objects.")
13337 (license license:gpl3+)))
13338
13339 (define-public emacs-jsonnet-mode
13340 (package
13341 (name "emacs-jsonnet-mode")
13342 (version "0.1.2")
13343 (source
13344 (origin
13345 (method git-fetch)
13346 (uri (git-reference
13347 (url "https://github.com/tminor/jsonnet-mode")
13348 (commit (string-append "v" version))))
13349 (file-name (git-file-name name version))
13350 (sha256
13351 (base32
13352 "0vi7415n90d1z2ww1hld0gdp6v7z4rd6f70h476dp2x4hydk293i"))))
13353 (build-system emacs-build-system)
13354 (propagated-inputs
13355 `(("emacs-dash" ,emacs-dash)))
13356 (home-page "https://github.com/tminor/jsonnet-mode")
13357 (synopsis "Major mode for editing jsonnet files")
13358 (description "This package provides syntax highlighting, indenting,
13359 formatting, and utility methods for jsonnet files.")
13360 (license license:gpl3+)))
13361
13362 (define-public emacs-restclient
13363 (let ((commit "ac8aad6c6b9e9d918062fa3c89c22c2f4ec48bc3")
13364 (version "0")
13365 (revision "3")) ;Guix package revision,
13366 ;upstream doesn't have official releases
13367 (package
13368 (name "emacs-restclient")
13369 (version (git-version version revision commit))
13370 (source (origin
13371 (method git-fetch)
13372 (uri (git-reference
13373 (url "https://github.com/pashky/restclient.el")
13374 (commit commit)))
13375 (sha256
13376 (base32
13377 "1a2c7xzy7rsan1zcdskia6m7n6j29xacfkqjlfdhzk6rr1bpzkwk"))
13378 (file-name (git-file-name name version))))
13379 (build-system emacs-build-system)
13380 (propagated-inputs
13381 `(("emacs-helm" ,emacs-helm)
13382 ("emacs-jq-mode" ,emacs-jq-mode)))
13383 (home-page "https://github.com/pashky/restclient.el")
13384 (synopsis "Explore and test HTTP REST webservices")
13385 (description
13386 "This tool allows for testing and exploration of HTTP REST Web services
13387 from within Emacs. Restclient runs queries from a plan-text query sheet,
13388 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
13389 (license license:public-domain))))
13390
13391 (define-public emacs-jq-mode
13392 (package
13393 (name "emacs-jq-mode")
13394 (version "0.5.0")
13395 (source
13396 (origin
13397 (method git-fetch)
13398 (uri (git-reference
13399 (url "https://github.com/ljos/jq-mode")
13400 (commit (string-append "v" version))))
13401 (file-name (git-file-name name version))
13402 (sha256
13403 (base32 "0xk0if5i9cz4w06lx8v1vdm112pn1ybqgfw048sx15yyvfzgril1"))))
13404 (build-system emacs-build-system)
13405 (home-page "https://github.com/ljos/jq-mode")
13406 (synopsis "Major mode for editing jq queries")
13407 (description
13408 "Jq mode is an Emacs major mode for editing jq-scripts.")
13409 (license license:gpl3+)))
13410
13411 (define-public emacs-whitespace-cleanup-mode
13412 (let ((commit "72427144b054b0238a86e1348c45d986b8830d9d")
13413 (revision "1"))
13414 (package
13415 (name "emacs-whitespace-cleanup-mode")
13416 (version (git-version "0.10" revision commit))
13417 (source (origin
13418 (method git-fetch)
13419 (uri (git-reference
13420 (url "https://github.com/purcell/whitespace-cleanup-mode")
13421 (commit commit)))
13422 (sha256
13423 (base32
13424 "1zlk534jbwrsabcg3kqlzk4h4hwya60lh6q2n1v4yn4rpf5ghsag"))
13425 (file-name (git-file-name name version))))
13426 (build-system emacs-build-system)
13427 (home-page "https://github.com/purcell/whitespace-cleanup-mode")
13428 (synopsis "Intelligently call @code{whitespace-cleanup} on save")
13429 (description
13430 "This package provides a minor mode that calls
13431 @code{whitespace-cleanup} before saving the current buffer only if the
13432 whitespace in the buffer was initially clean.")
13433 (license license:gpl3+))))
13434
13435 (define-public emacs-eimp
13436 (let ((version "1.4.0")
13437 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
13438 (revision "1"))
13439 (package
13440 (name "emacs-eimp")
13441 (version (git-version version revision commit))
13442 (source
13443 (origin
13444 (method git-fetch)
13445 (uri (git-reference
13446 (url "https://github.com/nicferrier/eimp")
13447 (commit commit)))
13448 (file-name (git-file-name name version))
13449 (sha256
13450 (base32
13451 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
13452 (build-system emacs-build-system)
13453 (arguments
13454 `(#:phases
13455 (modify-phases %standard-phases
13456 (add-after 'unpack 'configure
13457 (lambda* (#:key inputs #:allow-other-keys)
13458 (let ((imagemagick (assoc-ref inputs "imagemagick")))
13459 ;; eimp.el is read-only in git.
13460 (chmod "eimp.el" #o644)
13461 (emacs-substitute-variables "eimp.el"
13462 ("eimp-mogrify-program"
13463 (string-append imagemagick "/bin/mogrify"))))
13464 #t)))))
13465 (inputs
13466 `(("imagemagick" ,imagemagick)))
13467 (home-page "https://github.com/nicferrier/eimp")
13468 (synopsis "Interactive image manipulation utility for Emacs")
13469 (description "@code{emacs-eimp} allows interactive image manipulation
13470 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
13471 the actual transformations.")
13472 (license license:gpl2+))))
13473
13474 (define-public emacs-dired-hacks
13475 (let ((commit "d1a2bda6aa8f890cb367297ed93aee6d3b5ba388")
13476 (revision "3"))
13477 (package
13478 (name "emacs-dired-hacks")
13479 (version (git-version "0.0.1" revision commit))
13480 (source (origin
13481 (method git-fetch)
13482 (uri (git-reference
13483 (url "https://github.com/Fuco1/dired-hacks")
13484 (commit commit)))
13485 (file-name (git-file-name name version))
13486 (sha256
13487 (base32
13488 "12m81a9kjhs4cyq3lym0vp5nx6z3sfnypyzrnia76x6rjvixjf6y"))))
13489 (build-system emacs-build-system)
13490 (propagated-inputs
13491 `(("emacs-dash" ,emacs-dash)
13492 ("emacs-eimp" ,emacs-eimp)
13493 ("emacs-f" ,emacs-f)
13494 ("emacs-s" ,emacs-s)))
13495 (home-page "https://github.com/Fuco1/dired-hacks")
13496 (synopsis
13497 "Collection of useful dired additions")
13498 (description
13499 "This package provides the following collection of Emacs dired mode
13500 additions:
13501
13502 @itemize
13503 @item dired-avfs
13504 @item dired-columns
13505 @item dired-filter
13506 @item dired-hacks-utils
13507 @item dired-images
13508 @item dired-list
13509 @item dired-narrow
13510 @item dired-open
13511 @item dired-rainbow
13512 @item dired-ranger
13513 @item dired-subtree
13514 @item dired-tagsistant
13515 @end itemize\n")
13516 (license license:gpl3+))))
13517
13518 (define-public emacs-dired-sidebar
13519 (let ((commit "da77919081d9a4e73c2df63542353319381e4f89")
13520 (revision "2"))
13521 (package
13522 (name "emacs-dired-sidebar")
13523 (home-page "https://github.com/jojojames/dired-sidebar")
13524 (version (git-version "0.1.0" revision commit))
13525 (source (origin
13526 (method git-fetch)
13527 (uri (git-reference (url home-page) (commit commit)))
13528 (file-name (git-file-name name version))
13529 (sha256
13530 (base32
13531 "05h56wdl2xvc8davnx83ypg20fl7wlks97cafa4r2yf141xjc05h"))))
13532 (build-system emacs-build-system)
13533 (propagated-inputs
13534 `(("emacs-dired-subtree" ,emacs-dired-hacks)))
13535 (synopsis "Sidebar for Emacs using Dired")
13536 (description
13537 "This package provides a sidebar for Emacs similar to @code{NeoTree}
13538 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
13539 (license license:gpl3+))))
13540
13541 (define-public emacs-which-key
13542 (package
13543 (name "emacs-which-key")
13544 (version "3.5.1")
13545 (source
13546 (origin
13547 (method git-fetch)
13548 (uri (git-reference
13549 (url "https://github.com/justbur/emacs-which-key")
13550 (commit (string-append "v" version))))
13551 (file-name (git-file-name name version))
13552 (sha256
13553 (base32 "1g07i6hyv9glhk6xq1z9vn81vi2f0byy7dp3rg4gw22sm6f6d1al"))))
13554 (build-system emacs-build-system)
13555 (arguments
13556 `(#:tests? #t
13557 #:test-command '("emacs" "--batch"
13558 "-l" "which-key-tests.el"
13559 "-f" "ert-run-tests-batch-and-exit")))
13560 (home-page "https://github.com/justbur/emacs-which-key")
13561 (synopsis "Display available key bindings in popup")
13562 (description
13563 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
13564 bindings following your currently entered incomplete command (a prefix) in a
13565 popup. For example, after enabling the minor mode if you enter C-x and wait
13566 for the default of 1 second, the minibuffer will expand with all of the
13567 available key bindings that follow C-x (or as many as space allows given your
13568 settings).")
13569 (license license:gpl3+)))
13570
13571 (define-public emacs-hercules
13572 (package
13573 (name "emacs-hercules")
13574 (version "0.3.1")
13575 (source
13576 (origin
13577 (method git-fetch)
13578 (uri (git-reference
13579 (url "https://gitlab.com/jjzmajic/hercules.el")
13580 (commit (string-append "v" version))))
13581 (file-name (git-file-name name version))
13582 (sha256
13583 (base32 "1rp37rhkj8jm07dwr74vc68dhrbvyvrxjdavpb0h073ps9vl9dsc"))))
13584 (build-system emacs-build-system)
13585 (propagated-inputs
13586 `(("emacs-which-key" ,emacs-which-key)))
13587 (home-page "https://gitlab.com/jjzmajic/hercules.el")
13588 (synopsis "Call a chain of related commands without repeated prefix keys")
13589 (description
13590 "This package provides sticky-key-like functionality to obviate the need
13591 for repeated prefix-key sequences, and can reuse existing keymaps. The list
13592 of commands is displayed in a handy popup.")
13593 (license license:gpl3+)))
13594
13595 (define-public emacs-ws-butler
13596 (package
13597 (name "emacs-ws-butler")
13598 (version "0.6")
13599 (source (origin
13600 (method git-fetch)
13601 (uri (git-reference
13602 (url "https://github.com/lewang/ws-butler")
13603 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
13604 (file-name (git-file-name name version))
13605 (sha256
13606 (base32
13607 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
13608 (build-system emacs-build-system)
13609 (native-inputs
13610 `(("ert-runner" ,emacs-ert-runner)))
13611 (arguments
13612 `(#:tests? #t
13613 #:test-command '("ert-runner" "tests")))
13614 (home-page "https://github.com/lewang/ws-butler")
13615 (synopsis "Trim spaces from end of lines")
13616 (description
13617 "This Emacs package automatically and unobtrusively trims whitespace
13618 characters from end of lines.")
13619 (license license:gpl3+)))
13620
13621 (define-public emacs-openwith
13622 ;; There is no release tag. Version is extracted from main file.
13623 (let ((version "20120531")
13624 (revision "0")
13625 (commit "5fe01dee520d24c839ad5ee18822667457d9f352"))
13626 (package
13627 (name "emacs-openwith")
13628 (version (git-version version revision commit))
13629 (source
13630 (origin
13631 (method git-fetch)
13632 (uri (git-reference
13633 (url "https://github.com/garberw/openwith")
13634 (commit commit)))
13635 (file-name (git-file-name name version))
13636 (sha256
13637 (base32 "1scbawhlzmj5nhix779rlqf462g37q84vpq205qhg4qyscvfx6bi"))))
13638 (build-system emacs-build-system)
13639 (home-page "https://github.com/garberw/openwith")
13640 (synopsis "Open external applications for files with Emacs")
13641 (description
13642 "This package enables you to associate file name patterns with external
13643 applications that are automatically invoked when you use commands like
13644 @code{find-file}. For example, you can have it open @code{png} files with
13645 @code{feh} and @code{mp4} files with @code{mpv}. This is especially useful
13646 when browsing files with Dired.")
13647 (license license:gpl2+))))
13648
13649 (define-public emacs-org-edit-latex
13650 (package
13651 (name "emacs-org-edit-latex")
13652 (version "0.8.3")
13653 (source
13654 (origin
13655 (method git-fetch)
13656 (uri (git-reference
13657 (url "https://github.com/et2010/org-edit-latex")
13658 (commit (string-append "v" version))))
13659 (file-name (git-file-name name version))
13660 (sha256
13661 (base32 "1w0lyz71dq8x28ira4hig1b70bqn1dr53w3k5dgch9szcf6xa86y"))))
13662 (build-system emacs-build-system)
13663 (propagated-inputs
13664 `(("emacs-auctex" ,emacs-auctex)
13665 ("emacs-org" ,emacs-org)))
13666 (home-page "https://github.com/et2010/org-edit-latex")
13667 (synopsis "Edit a LaTeX fragment just like editing a source block")
13668 (description
13669 "Org Edit LaTeX is an extension for Org mode. It lets you edit a LaTeX
13670 fragment in a dedicated buffer just like editing a source block.")
13671 (license license:gpl3+)))
13672
13673 (define-public emacs-emamux
13674 (package
13675 (name "emacs-emamux")
13676 (version "0.14")
13677 (source
13678 (origin
13679 (method git-fetch)
13680 (uri (git-reference
13681 (url "https://github.com/syohex/emacs-emamux")
13682 (commit version)))
13683 (file-name (git-file-name name version))
13684 (sha256
13685 (base32 "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b"))))
13686 (build-system emacs-build-system)
13687 (home-page "https://github.com/syohex/emacs-emamux")
13688 (synopsis "Manipulate Tmux from Emacs")
13689 (description
13690 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
13691 multiplexer.")
13692 (license license:gpl3+)))
13693
13694 (define-public emacs-rpm-spec-mode
13695 (package
13696 (name "emacs-rpm-spec-mode")
13697 (version "0.16")
13698 (source
13699 (origin
13700 (method url-fetch)
13701 ;; URI has the Fedora release number instead of the version
13702 ;; number. This will have to updated manually every new release.
13703 (uri (string-append
13704 "https://src.fedoraproject.org/cgit/rpms"
13705 "/emacs-rpm-spec-mode.git/snapshot"
13706 "/emacs-rpm-spec-mode-f26.tar.gz"))
13707 (sha256
13708 (base32
13709 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
13710 (build-system emacs-build-system)
13711 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
13712 (synopsis "Emacs major mode for editing RPM spec files")
13713 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
13714 editing RPM spec files.")
13715 (license license:gpl2+)))
13716
13717 (define-public emacs-lcr
13718 (package
13719 (name "emacs-lcr")
13720 (version "1.1")
13721 (source
13722 (origin
13723 (method git-fetch)
13724 (uri (git-reference
13725 (url "https://github.com/jyp/lcr")
13726 (commit version)))
13727 (file-name (git-file-name name version))
13728 (sha256
13729 (base32 "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8"))))
13730 (build-system emacs-build-system)
13731 (propagated-inputs
13732 `(("emacs-dash" ,emacs-dash)))
13733 (home-page "https://github.com/jyp/lcr")
13734 (synopsis "Lightweight coroutines in Emacs Lisp")
13735 (description "This package provides macros that can translate code into
13736 equivalent continuation-passing code, as well as miscellaneous utility
13737 functions written in continuation-passing style.")
13738 (license license:gpl3+)))
13739
13740 (define-public emacs-attrap
13741 (package
13742 (name "emacs-attrap")
13743 (version "1.1")
13744 (source
13745 (origin
13746 (method git-fetch)
13747 (uri (git-reference
13748 (url "https://github.com/jyp/attrap")
13749 (commit version)))
13750 (sha256
13751 (base32 "0wqc7bqx9rvk8r7fd3x84h8p01v97s6w2jf29nnjb59xakwp22i7"))
13752 (file-name (git-file-name name version))))
13753 (build-system emacs-build-system)
13754 (propagated-inputs
13755 `(("emacs-dash" ,emacs-dash)
13756 ("emacs-f" ,emacs-f)
13757 ("emacs-flycheck" ,emacs-flycheck)
13758 ("emacs-s" ,emacs-s)))
13759 (home-page "https://github.com/jyp/attrap")
13760 (synopsis "Fix coding error at point")
13761 (description "This package provides a command to fix the Flycheck error
13762 at point.")
13763 (license license:gpl3+)))
13764
13765 (define-public emacs-git-messenger
13766 (package
13767 (name "emacs-git-messenger")
13768 (version "0.18")
13769 (source
13770 (origin
13771 (method git-fetch)
13772 (uri (git-reference
13773 (url "https://github.com/syohex/emacs-git-messenger")
13774 (commit version)))
13775 (file-name (git-file-name name version))
13776 (sha256
13777 (base32 "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"))))
13778 (build-system emacs-build-system)
13779 (propagated-inputs
13780 `(("emacs-popup" ,emacs-popup)))
13781 (arguments
13782 `(#:tests? #t
13783 #:test-command '("emacs" "--batch" "-l" "test/test.el"
13784 "-f" "ert-run-tests-batch-and-exit")))
13785 (home-page "https://github.com/syohex/emacs-git-messenger")
13786 (synopsis "Popup commit message at current line")
13787 (description "@code{emacs-git-messenger} provides
13788 @code{git-messenger:popup-message}, a function that when called, will popup
13789 the last git commit message for the current line. This uses git-blame
13790 internally.")
13791 (license license:gpl3+)))
13792
13793 (define-public emacs-gitpatch
13794 (package
13795 (name "emacs-gitpatch")
13796 (version "0.5.1")
13797 (source
13798 (origin
13799 (method git-fetch)
13800 (uri (git-reference
13801 (url "https://github.com/tumashu/gitpatch")
13802 (commit (string-append "v" version))))
13803 (file-name (git-file-name name version))
13804 (sha256
13805 (base32 "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig"))))
13806 (build-system emacs-build-system)
13807 (home-page "https://github.com/tumashu/gitpatch")
13808 (synopsis "Mail git patch from Emacs")
13809 (description "@code{emacs-gitpatch} lets users easily send git patches,
13810 created by @code{git format-patch}, from @code{magit}, @code{dired} and
13811 @code{ibuffer} buffers.")
13812 (license license:gpl3+)))
13813
13814 (define-public emacs-erc-hl-nicks
13815 (package
13816 (name "emacs-erc-hl-nicks")
13817 (version "1.3.4")
13818 (source
13819 (origin
13820 (method git-fetch)
13821 (uri (git-reference
13822 (url "https://github.com/leathekd/erc-hl-nicks")
13823 (commit version)))
13824 (file-name (git-file-name name version))
13825 (sha256
13826 (base32 "0k57scxa8rm859fqsm8srhps7rlq06jzazhjbwnadzrh8i5fyvra"))))
13827 (build-system emacs-build-system)
13828 (synopsis "Nickname highlighting for Emacs ERC")
13829 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
13830 client for Emacs. The main features are:
13831 @itemize
13832 @item Auto-colorizes nicknames without having to specify colors
13833 @item Ignores certain characters that IRC clients add to nicknames to avoid
13834 duplicates (nickname, nickname’, nickname\", etc.)
13835 @item Attempts to produce colors with a sufficient amount of contrast between
13836 the nick color and the background color
13837 @end itemize\n")
13838 (home-page "https://github.com/leathekd/erc-hl-nicks")
13839 (license license:gpl3+)))
13840
13841 (define-public emacs-engine-mode
13842 (package
13843 (name "emacs-engine-mode")
13844 (version "2.1.1")
13845 (source
13846 (origin
13847 (method git-fetch)
13848 (uri (git-reference
13849 (url "https://github.com/hrs/engine-mode")
13850 (commit (string-append "v" version))))
13851 (file-name (git-file-name name version))
13852 (sha256
13853 (base32 "1xka8i4cdvp5r2v2mkli1zz17x1sdsnmszbhqav2rf94v656d91i"))))
13854 (build-system emacs-build-system)
13855 (synopsis "Minor mode for defining and querying search engines")
13856 (description "@code{engine-mode} is a global minor mode for Emacs. It
13857 enables you to easily define search engines, bind them to keybindings, and
13858 query them from the comfort of your editor.")
13859 (home-page "https://github.com/hrs/engine-mode")
13860 (license license:gpl3+)))
13861
13862 (define-public emacs-envrc
13863 (package
13864 (name "emacs-envrc")
13865 (version "0.2")
13866 (source
13867 (origin
13868 (method git-fetch)
13869 (uri (git-reference
13870 (url "https://github.com/purcell/envrc")
13871 (commit version)))
13872 (file-name (git-file-name name version))
13873 (sha256
13874 (base32
13875 "0ssf9i6iym2rb530k2w5aj392qa73i6p5y0vwrs5qhkv9lagqq7p"))))
13876 (build-system emacs-build-system)
13877 (home-page "https://github.com/purcell/envrc")
13878 (synopsis "Support for Direnv which operates buffer-locally")
13879 (description
13880 "This is library which uses Direnv to set environment variables on
13881 a per-buffer basis. This means that when you work across multiple projects
13882 which have @file{.envrc} files, all processes launched from the buffers ``in''
13883 those projects will be executed with the environment variables specified in
13884 those files. This allows different versions of linters and other tools to be
13885 used in each project if desired.")
13886 (license license:gpl3+)))
13887
13888 (define-public emacs-prop-menu
13889 (package
13890 (name "emacs-prop-menu")
13891 (version "0.1.2")
13892 (source
13893 (origin
13894 (method git-fetch)
13895 (uri (git-reference
13896 (url "https://github.com/david-christiansen/prop-menu-el")
13897 (commit version)))
13898 (file-name (git-file-name name version))
13899 (sha256
13900 (base32
13901 "18ap2liz5r5a8ja2zz9182fnfm47jnsbyblpq859zks356k37iwc"))))
13902 (build-system emacs-build-system)
13903 (home-page
13904 "https://github.com/david-christiansen/prop-menu-el")
13905 (synopsis
13906 "Create and display a context menu based on text and overlay properties")
13907 (description
13908 "This is a library for computing context menus based on text
13909 properties and overlays. The intended use is to have tools that
13910 annotate source code and others that use these annotations, without
13911 requiring a direct coupling between them, but maintaining
13912 discoverability.
13913
13914 Major modes that wish to use this library should first define an
13915 appropriate value for @code{prop-menu-item-functions}. Then, they should
13916 bind @code{prop-menu-by-completing-read} to an appropriate
13917 key. Optionally, a mouse pop-up can be added by binding
13918 @code{prop-menu-show-menu} to a mouse event.")
13919 (license license:gpl3+)))
13920
13921 (define-public emacs-idris-mode
13922 (let ((commit "b77eadd8ac2048d5c882b4464bd9673e45dd6a59")
13923 (revision "0"))
13924 (package
13925 (name "emacs-idris-mode")
13926 (version (git-version "1.0" revision commit))
13927 (source
13928 (origin
13929 (method git-fetch)
13930 (uri (git-reference
13931 (url "https://github.com/idris-hackers/idris-mode")
13932 (commit commit)))
13933 (file-name (git-file-name name commit))
13934 (sha256
13935 (base32
13936 "1v8av6jza1j00ln75zjwaca0vmmv0fhhhi94p84rlfzgzykyb9g1"))))
13937 (build-system emacs-build-system)
13938 (propagated-inputs
13939 `(("emacs-prop-menu" ,emacs-prop-menu)))
13940 (home-page
13941 "https://github.com/idris-hackers/idris-mode")
13942 (synopsis "Major mode for editing Idris code")
13943 (description
13944 "This is an Emacs mode for editing Idris code. It is compatible with
13945 the latest versions of Idris 1.")
13946 (license license:gpl3+))))
13947
13948 (define-public emacs-browse-at-remote
13949 (package
13950 (name "emacs-browse-at-remote")
13951 (version "0.14.0")
13952 (source
13953 (origin
13954 (method git-fetch)
13955 (uri (git-reference
13956 (url "https://github.com/rmuslimov/browse-at-remote")
13957 (commit version)))
13958 (file-name (git-file-name name version))
13959 (sha256
13960 (base32 "0bx4ns0jb0sqrjk1nsspvl3mhz3n12925azf7brlwb1vcgnji09v"))))
13961 (build-system emacs-build-system)
13962 (propagated-inputs
13963 `(("emacs-f" ,emacs-f)
13964 ("emacs-s" ,emacs-s)))
13965 (native-inputs
13966 `(("ert-runner" ,emacs-ert-runner)))
13967 (arguments
13968 `(#:tests? #t
13969 #:test-command '("ert-runner")))
13970 (home-page "https://github.com/rmuslimov/browse-at-remote")
13971 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
13972 (description
13973 "This Emacs package allows you to open a target page on
13974 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
13975 It supports dired buffers and opens them in tree mode at destination.")
13976 (license license:gpl3+)))
13977
13978 (define-public emacs-tiny
13979 (let ((commit "fd8a6b0b0c564d8242259e20e557ee6041f40908")
13980 (revision "1"))
13981 (package
13982 (name "emacs-tiny")
13983 (version (git-version "0.2.1" revision commit))
13984 (source
13985 (origin
13986 (method git-fetch)
13987 (uri (git-reference
13988 (url "https://github.com/abo-abo/tiny")
13989 (commit commit)))
13990 (file-name (git-file-name name version))
13991 (sha256
13992 (base32
13993 "1498j392ap2mk4zmsm2id16pfgvj78r428da9vw7hdrzzibai2cx"))))
13994 (build-system emacs-build-system)
13995 (arguments
13996 `(#:tests? #t
13997 #:test-command '("make" "test")))
13998 (home-page "https://github.com/abo-abo/tiny")
13999 (synopsis "Quickly generate linear ranges in Emacs")
14000 (description
14001 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
14002 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
14003 proficiency is an advantage, since you can transform your numeric range with
14004 an elisp expression.")
14005 (license license:gpl3+))))
14006
14007 (define-public emacs-emojify
14008 (package
14009 (name "emacs-emojify")
14010 (version "1.2")
14011 (source
14012 (origin
14013 (method git-fetch)
14014 (uri (git-reference
14015 (url "https://github.com/iqbalansari/emacs-emojify")
14016 (commit (string-append "v" version))))
14017 (file-name (git-file-name name version))
14018 (sha256
14019 (base32
14020 "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm"))))
14021 (build-system emacs-build-system)
14022 (arguments
14023 `(#:include (cons "^data/" %default-include)))
14024 (propagated-inputs
14025 `(("emacs-ht" ,emacs-ht)))
14026 (home-page "https://github.com/iqbalansari/emacs-emojify")
14027 (synopsis "Display emojis in Emacs")
14028 (description "This package displays emojis in Emacs similar to how Github,
14029 Slack, and other websites do. It can display plain ASCII like @code{:)} as
14030 well as Github-style emojis like @code{:smile:}. It provides a minor mode
14031 @code{emojify-mode} to enable the display of emojis in a buffer.")
14032 (license license:gpl3+)))
14033
14034 (define-public emacs-make-it-so
14035 (let ((commit "b73dfb640588123c9eece230ad72b37604f5c126")
14036 (revision "2"))
14037 (package
14038 (name "emacs-make-it-so")
14039 (version (git-version "0.1.0" revision commit))
14040 (source
14041 (origin
14042 (method git-fetch)
14043 (uri (git-reference
14044 (url "https://github.com/abo-abo/make-it-so")
14045 (commit commit)))
14046 (file-name (git-file-name name version))
14047 (sha256
14048 (base32
14049 "0p6xhyinzzkrwzbpxqfm8hlii0ikvmmylya240bwsa77w0g1k6xq"))))
14050 (build-system emacs-build-system)
14051 (arguments
14052 `(#:include (cons "^recipes/" %default-include)))
14053 (propagated-inputs
14054 `(("emacs-ivy" ,emacs-ivy)))
14055 (home-page "https://github.com/abo-abo/make-it-so")
14056 (synopsis "Transform files with Makefile recipes")
14057 (description "This package provides an interface for selecting from
14058 different conversion recipes, often including tools like @code{ffmpeg} or
14059 @code{convert}. The conversion command need only be written once, and
14060 subsequent invocations can be readily customized. Several recipes are
14061 included by default, and more can be readily added.")
14062 (license license:gpl3+))))
14063
14064 (define-public emacs-unidecode
14065 (let ((commit "5502ada9287b4012eabb879f12f5b0a9df52c5b7")
14066 (revision "1"))
14067 (package
14068 (name "emacs-unidecode")
14069 (version (git-version "0.2" revision commit))
14070 (source
14071 (origin
14072 (method git-fetch)
14073 (uri (git-reference
14074 (url "https://github.com/sindikat/unidecode")
14075 (commit commit)))
14076 (file-name (git-file-name name version))
14077 (sha256
14078 (base32
14079 "03x3nakbhmakwm977mwrf8jifvjnfwzpjv6wrwpizbqjnkgfchmn"))))
14080 (build-system emacs-build-system)
14081 (arguments
14082 `(#:include (cons* "^tools/" "^data/" %default-include)
14083 #:tests? #t
14084 #:test-command '("emacs" "--batch"
14085 "-l" "unidecode-test.el"
14086 "-f" "ert-run-tests-batch-and-exit")
14087 #:phases
14088 (modify-phases %standard-phases
14089 (add-before 'check 'make-tests-writable
14090 (lambda _
14091 (make-file-writable "unidecode-test.el")
14092 #t))
14093 (add-before 'check 'add-require
14094 (lambda _
14095 (emacs-batch-edit-file "unidecode-test.el"
14096 `(progn (progn (goto-char (point-min))
14097 (re-search-forward
14098 "ert-deftest")
14099 (forward-line -1)
14100 (insert "(require 'unidecode)"))
14101 (basic-save-buffer)))
14102 #t)))))
14103 (home-page "https://github.com/sindikat/unidecode")
14104 (synopsis "Transliterate Unicode text to ASCII")
14105 (description "This package provides functions for converting Unicode to ASCII.")
14106 (license license:gpl2+))))
14107
14108 (define-public emacs-pubmed
14109 (package
14110 (name "emacs-pubmed")
14111 (version "0.2.1")
14112 (source
14113 (origin
14114 (method git-fetch)
14115 (uri (git-reference
14116 (url "https://gitlab.com/fvdbeek/emacs-pubmed.git")
14117 (commit (string-append "v" version))))
14118 (file-name (git-file-name name version))
14119 (sha256
14120 (base32
14121 "15bwjxc7g43m5pi8z17anaqqkvi209r7kk1chmf175477gvrv7c0"))))
14122 (build-system emacs-build-system)
14123 (propagated-inputs
14124 `(("emacs-deferred" ,emacs-deferred)
14125 ("emacs-esxml" ,emacs-esxml)
14126 ("emacs-s" ,emacs-s)
14127 ("emacs-unidecode" ,emacs-unidecode)))
14128 (home-page "https://gitlab.com/fvdbeek/emacs-pubmed")
14129 (synopsis "Interface to PubMed")
14130 (description "This package provides an Emacs interface to the PubMed
14131 database of references on life sciences.")
14132 (license license:gpl3+)))
14133
14134 (define-public emacs-websocket
14135 (package
14136 (name "emacs-websocket")
14137 (version "1.13.1")
14138 (source
14139 (origin
14140 (method url-fetch)
14141 (uri (string-append "https://elpa.gnu.org/packages/"
14142 "websocket-" version ".tar"))
14143 (sha256
14144 (base32 "1x664zswas0fpml7zaj59zy97avrm49zb80zd69rlkqzz1m45psc"))))
14145 (build-system emacs-build-system)
14146 (home-page "https://elpa.gnu.org/packages/websocket.html")
14147 (synopsis "Emacs WebSocket client and server")
14148 (description
14149 "This is an Elisp library for WebSocket clients to talk to WebSocket
14150 servers, and for WebSocket servers to accept connections from WebSocket
14151 clients. This library is designed to be used by other library writers, to
14152 write applications that use WebSockets, and is not useful by itself.")
14153 (license license:gpl3+)))
14154
14155 (define-public emacs-oauth2
14156 (package
14157 (name "emacs-oauth2")
14158 (version "0.16")
14159 (source
14160 (origin
14161 (method url-fetch)
14162 (uri (string-append "https://elpa.gnu.org/packages/"
14163 "oauth2-" version ".tar"))
14164 (sha256
14165 (base32 "1rzly2nwjywrfgcmp8zidbmjl2ahyd8l8507lb1mxm4xqryvf316"))))
14166 (build-system emacs-build-system)
14167 (home-page "https://elpa.gnu.org/packages/oauth2.html")
14168 (synopsis "OAuth 2.0 authorization protocol implementation")
14169 (description
14170 "This package provides an Elisp implementation of the OAuth 2.0 draft.
14171 The main entry point is @code{oauth2-auth-and-store} which will return a token
14172 structure. This token structure can be then used with
14173 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
14174 retrieve any data that need OAuth authentication to be accessed. If the token
14175 needs to be refreshed, the code handles it automatically and stores the new
14176 value of the access token.")
14177 (license license:gpl3+)))
14178
14179 (define-public emacs-auth-source-xoauth2
14180 (package
14181 (name "emacs-auth-source-xoauth2")
14182 (version "1.0")
14183 (source
14184 (origin
14185 (method git-fetch)
14186 (uri (git-reference
14187 (url "https://github.com/ccrusius/auth-source-xoauth2")
14188 (commit (string-append "v" version))))
14189 (file-name (git-file-name name version))
14190 (sha256
14191 (base32 "0nl859csl8xcd6ybpjj15ph8l8fxwkwf45kbylss68alkyf1rl3v"))))
14192 (build-system emacs-build-system)
14193 (home-page "https://github.com/ccrusius/auth-source-xoauth2")
14194 (synopsis "XOAuth2 authentication capabilities for Emacs auth-source")
14195 (description
14196 "This package adds XOAuth2 authentication capabilities to Emacs
14197 auth-source. This integration requires some preliminary work on the users’
14198 part, which includes creating tokens.")
14199 (license license:asl2.0)))
14200
14201 (define-public emacs-circe
14202 (package
14203 (name "emacs-circe")
14204 (version "2.11")
14205 (source
14206 (origin
14207 (method git-fetch)
14208 (uri (git-reference
14209 (url "https://github.com/jorgenschaefer/circe")
14210 (commit (string-append "v" version))))
14211 (file-name (git-file-name name version))
14212 (sha256
14213 (base32 "0cr9flk310yn2jgvj4hbqw9nj5wlfi0fazdkqafzidgz6iq150wd"))))
14214 (build-system emacs-build-system)
14215 (arguments
14216 `(#:tests? #t
14217 #:test-command '("buttercup" "-L" ".")
14218 #:phases
14219 (modify-phases %standard-phases
14220 ;; The HOME environment variable should be set to an existing
14221 ;; directory for the tests to succeed.
14222 (add-before 'check 'set-home
14223 (lambda _
14224 (setenv "HOME" "/tmp")
14225 #t)))))
14226 (native-inputs
14227 `(("emacs-buttercup" ,emacs-buttercup)))
14228 ;; In order to securely connect to an IRC server using TLS, Circe requires
14229 ;; the GnuTLS binary.
14230 (propagated-inputs
14231 `(("gnutls" ,gnutls)))
14232 (home-page "https://github.com/jorgenschaefer/circe")
14233 (synopsis "Client for IRC in Emacs")
14234 (description "Circe is a Client for IRC in Emacs. It integrates well with
14235 the rest of the editor, using standard Emacs key bindings and indicating
14236 activity in channels in the status bar so it stays out of your way unless you
14237 want to use it.")
14238 (license license:gpl3+)))
14239
14240 (define-public emacs-tracking
14241 (package
14242 (inherit emacs-circe)
14243 (name "emacs-tracking")
14244 (arguments
14245 ;; "tracking.el" is a library extracted from Circe package. It requires
14246 ;; "shorten.el".
14247 `(#:include '("^shorten.el$" "^tracking.el$")
14248 ,@(package-arguments emacs-circe)))
14249 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
14250 (synopsis "Buffer tracking library")
14251 (description "@code{tracking.el} provides a way for different modes to
14252 notify the user that a buffer needs attention. The user then can cycle
14253 through them using @key{C-c C-SPC}.")
14254 (license license:gpl3+)))
14255
14256 (define-public emacs-slack
14257 (let ((commit "1f6a40faec0d8d9c9de51c444508d05a3e995ccd")
14258 (revision "9"))
14259 (package
14260 (name "emacs-slack")
14261 (version (git-version "0.0.2" revision commit))
14262 (source (origin
14263 (method git-fetch)
14264 (uri (git-reference
14265 (url "https://github.com/yuya373/emacs-slack")
14266 (commit commit)))
14267 (file-name (git-file-name name commit))
14268 (sha256
14269 (base32
14270 "19lan9nd8qfw2ws7mx814vrin04c892yn5c8g3nad7lpnzszgr1r"))))
14271 (build-system emacs-build-system)
14272 (arguments
14273 `(#:phases
14274 (modify-phases %standard-phases
14275 ;; HOME needs to exist for source compilation.
14276 (add-before 'build 'set-HOME
14277 (lambda _ (setenv "HOME" "/tmp") #t)))))
14278 (propagated-inputs
14279 `(("emacs-alert" ,emacs-alert)
14280 ("emacs-emojify" ,emacs-emojify)
14281 ("emacs-helm" ,emacs-helm)
14282 ("emacs-request" ,emacs-request)
14283 ("emacs-websocket" ,emacs-websocket)
14284 ("emacs-oauth2" ,emacs-oauth2)
14285 ("emacs-circe" ,emacs-circe)))
14286 (home-page "https://github.com/yuya373/emacs-slack")
14287 (synopsis "Slack client for Emacs")
14288 (description "This package provides an Emacs client for the Slack
14289 messaging service.")
14290 (license license:gpl3+))))
14291
14292 (define-public emacs-helm-slack
14293 (let ((commit "465f6220f3f5bee4d95492991fca1290c89534eb")
14294 (revision "1"))
14295 (package
14296 (name "emacs-helm-slack")
14297 (version (git-version "0" revision commit))
14298 (source (origin
14299 (method git-fetch)
14300 (uri (git-reference
14301 (url "https://github.com/yuya373/helm-slack")
14302 (commit commit)))
14303 (file-name (git-file-name name commit))
14304 (sha256
14305 (base32
14306 "0p1s1kl8v68qjprqkf034cz911qzbqxbscqgpn0c3mbm3yfx81f7"))))
14307 (build-system emacs-build-system)
14308 (arguments
14309 `(#:phases
14310 (modify-phases %standard-phases
14311 ;; HOME needs to exist for source compilation.
14312 (add-before 'build 'set-HOME
14313 (lambda _ (setenv "HOME" "/tmp") #t)))))
14314 (propagated-inputs `(("emacs-slack" ,emacs-slack)))
14315 (home-page "https://github.com/yuya373/helm-slack")
14316 (synopsis "Helm extension for emacs-slack")
14317 (description "This package provides an helm extension for emacs-slack
14318 Slack client.")
14319 (license license:gpl3+))))
14320
14321
14322 (define-public emacs-bash-completion
14323 (package
14324 (name "emacs-bash-completion")
14325 (version "3.1.0")
14326 (source
14327 (origin
14328 (method git-fetch)
14329 (uri (git-reference
14330 (url "https://github.com/szermatt/emacs-bash-completion")
14331 (commit (string-append "v" version))))
14332 (file-name (git-file-name name version))
14333 (sha256
14334 (base32 "11j2k3irixp47r2iglxdmjphahqhgnxg98n2xwagwzyq99lsamj4"))))
14335 (inputs `(("bash" ,bash)))
14336 (build-system emacs-build-system)
14337 (arguments
14338 `(#:phases
14339 (modify-phases %standard-phases
14340 (add-after 'unpack 'make-git-checkout-writable
14341 (λ _
14342 (for-each make-file-writable (find-files "."))
14343 #t))
14344 (add-before 'install 'configure
14345 (lambda* (#:key inputs #:allow-other-keys)
14346 (let ((bash (assoc-ref inputs "bash")))
14347 (emacs-substitute-variables "bash-completion.el"
14348 ("bash-completion-prog" (string-append bash "/bin/bash"))))
14349 #t)))))
14350 (home-page "https://github.com/szermatt/emacs-bash-completion")
14351 (synopsis "Bash completion for the shell buffer")
14352 (description
14353 "@code{bash-completion} defines dynamic completion hooks for shell-mode
14354 and shell-command prompts that are based on Bash completion.")
14355 (license license:gpl2+)))
14356
14357 (define-public emacs-easy-kill
14358 (package
14359 (name "emacs-easy-kill")
14360 (version "0.9.4")
14361 (source (origin
14362 (method url-fetch)
14363 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
14364 version ".tar"))
14365 (sha256
14366 (base32
14367 "1pqqv4dhfm00wqch4wy3n2illsvxlz9r6r64925cvq3i7wq4la1x"))))
14368 (build-system emacs-build-system)
14369 (home-page "https://github.com/leoliu/easy-kill")
14370 (synopsis "Kill and mark things easily in Emacs")
14371 (description
14372 "This package provides commands @code{easy-kill} and @code{easy-mark} to
14373 let users kill or mark things easily.")
14374 (license license:gpl3+)))
14375
14376 (define-public emacs-csv-mode
14377 (package
14378 (name "emacs-csv-mode")
14379 (version "1.15")
14380 (source
14381 (origin
14382 (method url-fetch)
14383 (uri (string-append "https://elpa.gnu.org/packages/"
14384 "csv-mode-" version ".tar"))
14385 (sha256
14386 (base32 "0pigqhqg5mfza6jdskcr9yvrzdxnd68iyp3vyb8p8wskdacmbiyx"))))
14387 (build-system emacs-build-system)
14388 (home-page "https://elpa.gnu.org/packages/csv-mode.html")
14389 (synopsis "Major mode for editing comma/char separated values")
14390 (description
14391 "This Emacs package implements CSV mode, a major mode for editing records
14392 in a generalized CSV (character-separated values) format.")
14393 (license license:gpl3+)))
14394
14395 (define-public emacs-transmission
14396 (package
14397 (name "emacs-transmission")
14398 (version "0.12.2")
14399 (source
14400 (origin
14401 (method git-fetch)
14402 (uri (git-reference
14403 (url "https://github.com/holomorph/transmission")
14404 (commit version)))
14405 (file-name (git-file-name name version))
14406 (sha256
14407 (base32 "16bn8y2sd7kzihp8bxh4vyay16y91q3yc0gcd0bzywcx3hijqlfc"))))
14408 (build-system emacs-build-system)
14409 (home-page "https://github.com/holomorph/transmission")
14410 (synopsis "Emacs interface to a Transmission session")
14411 (description "This package provides an Emacs interface to interact with a
14412 running session of the Transmission Bittorrent client.
14413
14414 Features:
14415
14416 @itemize
14417 @item List, add, start/stop, verify, remove torrents.
14418 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
14419 @item Navigate to the corresponding file list, torrent info, peer info
14420 contexts.
14421 @item Toggle downloading and set priorities for individual files.
14422 @end itemize\n")
14423 (license license:gpl3+)))
14424
14425 (define-public emacs-polymode
14426 (package
14427 (name "emacs-polymode")
14428 (version "0.2.2")
14429 (source
14430 (origin
14431 (method git-fetch)
14432 (uri (git-reference
14433 (url "https://github.com/polymode/polymode")
14434 (commit (string-append "v" version))))
14435 (file-name (git-file-name name version))
14436 (sha256
14437 (base32 "18ssl2h861dm2jkd3df6wkfr48p8zk337dbvpq5522kia7fq1lbn"))))
14438 (build-system emacs-build-system)
14439 (home-page "https://github.com/polymode/polymode")
14440 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
14441 (description
14442 "Polymode is an Emacs package that offers generic support for multiple
14443 major modes inside a single Emacs buffer. It is lightweight, object oriented
14444 and highly extensible. Creating a new polymode typically takes only a few
14445 lines of code. Polymode also provides extensible facilities for external
14446 literate programming tools for exporting, weaving and tangling.")
14447 (license license:gpl3+)))
14448
14449 (define-public emacs-polymode-ansible
14450 (package
14451 (name "emacs-polymode-ansible")
14452 (version "0.3.0")
14453 (source
14454 (origin
14455 (method git-fetch)
14456 (uri (git-reference
14457 (url "https://gitlab.com/mavit/poly-ansible")
14458 (commit version)))
14459 (file-name (git-file-name name version))
14460 (sha256
14461 (base32 "0f0yq6gmkp194nxk90ipprglf1xkmxrgz1rkgrhfslvxq4q2l81h"))))
14462 (build-system emacs-build-system)
14463 (propagated-inputs
14464 `(("emacs-ansible-doc" ,emacs-ansible-doc)
14465 ("emacs-jinja2-mode" ,emacs-jinja2-mode)
14466 ("emacs-polymode" ,emacs-polymode)
14467 ("emacs-yaml-mode" ,emacs-yaml-mode)))
14468 (properties '((upstream-name . "poly-ansible")))
14469 (home-page "https://gitlab.com/mavit/poly-ansible/")
14470 (synopsis "Polymode for Ansible - Jinja2 in YAML")
14471 (description
14472 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
14473 (license license:gpl3+)))
14474
14475 (define-public emacs-polymode-markdown
14476 (package
14477 (name "emacs-polymode-markdown")
14478 (version "0.2.2")
14479 (home-page "https://github.com/polymode/poly-markdown")
14480 (source
14481 (origin
14482 (method git-fetch)
14483 (uri (git-reference
14484 (url home-page)
14485 (commit (string-append "v" version))))
14486 (file-name (git-file-name name version))
14487 (sha256
14488 (base32 "1q4qq0ql08hxkdrd2aal03560k612my7bvnfpfij3g432hn0p7v6"))))
14489 (build-system emacs-build-system)
14490 (propagated-inputs
14491 `(("emacs-markdown-mode" ,emacs-markdown-mode)
14492 ("emacs-polymode" ,emacs-polymode)))
14493 (properties '((upstream-name . "poly-markdown")))
14494 (synopsis "Polymode for Markdown mode")
14495 (description
14496 "This package allows editing source code blocks embedded in Markdown
14497 files using the major mode corresponding to each block.")
14498 (license license:gpl3+)))
14499
14500 (define-public emacs-powershell
14501 ;; Tagged branch 0.1 is outdated (2015).
14502 (let ((revision "0")
14503 (commit "d1b3f95669343399f199f291ef76c09a0ede5e60"))
14504 (package
14505 (name "emacs-powershell")
14506 (build-system emacs-build-system)
14507 (version (git-version "0.3" revision commit))
14508 (source
14509 (origin
14510 (method git-fetch)
14511 (uri (git-reference
14512 (url "https://github.com/jschaf/powershell.el")
14513 (commit commit)))
14514 (file-name (git-file-name name version))
14515 (sha256
14516 (base32 "1cxhzaaig88zhylyycvb3849r85j1ijqklnh9zbqsfl2zhpb0g5c"))))
14517 (home-page "https://github.com/jschaf/powershell.el")
14518 (synopsis "Emacs mode for editing PowerShell scripts")
14519 (description
14520 "Powershell is an Emacs major mode for editing and running
14521 Microsoft PowerShell files.")
14522 (license license:gpl3+))))
14523
14524 (define-public emacs-polymode-org
14525 (package
14526 (name "emacs-polymode-org")
14527 (version "0.2.2")
14528 (source
14529 (origin
14530 (method git-fetch)
14531 (uri (git-reference
14532 (url "https://github.com/polymode/poly-org")
14533 (commit (string-append "v" version))))
14534 (file-name (git-file-name name version))
14535 (sha256
14536 (base32 "1srnwcsn2bh8gqzxixkhffk7gbnk66kd4dgvxbnps5nxqc6v0qhc"))))
14537 (build-system emacs-build-system)
14538 (propagated-inputs
14539 `(("emacs-polymode" ,emacs-polymode)))
14540 (properties '((upstream-name . "poly-org")))
14541 (home-page "https://github.com/polymode/poly-org")
14542 (synopsis "Polymode definitions for Org mode buffers")
14543 (description
14544 "This package provides definitions for Polymode to support Org buffers.
14545 It edits source blocks in an Org buffer using the native modes of the blocks'
14546 languages while remaining inside the primary Org buffer.")
14547 (license license:gpl3+)))
14548
14549 (define-public eless
14550 (package
14551 (name "eless")
14552 (version "0.6")
14553 (source
14554 (origin
14555 (method git-fetch)
14556 (uri (git-reference
14557 (url "https://github.com/kaushalmodi/eless")
14558 (commit (string-append "v" version))))
14559 (file-name (git-file-name name version))
14560 (sha256
14561 (base32 "1xif339wsc79hsab3l1nnwvy20jg7s1r4akfj4qqi6qxizfhmb52"))))
14562 (build-system copy-build-system)
14563 (inputs
14564 `(("bash" ,bash)
14565 ("emacs" ,emacs)))
14566 (arguments
14567 `(#:install-plan
14568 '(("eless" "bin/")
14569 ("docs/eless.info" "share/info/")
14570 ("eless.org" ,(string-append "share/doc/eless-" version "/")))))
14571 (home-page "https://github.com/kaushalmodi/eless")
14572 (synopsis "Use Emacs as a paginator")
14573 (description "@code{eless} provides a combination of Bash script
14574 and a minimal Emacs view-mode.
14575
14576 Features:
14577
14578 @itemize
14579 @item Independent of a user’s Emacs config.
14580 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
14581 @item Not require an Emacs server to be already running.
14582 @item Syntax highlighting.
14583 @item Org-mode file rendering.
14584 @item @code{man} page viewer.
14585 @item Info viewer.
14586 @item Dired, wdired, (batch edit symbolic links).
14587 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
14588 @item Filter log files lines matching a regexp.
14589 @item Auto-revert log files similar to @code{tail -f}.
14590 @item Quickly change frame and font sizes.
14591 @end itemize\n")
14592 (license license:expat)))
14593
14594 (define-public emacs-evil-matchit
14595 (package
14596 (name "emacs-evil-matchit")
14597 (version "2.3.10")
14598 (source
14599 (origin
14600 (method git-fetch)
14601 (uri (git-reference
14602 (url "https://github.com/redguardtoo/evil-matchit")
14603 (commit version)))
14604 (file-name (git-file-name name version))
14605 (sha256
14606 (base32 "14nrc46290q54y7wv25251f2kqc0z8i9byl09xkgjijqldl9vdxa"))))
14607 (build-system emacs-build-system)
14608 (propagated-inputs
14609 `(("emacs-evil" ,emacs-evil)))
14610 (home-page "https://github.com/redguardtoo/evil-matchit")
14611 (synopsis "Vim matchit ported into Emacs")
14612 (description
14613 "@code{evil-matchit} is a minor mode for jumping between matching tags in
14614 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
14615 (license license:gpl3+)))
14616
14617 (define-public emacs-evil-smartparens
14618 (package
14619 (name "emacs-evil-smartparens")
14620 (version "0.4.0")
14621 (source
14622 (origin
14623 (method git-fetch)
14624 (uri (git-reference
14625 (url "https://github.com/expez/evil-smartparens")
14626 (commit version)))
14627 (file-name (git-file-name name version))
14628 (sha256
14629 (base32 "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl"))))
14630 (build-system emacs-build-system)
14631 (propagated-inputs
14632 `(("emacs-evil" ,emacs-evil)
14633 ("emacs-smartparens" ,emacs-smartparens)))
14634 (home-page "https://github.com/expez/evil-smartparens")
14635 (synopsis "Emacs Evil integration for Smartparens")
14636 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
14637 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
14638 emulates Vim features and provides Vim-like key bindings.")
14639 (license license:gpl3+)))
14640
14641 (define-public emacs-evil-quickscope
14642 (package
14643 (name "emacs-evil-quickscope")
14644 (version "0.1.4")
14645 (source
14646 (origin
14647 (method git-fetch)
14648 (uri (git-reference
14649 (url "https://github.com/blorbx/evil-quickscope")
14650 (commit (string-append "v" version))))
14651 (file-name (git-file-name name version))
14652 (sha256
14653 (base32 "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"))))
14654 (build-system emacs-build-system)
14655 (propagated-inputs
14656 `(("emacs-evil" ,emacs-evil)))
14657 (arguments
14658 `(#:tests? #t
14659 #:test-command '("emacs" "--batch"
14660 "-l" "evil-quickscope-tests.el"
14661 "-f" "ert-run-tests-batch-and-exit")))
14662 (home-page "https://github.com/blorbx/evil-quickscope")
14663 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
14664 (description "@code{emacs-evil-quickscope} highlights targets for Evil
14665 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
14666 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
14667 features and provides Vim-like key bindings.")
14668 (license license:gpl3+)))
14669
14670 (define-public emacs-bongo
14671 (package
14672 (name "emacs-bongo")
14673 (version "1.1")
14674 (source
14675 (origin
14676 (method git-fetch)
14677 (uri (git-reference
14678 (url "https://github.com/dbrock/bongo")
14679 (commit version)))
14680 (file-name (git-file-name name version))
14681 (sha256
14682 (base32 "1nszph9mn98flyhn1jq3y6mdh6jymjkvj5ng36ql016dj92apvhv"))))
14683 (build-system emacs-build-system)
14684 (home-page "https://github.com/dbrock/bongo")
14685 (synopsis "Media player for Emacs")
14686 (description
14687 "This package provides a flexible media player for Emacs. @code{Bongo}
14688 supports multiple backends such as @code{vlc}, @code{mpg123},
14689 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
14690 @code{afplay}.")
14691 (license license:gpl2+)))
14692
14693 (define-public emacs-groovy-modes
14694 (package
14695 (name "emacs-groovy-modes")
14696 (version "2.0")
14697 (source (origin
14698 (method git-fetch)
14699 (uri (git-reference
14700 (url "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
14701 (commit version)))
14702 (file-name (git-file-name name version))
14703 (sha256
14704 (base32
14705 "0c1d4cbnlny8gpcd20zr1wxx6ggf28jgh7sgd5r1skpsvjpbfqx2"))))
14706 (build-system emacs-build-system)
14707 (propagated-inputs
14708 `(("emacs-s" ,emacs-s)))
14709 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
14710 (synopsis "Groovy related modes for Emacs")
14711 (description
14712 "This package provides @code{groovy-mode} for syntax highlighting in
14713 Groovy source files, REPL integration with run-groovy and Grails project
14714 navigation with the grails mode.")
14715 (license license:gpl3+)))
14716
14717 (define-public emacs-jenkinsfile-mode
14718 (let ((commit "00d259ff9b870d234540e00e1d7c83cccdb063b8")
14719 (revision "1"))
14720 (package
14721 (name "emacs-jenkinsfile-mode")
14722 (version (git-version "0.0.1" revision commit))
14723 (source (origin
14724 (method git-fetch)
14725 (uri (git-reference
14726 (url "https://github.com/john2x/jenkinsfile-mode")
14727 (commit commit)))
14728 (file-name (git-file-name name version))
14729 (sha256
14730 (base32
14731 "0srf6xdjnrd4v4ks9pal7i48wmkcl4q5ry7d0yzfx1c9pz2qg9zx"))))
14732 (propagated-inputs
14733 `(("emacs-groovy-modes" ,emacs-groovy-modes)))
14734 (build-system emacs-build-system)
14735 (home-page "https://github.com/john2x/jenkinsfile-mode/")
14736 (synopsis "Emacs major-mode for editing Jenkinsfile")
14737 (description "This package provides a @code{jenkinsfile-mode} derived
14738 from @code{groovy-mode} for editing Jenkins declarative pipeline files.")
14739 (license license:gpl3+))))
14740
14741 (define-public emacs-kotlin-mode
14742 (let ((commit "0e4bafb31d1fc2a0a420a521c2723d5526646c0b")
14743 (revision "1"))
14744 (package
14745 (name "emacs-kotlin-mode")
14746 (version (git-version "0.0.1" revision commit))
14747 (source
14748 (origin
14749 (method git-fetch)
14750 (uri (git-reference
14751 (url "https://github.com/Emacs-Kotlin-Mode-Maintainers/kotlin-mode")
14752 (commit commit)))
14753 (file-name (git-file-name name version))
14754 (sha256
14755 (base32 "09inpgwmnnqaakyn4r4xs8kax8b89dw94kvl521x6d43h9zl5i70"))))
14756 (build-system emacs-build-system)
14757 (arguments
14758 `(#:tests? #t
14759 #:test-command '("ert-runner" "-L" "." "-L" "test")))
14760 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
14761 (home-page "https://github.com/Emacs-Kotlin-Mode-Maintainers/kotlin-mode")
14762 (synopsis "Major major-mode for editing Kotlin files")
14763 (description
14764 "This package provides a @code{kotlin-mode} for editing Kotlin files.")
14765 (license license:gpl3+))))
14766
14767 (define-public emacs-org-tree-slide
14768 (let ((commit "036a36eec1cf712d3db155572aed325daa372eb5")
14769 (revision "2"))
14770 (package
14771 (name "emacs-org-tree-slide")
14772 (version (git-version "2.8.4" revision commit))
14773 (source (origin
14774 (method git-fetch)
14775 (uri (git-reference
14776 (url "https://github.com/takaxp/org-tree-slide")
14777 (commit commit)))
14778 (sha256
14779 (base32
14780 "1r8ncx25xmxicgciyv5przp68y8qgy40fm10ba55awvql4xcm0yk"))
14781 (file-name (git-file-name name version))))
14782 (build-system emacs-build-system)
14783 (home-page "https://github.com/takaxp/org-tree-slide")
14784 (synopsis "Presentation tool for org-mode")
14785 (description
14786 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
14787 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
14788 @kbd{C-<} to jump to the next and previous slide.")
14789 (license license:gpl3+))))
14790
14791 (define-public emacs-scratch-el
14792 (package
14793 (name "emacs-scratch-el")
14794 (version "1.3")
14795 (source
14796 (origin
14797 (method git-fetch)
14798 (uri (git-reference
14799 (url "https://github.com/ieure/scratch-el")
14800 (commit (string-append "v" version))))
14801 (file-name (git-file-name name version))
14802 (sha256
14803 (base32 "0yiwq2gc4gdgfhaagpawhb7yrzc4fsnyb10w5d0q4whv64cj8555"))))
14804 (build-system emacs-build-system)
14805 (native-inputs
14806 `(("texinfo" ,texinfo)))
14807 (arguments
14808 '(#:phases
14809 (modify-phases %standard-phases
14810 (add-after 'install 'install-doc
14811 (lambda* (#:key outputs #:allow-other-keys)
14812 (unless (invoke "makeinfo" "scratch.texi")
14813 (error "makeinfo failed"))
14814 (install-file "scratch.info"
14815 (string-append (assoc-ref outputs "out")
14816 "/share/info"))
14817 #t)))))
14818 (home-page "https://github.com/ieure/scratch-el/")
14819 (synopsis "Create scratch buffers with the same mode as current buffer")
14820 (description "Scratch is an extension to Emacs that enables one to create
14821 scratch buffers that are in the same mode as the current buffer. This is
14822 notably useful when working on code in some language; you may grab code into a
14823 scratch buffer, and, by virtue of this extension, do so using the Emacs
14824 formatting rules for that language.")
14825 (license license:bsd-2)))
14826
14827 (define-public emacs-kv
14828 (package
14829 (name "emacs-kv")
14830 (version "0.0.19")
14831 (source
14832 (origin
14833 (method git-fetch)
14834 (uri (git-reference
14835 (url "https://github.com/nicferrier/emacs-kv")
14836 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
14837 (file-name (git-file-name name version))
14838 (sha256
14839 (base32
14840 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
14841 (build-system emacs-build-system)
14842 (arguments
14843 `(#:tests? #t
14844 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
14845 "-f" "ert-run-tests-batch-and-exit")))
14846 (home-page "https://github.com/nicferrier/emacs-kv")
14847 (synopsis "Key/Value data structures library for Emacs Lisp")
14848 (description "@code{emacs-kv} is a collection of tools for dealing with
14849 key/value data structures such as plists, alists and hash-tables in Emacs
14850 Lisp.")
14851 (license license:gpl3+)))
14852
14853 (define-public emacs-esxml
14854 (package
14855 (name "emacs-esxml")
14856 (version "0.3.5")
14857 (source (origin
14858 (method git-fetch)
14859 (uri (git-reference
14860 (url "https://github.com/tali713/esxml")
14861 (commit version)))
14862 (file-name (git-file-name name version))
14863 (sha256
14864 (base32
14865 "16jn404vfmsvm12wrf8iczqlgdf2iycbxrvalvzxnm2gr5dfzp7z"))))
14866 (build-system emacs-build-system)
14867 (arguments
14868 `(#:phases
14869 (modify-phases %standard-phases
14870 (add-after 'unpack 'fix-sources
14871 (lambda _
14872 ;; See: https://github.com/tali713/esxml/pull/28.
14873 (substitute* "css-lite.el"
14874 ((";;; main interface")
14875 (string-append ";;; main interface\n"
14876 "(require 'cl-lib)"))
14877 (("mapcan")
14878 "cl-mapcan")
14879 (("',\\(cl-mapcan #'process-css-rule rules\\)")
14880 "(cl-mapcan #'process-css-rule ',rules)"))
14881 (substitute* "esxml-form.el"
14882 ((",esxml-form-field-defn")
14883 "#'esxml-form-field-defn"))
14884 ;; See: https://github.com/tali713/esxml/issues/25
14885 (delete-file "esxpath.el")
14886 #t)))))
14887 (propagated-inputs
14888 `(("emacs-kv" ,emacs-kv)))
14889 (home-page "https://github.com/tali713/esxml/")
14890 (synopsis "SXML for EmacsLisp")
14891 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
14892 Simply, this is the easiest way to write HTML or XML in Lisp. This library
14893 uses the native form of XML representation as used by many libraries already
14894 included within Emacs. See @code{esxml-to-xml} for a concise description of
14895 the format.")
14896 (license license:gpl3+)))
14897
14898 (define-public emacs-nov-el
14899 (package
14900 (name "emacs-nov-el")
14901 (version "0.3.3")
14902 (source
14903 (origin
14904 (method git-fetch)
14905 (uri (git-reference
14906 (url "https://depp.brause.cc/nov.el.git")
14907 (commit version)))
14908 (file-name (git-file-name name version))
14909 (sha256
14910 (base32
14911 "116klnjyggwfwvs9nqhpv97m00k63q6lg41ph41kywsqkfy42dlk"))))
14912 (build-system emacs-build-system)
14913 (arguments
14914 `(#:phases
14915 (modify-phases %standard-phases
14916 (add-after 'unpack 'embed-path-to-unzip
14917 (lambda _
14918 (substitute* "nov.el"
14919 (("\\(executable-find \"unzip\"\\)")
14920 (string-append "\"" (which "unzip") "\"")))
14921 #t)))))
14922 (propagated-inputs
14923 `(("emacs-dash" ,emacs-dash)
14924 ("emacs-esxml" ,emacs-esxml)))
14925 (inputs
14926 `(("unzip" ,unzip)))
14927 (home-page "https://depp.brause.cc/nov.el/")
14928 (synopsis "Major mode for reading EPUBs in Emacs")
14929 (description "@code{nov.el} provides a major mode for reading EPUB
14930 documents.
14931
14932 Features:
14933
14934 @itemize
14935 @item Basic navigation (jump to TOC, previous/next chapter)
14936 @item Remembering and restoring the last read position
14937 @item Jump to next chapter when scrolling beyond end
14938 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
14939 @item Hyperlinks to internal and external targets
14940 @item Supports textual and image documents
14941 @item View source of document files
14942 @item Metadata display
14943 @item Image rescaling
14944 @end itemize
14945 ")
14946 (license license:gpl3+)))
14947
14948 (define-public epipe
14949 (package
14950 (name "epipe")
14951 (version "0.1.0")
14952 (source
14953 (origin
14954 (method git-fetch)
14955 (uri (git-reference
14956 (url "https://github.com/cute-jumper/epipe")
14957 (commit version)))
14958 (file-name (git-file-name name version))
14959 (sha256
14960 (base32 "0lkisi1s7sn12nx8zh58qmsxwnk1rjwryj18wcbr148xqz3swg57"))))
14961 (build-system trivial-build-system)
14962 (inputs
14963 `(("bash" ,bash)
14964 ("perl" ,perl)))
14965 (arguments
14966 `(#:modules
14967 ((guix build utils))
14968 #:builder
14969 (begin
14970 (use-modules (guix build utils))
14971 ;; Extract source.
14972 (copy-recursively (assoc-ref %build-inputs "source") "source")
14973 (chdir "source")
14974 ;; Patch shebangs.
14975 (substitute* "epipe"
14976 (("/usr/bin/env bash")
14977 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
14978 (patch-shebang "epipe.pl"
14979 (list (string-append (assoc-ref %build-inputs "perl")
14980 "/bin")))
14981 ;; Install.
14982 (for-each (lambda (file)
14983 (install-file file (string-append %output "/bin")))
14984 '("epipe" "epipe.pl"))
14985 #t)))
14986 (home-page "https://github.com/cute-jumper/epipe")
14987 (synopsis "Pipe to the @code{emacsclient}")
14988 (description "@code{epipe} provides an utility to use your editor in
14989 the pipeline, featuring the support for running @code{emacsclient}.")
14990 (license license:gpl3+)))
14991
14992 (define-public emacs-hcl-mode
14993 (package
14994 (name "emacs-hcl-mode")
14995 (version "0.03")
14996 (source
14997 (origin
14998 (method git-fetch)
14999 (uri (git-reference
15000 (url "https://github.com/syohex/emacs-hcl-mode")
15001 (commit version)))
15002 (file-name (git-file-name name version))
15003 (sha256
15004 (base32 "0jqrgq15jz6pvx38pnwkizzfiih0d3nxqphyrc92nqpcyimg8b6g"))))
15005 (build-system emacs-build-system)
15006 (home-page "https://github.com/syohex/emacs-hcl-mode")
15007 (synopsis "Major mode for the Hashicorp Configuration Language")
15008 (description
15009 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
15010 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
15011 highlighting and indentation support.")
15012 (license license:gpl3+)))
15013
15014 (define-public emacs-terraform-mode
15015 (package
15016 (name "emacs-terraform-mode")
15017 (version "0.06")
15018 (source
15019 (origin
15020 (method git-fetch)
15021 (uri (git-reference
15022 (url "https://github.com/syohex/emacs-terraform-mode")
15023 (commit version)))
15024 (file-name (git-file-name name version))
15025 (sha256
15026 (base32 "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx"))))
15027 (build-system emacs-build-system)
15028 (propagated-inputs
15029 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
15030 (home-page "https://github.com/syohex/emacs-terraform-mode")
15031 (synopsis "Major mode for Terraform")
15032 (description
15033 "@code{emacs-terraform-mode} provides a major mode for working with
15034 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
15035 functionality is inherited from @code{hcl-mode}.")
15036 (license license:gpl3+)))
15037
15038 (define-public emacs-exec-path-from-shell
15039 (package
15040 (name "emacs-exec-path-from-shell")
15041 (version "1.12")
15042 (source
15043 (origin
15044 (method git-fetch)
15045 (uri (git-reference
15046 (url "https://github.com/purcell/exec-path-from-shell")
15047 (commit version)))
15048 (file-name (git-file-name name version))
15049 (sha256
15050 (base32
15051 "1ga8bpxngd3ph2hdiik92c612ki71qxw818i6rgx6f6a5r0sbf3p"))))
15052 (build-system emacs-build-system)
15053 (home-page "https://github.com/purcell/exec-path-from-shell")
15054 (synopsis "Get environment variables such as @env{PATH} from the shell")
15055 (description
15056 "This library allows the user to set Emacs @code{exec-path} and @env{PATH}
15057 from the shell's @env{PATH}, so that @code{shell-command}, @code{compile} and
15058 the like work as expected on systems on which Emacs is not guaranteed to
15059 inherit a login shell's environment variables. It also allows other
15060 environment variables to be retrieved from the shell, so that Emacs will see
15061 the same values you get in a terminal.")
15062 (license license:gpl3+)))
15063
15064 (define-public emacs-frog-menu
15065 (package
15066 (name "emacs-frog-menu")
15067 (version "0.2.11")
15068 (source
15069 (origin
15070 (method url-fetch)
15071 (uri (string-append "https://elpa.gnu.org/packages/"
15072 "frog-menu-" version ".el"))
15073 (sha256
15074 (base32 "06iw11z61fd0g4w3562k3smcmzaq3nivvvc6gzm8y8k5pcrqzdff"))))
15075 (build-system emacs-build-system)
15076 (propagated-inputs
15077 `(("emacs-avy" ,emacs-avy)
15078 ("emacs-posframe" ,emacs-posframe)))
15079 (home-page "https://github.com/clemera/frog-menu")
15080 (synopsis "Quickly pick items from ad hoc menus")
15081 (description
15082 "This package provides a popup offering a preview of a list of candidates
15083 on which user-defined dispatch actions can act.")
15084 (license license:gpl3+)))
15085
15086 (define-public emacs-frog-jump-buffer
15087 (let ((commit "2d7b342785ae27d45f5d252272df6eb773c78e20")
15088 (revision "1"))
15089 (package
15090 (name "emacs-frog-jump-buffer")
15091 (version (git-version "0.1.4" revision commit))
15092 (source
15093 (origin
15094 (method git-fetch)
15095 (uri (git-reference
15096 (url "https://github.com/waymondo/frog-jump-buffer")
15097 (commit commit)))
15098 (file-name (git-file-name name version))
15099 (sha256
15100 (base32
15101 "1z00by8hiss1r2lwmzrl8pnz6jykia2849dqqm4l3z5rf6lwvc0f"))))
15102 (build-system emacs-build-system)
15103 (propagated-inputs
15104 `(("emacs-dash" ,emacs-dash)
15105 ("emacs-frog-menu" ,emacs-frog-menu)
15106 ("emacs-avy" ,emacs-avy)))
15107 (home-page "https://github.com/waymondo/frog-jump-buffer")
15108 (synopsis "Jump to any Emacs buffer with minimal keystrokes")
15109 (description
15110 "This package provides a preview window of buffers that can be switched
15111 to with quicklink-style selections.")
15112 (license license:gpl3+))))
15113
15114 (define-public emacs-deft
15115 (package
15116 (name "emacs-deft")
15117 (version "0.8")
15118 (source
15119 (origin
15120 (method git-fetch)
15121 (uri (git-reference
15122 (url "https://github.com/jrblevin/deft")
15123 (commit (string-append "v" version))))
15124 (file-name (git-file-name name version))
15125 (sha256
15126 (base32
15127 "0z7cilgiz6krvl5h2z72hkch43qxmypb0k6p5vxn5lx1p6v0mrf2"))))
15128 (build-system emacs-build-system)
15129 (home-page "https://jblevins.org/projects/deft/")
15130 (synopsis "Quickly browse, filter, and edit plain text notes")
15131 (description
15132 "Deft is an Emacs mode for quickly browsing, filtering, and editing
15133 directories of plain text notes, inspired by Notational Velocity.")
15134 (license license:bsd-3)))
15135
15136 (define-public emacs-anzu
15137 (package
15138 (name "emacs-anzu")
15139 (version "0.64")
15140 (source
15141 (origin
15142 (method git-fetch)
15143 (uri (git-reference
15144 (url "https://github.com/syohex/emacs-anzu")
15145 (commit version)))
15146 (file-name (git-file-name name version))
15147 (sha256
15148 (base32 "1jfn5nm6r68wa0gn2k2zy6sdq6c8shw8x04ylzzm5cw7zm60jw0n"))))
15149 (build-system emacs-build-system)
15150 (home-page "https://github.com/syohex/emacs-anzu")
15151 (synopsis "Show number of matches in mode-line while searching")
15152 (description
15153 "Anzu provides a minor mode which displays \"current match/total
15154 matches\" in the mode line in various search modes. This is an Emacs port of
15155 Anzu.zim.")
15156 (license license:gpl3+)))
15157
15158 (define-public emacs-ascii-art-to-unicode
15159 (package
15160 (name "emacs-ascii-art-to-unicode")
15161 (version "1.13")
15162 (source
15163 (origin
15164 (method url-fetch)
15165 (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-"
15166 version ".el"))
15167 (sha256
15168 (base32 "1c0jva3amhl9c5xc5yzdpi58c8m1djym4ccj31z6wmakq7npy07p"))))
15169 (build-system emacs-build-system)
15170 (home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html")
15171 (synopsis "ASCII to Unicode art converter for Emacs")
15172 (description "This Emacs package provides the commands @command{aa2u} and
15173 @command{aa2u-rectangle}. Both of these commands can be used to convert
15174 simple ASCII art line drawings to Unicode; the former works on the active
15175 region of the buffer, while the latter works on rectangular selections.")
15176 (license license:gpl3+)))
15177
15178 (define-public emacs-emmet-mode
15179 (let ((commit "1acb821e0142136344ccf40c1e5fb664d7db2e70")
15180 (revision "1"))
15181 (package
15182 (name "emacs-emmet-mode")
15183 (version (git-version "1.0.8" revision commit))
15184 (source (origin
15185 (method git-fetch)
15186 (uri (git-reference
15187 (url "https://github.com/smihica/emmet-mode")
15188 (commit commit)))
15189 (file-name (git-file-name name version))
15190 (sha256
15191 (base32
15192 "1p25h191bm0h5b3w5apg7wks51k7pb7h4dlww4jbl9ri4d33fzcl"))))
15193 (build-system emacs-build-system)
15194 (home-page "https://github.com/smihica/emmet-mode")
15195 (synopsis "Unofficial Emmet's support for Emacs")
15196 (description
15197 "Unfold CSS-selector-like expressions to markup. It is intended to be
15198 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
15199 (license license:gpl3+))))
15200
15201 (define-public emacs-ergoemacs-mode
15202 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
15203 (revision "1"))
15204 (package
15205 (name "emacs-ergoemacs-mode")
15206 (version (git-version "5.16.10.12" revision commit))
15207 (source
15208 (origin
15209 (method git-fetch)
15210 (uri (git-reference
15211 (url "https://github.com/ergoemacs/ergoemacs-mode")
15212 (commit commit)))
15213 (file-name (git-file-name name version))
15214 (sha256
15215 (base32
15216 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
15217 (build-system emacs-build-system)
15218 (propagated-inputs
15219 `(("emacs-undo-tree" ,emacs-undo-tree)))
15220 (home-page "https://ergoemacs.github.io/")
15221 (synopsis "Emacs mode based on common modern interface and ergonomics")
15222 (description
15223 "This package provides an efficient Emacs keybinding set based on
15224 statistics of command frequency, and supports common shortcuts for open,
15225 close, copy, cut, paste, undo, redo.")
15226 (license license:gpl3+))))
15227
15228 (define-public emacs-password-store
15229 (let ((commit "918992c19231b33b3d4a3288a7288a620e608cb4")
15230 (revision "1"))
15231 (package
15232 (name "emacs-password-store")
15233 ;; The emacs package version does not match the password-store version,
15234 ;; even though it is part of the same repository. When updating, look
15235 ;; at the version declared in password-store.el.
15236 (version (git-version "2.1.4" revision commit))
15237 (source (origin
15238 (method git-fetch)
15239 (uri (git-reference
15240 (url "git://git.zx2c4.com/password-store")
15241 (commit commit)))
15242 (sha256
15243 (base32
15244 "0ni62f4pq96g0i0q66bch1dl9k4zqwhg7xaf746k3gbbqxcdh3vi"))
15245 (file-name (git-file-name name version))))
15246 (build-system emacs-build-system)
15247 (arguments
15248 `(#:phases
15249 (modify-phases %standard-phases
15250 (add-after 'unpack 'extract-el-file
15251 (lambda _
15252 (copy-file "contrib/emacs/password-store.el" "password-store.el")
15253 (delete-file-recursively "contrib")
15254 (delete-file-recursively "man")
15255 (delete-file-recursively "src")
15256 (delete-file-recursively "tests"))))))
15257 (propagated-inputs
15258 `(("emacs-auth-source-pass" ,emacs-auth-source-pass)
15259 ("emacs-s" ,emacs-s)
15260 ("emacs-with-editor" ,emacs-with-editor)
15261 ("password-store" ,password-store)))
15262 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
15263 (synopsis "Password store (pass) support for Emacs")
15264 (description
15265 "This package provides functions for working with pass (\"the
15266 standard Unix password manager\").")
15267 (license license:gpl2+))))
15268
15269 (define-public emacs-password-store-otp
15270 (package
15271 (name "emacs-password-store-otp")
15272 (version "0.1.5")
15273 (source
15274 (origin
15275 (method git-fetch)
15276 (uri (git-reference
15277 (url "https://github.com/volrath/password-store-otp.el")
15278 (commit version)))
15279 (sha256
15280 (base32 "0gb48blvnn6ci2wl45z81p41ny7vbgl610hqy6b2hyr2171qjd60"))
15281 (file-name (git-file-name name version))))
15282 (build-system emacs-build-system)
15283 (propagated-inputs
15284 `(("emacs-password-store" ,emacs-password-store)
15285 ("emacs-s" ,emacs-s)))
15286 (home-page "https://github.com/volrath/password-store-otp.el")
15287 (synopsis
15288 "Interact with the @code{pass-otp} extension for @code{pass} from Emacs")
15289 (description "This package provides Emacs functions to interact with the
15290 @code{pass-otp} extension for @code{pass}. It includes functions to import
15291 OTP URIs from screenshots of QR codes, and to export them back to QR codes if
15292 needed.")
15293 (license license:gpl3+)))
15294
15295 (define-public emacs-auth-source-pass
15296 (let ((commit "847a1f54ed48856b4dfaaa184583ef2c84173edf")
15297 (revision "2"))
15298 (package
15299 (name "emacs-auth-source-pass")
15300 (version (git-version "5.0.0" revision commit))
15301 (source
15302 (origin
15303 (method git-fetch)
15304 (uri (git-reference
15305 (url "https://github.com/DamienCassou/auth-password-store")
15306 (commit commit)))
15307 (file-name (git-file-name name version))
15308 (sha256
15309 (base32 "0g48z5w6n3c54zqfpx65dfyl9jqbl15idvbb1hhw2pd9f9r8fykk"))))
15310 (build-system emacs-build-system)
15311 (arguments
15312 `(#:tests? #t
15313 #:test-command '("emacs" "--batch"
15314 "-L" "."
15315 "-l" "test/auth-source-pass-tests.el"
15316 "-f" "ert-run-tests-batch-and-exit")))
15317 (home-page "https://github.com/DamienCassou/auth-password-store")
15318 (synopsis "Integrate @code{auth-source} with @code{password-store}")
15319 (description "This package helps Emacs integrate with the Unix
15320 @code{password-store} application.")
15321 (license license:gpl3+))))
15322
15323 (define-public emacs-pass
15324 (package
15325 (name "emacs-pass")
15326 (version "2.0")
15327 (source
15328 (origin
15329 (method git-fetch)
15330 (uri (git-reference
15331 (url "https://github.com/NicolasPetton/pass")
15332 (commit version)))
15333 (file-name (git-file-name name version))
15334 (sha256
15335 (base32 "0jc8j421mlflspg24jvrqc2n3y5n3cpk3hjy560il8g36xi1049p"))))
15336 (build-system emacs-build-system)
15337 (propagated-inputs
15338 `(("emacs-password-store" ,emacs-password-store)
15339 ("emacs-f" ,emacs-f)))
15340 (home-page "https://github.com/NicolasPetton/pass")
15341 (synopsis "Major mode for @file{password-store.el}")
15342 (description "This is a major mode for managing password-store (pass)
15343 keychains. The keychain entries are displayed in a directory-like structure
15344 and can be consulted and modified.")
15345 (license license:gpl3+)))
15346
15347 (define-public emacs-psc-ide
15348 ;; There is no proper release. The base version is extracted from the
15349 ;; "Version" keyword in the main file.
15350 (let ((commit "7fc2b841be25f5bc5e1eb7d0634436181c38b3fe")
15351 (revision "1"))
15352 (package
15353 (name "emacs-psc-ide")
15354 (version (git-version "0.1.0" revision commit))
15355 (source
15356 (origin
15357 (method git-fetch)
15358 (uri
15359 (git-reference
15360 (url "https://github.com/purescript-emacs/psc-ide-emacs")
15361 (commit commit)))
15362 (file-name (git-file-name name version))
15363 (sha256
15364 (base32 "0r0fymyai30jimm34z1cmav4wgij8ci6s1d9y7qigygfbbfrdsmj"))))
15365 (build-system emacs-build-system)
15366 (propagated-inputs
15367 `(("emacs-company" ,emacs-company)
15368 ("emacs-dash" ,emacs-dash)
15369 ("emacs-flycheck" ,emacs-flycheck)
15370 ("emacs-let-alist" ,emacs-let-alist)
15371 ("emacs-s" ,emacs-s)))
15372 (home-page "https://github.com/purescript-emacs/psc-ide-emacs")
15373 (synopsis "Emacs integration for PureScript's psc-ide tool")
15374 (description
15375 "This package provices Emacs integration for @code{psc-ide}, an IDE
15376 protocol for PureScript programming language. It features:
15377
15378 @itemize
15379 @item Completions
15380 @item Type at point
15381 @item Go to definition
15382 @item Automatic imports
15383 @item Case split
15384 @item Build system integration, and
15385 @item Flycheck support
15386 @end itemize")
15387 (license license:gpl3+))))
15388
15389 (define-public emacs-evil-anzu
15390 (package
15391 (name "emacs-evil-anzu")
15392 (version "0.03")
15393 (source
15394 (origin
15395 (method git-fetch)
15396 (uri (git-reference
15397 (url "https://github.com/syohex/emacs-evil-anzu")
15398 (commit version)))
15399 (file-name (git-file-name name version))
15400 (sha256
15401 (base32 "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr"))))
15402 (build-system emacs-build-system)
15403 (propagated-inputs
15404 `(("emacs-evil" ,emacs-evil)
15405 ("emacs-anzu" ,emacs-anzu)))
15406 (home-page "https://github.com/syohex/emacs-evil-anzu")
15407 (synopsis "Anzu for evil-mode")
15408 (description "@code{anzu} provides a minor mode that displays the current
15409 match and total match information in the mode-line in various search modes.")
15410 (license license:gpl3+)))
15411
15412 (define-public emacs-pg
15413 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
15414 (package
15415 (name "emacs-pg")
15416 (version (git-version "0.1" "1" commit))
15417 (source (origin
15418 (method git-fetch)
15419 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
15420 (commit commit)))
15421 (file-name (git-file-name name version))
15422 (sha256
15423 (base32
15424 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
15425 (build-system emacs-build-system)
15426 (home-page "https://github.com/cbbrowne/pg.el")
15427 (synopsis "Emacs Lisp interface for PostgreSQL")
15428 (description
15429 "This package provides an Emacs Lisp interface for PostgreSQL.")
15430 (license license:gpl3+))))
15431
15432 (define-public emacs-finalize
15433 (package
15434 (name "emacs-finalize")
15435 (version "2.0.0")
15436 (source
15437 (origin
15438 (method git-fetch)
15439 (uri (git-reference
15440 (url "https://github.com/skeeto/elisp-finalize")
15441 (commit version)))
15442 (file-name (git-file-name name version))
15443 (sha256
15444 (base32 "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"))))
15445 (build-system emacs-build-system)
15446 (home-page "https://github.com/skeeto/elisp-finalize")
15447 (synopsis "Finalizers for Emacs Lisp")
15448 (description
15449 "This package runs a callback (a finalizer)
15450 after its registered lisp object has been garbage collected. This allows
15451 extra resources, such as buffers and processes, to be cleaned up after the
15452 object has been freed.")
15453 (license license:unlicense)))
15454
15455 (define-public emacs-emacsql
15456 (package
15457 (name "emacs-emacsql")
15458 (version "3.0.0")
15459 (source (origin
15460 (method git-fetch)
15461 (uri (git-reference
15462 (url "https://github.com/skeeto/emacsql")
15463 (commit (string-append version))))
15464 (file-name (git-file-name name version))
15465 (sha256
15466 (base32
15467 "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
15468 (build-system emacs-build-system)
15469 (arguments
15470 `(#:modules ((guix build emacs-build-system)
15471 (guix build utils)
15472 (guix build emacs-utils)
15473 (srfi srfi-26))
15474 #:phases
15475 (modify-phases %standard-phases
15476 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
15477 (add-before 'install 'patch-elisp-shell-shebangs
15478 (lambda _
15479 (substitute* (find-files "." "\\.el")
15480 (("/bin/sh") (which "sh")))
15481 #t))
15482 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
15483 (lambda _
15484 (setenv "SHELL" "sh")))
15485 (add-after 'setenv-shell 'build-emacsql-sqlite
15486 (lambda _
15487 (invoke "make" "binary" "CC=gcc")))
15488 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
15489 ;; This build phase installs emacs-emacsql binary.
15490 (lambda* (#:key outputs #:allow-other-keys)
15491 (install-file "sqlite/emacsql-sqlite"
15492 (string-append (assoc-ref outputs "out")
15493 "/bin"))
15494 #t))
15495 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
15496 ;; This build phase removes interactive prompts
15497 ;; and makes sure Emacs look for binaries in the right places.
15498 (lambda* (#:key outputs #:allow-other-keys)
15499 (let ((file "emacsql-sqlite.el"))
15500 (chmod file #o644)
15501 (emacs-substitute-sexps file
15502 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
15503 ("(executable-find" (which "gcc"))
15504 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
15505 ;; in the right place.
15506 ("(defvar emacsql-sqlite-executable"
15507 (string-append (assoc-ref outputs "out")
15508 "/bin/emacsql-sqlite"))))))
15509 (replace 'install
15510 (lambda* (#:key outputs #:allow-other-keys)
15511 (let* ((out (assoc-ref outputs "out")))
15512 (install-file "sqlite/emacsql-sqlite"
15513 (string-append out "/bin"))
15514 (for-each (cut install-file <>
15515 (string-append out "/share/emacs/site-lisp"))
15516 (find-files "." "\\.elc*$")))
15517 #t)))))
15518 (inputs
15519 `(("emacs-minimal" ,emacs-minimal)
15520 ("mariadb" ,mariadb "lib")
15521 ("mariadb-dev" ,mariadb "dev")
15522 ("postgresql" ,postgresql)))
15523 (propagated-inputs
15524 `(("emacs-finalize" ,emacs-finalize)
15525 ("emacs-pg" ,emacs-pg)))
15526 (home-page "https://github.com/skeeto/emacsql")
15527 (synopsis "Emacs high-level SQL database front-end")
15528 (description "Any readable Lisp value can be stored as a value in EmacSQL,
15529 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
15530 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
15531 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
15532 (license license:gpl3+)))
15533
15534 (define-public emacs-emacsql-sqlite3
15535 (package
15536 (name "emacs-emacsql-sqlite3")
15537 (version "1.0.2")
15538 (source (origin
15539 (method git-fetch)
15540 (uri (git-reference
15541 (url "https://github.com/cireu/emacsql-sqlite3")
15542 (commit version)))
15543 (file-name (git-file-name name version))
15544 (sha256
15545 (base32
15546 "1jzvvsvi8jm2ws3y49nmpmwd3zlvf8j83rl2vwizd1aplwwdnmd6"))))
15547 (build-system emacs-build-system)
15548 (native-inputs
15549 `(("ert-runner" ,emacs-ert-runner)))
15550 (inputs
15551 `(("sqlite" ,sqlite)))
15552 (propagated-inputs
15553 `(("emacs-emacsql" ,emacs-emacsql)))
15554 (arguments
15555 `(#:tests? #t
15556 #:test-command '("emacs" "-Q" "--batch" "-L" "."
15557 "--load" "emacsql-sqlite3-test.el"
15558 "-f" "ert-run-tests-batch-and-exit")
15559 #:phases
15560 (modify-phases %standard-phases
15561 (add-after 'unpack 'embed-path-to-sqlite3
15562 (lambda _
15563 (substitute* "emacsql-sqlite3.el"
15564 (("\\(executable-find \"sqlite3\"\\)")
15565 (string-append "\"" (which "sqlite3") "\"")))
15566 #t)))))
15567 (home-page "https://github.com/cireu/emacsql-sqlite3")
15568 (synopsis "EmacSQL backend for SQLite")
15569 (description "This is yet another EmacSQL backend for SQLite which uses
15570 official @command{sqlite3} executable to access SQL database.")
15571 (license license:gpl3+)))
15572
15573 (define-public emacs-closql
15574 (package
15575 (name "emacs-closql")
15576 (version "1.0.4")
15577 (source
15578 (origin
15579 (method git-fetch)
15580 (uri (git-reference
15581 (url "https://github.com/emacscollective/closql")
15582 (commit (string-append "v" version))))
15583 (file-name (git-file-name name version))
15584 (sha256
15585 (base32
15586 "06j0sc6dx8f34wc8i7dzkp8jwvwnrpnl8i93vpc1qw0ih0jwa2zh"))))
15587 (build-system emacs-build-system)
15588 (propagated-inputs
15589 `(("emacs-emacsql" ,emacs-emacsql)))
15590 (home-page "https://github.com/emacscollective/closql")
15591 (synopsis "Store EIEIO objects using EmacSQL")
15592 (description
15593 "This package stores uniform EIEIO objects in an EmacSQL
15594 database. SQLite is used as backend. This library imposes some restrictions
15595 on what kind of objects can be stored; it isn't intended to store arbitrary
15596 objects. All objects have to share a common superclass and subclasses cannot
15597 add any additional instance slots.")
15598 (license license:gpl3)))
15599
15600 (define-public emacs-epkg
15601 (package
15602 (name "emacs-epkg")
15603 (version "3.2.2")
15604 (source
15605 (origin
15606 (method git-fetch)
15607 (uri (git-reference
15608 (url "https://github.com/emacscollective/epkg")
15609 (commit (string-append "v" version))))
15610 (file-name (git-file-name name version))
15611 (sha256
15612 (base32
15613 "1pxz611qb3m33r6343h0xhwqvvhjl131zyc2klplzgb23rkm8lk0"))))
15614 (build-system emacs-build-system)
15615 (propagated-inputs
15616 `(("emacs-closql" ,emacs-closql)
15617 ("emacs-dash" ,emacs-dash)))
15618 (home-page "https://emacsmirror.net")
15619 (synopsis "Browse the Emacsmirror package database")
15620 (description "This package provides access to a local copy of the
15621 Emacsmirror package database. It provides low-level functions for querying
15622 the database and a @file{package.el} user interface for browsing the database.
15623 Epkg itself is not a package manager.
15624
15625 Getting a local copy:
15626
15627 @example
15628 git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
15629 cd ~/.emacs.d/epkgs
15630 git submodule init
15631 git config --global url.https://github.com/.insteadOf git@@github.com:
15632 git submodule update
15633 @end example
15634
15635 Some submodule may be missing. In this case Git will prompt for a GitHub user
15636 name and password. To skip it press a @key{Return} key.
15637
15638 You could get a Epkg package list by invoking @code{epkg-list-packages} in
15639 Emacs.")
15640 (license license:gpl3+)))
15641
15642 (define-public emacs-elisp-slime-nav
15643 (package
15644 (name "emacs-elisp-slime-nav")
15645 (version "0.10")
15646 (source
15647 (origin
15648 (method git-fetch)
15649 (uri (git-reference
15650 (url "https://github.com/purcell/elisp-slime-nav")
15651 (commit version)))
15652 (file-name (git-file-name name version))
15653 (sha256
15654 (base32 "08k4zlawjkb0ldn4lgrhih8nzln398x7dwzpipqfyrmp0xziywma"))))
15655 (build-system emacs-build-system)
15656 (home-page "https://github.com/purcell/elisp-slime-nav")
15657 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
15658 (description
15659 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
15660 in @code{emacs-lisp-mode}, together with an elisp equivalent of
15661 @code{slime-describe-symbol}.")
15662 (license license:gpl3+)))
15663
15664 (define-public emacs-dedicated
15665 (package
15666 (name "emacs-dedicated")
15667 (version "1.0.0")
15668 (source
15669 (origin
15670 (method git-fetch)
15671 (uri (git-reference
15672 (url "https://github.com/emacsorphanage/dedicated")
15673 (commit version)))
15674 (file-name (git-file-name name version))
15675 (sha256
15676 (base32 "0pba9s0h37sxyqh733vi6k5raa4cs7aradipf3826inw36jcw414"))))
15677 (build-system emacs-build-system)
15678 (home-page "https://github.com/emacsorphanage/dedicated")
15679 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
15680 (description
15681 "This simple Emacs minor mode allows you to toggle a window's
15682 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
15683 files into that window. This can be quite handy since many commands will use
15684 another window to show results (compilation mode, starting info, and so on).
15685 A dedicated window won't be used for such a purpose. For details, please read
15686 the source file.")
15687 (license license:gpl2+)))
15688
15689 (define-public emacs-nnreddit
15690 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
15691 (revision "1"))
15692 (package
15693 (name "emacs-nnreddit")
15694 (version (string-append "0.0.1-" revision "."
15695 (string-take commit 7)))
15696 (source (origin
15697 (method git-fetch)
15698 (uri (git-reference
15699 (url "https://github.com/paul-issartel/nnreddit")
15700 (commit commit)))
15701 (file-name (git-file-name name version))
15702 (sha256
15703 (base32
15704 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
15705 (build-system emacs-build-system)
15706 (home-page "https://github.com/paul-issartel/nnreddit")
15707 (synopsis "Reddit backend for the Gnus newsreader")
15708 (description "@url{https://www.reddit.com} backend for the Gnus
15709 newsreader.")
15710 (license license:gpl3+))))
15711
15712 (define-public emacs-makey
15713 (package
15714 (name "emacs-makey")
15715 (version "0.3")
15716 (source
15717 (origin
15718 (method git-fetch)
15719 (uri (git-reference
15720 (url "https://github.com/mickeynp/makey")
15721 (commit version)))
15722 (file-name (git-file-name name version))
15723 (sha256
15724 (base32 "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"))))
15725 (build-system emacs-build-system)
15726 (home-page "https://github.com/mickeynp/makey")
15727 (synopsis "Emacs interactive command-line mode")
15728 (description
15729 "This package provides an Emacs interactive command-line mode.")
15730 (license license:gpl3+)))
15731
15732 (define-public emacs-outorg
15733 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
15734 (package
15735 (name "emacs-outorg")
15736 (version (git-version "2.0" "1" commit))
15737 (source
15738 (origin
15739 (method git-fetch)
15740 (uri (git-reference
15741 (url "https://github.com/alphapapa/outorg")
15742 (commit commit)))
15743 (file-name (git-file-name name version))
15744 (sha256
15745 (base32
15746 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
15747 (build-system emacs-build-system)
15748 (home-page "https://github.com/alphapapa/outorg")
15749 (synopsis "Org-style comment editing")
15750 (description "Outorg is for editing comment-sections of source-code
15751 files in temporary Org-mode buffers. It turns conventional
15752 literate-programming upside-down in that the default mode is the
15753 programming-mode, and special action has to be taken to switch to the
15754 text-mode (i.e. Org-mode).")
15755 (license license:gpl3+))))
15756
15757 (define-public emacs-outshine
15758 (package
15759 (name "emacs-outshine")
15760 (version "3.0.1")
15761 (source (origin
15762 (method git-fetch)
15763 (uri (git-reference
15764 (url "https://github.com/alphapapa/outshine")
15765 (commit (string-append "v" version))))
15766 (file-name (git-file-name name version))
15767 (sha256
15768 (base32
15769 "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg"))))
15770 (build-system emacs-build-system)
15771 (propagated-inputs
15772 `(("emacs-outorg" ,emacs-outorg)))
15773 (home-page "https://github.com/alphapapa/outshine")
15774 (synopsis "Emacs outline with outshine")
15775 (description "Outshine attempts to bring the look and feel of
15776 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
15777 of @code{outline-minor-mode} (@code{org-mode} itself derives from
15778 outline-mode), so there is no such thing like an outshine mode, only
15779 @code{outline-minor-mode} with outshine extensions loaded.")
15780 (license license:gpl3+)))
15781
15782 (define-public emacs-frecency
15783 (let ((commit "31ef9ff4af1a4fed3dcc24ea74037feea8795c87")
15784 (version "0.1-pre")
15785 (revision "1"))
15786 (package
15787 (name "emacs-frecency")
15788 (version (git-version version revision commit))
15789 (source (origin
15790 (method git-fetch)
15791 (uri (git-reference
15792 (url "https://github.com/alphapapa/frecency.el")
15793 (commit commit)))
15794 (sha256
15795 (base32
15796 "051aihjdg3x22svaxhwylpi8i6s2x9j8syvsj1jgilgjjdy15l6j"))
15797 (file-name (git-file-name name version))))
15798 (build-system emacs-build-system)
15799 (propagated-inputs
15800 `(("emacs-a" ,emacs-a)
15801 ("emacs-dash" ,emacs-dash)))
15802 (home-page "https://github.com/alphapapa/frecency.el")
15803 (synopsis "Sort items by frequency and recency of access")
15804 (description "This package provides a way of sorting items via
15805 a heuristic based on frequency and recency.")
15806 (license license:gpl3+))))
15807
15808 (define-public emacs-org-recent-headings
15809 (package
15810 (name "emacs-org-recent-headings")
15811 (version "0.1")
15812 (source (origin
15813 (method git-fetch)
15814 (uri (git-reference
15815 (url "https://github.com/alphapapa/org-recent-headings")
15816 (commit version)))
15817 (file-name (git-file-name name version))
15818 (sha256
15819 (base32
15820 "0gsrzmg3mssh9s28yjm9m866fnhm1pcligssz1q6brga6dm6f2yy"))))
15821 (build-system emacs-build-system)
15822 (propagated-inputs
15823 `(("emacs-org" ,emacs-org)
15824 ("emacs-dash" ,emacs-dash)
15825 ("emacs-frecency" ,emacs-frecency)))
15826 (home-page "https://github.com/alphapapa/org-recent-headings")
15827 (synopsis "Navigate to recently used Org headings and lists")
15828 (description "This package maintains a list of recently used Org headings,
15829 as well as functions for navigating between these headings.")
15830 (license license:gpl3+)))
15831
15832 (define-public emacs-org-super-agenda
15833 (package
15834 (name "emacs-org-super-agenda")
15835 (version "1.2")
15836 (source (origin
15837 (method git-fetch)
15838 (uri (git-reference
15839 (url "https://github.com/alphapapa/org-super-agenda")
15840 (commit version)))
15841 (file-name (git-file-name name version))
15842 (sha256
15843 (base32
15844 "10l9h2n09cql4ih7nc0ma3ghdsq9l5v9xlj1lg7kq67icdwjlsvy"))))
15845 (build-system emacs-build-system)
15846 (arguments
15847 `(#:tests? #t
15848 #:test-command '("test/run" "--debug")
15849 #:phases
15850 (modify-phases %standard-phases
15851 (add-after 'unpack 'prepare-for-tests.el
15852 (lambda _
15853 (make-file-writable "test/test.el")
15854 (emacs-substitute-variables "test/test.el"
15855 ("org-super-agenda-test-results-file"
15856 (string-append (getcwd) "/test/results.el")))
15857 ;; The following test fail (see:
15858 ;; https://github.com/alphapapa/org-super-agenda/issues/183).
15859 (substitute* "test/test.el"
15860 ((".*org-super-agenda-test--:auto-map.*" all)
15861 (string-append all " (skip-unless nil)\n")))
15862 #t)))))
15863 (native-inputs
15864 `(("emacs-f" ,emacs-f)
15865 ("getopt" ,util-linux)))
15866 (propagated-inputs
15867 `(("emacs-org" ,emacs-org)
15868 ("emacs-dash" ,emacs-dash)
15869 ("emacs-ts" ,emacs-ts)
15870 ("emacs-ht" ,emacs-ht)
15871 ("emacs-s" ,emacs-s)))
15872 (home-page "https://github.com/alphapapa/org-super-agenda")
15873 (synopsis "Supercharged Org agenda")
15874 (description "This package allows items in the Org agenda to be grouped
15875 into sections while preserving the structure imposed by any timestamps.")
15876 (license license:gpl3+)))
15877
15878 (define-public emacs-elegant-agenda-mode
15879 (let ((commit "c72f42e0f551c3dd81e68262f07a96c0ec90a589")
15880 (revision "1"))
15881 (package
15882 (name "emacs-elegant-agenda-mode")
15883 (version (git-version "0.1.0" revision commit))
15884 (source
15885 (origin
15886 (method git-fetch)
15887 (uri (git-reference
15888 (url "https://github.com/justinbarclay/elegant-agenda-mode")
15889 (commit commit)))
15890 (file-name (git-file-name name version))
15891 (sha256
15892 (base32
15893 "0f8qk3vd41ffbkfqw5nks3bld0qpjrlnk9sb46wcbsyfnrs2v082"))))
15894 (build-system emacs-build-system)
15895 (home-page "https://github.com/justinbarclay/elegant-agenda-mode")
15896 (synopsis "Elegant theme for your org-agenda")
15897 (description
15898 "The elegant-agenda-mode package uses fonts and typography to give your
15899 org-agenda some breathing room and elegance. This package was inspired by the
15900 work Nicolas Rougier.")
15901 (license license:gpl3+))))
15902
15903 (define-public emacs-org-make-toc
15904 (package
15905 (name "emacs-org-make-toc")
15906 (version "0.5")
15907 (source (origin
15908 (method git-fetch)
15909 (uri (git-reference
15910 (url "https://github.com/alphapapa/org-make-toc")
15911 (commit version)))
15912 (file-name (git-file-name name version))
15913 (sha256
15914 (base32
15915 "180ji6nnj6qj0rs1rdp1zlcrfsqf7ikb44ym8icbp5d6al2s4hnr"))))
15916 (build-system emacs-build-system)
15917 (propagated-inputs
15918 `(("emacs-org" ,emacs-org)
15919 ("emacs-dash" ,emacs-dash)
15920 ("emacs-s" ,emacs-s)))
15921 (home-page "https://github.com/alphapapa/org-make-toc")
15922 (synopsis "Maintain a table of contents for an Org file")
15923 (description "This package facilitates the creation and maintenance of
15924 tables of contents.")
15925 (license license:gpl3+)))
15926
15927 (define-public emacs-ts
15928 (package
15929 (name "emacs-ts")
15930 (version "0.2")
15931 (source
15932 (origin
15933 (method git-fetch)
15934 (uri (git-reference
15935 (url "https://github.com/alphapapa/ts.el")
15936 (commit version)))
15937 (sha256
15938 (base32 "0hmzc1ppnkkr0lfq5fhzqr6icv6iqz824a6bnns7zr466hhqp3qb"))
15939 (file-name (git-file-name name version))))
15940 (build-system emacs-build-system)
15941 (propagated-inputs
15942 `(("emacs-s" ,emacs-s)
15943 ("emacs-dash" ,emacs-dash)))
15944 (arguments
15945 ;; XXX: Three tests are failing because of a timezone-related issue
15946 ;; with how they're written. On my machine, all the failing test
15947 ;; results are 18000 seconds (5 hours) off.
15948
15949 ;; The ts-parse-org function accepts a string without any timezone
15950 ;; info, not assumed to be in Unix time, and converts it to a so-called
15951 ;; ts struct. The ts-unix function (accessor) accepts a ts struct,
15952 ;; then seems to assume the struct's corresponding time is in terms of
15953 ;; the user's current time zone, before returning a Unix time in
15954 ;; seconds.
15955
15956 ;; The failing tests all have similar problems, but nothing else about
15957 ;; the library seems particularly off.
15958
15959 `(#:tests? #t
15960 #:test-command '("emacs" "--batch"
15961 "-l" "test/test.el"
15962 "-f" "ert-run-tests-batch-and-exit")
15963 #:phases
15964 (modify-phases %standard-phases
15965 (add-before 'check 'make-tests-writable
15966 (lambda _
15967 (make-file-writable "test/test.el")
15968 #t))
15969 (add-before 'check 'delete-failing-tests
15970 (lambda _
15971 (emacs-batch-edit-file "test/test.el"
15972 `(progn (progn
15973 (goto-char (point-min))
15974 (dolist (test-regexp
15975 '("ert-deftest ts-format"
15976 "ert-deftest ts-parse-org\\_>"
15977 "ert-deftest ts-parse-org-element"
15978 "ert-deftest ts-update"))
15979 (re-search-forward test-regexp)
15980 (beginning-of-line)
15981 (kill-sexp)))
15982 (basic-save-buffer)))
15983 #t)))))
15984 (home-page "https://github.com/alphapapa/ts.el")
15985 (synopsis "Timestamp and date/time library")
15986 (description "This package facilitates manipulating dates, times, and
15987 timestamps by providing a @code{ts} struct.")
15988 (license license:gpl3+)))
15989
15990 (define-public emacs-peg
15991 (package
15992 (name "emacs-peg")
15993 (version "1.0")
15994 (source
15995 (origin
15996 (method url-fetch)
15997 (uri (string-append "https://elpa.gnu.org/packages/peg-" version ".tar"))
15998 (sha256
15999 (base32 "0skr5dz9k34r409hisnj37n1b7n62l3md0glnfx578xkbmxlpcxl"))))
16000 (build-system emacs-build-system)
16001 (home-page "https://elpa.gnu.org/packages/peg.html")
16002 (synopsis "Parsing Expression Grammars in Elisp")
16003 (description "This package provides a macro that parses the current buffer
16004 according to a parsing expression grammar.")
16005 (license license:gpl3+)))
16006
16007 (define-public emacs-eldev
16008 (package
16009 (name "emacs-eldev")
16010 (version "0.8.1")
16011 (source (origin
16012 (method git-fetch)
16013 (uri (git-reference
16014 (url "https://github.com/doublep/eldev")
16015 (commit version)))
16016 (file-name (git-file-name name version))
16017 (sha256
16018 (base32
16019 "19s45hdhcg5l608awfxvmhd61xzp7dd5pvviv89xzzksx74l1188"))))
16020 (build-system emacs-build-system)
16021 (arguments
16022 `(#:tests? #t
16023 #:test-command '("./bin/eldev" "-p" "-dtTC" "test")
16024 #:phases
16025 (modify-phases %standard-phases
16026 (add-after 'unpack 'prepare-for-tests
16027 (lambda _
16028 (setenv "ELDEV_LOCAL" (getcwd))
16029 (make-file-writable
16030 "test/project-i/project-i-autoloads.el")
16031 #t))
16032 (add-after 'unpack 'skip-failing-tests
16033 ;; FIXME: 10 tests are failing. Skip them for now.
16034 (lambda _
16035 (substitute* '("test/init.el" "test/targets.el")
16036 (("(targets-project-e-[34]|init-[1-8]).*" line)
16037 (string-append line "(skip-unless nil)\n")))))
16038 (add-after 'install 'install-eldev-executable
16039 ;; This constructs the eldev executable from templates and
16040 ;; installs it in the specified directory.
16041 (lambda* (#:key outputs #:allow-other-keys)
16042 (let* ((out (assoc-ref outputs "out"))
16043 (bin (string-append out "/bin"))
16044 (site-lisp (string-append out "/share/emacs/site-lisp")))
16045 (mkdir-p bin)
16046 (setenv "HOME" (getcwd))
16047 (invoke "./install.sh" bin)
16048 (substitute* (string-append bin "/eldev")
16049 ;; Point ELDEV_LOCAL to the installation directory so that
16050 ;; eldev doesn't try to bootstrap itself from MELPA when
16051 ;; invoked.
16052 (("export ELDEV_EMACS.*" all)
16053 (string-append "export ELDEV_LOCAL=" site-lisp "\n" all)))
16054 #t))))))
16055 (native-inputs
16056 `(("texinfo" ,texinfo))) ;for tests
16057 (home-page "https://github.com/doublep/eldev/")
16058 (synopsis "Emacs-based build tool for Elisp")
16059 (description "Eldev (Elisp Development Tool) is an Emacs-based build tool,
16060 targeted solely at Elisp projects. It is an alternative to Cask. Unlike
16061 Cask, Eldev itself is fully written in Elisp and its configuration files are
16062 also Elisp programs. For those familiar with the Java world, Cask can be seen
16063 as a parallel to Maven — it uses project description, while Eldev is sort of a
16064 parallel to Gradle — its configuration is a program on its own.")
16065 (license license:gpl3+)))
16066
16067 (define-public emacs-with-simulated-input
16068 (package
16069 (name "emacs-with-simulated-input")
16070 (version "2.4")
16071 (source
16072 (origin
16073 (method git-fetch)
16074 (uri (git-reference
16075 (url "https://github.com/DarwinAwardWinner/with-simulated-input")
16076 (commit (string-append "v" version))))
16077 (file-name (git-file-name name version))
16078 (sha256
16079 (base32
16080 "12d3mhvzj74qwc4rdcb236jbqnf5lam8pk78j92kwbwjk1jaz2cf"))))
16081 (build-system emacs-build-system)
16082 (arguments
16083 ;; The test suite fails with error: "Spies can only be created in
16084 ;; ‘before-each’".
16085 `(#:tests? #f
16086 #:test-command '("buttercup" "-L" ".")))
16087 (native-inputs
16088 `(("emacs-buttercup" ,emacs-buttercup)
16089 ("emacs-undercover" ,emacs-undercover)))
16090 (propagated-inputs
16091 `(("emacs-s" ,emacs-s)))
16092 (home-page "https://github.com/DarwinAwardWinner/with-simulated-input")
16093 (synopsis "Non-interactive testing Emacs library")
16094 (description "This package provides an Emacs Lisp macro,
16095 @code{with-simulated-input}, which evaluates one or more forms while
16096 simulating a sequence of input events for those forms to read. The result is
16097 the same as if a user had evaluated the forms and then manually typed in the
16098 same input. This macro is useful for non-interactive testing of normally
16099 interactive commands and functions, such as @code{completing-read}.")
16100 (license license:gpl3+)))
16101
16102 (define-public emacs-org-ql
16103 (package
16104 (name "emacs-org-ql")
16105 (version "0.5")
16106 (source (origin
16107 (method git-fetch)
16108 (uri (git-reference
16109 (url "https://github.com/alphapapa/org-ql")
16110 (commit version)))
16111 (sha256
16112 (base32
16113 "14nsy2dbln3m5bpqzyfqycn18sb3qh407hjbkk1l0x2nqs3lrkqn"))
16114 (file-name (git-file-name name version))))
16115 (build-system emacs-build-system)
16116 (propagated-inputs
16117 `(("emacs-s" ,emacs-s)
16118 ("emacs-f" ,emacs-f)
16119 ("emacs-ov" ,emacs-ov)
16120 ("emacs-peg" ,emacs-peg)
16121 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
16122 ("emacs-ts" ,emacs-ts)
16123 ("emacs-org" ,emacs-org)
16124 ("emacs-helm" ,emacs-helm)
16125 ("emacs-helm-org" ,emacs-helm-org)
16126 ("emacs-dash" ,emacs-dash)
16127 ("emacs-transient" ,emacs-transient)))
16128 (native-inputs
16129 `(("emacs-buttercup" ,emacs-buttercup)
16130 ("emacs-with-simulated-input" ,emacs-with-simulated-input)))
16131 (arguments
16132 `(#:tests? #t
16133 #:test-command '("buttercup" "-L" ".")
16134 #:phases
16135 (modify-phases %standard-phases
16136 (add-after 'unpack 'disable-failing-tests
16137 (lambda _
16138 (substitute* "tests/test-org-ql.el"
16139 ;; This test fails on Emacs 27.1 (see:
16140 ;; https://github.com/alphapapa/org-super-agenda/issues/183).
16141 (("it \"Can search buffer containing the link\"" all)
16142 (string-append "x" all)))
16143 #t)))))
16144 (home-page "https://github.com/alphapapa/org-ql/")
16145 (synopsis "Query language for Org buffers")
16146 (description "This package provides a Lispy query language for Org
16147 files, allowing for actions to be performed based on search criteria.")
16148 (license license:gpl3+)))
16149
16150 (define-public emacs-org-auto-expand
16151 (let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62")
16152 (revision "1"))
16153 (package
16154 (name "emacs-org-auto-expand")
16155 (version (git-version "0.1" revision commit))
16156 (source (origin
16157 (method git-fetch)
16158 (uri (git-reference
16159 (url "https://github.com/alphapapa/org-auto-expand")
16160 (commit commit)))
16161 (file-name (git-file-name name version))
16162 (sha256
16163 (base32
16164 "1my0c6xmkh37lwi6l472lz9d86lf20h6xcllzlxm1lxa24rhva6v"))))
16165 (build-system emacs-build-system)
16166 (propagated-inputs
16167 `(("emacs-org" ,emacs-org)
16168 ("emacs-dash" ,emacs-dash)))
16169 (home-page "https://github.com/alphapapa/org-auto-expand")
16170 (synopsis "Automatically expand certain Org headings")
16171 (description "This package allows a customizable set of headings in Org
16172 files to be expanded upon opening them.")
16173 (license license:gpl3+))))
16174
16175 (define-public emacs-parsebib
16176 (package
16177 (name "emacs-parsebib")
16178 (version "2.4.1")
16179 (source
16180 (origin
16181 (method git-fetch)
16182 (uri (git-reference
16183 (url "https://github.com/joostkremers/parsebib")
16184 (commit version)))
16185 (file-name (git-file-name name version))
16186 (sha256
16187 (base32 "1d3ysh82gh5mg07hlz3ll782lldnaj0xmyabv18jln4y2xd7ncni"))))
16188 (build-system emacs-build-system)
16189 (home-page "https://github.com/joostkremers/parsebib")
16190 (synopsis "Library for parsing @file{.bib} files")
16191 (description
16192 "This package provides an Emacs library for parsing @file{.bib} files.")
16193 (license license:gpl3+)))
16194
16195 (define-public emacs-ebib
16196 (package
16197 (name "emacs-ebib")
16198 (version "2.29")
16199 (source
16200 (origin
16201 (method git-fetch)
16202 (uri (git-reference
16203 (url "https://github.com/joostkremers/ebib")
16204 (commit version)))
16205 (file-name (git-file-name name version))
16206 (sha256
16207 (base32 "1d0xnhdcsz2ysq145k2l0f2r4vb0pkai1v6wl6sfba7xi5fc323i"))))
16208 (build-system emacs-build-system)
16209 (propagated-inputs
16210 `(("emacs-parsebib" ,emacs-parsebib)))
16211 (home-page "https://joostkremers.github.io/ebib/")
16212 (synopsis "BibTeX database manager for Emacs")
16213 (description
16214 "Ebib is a BibTeX database manager that runs in GNU Emacs.
16215 With Ebib you can create, sort and manage your @file{.bib} database files, all
16216 within Emacs. It supports searching, multi-line field values and
16217 @samp{@@String} and @samp{@@Preamble} definitions. Ebib integrates
16218 with (La)TeX mode, Org mode and other Emacs editing modes.")
16219 ;; The Ebib source files are released under a BSD license with
16220 ;; the exception of org-ebib.el, which is released under the GNU
16221 ;; GPL.
16222 (license (list license:bsd-3
16223 license:gpl3+))))
16224
16225 (define-public emacs-biblio
16226 (package
16227 (name "emacs-biblio")
16228 (version "0.2")
16229 (source
16230 (origin
16231 (method git-fetch)
16232 (uri (git-reference
16233 (url "https://github.com/cpitclaudel/biblio.el")
16234 (commit version)))
16235 (file-name (git-file-name name version))
16236 (sha256
16237 (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"))))
16238 (build-system emacs-build-system)
16239 (propagated-inputs
16240 `(("emacs-dash" ,emacs-dash)
16241 ("emacs-let-alist" ,emacs-let-alist)))
16242 (home-page "https://github.com/cpitclaudel/biblio.el")
16243 (synopsis "Browse and import bibliographic references")
16244 (description "This package provides an extensible Emacs package for
16245 browsing and fetching references.
16246
16247 @file{biblio.el} makes it easy to browse and gather bibliographic references
16248 and publications from various sources, by keywords or by DOI. References are
16249 automatically fetched from well-curated sources, and formatted as BibTeX.")
16250 (license license:gpl3+)))
16251
16252 (define-public emacs-helm-bibtex
16253 (let ((commit "d4471232be26793fbf56c0ac3690b5f537c378b9")
16254 (revision "2"))
16255 (package
16256 (name "emacs-helm-bibtex")
16257 (version (string-append "2.0.0" "-" revision "."
16258 (string-take commit 7)))
16259 (source
16260 (origin
16261 (method git-fetch)
16262 (uri (git-reference
16263 (url "https://github.com/tmalsburg/helm-bibtex")
16264 (commit commit)))
16265 (file-name (git-file-name name version))
16266 (sha256
16267 (base32
16268 "1bkzhic6qckb267025il1r3xcpz99kisphxiafni1pxvf9jafr0j"))))
16269 (build-system emacs-build-system)
16270 (propagated-inputs
16271 `(("emacs-helm" ,emacs-helm)
16272 ("emacs-parsebib" ,emacs-parsebib)
16273 ("emacs-s" ,emacs-s)
16274 ("emacs-dash" ,emacs-dash)
16275 ("emacs-f" ,emacs-f)
16276 ("emacs-biblio" ,emacs-biblio)
16277 ("emacs-ivy" ,emacs-ivy)))
16278 (home-page "https://github.com/tmalsburg/helm-bibtex")
16279 (synopsis "Bibliography manager based on Helm")
16280 (description "This package provides bibliography manager for Emacs,
16281 based on Helm and the bibtex-completion backend.
16282
16283 Key features:
16284
16285 @itemize
16286 @item Quick access to your bibliography from within Emacs
16287 @item Powerful search capabilities
16288 @item Provides instant search results as you type
16289 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
16290 @item Open the PDFs, URLs, or DOIs associated with an entry
16291 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
16292 BibTeX entries, or plain text references at point, attach PDFs to emails
16293 @item Support for note taking
16294 @item Quick access to online bibliographic databases such as Pubmed,
16295 arXiv, Google Scholar, Library of Congress, etc.
16296 @item Imports BibTeX entries from CrossRef and other sources.
16297 @end itemize\n")
16298 (license license:gpl3+))))
16299
16300 (define-public emacs-ewmctrl
16301 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
16302 (package
16303 (name "emacs-ewmctrl")
16304 (version (git-version "0.0.1" "1" commit))
16305 (source
16306 (origin
16307 (method git-fetch)
16308 (uri (git-reference
16309 (url "https://github.com/flexibeast/ewmctrl")
16310 (commit commit)))
16311 (file-name (git-file-name name version))
16312 (sha256
16313 (base32
16314 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
16315 (build-system emacs-build-system)
16316 (arguments
16317 '(#:phases
16318 (modify-phases %standard-phases
16319 (add-after 'unpack 'patch-ewmctrl
16320 ;; This build phase makes sure ‘ewmctrl’ looks
16321 ;; for ‘wmctrl’ in the right place.
16322 (lambda _
16323 (let ((file "ewmctrl.el"))
16324 (chmod file #o644)
16325 (emacs-substitute-sexps file
16326 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
16327 (inputs
16328 `(("wmctrl" ,wmctrl)))
16329 (home-page "https://github.com/flexibeast/ewmctrl")
16330 (synopsis "Emacs interface to @code{wmctrl}")
16331 (description "@code{ewmctrl} provides an Emacs interface to
16332 @code{wmctrl} command-line window-management program.")
16333 (license license:gpl3+))))
16334
16335 (define-public emacs-erc-image
16336 (let ((commit "82fb3871f02e24b1e880770b9a3d187aab43d0f0")
16337 (revision "3"))
16338 (package
16339 (name "emacs-erc-image")
16340 (version (git-version "0" revision commit))
16341 (source
16342 (origin
16343 (method git-fetch)
16344 (uri (git-reference
16345 (url "https://github.com/kidd/erc-image.el")
16346 (commit commit)))
16347 (file-name (git-file-name name version))
16348 (sha256
16349 (base32
16350 "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i"))))
16351 (build-system emacs-build-system)
16352 (arguments
16353 `(#:phases (modify-phases %standard-phases
16354 ;; The package autoloader fails to provide
16355 ;; the image module when handled by Guix.
16356 ;; Disable this phase, and let the package
16357 ;; handle the `eval-after-load' procedure.
16358 (delete 'make-autoloads))))
16359 (home-page "https://github.com/kidd/erc-image.el")
16360 (synopsis "Show inlined images (png/jpg/gif/svg) in ERC buffers")
16361 (description "This plugin subscribes to hooks @code{erc-insert-modify-hook}
16362 and @code{erc-send-modify-hook} to download and show images.")
16363 (license license:gpl3+))))
16364
16365 (define-public emacs-helm-gtags
16366 (package
16367 (name "emacs-helm-gtags")
16368 (version "1.5.7")
16369 (source
16370 (origin
16371 (method git-fetch)
16372 (uri (git-reference
16373 (url "https://github.com/syohex/emacs-helm-gtags")
16374 (commit version)))
16375 (file-name (git-file-name name version))
16376 (sha256
16377 (base32 "1kc1jzk10nfd2v20g8dwnb6a944afrwdwnkzl06w4ba8k4yim7gi"))))
16378 (build-system emacs-build-system)
16379 (propagated-inputs
16380 `(("emacs-helm" ,emacs-helm)))
16381 (home-page "https://github.com/syohex/emacs-helm-gtags")
16382 (synopsis "Emacs Helm interface to GNU Global")
16383 (description
16384 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
16385 (license license:gpl3+)))
16386
16387 (define-public emacs-list-utils
16388 (package
16389 (name "emacs-list-utils")
16390 (version "0.4.6")
16391 (source
16392 (origin
16393 (method git-fetch)
16394 (uri (git-reference
16395 (url "https://github.com/rolandwalker/list-utils")
16396 (commit (string-append "v" version))))
16397 (file-name (git-file-name name version))
16398 (sha256
16399 (base32 "07hbz2md52ccy95gv4d5n6szrfmpfqf3w4kwqdg2cf54c7kgf7hw"))))
16400 (build-system emacs-build-system)
16401 (arguments
16402 `(#:phases
16403 (modify-phases %standard-phases
16404 (add-after 'unpack 'patch-require-cl
16405 (lambda _
16406 (substitute* "list-utils.el"
16407 (("\\(require 'cl\\)") "(require 'cl-lib)"))
16408 #t)))))
16409 (home-page "https://github.com/rolandwalker/list-utils")
16410 (synopsis "List-manipulation utility functions")
16411 (description "This package provides a list manipulation library for Emacs.")
16412 (license license:gpl3+)))
16413
16414 (define-public emacs-parsec
16415 ;; Last release is too old (2016).
16416 (let ((revision "0")
16417 (commit "2cbbbc2254aa7bcaa4fb5e07c8c1bf2f381dba26"))
16418 (package
16419 (name "emacs-parsec")
16420 (version (git-version "0.1.3" revision commit))
16421 (source
16422 (origin
16423 (method git-fetch)
16424 (uri (git-reference
16425 (url "https://github.com/cute-jumper/parsec.el")
16426 (commit commit)))
16427 (file-name (git-file-name name version))
16428 (sha256
16429 (base32 "1g1s8s45g3kkbi3h7w0pmadmzdswb64mkdvdpg2lihg341kx37gm"))))
16430 (build-system emacs-build-system)
16431 (home-page "https://github.com/cute-jumper/parsec.el")
16432 (synopsis "Parser combinator library for Emacs Lisp")
16433 (description
16434 "Parsec is a parser combinator library for Emacs Lisp, similar to
16435 Haskell's Parsec library. It contains most of the parser combinators in
16436 Text.Parsec.Combinator, and more combinators can be added if necessary! Most
16437 of the parser combinators have the same behavior as their Haskell
16438 counterparts. Parsec also comes with a simple error handling mechanism so
16439 that it can display an error message showing how the parser fails.")
16440 (license license:gpl3+))))
16441
16442 (define-public emacs-move-text
16443 (package
16444 (name "emacs-move-text")
16445 (version "2.0.8")
16446 (source
16447 (origin
16448 (method git-fetch)
16449 (uri (git-reference
16450 (url "https://github.com/emacsfodder/move-text")
16451 (commit version)))
16452 (file-name (git-file-name name version))
16453 (sha256
16454 (base32 "06jxk5g23822gfmwrxhc34zand3dr8p2wjh1zs3j61ibz6n0nmz1"))))
16455 (build-system emacs-build-system)
16456 (home-page "https://github.com/emacsfodder/move-text")
16457 (synopsis "Move current line or region with M-up or M-down")
16458 (description "This package provide functions to move the current line
16459 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
16460 region instead.")
16461 (license license:gpl3+)))
16462
16463 (define-public emacs-validate
16464 (package
16465 (name "emacs-validate")
16466 (version "1.0.5")
16467 (source (origin
16468 (method git-fetch)
16469 (uri (git-reference
16470 (url "https://github.com/Malabarba/validate.el")
16471 (commit version)))
16472 (file-name (git-file-name name version))
16473 (sha256
16474 (base32
16475 "1l12ibx6cw4mgicgjpw71fb4fr4sd0k54lvbpq7ngc29br3j6i4v"))))
16476 (build-system emacs-build-system)
16477 (home-page "https://github.com/Malabarba/validate.el")
16478 (synopsis "Emacs library for scheme validation")
16479 (description "This Emacs library provides two functions that perform
16480 schema validation.")
16481 (license license:gpl3+)))
16482
16483 (define-public emacs-rainbow-blocks
16484 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
16485 (package
16486 (name "emacs-rainbow-blocks")
16487 (version (git-version "1.0.0" "1" commit))
16488 (source (origin
16489 (method git-fetch)
16490 (uri (git-reference
16491 (url "https://github.com/istib/rainbow-blocks")
16492 (commit commit)))
16493 (file-name (git-file-name name version))
16494 (sha256
16495 (base32
16496 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
16497 (build-system emacs-build-system)
16498 (home-page "https://github.com/istib/rainbow-blocks")
16499 (synopsis "Highlight sexp blocks")
16500 (description "Rainbow-blocks is an Emacs mode that highlights blocks
16501 made of parentheses, brackets, and braces according to their depth. Each
16502 successive level is highlighted in a different color. This makes it easy to
16503 orient yourself in the code, and tell which statements are at a given level.")
16504 (license license:gpl3+))))
16505
16506 (define-public emacs-hierarchy
16507 (package
16508 (name "emacs-hierarchy")
16509 (version "0.7.0")
16510 (source
16511 (origin
16512 (method git-fetch)
16513 (uri (git-reference
16514 (url "https://github.com/DamienCassou/hierarchy")
16515 (commit (string-append "v" version))))
16516 (file-name (git-file-name name version))
16517 (sha256
16518 (base32 "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r"))))
16519 (build-system emacs-build-system)
16520 (native-inputs
16521 `(("emacs-buttercup" ,emacs-buttercup)))
16522 (arguments
16523 `(#:tests? #t
16524 #:test-command '("buttercup" "-L" ".")))
16525 (home-page "https://github.com/DamienCassou/hierarchy")
16526 (synopsis "Library to create and display hierarchy structures")
16527 (description "This package provides an Emacs library to create, query,
16528 navigate and display hierarchy structures.")
16529 (license license:gpl3+)))
16530
16531 (define-public emacs-tree-mode
16532 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
16533 (revision "1"))
16534 (package
16535 (name "emacs-tree-mode")
16536 (version (string-append "0.0.1" "-" revision "."
16537 (string-take commit 7)))
16538 (source
16539 (origin
16540 (method git-fetch)
16541 (uri (git-reference
16542 (url "https://github.com/emacsorphanage/tree-mode")
16543 (commit commit)))
16544 (file-name (git-file-name name version))
16545 (sha256
16546 (base32
16547 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
16548 (build-system emacs-build-system)
16549 (home-page "https://github.com/emacsorphanage/tree-mode")
16550 (synopsis "Emacs mode to manage tree widgets")
16551 (description
16552 "This package provides an Emacs library to manage tree widgets.")
16553 (license license:gpl3+))))
16554
16555 (define-public emacs-md4rd
16556 (package
16557 (name "emacs-md4rd")
16558 (version "0.3.1")
16559 (source (origin
16560 (method git-fetch)
16561 (uri (git-reference
16562 (url "https://github.com/ahungry/md4rd")
16563 (commit version)))
16564 (file-name (git-file-name name version))
16565 (sha256
16566 (base32
16567 "1n6g6k4adzkkn1g7z4j27s35xy12c1fg2r08gv345ddr3wplq4ri"))))
16568 (propagated-inputs
16569 `(("emacs-hierarchy" ,emacs-hierarchy)
16570 ("emacs-request" ,emacs-request)
16571 ("emacs-dash" ,emacs-dash)
16572 ("emacs-s" ,emacs-s)
16573 ("emacs-tree-mode" ,emacs-tree-mode)))
16574 (build-system emacs-build-system)
16575 (home-page "https://github.com/ahungry/md4rd")
16576 (synopsis "Emacs Mode for Reddit")
16577 (description
16578 "This package allows reading Reddit from within Emacs interactively.")
16579 (license license:gpl3+)))
16580
16581 (define-public emacs-pulseaudio-control
16582 (let ((commit "a931533140547510decdc368f39b2d2b97ca725f")
16583 (revision "4"))
16584 (package
16585 (name "emacs-pulseaudio-control")
16586 (version (git-version "0.0.1" revision commit))
16587 (source
16588 (origin
16589 (method git-fetch)
16590 (uri (git-reference
16591 (url "https://github.com/flexibeast/pulseaudio-control")
16592 (commit commit)))
16593 (file-name (git-file-name name version))
16594 (sha256
16595 (base32
16596 "1jvjn9jszjjapi167an49jxcvr88cvgjwykglhp4b8lwhbjfqw76"))))
16597 (build-system emacs-build-system)
16598 (arguments
16599 '(#:phases (modify-phases %standard-phases
16600 (add-after 'unpack 'patch-file-name
16601 (lambda* (#:key inputs #:allow-other-keys)
16602 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
16603 (chmod "pulseaudio-control.el" #o600)
16604 (emacs-substitute-variables "pulseaudio-control.el"
16605 ("pulseaudio-control-pactl-path"
16606 (string-append pulseaudio "/bin/pactl")))
16607 #t))))))
16608 (inputs `(("pulseaudio" ,pulseaudio)))
16609 (home-page "https://github.com/flexibeast/pulseaudio-control")
16610 (synopsis "Control @code{pulseaudio} from Emacs")
16611 (description
16612 "This package allows controlling @code{pulseaudio} from Emacs.")
16613 (license license:gpl3+))))
16614
16615 (define-public emacs-datetime
16616 (package
16617 (name "emacs-datetime")
16618 (version "0.6.6")
16619 (source
16620 (origin
16621 (method git-fetch)
16622 (uri (git-reference
16623 (url "https://github.com/doublep/datetime")
16624 (commit version)))
16625 (file-name (git-file-name name version))
16626 (sha256
16627 (base32
16628 "0a3q667pybpmsjkbgf6287jwgpnx8brp5314wb8zbczw6ncygnbi"))))
16629 (build-system emacs-build-system)
16630 (arguments
16631 `(#:include (cons "^[^/]*\\.extmap$" %default-include)))
16632 (inputs
16633 `(("emacs-extmap" ,emacs-extmap)))
16634 (home-page "https://github.com/doublep/datetime/")
16635 (synopsis "Library to work with dates in Emacs")
16636 (description "Parsing, formatting, matching and recoding
16637 timestamps and date-time format strings library for Emacs.")
16638 (license license:gpl3+)))
16639
16640 (define-public emacs-org-mind-map
16641 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
16642 (revision "1"))
16643 (package
16644 (name "emacs-org-mind-map")
16645 (version (string-append "0.0.1" "-" revision "."
16646 (string-take commit 7)))
16647 (source
16648 (origin
16649 (method git-fetch)
16650 (uri (git-reference
16651 (url "https://github.com/theodorewiles/org-mind-map")
16652 (commit commit)))
16653 (file-name (git-file-name name version))
16654 (sha256
16655 (base32
16656 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
16657 (propagated-inputs
16658 `(("emacs-dash" ,emacs-dash)))
16659 (build-system emacs-build-system)
16660 (home-page "https://github.com/theodorewiles/org-mind-map")
16661 (synopsis "Create Graphviz directed graphs from Org files")
16662 (description
16663 "This package creates Graphviz directed graphs from Org files.")
16664 (license license:gpl3+))))
16665
16666 (define-public emacs-npm-mode
16667 (package
16668 (name "emacs-npm-mode")
16669 (version "0.6.0")
16670 (source
16671 (origin
16672 (method git-fetch)
16673 (uri (git-reference
16674 (url "https://github.com/mojochao/npm-mode")
16675 (commit version)))
16676 (file-name (git-file-name name version))
16677 (sha256
16678 (base32 "1mh6nbffciw4yhv049kdhh796ysj1x21ndm3fwymhskb3dy0w1ss"))))
16679 (build-system emacs-build-system)
16680 (home-page "https://github.com/mojochao/npm-mode")
16681 (synopsis "Minor mode for working with @code{npm} projects")
16682 (description
16683 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
16684 (license license:gpl3+)))
16685
16686 (define-public emacs-itail
16687 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
16688 (revision "1"))
16689 (package
16690 (name "emacs-itail")
16691 (version (string-append "0.0.1" "-" revision "."
16692 (string-take commit 7)))
16693 (source
16694 (origin
16695 (method git-fetch)
16696 (uri (git-reference
16697 (url "https://github.com/re5et/itail")
16698 (commit commit)))
16699 (file-name (git-file-name name version))
16700 (sha256
16701 (base32
16702 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
16703 (build-system emacs-build-system)
16704 (home-page "https://github.com/re5et/itail")
16705 (synopsis "Interactive @code{tail} Emacs mode")
16706 (description "@code{itail} provides interactive @code{tail} mode
16707 that allows you to filter the tail with unix pipes and highlight the
16708 contents of the tailed file. Works locally or on remote files using
16709 tramp.")
16710 (license license:gpl3+))))
16711
16712 (define-public emacs-loop
16713 (package
16714 (name "emacs-loop")
16715 (version "1.3")
16716 (source
16717 (origin
16718 (method git-fetch)
16719 (uri (git-reference
16720 (url "https://github.com/Wilfred/loop.el")
16721 (commit version)))
16722 (file-name (git-file-name name version))
16723 (sha256
16724 (base32 "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x"))))
16725 (build-system emacs-build-system)
16726 (native-inputs
16727 `(("emacs-ert-runner" ,emacs-ert-runner)
16728 ("emacs-undercover" ,emacs-undercover)))
16729 (arguments
16730 `(#:tests? #t
16731 #:test-command '("ert-runner")))
16732 (home-page "https://github.com/Wilfred/loop.el")
16733 (synopsis "Imperative loop structures for Emacs")
16734 (description "Loop structures familiar to users of other languages. This
16735 library adds a selection of popular loop structures as well as break and
16736 continue.")
16737 (license license:gpl3+)))
16738
16739 (define-public emacs-elisp-refs
16740 (package
16741 (name "emacs-elisp-refs")
16742 (version "1.3")
16743 (source
16744 (origin
16745 (method git-fetch)
16746 (uri (git-reference
16747 (url "https://github.com/Wilfred/elisp-refs")
16748 (commit version)))
16749 (file-name (git-file-name name version))
16750 (sha256
16751 (base32 "0w7k91xf69zc0zkjrw8h8sjdjf9xq9qs5zhvajhd718lzf93564b"))))
16752 (build-system emacs-build-system)
16753 (propagated-inputs
16754 `(("emacs-dash" ,emacs-dash)
16755 ("emacs-f" ,emacs-f)
16756 ("emacs-list-utils" ,emacs-list-utils)
16757 ("emacs-loop" ,emacs-loop)
16758 ("emacs-s" ,emacs-s)
16759 ("emacs-shut-up" ,emacs-shut-up)))
16760 (native-inputs
16761 `(("emacs-ert-runner" ,emacs-ert-runner)
16762 ("emacs-undercover" ,emacs-undercover)))
16763 (arguments
16764 `(#:tests? #t
16765 #:test-command '("ert-runner")
16766 #:phases
16767 (modify-phases %standard-phases
16768 (add-before 'check 'disable-refs-next-match-test
16769 ;; Hack to disable the failing test for emacs27
16770 ;; https://github.com/Wilfred/elisp-refs/issues/29
16771 (lambda _
16772 (substitute* "test/unit-test.el"
16773 (("ert-deftest elisp-refs-next-match")
16774 "defun elisp-refs-next-match"))
16775 #t)))))
16776 (home-page "https://github.com/Wilfred/elisp-refs")
16777 (synopsis "Find callers of elisp functions or macros")
16778 (description "Find references to functions, macros or variables. Unlike a
16779 dumb text search, @code{elisp-refs} actually parses the code, so it's never
16780 confused by comments or @code{foo-bar} matching @code{foo}.")
16781 (license license:gpl3+)))
16782
16783 (define-public emacs-crdt
16784 (let ((commit "44068ae505adf2c3a7bdbf6723a25fc45d6d1666")
16785 (revision "0"))
16786 (package
16787 (name "emacs-crdt")
16788 (version (git-version "0.0.0" revision commit))
16789 (source
16790 (origin
16791 (method git-fetch)
16792 (uri (git-reference
16793 (url "https://code.librehq.com/qhong/crdt.el")
16794 (commit commit)))
16795 (file-name (git-file-name name version))
16796 (sha256
16797 (base32 "130fkhvi757pfnbz70g6nw2n71k89cwwx7yzvsd5v177228c8w7w"))))
16798 (build-system emacs-build-system)
16799 (home-page "https://code.librehq.com/qhong/crdt.el")
16800 (synopsis "Real-time collaborative editing environment")
16801 (description
16802 "@code{crdt.el} is a real-time collaborative editing environment for
16803 Emacs using Conflict-free Replicated Data Types. With it, you can share
16804 multiple buffer in one session, and see other users’ cursor and region. It
16805 also synchronizes Org mode folding status. It should work with all of Org
16806 mode.")
16807 (license license:gpl3+))))
16808
16809 (define-public emacs-crux
16810 (let ((commit "308f17d914e2cd79cbc809de66d02b03ceb82859")
16811 (revision "2"))
16812 (package
16813 (name "emacs-crux")
16814 (version (git-version "0.3.0" revision commit))
16815 (source
16816 (origin
16817 (method git-fetch)
16818 (uri (git-reference
16819 (url "https://github.com/bbatsov/crux")
16820 (commit commit)))
16821 (file-name (git-file-name name version))
16822 (sha256
16823 (base32
16824 "0rf84finwlvmy0xpgyljjvnrijlmkzjyw9rh97svgxp9c1rzfk0x"))))
16825 (build-system emacs-build-system)
16826 (home-page "https://github.com/bbatsov/crux")
16827 (synopsis "Collection of useful functions for Emacs")
16828 (description
16829 "@code{crux} provides a collection of useful functions for Emacs.")
16830 (license license:gpl3+))))
16831
16832 (define-public emacs-edit-server
16833 (package
16834 (name "emacs-edit-server")
16835 (version "1.16")
16836 (source
16837 (origin
16838 (method git-fetch)
16839 (uri (git-reference
16840 (url "https://github.com/stsquad/emacs_chrome")
16841 (commit (string-append "v" version))))
16842 (file-name (git-file-name name version))
16843 (sha256
16844 (base32 "0m7gj224sqxjjw5sxky92fnrxg9jy4nf33kwf0aqxnfhqlgh545k"))))
16845 (build-system emacs-build-system)
16846 (arguments
16847 `(#:phases
16848 (modify-phases %standard-phases
16849 (add-after 'unpack 'chdir-elisp
16850 ;; Elisp directory is not in root of the source.
16851 (lambda _
16852 (chdir "servers"))))))
16853 (propagated-inputs `(("emacs-ert-async" ,emacs-ert-async)))
16854 (home-page "https://github.com/stsquad/emacs_chrome")
16855 (synopsis "Server that responds to edit requests from Chromium")
16856 (description
16857 "This package provides an edit server to respond to requests from Emacs.")
16858 (license license:gpl3+)))
16859
16860 (define-public emacs-m-buffer-el
16861 (package
16862 (name "emacs-m-buffer-el")
16863 (version "0.15")
16864 (source
16865 (origin
16866 (method git-fetch)
16867 (uri (git-reference
16868 (url "https://github.com/phillord/m-buffer-el")
16869 (commit (string-append "v" version))))
16870 (file-name (git-file-name name version))
16871 (sha256
16872 (base32
16873 "1sx76i59razwccvn6x7rx5a124bfyjw9fcbxf4gj7nsg33qiq809"))))
16874 (arguments
16875 `(#:phases
16876 (modify-phases %standard-phases
16877 (add-before 'install 'check
16878 (lambda* (#:key inputs #:allow-other-keys)
16879 (invoke "emacs" "--batch" "-L" "."
16880 "-l" "test/m-buffer-test.el"
16881 "-l" "test/m-buffer-at-test.el"
16882 "-f" "ert-run-tests-batch-and-exit"))))))
16883 (build-system emacs-build-system)
16884 (home-page "https://github.com/phillord/m-buffer-el")
16885 (synopsis "List oriented buffer operations for Emacs")
16886 (description "@code{m-buffer} provides a set of list-orientated functions
16887 for operating over the contents of Emacs buffers.")
16888 (license license:gpl3+)))
16889
16890 (define-public emacs-let-alist
16891 (package
16892 (name "emacs-let-alist")
16893 (version "1.0.6")
16894 (source
16895 (origin
16896 (method url-fetch)
16897 (uri (string-append
16898 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
16899 (sha256
16900 (base32 "0szj7vnjzz4zci5fvz7xqgcpi4pzdyyf4qi2s8xar2hi7v3yaawr"))))
16901 (build-system emacs-build-system)
16902 (home-page "https://elpa.gnu.org/packages/let-alist.html")
16903 (synopsis "Easily let-bind values of an assoc-list by their names")
16904 (description "This package offers a single macro, @code{let-alist}. This
16905 macro takes a first argument (whose value must be an alist) and a body.")
16906 (license license:gpl3+)))
16907
16908 (define-public emacs-esup
16909 (let ((commit "0de8af8233d9ce1b67f05a50f25c481c4f1118d8")
16910 (revision "1"))
16911 (package
16912 (name "emacs-esup")
16913 (version (git-version "0.7.1" revision commit))
16914 (source
16915 (origin
16916 (method git-fetch)
16917 (uri (git-reference
16918 (url "https://github.com/jschaf/esup")
16919 (commit commit)))
16920 (file-name (git-file-name name version))
16921 (sha256
16922 (base32
16923 "01khb3xyj0ylwib6ryzzvqmkh5wvzxiq2n3l0s3h9zv7wx849bzv"))))
16924 (build-system emacs-build-system)
16925 (native-inputs
16926 `(("emacs-noflet" ,emacs-noflet)
16927 ("emacs-undercover" ,emacs-undercover)
16928 ("emacs-buttercup" ,emacs-buttercup)))
16929 (propagated-inputs
16930 `(("emacs-dash" ,emacs-dash)))
16931 (arguments
16932 `(#:tests? #t
16933 #:test-command '("buttercup" "-L" ".")))
16934 (home-page "https://github.com/jschaf/esup")
16935 (synopsis "Emacs start up profiler")
16936 (description "Benchmark Emacs Startup time without ever leaving
16937 your Emacs.")
16938 (license license:gpl2+))))
16939
16940 (define-public emacs-restart-emacs
16941 (let ((commit "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9")
16942 (revision "1"))
16943 (package
16944 (name "emacs-restart-emacs")
16945 (version (git-version "0.1.1" revision commit))
16946 (source
16947 (origin
16948 (method git-fetch)
16949 (uri (git-reference
16950 (url "https://github.com/iqbalansari/restart-emacs")
16951 (commit commit)))
16952 (file-name (git-file-name name version))
16953 (sha256
16954 (base32 "02x1a85k7r95z8091zgjiaj9nf0zvx1jy4xvl3hr12qbnrx1wfav"))))
16955 (build-system emacs-build-system)
16956 (home-page "https://github.com/iqbalansari/restart-emacs")
16957 (synopsis "Restart Emacs from within Emacs")
16958 (description "This package provides a simple command to restart Emacs from
16959 within Emacs.")
16960 (license license:gpl3+))))
16961
16962 (define-public emacs-svg-tag-mode
16963 (let ((commit "87489d28450559078aa15b4a435143a297508e48")
16964 (revision "1"))
16965 (package
16966 (name "emacs-svg-tag-mode")
16967 (version (git-version "0.1" revision commit))
16968 (source
16969 (origin
16970 (method git-fetch)
16971 (uri (git-reference
16972 (url "https://github.com/rougier/svg-tag-mode")
16973 (commit commit)))
16974 (file-name (git-file-name name version))
16975 (sha256
16976 (base32 "0gyhmv60dx0zxx4bmhzsd7q5vfnkpfwlj6539bn272fwcr7zncp8"))))
16977 (build-system emacs-build-system)
16978 (home-page "https://github.com/rougier/svg-tag-mode")
16979 (synopsis "Replace keywords with SVG tags")
16980 (description "This package provides a minor mode that replaces keywords
16981 or expressions with SVG rounded box labels that are fully customizable.")
16982 (license license:gpl3+))))
16983
16984 (define-public emacs-svg-icon
16985 (let ((commit "ebc2b8d0f6c680fd575a90e683cc7b832acd1eb7")
16986 (revision "1"))
16987 (package
16988 (name "emacs-svg-icon")
16989 (version (git-version "0.1" revision commit))
16990 (source
16991 (origin
16992 (method git-fetch)
16993 (uri (git-reference
16994 (url "https://github.com/rougier/emacs-svg-icon")
16995 (commit commit)))
16996 (file-name (git-file-name name version))
16997 (sha256
16998 (base32 "1qzqfa8xyw1nkb89kbvw9qcgdwr8g017n8gf3yzwn816qhkfkjrj"))))
16999 (build-system emacs-build-system)
17000 (home-page "https://github.com/rougier/emacs-svg-icon")
17001 (synopsis "Emacs library to create SVG icons on the fly")
17002 (description "This library allows to create SVG icons by parsing remote
17003 collections whose license are compatibles with Emacs. The default size of an
17004 icon is exactly 2x1 characters such that it can be inserted inside a text
17005 without disturbing alignment.")
17006 (license (list license:gpl3+)))))
17007
17008 (define-public emacs-sourcemap
17009 (package
17010 (name "emacs-sourcemap")
17011 (version "0.03")
17012 (source
17013 (origin
17014 (method git-fetch)
17015 (uri (git-reference
17016 (url "https://github.com/syohex/emacs-sourcemap")
17017 (commit version)))
17018 (file-name (git-file-name name version))
17019 (sha256
17020 (base32 "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582"))))
17021 (build-system emacs-build-system)
17022 (home-page "https://github.com/syohex/emacs-sourcemap")
17023 (synopsis "Sourcemap parser")
17024 (description "Sourcemap parser")
17025 (license license:gpl3+)))
17026
17027 (define-public emacs-macrostep
17028 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
17029 (package
17030 (name "emacs-macrostep")
17031 (version (git-version "0.9" "1" commit))
17032 (source (origin
17033 (method git-fetch)
17034 (uri (git-reference
17035 (url "https://github.com/joddie/macrostep")
17036 (commit commit)))
17037 (file-name (git-file-name name version))
17038 (sha256
17039 (base32
17040 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
17041 (build-system emacs-build-system)
17042 (arguments
17043 '(#:phases
17044 (modify-phases %standard-phases
17045 (add-before 'check 'remove-test
17046 ;; Fails because of requirement ‘/bin/sh’.
17047 (lambda _
17048 (let ((file "macrostep-test.el"))
17049 (chmod file #o644)
17050 (emacs-batch-edit-file file
17051 `(progn (progn (goto-char (point-min))
17052 (re-search-forward
17053 "(ert-deftest macrostep-expand-c-macros")
17054 (beginning-of-line)
17055 (kill-sexp))
17056 (basic-save-buffer))))))
17057 (add-before 'install 'check
17058 (lambda _
17059 (invoke "emacs" "--batch" "-L" "."
17060 "-l" "macrostep-test.el"
17061 "-f" "ert-run-tests-batch-and-exit"))))))
17062 (home-page "https://github.com/joddie/macrostep")
17063 (synopsis "Interactive macro-expander for Emacs")
17064 (description "@code{macrostep} is an Emacs minor mode for interactively
17065 stepping through the expansion of macros in Emacs Lisp source code. It lets
17066 you see exactly what happens at each step of the expansion process by
17067 pretty-printing the expanded forms inline in the source buffer, which is
17068 temporarily read-only while macro expansions are visible. You can expand and
17069 collapse macro forms one step at a time, and evaluate or instrument the
17070 expansions for debugging with Edebug as normal (but see “Bugs and known
17071 limitations”, below). Single-stepping through the expansion is particularly
17072 useful for debugging macros that expand into another macro form. These can be
17073 difficult to debug with Emacs’ built-in macroexpand, which continues expansion
17074 until the top-level form is no longer a macro call.")
17075 (license license:gpl3+))))
17076
17077 (define-public emacs-parent-mode
17078 (package
17079 (name "emacs-parent-mode")
17080 (version "2.3")
17081 (source
17082 (origin
17083 (method git-fetch)
17084 (uri (git-reference
17085 (url "https://github.com/Fanael/parent-mode")
17086 (commit version)))
17087 (file-name (git-file-name name version))
17088 (sha256
17089 (base32 "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni"))))
17090 (build-system emacs-build-system)
17091 (home-page "https://github.com/Fanael/parent-mode")
17092 (synopsis "Get major mode's parent modes")
17093 (description "Get major mode's parent modes")
17094 (license license:gpl3+)))
17095
17096 (define-public emacs-lacarte
17097 (package
17098 (name "emacs-lacarte")
17099 (version "0.1")
17100 (source (origin
17101 (method url-fetch)
17102 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
17103 (sha256
17104 (base32
17105 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
17106 (build-system emacs-build-system)
17107 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
17108 (synopsis "Execute menu items as commands, with completion")
17109 (description "Execute menu items as commands, with completion.")
17110 (license license:gpl3)))
17111
17112 (define-public emacs-isearch-prop
17113 (let ((commit "4a2765f835dd115d472142da05215c4c748809f4")
17114 (revision "2"))
17115 (package
17116 (name "emacs-isearch-prop")
17117 (version (git-version "0" revision commit))
17118 (source
17119 (origin
17120 (method git-fetch)
17121 (uri (git-reference
17122 (url "https://github.com/emacsmirror/isearch-prop")
17123 (commit commit)))
17124 (file-name (git-file-name name version))
17125 (sha256
17126 (base32
17127 "06gdk5m84q6pxwng8rjxny1zkll8f3m2x6lw4xyib2dvg7iaslh3"))))
17128 (build-system emacs-build-system)
17129 (home-page "https://www.emacswiki.org/emacs/isearch-prop.el")
17130 (synopsis "Extensions to @code{isearch.el}")
17131 (description "The Emacs library @code{isearch-prop.el} lets you search within
17132 contexts. You can limit incremental search to a set of zones of
17133 buffer text, search contexts that in effect constitute a multi-region.
17134 These zones can be defined in various ways, including some ways
17135 provided specially by this library.")
17136 (license license:gpl3+))))
17137
17138 (define-public emacs-company-lua
17139 (let ((commit "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52")
17140 (revision "2"))
17141 (package
17142 (name "emacs-company-lua")
17143 (version (git-version "0.1" "2" commit))
17144 (source
17145 (origin
17146 (method git-fetch)
17147 (uri (git-reference
17148 (url "https://github.com/ptrv/company-lua")
17149 (commit commit)))
17150 (file-name (git-file-name name version))
17151 (sha256
17152 (base32
17153 "0ny2dcc7c585p7v3j6q0rpkbj1qmf2ismy8a5020jpr585xvz0hh"))))
17154 (build-system emacs-build-system)
17155 (propagated-inputs
17156 `(("emacs-company" ,emacs-company)
17157 ("emacs-s" ,emacs-s)
17158 ("emacs-f" ,emacs-f)
17159 ("emacs-lua-mode" ,emacs-lua-mode)))
17160 (arguments
17161 `(#:include (cons* "^lua\\/" %default-include)))
17162 (home-page "https://github.com/ptrv/company-lua")
17163 (synopsis "Company backend for Lua")
17164 (description
17165 "This package provides Company backend for Lua programming language.")
17166 (license license:gpl3+))))
17167
17168 (define-public emacs-beginend
17169 (package
17170 (name "emacs-beginend")
17171 (version "2.2.0")
17172 (source
17173 (origin
17174 (method git-fetch)
17175 (uri (git-reference
17176 (url "https://github.com/DamienCassou/beginend")
17177 (commit (string-append "v" version))))
17178 (file-name (git-file-name name version))
17179 (sha256
17180 (base32 "1r9033zlx2q2dk3bjz004flxdiw79qiswq0zqdjnlzwassvk0f35"))))
17181 ;; TODO: Run tests.
17182 (build-system emacs-build-system)
17183 (inputs
17184 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
17185 (home-page "https://github.com/DamienCassou/beginend")
17186 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
17187 (description "@code{beginend} redefines @code{M-<} and @code{M->}
17188 keybindings for Emacs modes so that point moves to meaningful
17189 locations. Redefined keys are still accessible by pressing the same
17190 key again.")
17191 (license license:gpl3+)))
17192
17193 (define-public emacs-mbsync
17194 (let ((commit "b62491c0e0d89eb9c66261a16d7ac81231c9c453")
17195 (revision "4"))
17196 (package
17197 (name "emacs-mbsync")
17198 (version (git-version "0.1.2" revision commit))
17199 (source
17200 (origin
17201 (method git-fetch)
17202 (uri (git-reference
17203 (url "https://github.com/dimitri/mbsync-el")
17204 (commit commit)))
17205 (file-name (git-file-name name version))
17206 (sha256
17207 (base32
17208 "1zlih37mkqjn2czl12zn7lgxxljvrwhqqpbksj9c91zn0f0rm3mz"))))
17209 (build-system emacs-build-system)
17210 (home-page "https://github.com/dimitri/mbsync-el")
17211 (synopsis "Interface to mbsync for Emacs")
17212 (description "This package calls @code{mbsync} from
17213 within Emacs.")
17214 (license license:gpl3+))))
17215
17216 (define-public emacs-ibuffer-projectile
17217 (package
17218 (name "emacs-ibuffer-projectile")
17219 (version "0.3")
17220 (source
17221 (origin
17222 (method git-fetch)
17223 (uri (git-reference
17224 (url "https://github.com/purcell/ibuffer-projectile")
17225 (commit version)))
17226 (file-name (git-file-name name version))
17227 (sha256
17228 (base32
17229 "18cqxnwzzbkcj9jcaw89b210432yzhrl1dwsv48p0jbhfnr17k41"))))
17230 (build-system emacs-build-system)
17231 (propagated-inputs
17232 `(("emacs-projectile" ,emacs-projectile)))
17233 (home-page "https://github.com/purcell/ibuffer-projectile")
17234 (synopsis "Group ibuffer's list by projectile root")
17235 (description "Adds functionality to Emacs @code{ibuffer} for
17236 grouping buffers by their projectile root directory.")
17237 (license license:gpl3+)))
17238
17239 (define-public emacs-elm-mode
17240 (package
17241 (name "emacs-elm-mode")
17242 (version "0.21.0")
17243 (source
17244 (origin
17245 (method git-fetch)
17246 (uri
17247 (git-reference
17248 (url "https://github.com/jcollard/elm-mode")
17249 (commit (string-append "v" version))))
17250 (file-name (git-file-name name version))
17251 (sha256
17252 (base32 "0iwk4fmw8hq3ry4ky1zc7lgl4cpbnrjyk74c2xzddfspi3ks41fd"))))
17253 (propagated-inputs
17254 `(("emacs-dash" ,emacs-dash)
17255 ("emacs-f" ,emacs-f)
17256 ("emacs-reformatter" ,emacs-reformatter)
17257 ("emacs-s" ,emacs-s)))
17258 (build-system emacs-build-system)
17259 (home-page "https://github.com/jcollard/elm-mode")
17260 (synopsis "Emacs major mode for editing Elm source code")
17261 (description
17262 "This package provides a major mode for editing Elm source code, and
17263 working with common core and third-party Elm tools. Its features are:
17264
17265 @itemize
17266 @item Syntax highlighting
17267 @item Intelligent indentation
17268 @item Integration with elm-make
17269 @item Integration with elm-repl
17270 @item Integration with elm-reactor
17271 @item Integration with elm-package
17272 @item Integration with elm-oracle
17273 @item Integration with elm-format
17274 @item Integration with elm-test
17275 @end itemize")
17276 (license license:gpl3+)))
17277
17278 (define-public emacs-helm-mode-manager
17279 (package
17280 (name "emacs-helm-mode-manager")
17281 (version "1.0.0")
17282 (source
17283 (origin
17284 (method git-fetch)
17285 (uri (git-reference
17286 (url "https://github.com/istib/helm-mode-manager")
17287 (commit version)))
17288 (file-name (git-file-name name version))
17289 (sha256
17290 (base32
17291 "1srx5f0s9x7zan7ayqd6scxfhcvr3nkd4yzs96hphd87rb18apzk"))))
17292 (build-system emacs-build-system)
17293 (propagated-inputs
17294 `(("emacs-helm" ,emacs-helm)))
17295 (home-page "https://github.com/istib/helm-mode-manager/")
17296 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
17297 (description "This package provides a Helm interface for toggling Emacs
17298 major or minor mode.
17299
17300 @itemize
17301 @item @code{helm-switch-major-mode} list of all major modes
17302 @item @code{helm-enable-minor-mode} list of all inactive minor modes
17303 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
17304 @end itemize\n
17305
17306 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
17307 documentation.")
17308 (license license:gpl3+)))
17309
17310 (define-public emacs-hy-mode
17311 (package
17312 (name "emacs-hy-mode")
17313 (version "1.0.4")
17314 (source
17315 (origin
17316 (method git-fetch)
17317 (uri (git-reference
17318 (url "https://github.com/hylang/hy-mode")
17319 (commit (string-append "v" version))))
17320 (file-name (git-file-name name version))
17321 (sha256
17322 (base32 "0gihxlmfminadaqdr8d2zccd7wwygl3m0gfzxsk5izi7f8hl4w7f"))))
17323 (build-system emacs-build-system)
17324 (propagated-inputs
17325 `(("emacs-dash" ,emacs-dash)
17326 ("emacs-s" ,emacs-s)))
17327 (home-page "https://github.com/hylang/hy-mode")
17328 (synopsis "Major mode for Hylang")
17329 (description "This package provides a major mode for Hylang.")
17330 (license license:gpl3+)))
17331
17332 (define-public emacs-web-beautify
17333 (package
17334 (name "emacs-web-beautify")
17335 (version "0.3.2")
17336 (source
17337 (origin
17338 (method git-fetch)
17339 (uri (git-reference
17340 (url "https://github.com/yasuyk/web-beautify")
17341 (commit version)))
17342 (file-name (git-file-name name version))
17343 (sha256
17344 (base32 "0vms7zz3ym53wf1zdrkbf2ky2xjr1v134ngsd0jr8azyi8siw84d"))))
17345 (build-system emacs-build-system)
17346 (home-page "https://github.com/yasuyk/web-beautify")
17347 (synopsis "Format HTML, CSS and JavaScript, JSON")
17348 (description "This package provides an Emacs functions to format HTML,
17349 CSS, JavaScript, JSON.")
17350 (license license:gpl3+)))
17351
17352 (define-public emacs-helm-shell-history
17353 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
17354 (package
17355 (name "emacs-helm-shell-history")
17356 (version (git-version "0.1" "1" commit))
17357 (source
17358 (origin
17359 (method git-fetch)
17360 (uri (git-reference
17361 (url "https://github.com/yuutayamada/helm-shell-history")
17362 (commit commit)))
17363 (file-name (git-file-name name version))
17364 (sha256
17365 (base32
17366 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
17367 (build-system emacs-build-system)
17368 (arguments
17369 '(#:phases
17370 (modify-phases %standard-phases
17371 (add-before 'check 'patch-helm-shell-history-file
17372 (lambda _
17373 (let ((file "helm-shell-history.el"))
17374 (chmod file #o644)
17375 (emacs-substitute-sexps file
17376 ("(defvar helm-shell-history-file"
17377 `(expand-file-name "~/.bash_history"))))
17378 #t)))))
17379 (propagated-inputs
17380 `(("emacs-helm" ,emacs-helm)))
17381 (home-page "https://github.com/yuutayamada/helm-shell-history")
17382 (synopsis "Find shell history with Emacs Helm")
17383 (description "This package provides an Emacs Helm interface to search
17384 throw a shell history.")
17385 (license license:gpl3+))))
17386
17387 (define-public emacs-discover-my-major
17388 (package
17389 (name "emacs-discover-my-major")
17390 (version "1.0")
17391 (source
17392 (origin
17393 (method git-fetch)
17394 (uri (git-reference
17395 (url "https://framagit.org/steckerhalter/discover-my-major.git/")
17396 (commit version)))
17397 (file-name (git-file-name name version))
17398 (sha256
17399 (base32
17400 "1wlqyl03hhnflbyay3qlvdzqzvv5rbybcjpfddggda7ias9h0pr4"))))
17401 (build-system emacs-build-system)
17402 (propagated-inputs
17403 `(("emacs-makey" ,emacs-makey)))
17404 (home-page "https://framagit.org/steckerhalter/discover-my-major/")
17405 (synopsis "Discover key bindings for the current Emacs major mode")
17406 (description "This package discovers key bindings and
17407 their meaning for the current Emacs major-mode.")
17408 (license license:gpl3+)))
17409
17410 (define-public emacs-org-ref
17411 ;; No release since June 2017.
17412 (let ((commit "5bb9be2232db72b04754d7e4c02a3976ad422f6f")
17413 (revision "2"))
17414 (package
17415 (name "emacs-org-ref")
17416 (version (git-version "1.1.1" revision commit))
17417 (source
17418 (origin
17419 (method git-fetch)
17420 (uri (git-reference
17421 (url "https://github.com/jkitchin/org-ref")
17422 (commit commit)))
17423 (file-name (git-file-name name version))
17424 (sha256
17425 (base32 "15gcvbfj19kyv4nxa632b261dwhb26m99plq230qhv9ssfwfgxbx"))))
17426 (build-system emacs-build-system)
17427 (propagated-inputs
17428 `(("emacs-dash" ,emacs-dash)
17429 ("emacs-f" ,emacs-f)
17430 ("emacs-helm" ,emacs-helm)
17431 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
17432 ("emacs-htmlize" ,emacs-htmlize)
17433 ("emacs-hydra" ,emacs-hydra)
17434 ("emacs-ivy" ,emacs-ivy)
17435 ("emacs-key-chord" ,emacs-key-chord)
17436 ("emacs-pdf-tools" ,emacs-pdf-tools)
17437 ("emacs-s" ,emacs-s)))
17438 (home-page "https://github.com/jkitchin/org-ref")
17439 (synopsis "Citations, cross-references and bibliographies in Org mode")
17440 (description
17441 "Org Ref is an Emacs library that provides rich support for citations,
17442 labels and cross-references in Org mode.
17443
17444 The basic idea of Org Ref is that it defines a convenient interface to insert
17445 citations from a reference database (e.g., from BibTeX files), and a set of
17446 functional Org links for citations, cross-references and labels that export
17447 properly to LaTeX, and that provide clickable functionality to the user. Org
17448 Ref interfaces with Helm BibTeX to facilitate citation entry, and it can also
17449 use RefTeX.
17450
17451 It also provides a fairly large number of utilities for finding bad citations,
17452 extracting BibTeX entries from citations in an Org file, and functions to
17453 create and modify BibTeX entries from a variety of sources, most notably from
17454 a DOI.
17455
17456 Org Ref is especially suitable for Org documents destined for LaTeX export and
17457 scientific publication. Org Ref is also useful for research documents and
17458 notes.")
17459 (license license:gpl3+))))
17460
17461 (define-public emacs-org-reveal
17462 (let ((commit "84039bb499290926511b04749882ecb5eda45a0c"))
17463 (package
17464 (name "emacs-org-reveal")
17465 (version (git-version "20200607" "1" commit))
17466 (source (origin
17467 (method git-fetch)
17468 (uri (git-reference
17469 (url "https://github.com/yjwen/org-reveal")
17470 (commit commit)))
17471 (file-name (git-file-name name version))
17472 (sha256
17473 (base32
17474 "1fx3xmnkpfljrdmy0dsyq79k93ky57gcqm1ad9qbzykk7qjvmmi8"))))
17475 (build-system emacs-build-system)
17476 (home-page "https://github.com/yjwen/org-reveal")
17477 (synopsis "Org and Reveal.js powered HTML presentation tool")
17478 (description "Org-Reveal is a @command{org-mode} extension that allows
17479 to create beautiful presentations (slides) with 3D effects from simple but
17480 powerful Org contents.")
17481 (license license:gpl3+))))
17482
17483 (define-public emacs-org-re-reveal
17484 (package
17485 (name "emacs-org-re-reveal")
17486 (version "3.7.0")
17487 (source (origin
17488 (method git-fetch)
17489 (uri (git-reference
17490 (url "https://gitlab.com/oer/org-re-reveal")
17491 (commit version)))
17492 (file-name (git-file-name name version))
17493 (sha256
17494 (base32
17495 "1vzn0l8ig4rzh5h8j7kxn8kslqrij97qqv98fbnlwmrw4z87v8dr"))))
17496 (build-system emacs-build-system)
17497 (propagated-inputs
17498 `(("emacs-htmlize" ,emacs-htmlize)
17499 ("emacs-org" ,emacs-org)))
17500 (home-page "https://gitlab.com/oer/org-re-reveal")
17501 (synopsis "Build HTML presentations with reveal.js from Org source files")
17502 (description "This project started as fork of org-reveal. It provides an
17503 export back-end for HTML presentations with reveal.js from Org mode source
17504 files.")
17505 (license license:gpl3+)))
17506
17507 (define-public emacs-add-hooks
17508 (package
17509 (name "emacs-add-hooks")
17510 (version "3.1.1")
17511 (source
17512 (origin
17513 (method git-fetch)
17514 (uri (git-reference
17515 (url "https://github.com/nickmccurdy/add-hooks")
17516 (commit version)))
17517 (file-name (git-file-name name version))
17518 (sha256
17519 (base32 "1jv9fpcsm572zg0j1mbpbfkqgdlqapy89xhhj19pswkhjns1y2wl"))))
17520 (build-system emacs-build-system)
17521 (home-page "https://github.com/nickmccurdy/add-hooks/")
17522 (synopsis "Emacs function for setting multiple hooks")
17523 (description "This package provides a @code{add-hooks} function tidies up
17524 duplicate hook and function names further into a single declarative call.")
17525 (license license:gpl3+)))
17526
17527 (define-public emacs-fancy-battery
17528 (package
17529 (name "emacs-fancy-battery")
17530 (version "0.2")
17531 (source
17532 (origin
17533 (method git-fetch)
17534 (uri (git-reference
17535 (url "https://github.com/emacsorphanage/fancy-battery")
17536 (commit version)))
17537 (file-name (git-file-name name version))
17538 (sha256
17539 (base32 "05lwcwf412m717yhwpjrswqkm8c3i7391rmiwv2k8xc1vk6dpp4g"))))
17540 (build-system emacs-build-system)
17541 (home-page "https://github.com/emacsorphanage/fancy-battery")
17542 (synopsis "Display battery status in Emacs mode line")
17543 (description "This package provides @code{fancy-battery-mode} which is
17544 like the built-in @code{display-battery-mode}, but more fancy. It just the
17545 remaining time, uses colours to indicate the status of the battery, and is
17546 more customizable.")
17547 (license license:gpl3)))
17548
17549 (define-public emacs-fancy-narrow
17550 (package
17551 (name "emacs-fancy-narrow")
17552 (version "0.9.5")
17553 (source
17554 (origin
17555 (method git-fetch)
17556 (uri (git-reference
17557 (url "https://github.com/Malabarba/fancy-narrow")
17558 (commit version)))
17559 (file-name (git-file-name name version))
17560 (sha256
17561 (base32 "0vcr1gnqawvc1yclqs23jvxm6bqix8kpflf1c7znb0wzxmz9kx7y"))))
17562 (build-system emacs-build-system)
17563 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
17564 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
17565 (description
17566 "Unlike @code{narrow-to-region}, which completely hides text outside
17567 the narrowed region, this package simply de-emphasizes the text, makes it
17568 read-only, and makes it unreachable. This leads to a much more natural
17569 feeling where the region stays static (instead of being brutally moved to a
17570 blank slate) and is clearly highlighted with respect to the rest of the
17571 buffer.")
17572 (license license:gpl2+)))
17573
17574 (define-public emacs-know-your-http-well
17575 (package
17576 (name "emacs-know-your-http-well")
17577 (version "0.5.0")
17578 (source
17579 (origin
17580 (method git-fetch)
17581 (uri (git-reference
17582 (url "https://github.com/for-GET/know-your-http-well")
17583 (commit (string-append "v" version))))
17584 (file-name (git-file-name name version))
17585 (sha256
17586 (base32 "1lppggnii2r9fvlhh33gbdrwb50za8lnalavlq9s86ngndn4n94k"))))
17587 (arguments
17588 `(#:phases
17589 (modify-phases %standard-phases
17590 (add-after 'unpack 'install-json-files
17591 (lambda* (#:key outputs #:allow-other-keys)
17592 (for-each (lambda (directory)
17593 (copy-recursively directory
17594 (string-append
17595 (assoc-ref outputs "out")
17596 directory)))
17597 '("js" "json"))))
17598 (add-after 'unpack 'chdir-elisp
17599 ;; Elisp directory is not in root of the source.
17600 (lambda _
17601 (chdir "emacs"))))))
17602 (build-system emacs-build-system)
17603 (home-page "https://github.com/for-GET/know-your-http-well")
17604 (synopsis "Meaning of HTTP headers codes")
17605 (description "Meaning of HTTP headers codes.")
17606 (license license:gpl3+)))
17607
17608 (define-public emacs-navi-mode
17609 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
17610 (package
17611 (name "emacs-navi-mode")
17612 (version (git-version "2.0" "1" commit))
17613 (source
17614 (origin
17615 (method git-fetch)
17616 (uri (git-reference
17617 (url "https://github.com/alphapapa/navi")
17618 (commit commit)))
17619 (file-name (git-file-name name version))
17620 (sha256
17621 (base32
17622 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
17623 (build-system emacs-build-system)
17624 (propagated-inputs
17625 `(("emacs-outshine" ,emacs-outshine)
17626 ("emacs-outorg" ,emacs-outorg)))
17627 (home-page "https://github.com/alphapapa/navi")
17628 (synopsis "Emacs major-mode for easy buffer-navigation")
17629 (description
17630 "This package provides an Emacs major-mode for easy buffer-navigation")
17631 (license license:gpl3+))))
17632
17633 (define-public emacs-download-region
17634 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
17635 (revision "1"))
17636 (package
17637 (name "emacs-download-region")
17638 (version (string-append "0.0.1" "-" revision "."
17639 (string-take commit 7)))
17640 (source
17641 (origin
17642 (method git-fetch)
17643 (uri (git-reference
17644 (url "https://github.com/zk-phi/download-region")
17645 (commit commit)))
17646 (file-name (git-file-name name version))
17647 (sha256
17648 (base32
17649 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
17650 (build-system emacs-build-system)
17651 (home-page "https://github.com/zk-phi/download-region")
17652 (synopsis "In buffer download manager for Emacs")
17653 (description "@code{download-region} provides in buffer
17654 downloading manager for Emacs.")
17655 (license license:gpl3+))))
17656
17657 (define-public emacs-helpful
17658 (package
17659 (name "emacs-helpful")
17660 (version "0.18")
17661 (source
17662 (origin
17663 (method git-fetch)
17664 (uri (git-reference
17665 (url "https://github.com/Wilfred/helpful")
17666 (commit version)))
17667 (file-name (git-file-name name version))
17668 (sha256
17669 (base32 "0gdjxykqkal2x765mi51m99i5ql23i1fy909wy4mzj5ajhjfgqcc"))))
17670 (build-system emacs-build-system)
17671 (propagated-inputs
17672 `(("emacs-elisp-refs" ,emacs-elisp-refs)
17673 ("emacs-dash" ,emacs-dash)
17674 ("emacs-s" ,emacs-s)
17675 ("emacs-f" ,emacs-f)
17676 ("emacs-shut-up" ,emacs-shut-up)))
17677 (native-inputs
17678 `(("emacs-ert-runner" ,emacs-ert-runner)
17679 ("emacs-undercover" ,emacs-undercover)))
17680 (arguments
17681 `(#:tests? #t
17682 #:test-command '("ert-runner")))
17683 (home-page "https://github.com/Wilfred/helpful")
17684 (synopsis "More contextual information in Emacs help")
17685 (description "@code{helpful} is an alternative to the built-in Emacs help
17686 that provides much more contextual information.
17687
17688 @itemize
17689 @item Show the source code for interactively defined functions (unlike the
17690 built-in Help).
17691 @item Fall back to the raw sexp if no source is available.
17692 @item Show where a function is being called.
17693 @item Docstrings will Highlight the summary (the first sentence), include
17694 cross-references, hide superfluous puncuation.
17695 @item Show you the properties that have been applied to the current
17696 symbol. This provides visibility of features like edebug or byte-code
17697 optimisation.
17698 @item Provide a separate @code{helpful-command} function to view interactive
17699 functions.
17700 @item Display any keybindings that apply to interactive functions.
17701 @item Trace, disassemble functions from inside Helpful. This is discoverable
17702 and doesn't require memorisation of commands.
17703 @end itemize\n")
17704 (license license:gpl3+)))
17705
17706 (define-public emacs-logview
17707 (package
17708 (name "emacs-logview")
17709 (version "0.14")
17710 (source
17711 (origin
17712 (method git-fetch)
17713 (uri (git-reference
17714 (url "https://github.com/doublep/logview")
17715 (commit version)))
17716 (file-name (git-file-name name version))
17717 (sha256
17718 (base32 "1cchmr25z5zj7rgb2fyxkaq8kpw7i5yg1pvn42dvm09c2wrfbj46"))))
17719 (propagated-inputs
17720 `(("emacs-datetime" ,emacs-datetime)
17721 ("emacs-extmap" ,emacs-extmap)))
17722 (build-system emacs-build-system)
17723 (home-page "https://github.com/doublep/logview/")
17724 (synopsis "Emacs mode for viewing log files")
17725 (description "@code{logview} provides an Emacs mode to view log files.")
17726 (license license:gpl3+)))
17727
17728 (define-public emacs-suggest
17729 (package
17730 (name "emacs-suggest")
17731 (version "0.7")
17732 (home-page "https://github.com/Wilfred/suggest.el")
17733 (source
17734 (origin
17735 (method git-fetch)
17736 (uri (git-reference
17737 (url home-page)
17738 (commit version)))
17739 (file-name (git-file-name name version))
17740 (sha256
17741 (base32
17742 "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"))))
17743 (build-system emacs-build-system)
17744 (propagated-inputs
17745 `(("emacs-loop" ,emacs-loop)
17746 ("emacs-dash" ,emacs-dash)
17747 ("emacs-s" ,emacs-s)
17748 ("emacs-f" ,emacs-f)
17749 ("emacs-spinner" ,emacs-spinner)
17750 ("emacs-shut-up" ,emacs-shut-up)))
17751 (native-inputs
17752 `(("emacs-ert-runner" ,emacs-ert-runner)
17753 ("emacs-undercover" ,emacs-undercover)))
17754 (arguments
17755 `(#:tests? #t
17756 #:test-command '("ert-runner")))
17757 (synopsis "Suggest Elisp functions that give the output requested")
17758 (description "Suggest.el will find functions that give the output
17759 requested. It's a great way of exploring list, string and arithmetic
17760 functions.")
17761 (license license:gpl3+)))
17762
17763 (define-public emacs-benchmark-init
17764 (package
17765 (name "emacs-benchmark-init")
17766 (version "1.0")
17767 (source
17768 (origin
17769 (method git-fetch)
17770 (uri (git-reference
17771 (url "https://github.com/dholm/benchmark-init-el")
17772 (commit version)))
17773 (file-name (git-file-name name version))
17774 (sha256
17775 (base32 "1kyn1izm5sbqbp9whnhk9dn3yc7zy8bz5san5w3ivi3rpx15fh94"))))
17776 (build-system emacs-build-system)
17777 (home-page "https://github.com/dholm/benchmark-init-el")
17778 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
17779 (description "@code{benchmark-init} provides a way to keep track of where
17780 time is being spent during Emacs startup in order to optimize startup time.")
17781 (license license:gpl3+)))
17782
17783 (define-public emacs-magit-gerrit
17784 (let ((version "0.3")
17785 (revision "1")
17786 (commit "ece6f369694aca17f3ac166ed2801b432acfe20d"))
17787 (package
17788 (name "emacs-magit-gerrit")
17789 (version (git-version version revision commit))
17790 (source (origin
17791 (method git-fetch)
17792 (uri (git-reference
17793 (url "https://github.com/terranpro/magit-gerrit")
17794 (commit commit)))
17795 (file-name (git-file-name name version))
17796 (sha256
17797 (base32
17798 "0mms0gxv9a3ns8lk5k2wjibm3088y1cmpr3axjdh6ppv7r5wdvii"))))
17799 (build-system emacs-build-system)
17800 (propagated-inputs
17801 `(("emacs-magit" ,emacs-magit)))
17802 (home-page "https://github.com/terranpro/magit-gerrit")
17803 (synopsis "Magit extension for Gerrit")
17804 (description "This Magit extension provides integration with Gerrit,
17805 which makes it possible to conduct Gerrit code reviews directly from within
17806 Emacs.")
17807 (license license:gpl3+))))
17808
17809 (define-public emacs-magit-org-todos-el
17810 (package
17811 (name "emacs-magit-org-todos-el")
17812 (version "0.1.2")
17813 (source
17814 (origin
17815 (method git-fetch)
17816 (uri (git-reference
17817 (url "https://github.com/danielma/magit-org-todos.el")
17818 (commit version)))
17819 (file-name (git-file-name name version))
17820 (sha256
17821 (base32
17822 "07r5x256k1fjjxs1yfg41kc94nwvnjlk2vvknkra3j8v9p0j88m7"))))
17823 (propagated-inputs
17824 `(("magit" ,emacs-magit)))
17825 (build-system emacs-build-system)
17826 (home-page "https://github.com/danielma/magit-org-todos.el")
17827 (synopsis "Get todo.org into Emacs Magit status")
17828 (description "This package allows you to get @file{todo.org} into your
17829 magit status.
17830
17831 If you have a @file{todo.org} file with @code{TODO} items in the root of your
17832 repository, @code{magit-org-todos} will create a section in your Magit status
17833 buffer with each of your todos.")
17834 (license license:gpl3+)))
17835
17836 (define-public emacs-vcsh
17837 (package
17838 (name "emacs-vcsh")
17839 (version "0.4.4")
17840 (source
17841 (origin
17842 (method git-fetch)
17843 (uri (git-reference
17844 (url "https://gitlab.com/stepnem/vcsh-el.git")
17845 (commit version)))
17846 (file-name (git-file-name name version))
17847 (sha256
17848 (base32 "183pffdiqb7qqmjq31wxl3fpv8qswqgg99gb716rddiyk15ysri7"))))
17849 (build-system emacs-build-system)
17850 (home-page "https://gitlab.com/stepnem/vcsh-el")
17851 (synopsis "Emacs VCSH integration")
17852 (description
17853 "This library provides basic ``enter'' functionality and a few
17854 convenience commands to initialize a @acronym{VCSH, Version Control System for
17855 $HOME} repository and add files to it. It can be used in conjunction with
17856 Magit.")
17857 (license license:public-domain)))
17858
17859 (define-public emacs-f3
17860 (package
17861 (name "emacs-f3")
17862 (version "0.1")
17863 (source
17864 (origin
17865 (method git-fetch)
17866 (uri (git-reference
17867 (url "https://github.com/cosmicexplorer/f3")
17868 (commit version)))
17869 (file-name (git-file-name name version))
17870 (sha256
17871 (base32 "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi"))))
17872 (build-system emacs-build-system)
17873 (propagated-inputs
17874 `(("emacs-helm" ,emacs-helm)))
17875 (home-page "https://github.com/cosmicexplorer/f3")
17876 (synopsis "Fantastic File Finder for Emacs")
17877 (description
17878 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
17879 (license license:gpl3+)))
17880
17881 (define-public emacs-lice-el
17882 (let ((commit "482e58ab83fff86ed754b00be27b62a219597e7c"))
17883 (package
17884 (name "emacs-lice-el")
17885 (version (git-version "0.2" "2" commit))
17886 (source (origin
17887 (method git-fetch)
17888 (uri (git-reference
17889 (url "https://github.com/buzztaiki/lice-el")
17890 (commit commit)))
17891 (file-name (git-file-name name version))
17892 (sha256
17893 (base32
17894 "0yxkjyhfk8kpr8yqz54gdx6xwkj4s8bnbz60162jh12crj0bs5n7"))))
17895 (build-system emacs-build-system)
17896 (arguments
17897 `(#:phases
17898 (modify-phases %standard-phases
17899 (add-after 'unpack 'patch-template-directory
17900 (lambda* (#:key outputs #:allow-other-keys)
17901 (chmod "lice.el" #o666)
17902 (emacs-substitute-variables "lice.el"
17903 ("lice:system-template-directory"
17904 (string-append (assoc-ref outputs "out")
17905 "/share/emacs-lice-el/template")))
17906 #t))
17907 (add-after 'install 'install-templates
17908 (lambda* (#:key outputs #:allow-other-keys)
17909 (copy-recursively
17910 "template"
17911 (string-append (assoc-ref outputs "out")
17912 "/share/emacs-lice-el/template"))
17913 #t)))))
17914 (home-page "https://github.com/buzztaiki/lice-el")
17915 (synopsis "License and header template for Emacs")
17916 (description "@code{lice.el} provides following features:
17917
17918 @itemize
17919 @item License template management.
17920 @item File header insertion.
17921 @end itemize\n")
17922 (license license:gpl3+))))
17923
17924 (define-public emacs-academic-phrases
17925 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
17926 (package
17927 (name "emacs-academic-phrases")
17928 (version (git-version "0.1" "1" commit))
17929 (source
17930 (origin
17931 (method git-fetch)
17932 (uri (git-reference
17933 (url "https://github.com/nashamri/academic-phrases")
17934 (commit commit)))
17935 (file-name (git-file-name name version))
17936 (sha256
17937 (base32
17938 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
17939 (build-system emacs-build-system)
17940 (propagated-inputs
17941 `(("emacs-dash" ,emacs-dash)
17942 ("emacs-s" ,emacs-s)
17943 ("emacs-ht" ,emacs-ht)))
17944 (home-page "https://github.com/nashamri/academic-phrases")
17945 (synopsis "Bypass that mental block when writing your papers")
17946 (description
17947 "When writing your academic paper, you might get stuck trying to find
17948 the right phrase that captures your intention. This package tries to
17949 alleviate that problem by presenting you with a list of phrases organized by
17950 the topic or by the paper section that you are writing. This package has
17951 around 600 phrases so far.
17952
17953 Using this package is easy, just call @code{academic-phrases} to get a list of
17954 phrases organized by topic, or call @code{academic-phrases-by-section} to
17955 browse the phrases by the paper section and fill-in the blanks if required.")
17956 (license license:gpl3+))))
17957
17958 (define-public emacs-auto-yasnippet
17959 (let ((commit "624b0d9711222073a2a3f2186e2605eb99fc83c9")
17960 (revision "2"))
17961 (package
17962 (name "emacs-auto-yasnippet")
17963 (version (git-version "0.3.0" revision commit))
17964 (source (origin
17965 (method git-fetch)
17966 (uri (git-reference
17967 (url "https://github.com/abo-abo/auto-yasnippet")
17968 (commit commit)))
17969 (file-name (git-file-name name version))
17970 (sha256
17971 (base32
17972 "15g8wi067f345xhpi0c12w0h04p4f4lpccwmdjdfj8hzfl4gyxy9"))))
17973 (build-system emacs-build-system)
17974 (arguments
17975 '(#:tests? #t
17976 #:test-command '("make" "test")))
17977 (propagated-inputs
17978 `(("emacs-yasnippet" ,emacs-yasnippet)))
17979 (home-page "https://github.com/abo-abo/auto-yasnippet/")
17980 (synopsis "Quickly create disposable yasnippets")
17981 (description "This package provides a hybrid of keyboard macros and
17982 yasnippet. You create the snippet on the go, usually to be used just in the
17983 one place. It's fast, because you're not leaving the current buffer, and all
17984 you do is enter the code you'd enter anyway, just placing ~ where you'd like
17985 yasnippet fields and mirrors to be.")
17986 (license license:gpl3+))))
17987
17988 (define-public emacs-highlight-numbers
17989 (package
17990 (name "emacs-highlight-numbers")
17991 (version "0.2.3")
17992 (source
17993 (origin
17994 (method git-fetch)
17995 (uri (git-reference
17996 (url "https://github.com/Fanael/highlight-numbers")
17997 (commit version)))
17998 (file-name (git-file-name name version))
17999 (sha256
18000 (base32 "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"))))
18001 (build-system emacs-build-system)
18002 (propagated-inputs
18003 `(("emacs-parent-mode" ,emacs-parent-mode)))
18004 (home-page "https://github.com/Fanael/highlight-numbers")
18005 (synopsis "Highlight numbers in source code")
18006 (description "@code{highlight-numbers-mode} provides a minor mode for
18007 syntax highlighting of numeric literals in source code.
18008
18009 It s customizable: it's easy to add or redefine what exactly constitutes a
18010 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
18011 (license license:gpl3+)))
18012
18013 (define-public emacs-darkroom
18014 (package
18015 (name "emacs-darkroom")
18016 (version "0.3")
18017 (source
18018 (origin
18019 (method url-fetch)
18020 (uri (string-append "https://elpa.gnu.org/packages/"
18021 "darkroom-" version ".el"))
18022 (sha256
18023 (base32 "0l1xg5kqmjw22k78qnsln0ifx2dx74xxqj0qp8xxcpqvzzx0xh86"))))
18024 (build-system emacs-build-system)
18025 (home-page "https://elpa.gnu.org/packages/darkroom.html")
18026 (synopsis "Remove visual distractions and focus on writing")
18027 (description "@code{darkroom-mode} makes visual distractions disappear.
18028 The mode-line is temporarily elided, text is enlarged and margins are adjusted
18029 so that it's centered on the window.
18030
18031 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
18032 @code{darkroom-mode}, unless the current buffer lives in the sole window of
18033 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
18034 split to display more windows and more buffers, the buffer exits
18035 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
18036 @code{darkroom-mode}.")
18037 (license license:gpl3+)))
18038
18039 (define-public emacs-rsw-elisp
18040 (package
18041 (name "emacs-rsw-elisp")
18042 (version "1.0.5")
18043 (source (origin
18044 (method git-fetch)
18045 (uri (git-reference
18046 (url "https://github.com/rswgnu/rsw-elisp")
18047 (commit version)))
18048 (file-name (git-file-name name version))
18049 (sha256
18050 (base32
18051 "0dfq8myg0r91900bk1s70amsmm4mjk2qsg12v5pk7lla5d2vnyaf"))))
18052 (build-system emacs-build-system)
18053 (home-page "https://github.com/rswgnu/rsw-elisp")
18054 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
18055 (description "This package improves and replaces the GNU Emacs commands
18056 that interactively evaluate Emacs Lisp expressions. The new commands replace
18057 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
18058 the same way as the old commands when called non-interactively; only the
18059 interactive behavior should be different.")
18060 (license license:gpl3+)))
18061
18062 (define-public emacs-default-text-scale
18063 (package
18064 (name "emacs-default-text-scale")
18065 (version "0.2")
18066 (source (origin
18067 (method git-fetch)
18068 (uri (git-reference
18069 (url "https://github.com/purcell/default-text-scale")
18070 (commit version)))
18071 (file-name (git-file-name name version))
18072 (sha256
18073 (base32
18074 "0h42jiwxrxjmk7ccwh3h25n7dy2rq61ncm5wx27jhkncc5jdm4h6"))))
18075 (build-system emacs-build-system)
18076 (home-page "https://github.com/purcell/default-text-scale")
18077 (synopsis "Adjust the font size in all Emacs frames")
18078 (description "This package provides commands for increasing or
18079 decreasing the default font size in all GUI Emacs frames.")
18080 (license license:gpl3+)))
18081
18082 (define-public emacs-mixed-pitch
18083 (package
18084 (name "emacs-mixed-pitch")
18085 (version "1.1.1")
18086 (source
18087 (origin
18088 (method git-fetch)
18089 (uri (git-reference
18090 (url "https://gitlab.com/jabranham/mixed-pitch.git")
18091 (commit version)))
18092 (file-name (git-file-name name version))
18093 (sha256
18094 (base32 "1dhljrh44dsnixd8hbb11k6dgap8r8n7jknhfy2afdzq889fih74"))))
18095 (build-system emacs-build-system)
18096 (home-page "https://gitlab.com/jabranham/mixed-pitch")
18097 (synopsis "Mix variable- and fixed-pitch fonts in the same Emacs buffer")
18098 (description
18099 "@code{mixed-pitch-mode} is a minor mode that enables mixing
18100 variable-pitch and fixed-pitch fonts in the same buffer. The list
18101 @code{mixed-pitch-fixed-pitch-faces} defines the faces that are kept
18102 fixed-pitch,everything else becomes variable-pitch.")
18103 (license license:gpl3+)))
18104
18105 (define-public emacs-visual-regexp
18106 (package
18107 (name "emacs-visual-regexp")
18108 (version "1.1.2")
18109 (source
18110 (origin
18111 (method git-fetch)
18112 (uri (git-reference
18113 (url "https://github.com/benma/visual-regexp.el")
18114 (commit (string-append "v" version))))
18115 (file-name (git-file-name name version))
18116 (sha256
18117 (base32 "12p3rlhdphwmx1kxsjzcl2wj3i6qgpvw8iwhg1whs6yqgaxivixd"))))
18118 (build-system emacs-build-system)
18119 (home-page "https://github.com/benma/visual-regexp.el/")
18120 (synopsis "Regexp command with interactive visual feedback")
18121 (description "This package provides an Emacs regexp command with
18122 interactive visual feedback.")
18123 (license license:gpl3+)))
18124
18125 (define-public emacs-faceup
18126 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
18127 (revision "1"))
18128 (package
18129 (name "emacs-faceup")
18130 (version (string-append "0.0.1" "-" revision "."
18131 (string-take commit 7)))
18132 (source
18133 (origin
18134 (method git-fetch)
18135 (uri (git-reference
18136 (url "https://github.com/Lindydancer/faceup")
18137 (commit commit)))
18138 (file-name (git-file-name name version))
18139 (sha256
18140 (base32
18141 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
18142 (build-system emacs-build-system)
18143 (home-page "https://github.com/Lindydancer/faceup")
18144 (synopsis "Markup language for faces and font-lock regression testing")
18145 (description "Emacs is capable of highlighting buffers based on
18146 language-specific @code{font-lock} rules. This package makes it possible to
18147 perform regression test for packages that provide font-lock rules.")
18148 (license license:gpl3+))))
18149
18150 (define-public emacs-racket-mode
18151 (let ((commit "5eb31a284c8db5102bc71b1e2c6ce3a095ae085b")
18152 (revision "6"))
18153 (package
18154 (name "emacs-racket-mode")
18155 (version (git-version "0.0.2" revision commit))
18156 (source
18157 (origin
18158 (method git-fetch)
18159 (uri (git-reference
18160 (url "https://github.com/greghendershott/racket-mode")
18161 (commit commit)))
18162 (file-name (git-file-name name version))
18163 (sha256
18164 (base32
18165 "081h6rd0gv88m0wvnmghi242kl39x1sz34qr4cq9vz04iwvnmgrm"))))
18166 (build-system emacs-build-system)
18167 (arguments
18168 `(#:include '("\\.el$" "\\.rkt$")))
18169 (propagated-inputs
18170 `(("emacs-faceup" ,emacs-faceup)
18171 ("emacs-pos-tip" ,emacs-pos-tip)
18172 ("emacs-s" ,emacs-s)))
18173 (home-page "https://www.racket-mode.com/")
18174 (synopsis "Major mode for the Racket language")
18175 (description "@code{racket-mode} provides:
18176
18177 @itemize
18178 @item Focus on Racket (not various Schemes).
18179 @item Follow DrRacket concepts where applicable.
18180 @item Thorough font-lock and indent.
18181 @end itemize\n")
18182 (license license:gpl3+))))
18183
18184 (define-public emacs-grep-context
18185 (let ((commit "5a4e3efdf775755c1bbefcfe4b461c1166d81d7d")
18186 (revision "1"))
18187 (package
18188 (name "emacs-grep-context")
18189 (version (git-version "0.1.0" revision commit))
18190 (source
18191 (origin
18192 (method git-fetch)
18193 (uri (git-reference
18194 (url "https://github.com/mkcms/grep-context")
18195 (commit commit)))
18196 (file-name (git-file-name name version))
18197 (sha256
18198 (base32
18199 "00q7l4a3c0ay6g5ff9bfa2qgkiswsyh4s6pqnpg0zpzhvv5710f5"))))
18200 (build-system emacs-build-system)
18201 (propagated-inputs
18202 `(("emacs-dash" ,emacs-dash)))
18203 (home-page "https://github.com/mkcms/grep-context")
18204 (synopsis "Increase context in compilation and grep buffers")
18205 (description
18206 "This package provides an Emacs package for more context in
18207 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
18208 @code{ivy}.")
18209 (license license:gpl3+))))
18210
18211 (define-public emacs-helm-firefox
18212 (package
18213 (name "emacs-helm-firefox")
18214 (version "1.3")
18215 (source
18216 (origin
18217 (method git-fetch)
18218 (uri (git-reference
18219 (url "https://github.com/emacs-helm/helm-firefox")
18220 (commit (string-append "v" version))))
18221 (file-name (git-file-name name version))
18222 (sha256
18223 (base32
18224 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
18225 (propagated-inputs
18226 `(("emacs-helm" ,emacs-helm)))
18227 (build-system emacs-build-system)
18228 (home-page "https://github.com/emacs-helm/helm-firefox")
18229 (synopsis "Display firefox bookmarks with Emacs Helm interface")
18230 (description "Display firefox bookmarks with Emacs Helm interface")
18231 (license license:gpl3+)))
18232
18233 (define-public emacs-interactive-align
18234 (package
18235 (name "emacs-interactive-align")
18236 (version "0.4.2")
18237 (source
18238 (origin
18239 (method git-fetch)
18240 (uri (git-reference
18241 (url "https://github.com/mkcms/interactive-align")
18242 (commit (string-append "v" version))))
18243 (file-name (git-file-name name version))
18244 (sha256
18245 (base32
18246 "0bh03w91i622hbar5dcq631ndxx1y8kd3h655pgw1g0lqkv1mlnc"))))
18247 (build-system emacs-build-system)
18248 (home-page "https://github.com/mkcms/interactive-align/")
18249 (synopsis "Interactive align-regexp command in Emacs")
18250 (description "Interactive align-regexp command in Emacs")
18251 (license license:gpl3+)))
18252
18253 (define-public emacs-shift-number
18254 (package
18255 (name "emacs-shift-number")
18256 (version "0.1")
18257 (source
18258 (origin
18259 (method git-fetch)
18260 (uri (git-reference
18261 (url "https://github.com/alezost/shift-number.el")
18262 (commit (string-append "v" version))))
18263 (file-name (git-file-name name version))
18264 (sha256
18265 (base32
18266 "0zlwmzsxkv4mkggylxfx2fkrwgz7dz3zbg2gkn2rxcpy2k2gla64"))))
18267 (build-system emacs-build-system)
18268 (home-page "https://github.com/alezost/shift-number.el")
18269 (synopsis "Increase or decrease the number at point")
18270 (description "@code{emacs-shift-number} provides commands
18271 @code{shift-number-up} to increase and @code{shift-number-down} to
18272 decrease the number at point.")
18273 (license license:gpl3+)))
18274
18275 (define-public emacs-highlight-defined
18276 (package
18277 (name "emacs-highlight-defined")
18278 (version "0.1.5")
18279 (source
18280 (origin
18281 (method git-fetch)
18282 (uri (git-reference
18283 (url "https://github.com/Fanael/highlight-defined")
18284 (commit version)))
18285 (file-name (git-file-name name version))
18286 (sha256
18287 (base32 "08czwa165rnd5z0dwwdddn7zi5w63sdk31l47bj0598kbly01n7r"))))
18288 (build-system emacs-build-system)
18289 (home-page "https://github.com/Fanael/highlight-defined")
18290 (synopsis "Syntax highlighting of known Elisp symbols")
18291 (description "Minor mode providing syntax highlighting of known Emacs Lisp
18292 symbols. Currently the code distinguishes Lisp functions, built-in functions,
18293 macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
18294 (license license:gpl3+)))
18295
18296 (define-public emacs-parinfer-mode
18297 (package
18298 (name "emacs-parinfer-mode")
18299 (version "0.4.10")
18300 (source
18301 (origin
18302 (method git-fetch)
18303 (uri (git-reference
18304 (url "https://github.com/DogLooksGood/parinfer-mode")
18305 (commit (string-append "v" version))))
18306 (file-name (git-file-name name version))
18307 (sha256
18308 (base32 "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"))))
18309 (propagated-inputs
18310 `(("emacs-dash" ,emacs-dash)
18311 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
18312 ("emacs-company" ,emacs-company)))
18313 (build-system emacs-build-system)
18314 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
18315 (synopsis "Lisp structure editing mode")
18316 (description "@code{parinfer-mode} is a proof-of-concept editor
18317 mode for Lisp programming languages. It will infer some changes to
18318 keep Parens and Indentation inline with one another.")
18319 (license license:gpl3+)))
18320
18321 (define-public emacs-helm-eww
18322 (package
18323 (name "emacs-helm-eww")
18324 (version "1.2")
18325 (source (origin
18326 (method git-fetch)
18327 (uri (git-reference
18328 (url "https://github.com/emacs-helm/helm-eww")
18329 (commit version)))
18330 (file-name (git-file-name name version))
18331 (sha256
18332 (base32
18333 "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"))))
18334 (propagated-inputs
18335 `(("emacs-helm" ,emacs-helm)))
18336 (build-system emacs-build-system)
18337 (home-page "https://github.com/emacs-helm/helm-eww/")
18338 (synopsis "Helm interface to EWW")
18339 (description "This package provides a Helm interface for EWW buffers,
18340 bookmarks and history.")
18341 (license license:gpl3+)))
18342
18343 (define-public emacs-stumpwm-mode
18344 (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d6")
18345 (revision "3"))
18346 (package
18347 (name "emacs-stumpwm-mode")
18348 (version (git-version "0.0.1" revision commit))
18349 (source (origin
18350 (method git-fetch)
18351 (uri (git-reference
18352 (url "https://github.com/stumpwm/stumpwm-contrib")
18353 (commit commit)))
18354 (file-name (git-file-name name version))
18355 (sha256
18356 (base32
18357 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
18358 (build-system emacs-build-system)
18359 (arguments
18360 `(#:phases
18361 (modify-phases %standard-phases
18362 (add-after 'unpack 'chdir-elisp
18363 ;; Elisp directory is not in root of the source.
18364 (lambda _
18365 (chdir "util/swm-emacs"))))))
18366 (home-page "https://github.com/stumpwm/stumpwm-contrib")
18367 (synopsis "Emacs minor-mode for Stumpwm")
18368 (description "Emacs minor-mode for Stumpwm")
18369 (license license:gpl3+))))
18370
18371 (define-public emacs-irfc
18372 (package
18373 (name "emacs-irfc")
18374 (version "20130824.507-1")
18375 (source
18376 (origin
18377 (method url-fetch)
18378 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
18379 (file-name (string-append "irfc-" version ".el"))
18380 (sha256
18381 (base32
18382 "0rbfrza56kvspvgrwg0b5bj30d0qncqdsmfxn3y5caq4ifcj77hv"))))
18383 (build-system emacs-build-system)
18384 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
18385 (synopsis "Interface for IETF RFC document")
18386 (description
18387 "This package provides an Emacs interface for IETF RFC document.")
18388 (license license:gpl3+)))
18389
18390 (define-public emacs-ido-at-point
18391 (package
18392 (name "emacs-ido-at-point")
18393 (version "1.0.0")
18394 (source
18395 (origin
18396 (method git-fetch)
18397 (uri (git-reference
18398 (url "https://github.com/katspaugh/ido-at-point")
18399 (commit (string-append "v" version))))
18400 (file-name (git-file-name name version))
18401 (sha256
18402 (base32 "1bii7vj8pmmijcpvq3a1scky4ais7k6d7zympb3m9dmz355m9rpp"))))
18403 (build-system emacs-build-system)
18404 (synopsis "Ido-style completion at point")
18405 (description
18406 "This package is an alternative frontend for @code{completion-at-point}.
18407 It replaces the standard completions buffer with Ido prompt.")
18408 (home-page "https://github.com/katspaugh/ido-at-point")
18409 (license license:gpl3+)))
18410
18411 (define-public emacs-ido-vertical-mode
18412 (package
18413 (name "emacs-ido-vertical-mode")
18414 (version "0.1.6")
18415 (source
18416 (origin
18417 (method git-fetch)
18418 (uri (git-reference
18419 (url "https://github.com/creichert/ido-vertical-mode.el")
18420 (commit (string-append "v" version))))
18421 (file-name (git-file-name name version))
18422 (sha256
18423 (base32 "1lv82q639xjnmvby56nwqn23ijh6f163bk675s33dkingm8csj8k"))))
18424 (build-system emacs-build-system)
18425 (home-page "https://github.com/creichert/ido-vertical-mode.el")
18426 (synopsis "Makes ido-mode display vertically")
18427 (description "Makes ido-mode display prospects vertically.")
18428 (license license:gpl3+)))
18429
18430 (define-public emacs-wordgen
18431 (package
18432 (name "emacs-wordgen")
18433 (version "0.1.4")
18434 (source
18435 (origin
18436 (method git-fetch)
18437 (uri (git-reference
18438 (url "https://github.com/Fanael/wordgen.el")
18439 (commit version)))
18440 (file-name (git-file-name name version))
18441 (sha256
18442 (base32 "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"))))
18443 (build-system emacs-build-system)
18444 (home-page "https://github.com/Fanael/wordgen.el")
18445 (synopsis "Random word generator")
18446 (description "This package provides functions to generate random words
18447 using user-provided rules.")
18448 (license license:gpl3+)))
18449
18450 (define-public emacs-on-screen
18451 (package
18452 (name "emacs-on-screen")
18453 (version "1.3.3")
18454 (source
18455 (origin
18456 (method url-fetch)
18457 (uri (string-append
18458 "https://elpa.gnu.org/packages/on-screen-" version ".el"))
18459 (file-name (string-append name "-" version ".el"))
18460 (sha256
18461 (base32 "0ga4hw23ki583li2z2hr7l6hk1nc2kdg4afndg06cm9jn158wza7"))))
18462 (build-system emacs-build-system)
18463 (home-page "https://github.com/michael-heerdegen/on-screen.el")
18464 (synopsis "Guide your eyes while scrolling")
18465 (description
18466 "Scrolling can be distracting because your eyes may lose
18467 orientation. This library implements a minor mode that highlights
18468 the previously visible buffer part after each scroll.")
18469 (license license:gpl3+)))
18470
18471 (define-public emacs-highlight-escape-sequences
18472 ;; No release upstream. Extract version from main file.
18473 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
18474 (revision "0"))
18475 (package
18476 (name "emacs-highlight-escape-sequences")
18477 (version (git-version "0.4" revision commit))
18478 (source
18479 (origin
18480 (method git-fetch)
18481 (uri (git-reference
18482 (url "https://github.com/dgutov/highlight-escape-sequences")
18483 (commit commit)))
18484 (file-name (git-file-name name version))
18485 (sha256
18486 (base32 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
18487 (build-system emacs-build-system)
18488 (home-page "https://github.com/dgutov/highlight-escape-sequences")
18489 (synopsis "Highlight escape sequences in Emacs")
18490 (description "@code{highlight-escape-sequences} provides an
18491 Emacs minor mode to escape sequences in code.")
18492 (license license:gpl3+))))
18493
18494 (define-public emacs-dashboard
18495 (package
18496 (name "emacs-dashboard")
18497 (version "1.7.0")
18498 (source
18499 (origin
18500 (method git-fetch)
18501 (uri (git-reference
18502 (url "https://github.com/rakanalh/emacs-dashboard")
18503 (commit version)))
18504 (file-name (git-file-name name version))
18505 (sha256
18506 (base32 "1qv4cqjy2s2d2bysbq10vq1axpbd8qc3jn1s1r81lxqkcja8zasa"))))
18507 (build-system emacs-build-system)
18508 (propagated-inputs
18509 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
18510 (arguments
18511 '(#:include '("\\.el$" "\\.txt$" "\\.png$")
18512 #:phases
18513 (modify-phases %standard-phases
18514 (add-after 'unpack 'patch-dashboard-widgets
18515 ;; This phase fixes compilation error.
18516 (lambda _
18517 (chmod "dashboard-widgets.el" #o666)
18518 (emacs-substitute-variables "dashboard-widgets.el"
18519 ("dashboard-init-info"
18520 '(format "Loaded in %s" (emacs-init-time))))
18521 #t)))))
18522 (home-page "https://github.com/rakanalh/emacs-dashboard")
18523 (synopsis "Startup screen extracted from Spacemacs")
18524 (description "This package provides an extensible Emacs dashboard, with
18525 sections for bookmarks, projectil projects, org-agenda and more. ")
18526 (license license:gpl3+)))
18527
18528 (define-public emacs-slime-company
18529 (package
18530 (name "emacs-slime-company")
18531 (version "1.6")
18532 (source
18533 (origin
18534 (method git-fetch)
18535 (uri (git-reference
18536 (url "https://github.com/anwyn/slime-company")
18537 (commit (string-append "v" version))))
18538 (file-name (git-file-name name version))
18539 (sha256
18540 (base32 "05dnnc4ms5c9yp9h65k2gbkg3pw9k38nx5wzlwdlfr4shqmw54w0"))))
18541 (build-system emacs-build-system)
18542 (propagated-inputs
18543 `(("emacs-slime" ,emacs-slime)
18544 ("emacs-company" ,emacs-company)))
18545 (home-page "https://company-mode.github.io")
18546 (synopsis "SLIME completion backend for @code{company-mode}")
18547 (description
18548 "This is a backend implementation for the completion package
18549 @code{company-mode} which supports the normal and the fuzzy completion
18550 modes of SLIME.")
18551 (license license:gpl3+)))
18552
18553 (define-public emacs-sml-mode
18554 (package
18555 (name "emacs-sml-mode")
18556 (version "6.10")
18557 (source
18558 (origin
18559 (method url-fetch)
18560 (uri (string-append "https://elpa.gnu.org/packages/sml-mode-"
18561 version ".el"))
18562 (sha256
18563 (base32 "01yf0s474r9xhj6nbs14ljn9ccxb5yy758i17c8nmgmqvm8fx7sb"))))
18564 (build-system emacs-build-system)
18565 (home-page "https://elpa.gnu.org/packages/sml-mode.html")
18566 (synopsis "Major mode for editing (Standard) ML")
18567 (description "SML-MODE is a major Emacs mode for editing Standard ML.
18568 It provides syntax highlighting and automatic indentation and
18569 comes with sml-proc which allows interaction with an inferior SML
18570 interactive loop.")
18571 (license license:gpl3+)))
18572
18573 (define-public emacs-eros
18574 (let ((commit "dd8910279226259e100dab798b073a52f9b4233a")
18575 (revision "2"))
18576 (package
18577 (name "emacs-eros")
18578 (version (git-version "0.0.1" revision commit))
18579 (source
18580 (origin
18581 (method git-fetch)
18582 (uri (git-reference
18583 (url "https://github.com/xiongtx/eros")
18584 (commit commit)))
18585 (file-name (git-file-name name version))
18586 (sha256
18587 (base32
18588 "08chj3a0lw4ygi2sv7wj0i6ihfbi8jhylr8p92inif8b88r6wg3k"))))
18589 (build-system emacs-build-system)
18590 (home-page "https://github.com/xiongtx/eros")
18591 (synopsis "Evaluation result overlays")
18592 (description "@code{eros} provides evaluation result overlays.")
18593 (license license:gpl3+))))
18594
18595 (define-public emacs-stickyfunc-enhance
18596 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
18597 (revision "1"))
18598 (package
18599 (name "emacs-stickyfunc-enhance")
18600 (version "0.1")
18601 (source
18602 (origin
18603 (method git-fetch)
18604 (uri (git-reference
18605 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance")
18606 (commit commit)))
18607 (file-name (git-file-name name version))
18608 (sha256
18609 (base32
18610 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
18611 (build-system emacs-build-system)
18612 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
18613 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
18614 (description
18615 "@code{semantic-stickyfunc-mode} shows the function point is currently
18616 in at the first line of the current buffer. This is useful when you have a
18617 very long function that spreads more than a screen, and you don't have to
18618 scroll up to read the function name and then scroll down to original position.")
18619 (license license:gpl3+))))
18620
18621 (define-public emacs-git-auto-commit-mode
18622 (package
18623 (name "emacs-git-auto-commit-mode")
18624 (version "4.7.0")
18625 (source
18626 (origin
18627 (method git-fetch)
18628 (uri (git-reference
18629 (url "https://github.com/ryuslash/git-auto-commit-mode")
18630 (commit version)))
18631 (file-name (git-file-name name version))
18632 (sha256
18633 (base32 "0gpib57f7xza04g3iyihw5v15hb7pncqsmvyggib902yvcxlkvqf"))))
18634 (build-system emacs-build-system)
18635 (native-inputs
18636 `(("emacs-buttercup" ,emacs-buttercup)
18637 ("git" ,git)))
18638 (arguments
18639 `(#:tests? #t
18640 #:test-command '("buttercup" "-L" ".")))
18641 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
18642 (synopsis "Emacs Minor mode to automatically commit and push")
18643 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
18644 tries to commit changes to a file after every save.
18645
18646 When @code{gac-automatically-push-p} is non-nil, it also tries to push to the
18647 current upstream.")
18648 (license license:gpl3+)))
18649
18650 (define-public emacs-scroll-on-drag
18651 (let ((commit "888abd04c34753b1fc4b2fe541bc004ebec5c996")
18652 (revision "1"))
18653 (package
18654 (name "emacs-scroll-on-drag")
18655 (version (git-version "0.1" revision commit))
18656 (source
18657 (origin
18658 (method git-fetch)
18659 (uri (git-reference
18660 (url "https://gitlab.com/ideasman42/emacs-scroll-on-drag.git")
18661 (commit commit)))
18662 (file-name (git-file-name name version))
18663 (sha256
18664 (base32
18665 "1si4hdqa3jw1inbyh3wb3i5i9grbms1nwky3vyk9zg7iznwm8a9p"))))
18666 (build-system emacs-build-system)
18667 (home-page "https://gitlab.com/ideasman42/emacs-scroll-on-drag")
18668 (synopsis "Interactive scrolling")
18669 (description "This package permits scrolling at increasing speeds based
18670 on drag distance.")
18671 (license license:gpl3+))))
18672
18673 (define-public emacs-company-restclient
18674 (package
18675 (name "emacs-company-restclient")
18676 (version "0.3.0")
18677 (source
18678 (origin
18679 (method git-fetch)
18680 (uri (git-reference
18681 (url "https://github.com/iquiw/company-restclient")
18682 (commit (string-append "v" version))))
18683 (file-name (git-file-name name version))
18684 (sha256
18685 (base32 "0yp0hlrgcr6yy1xkjvfckys2k24x9xg7y6336ma61bdwn5lpv0x0"))))
18686 (build-system emacs-build-system)
18687 (propagated-inputs
18688 `(("emacs-company" ,emacs-company)
18689 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
18690 ("emacs-restclient" ,emacs-restclient)))
18691 (home-page "https://github.com/iquiw/company-restclient")
18692 (synopsis "Company-mode completion back-end for restclient-mode")
18693 (description "@code{company-mode} back-end for
18694 @code{restclient-mode}.
18695
18696 It provides auto-completion for HTTP methods and headers in
18697 @code{restclient-mode}. Completion source is given by
18698 @code{know-your-http-well}.")
18699 (license license:gpl3+)))
18700
18701 (define-public emacs-noflet
18702 (let ((version "20170629")
18703 (revision "1")
18704 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
18705 (package
18706 (name "emacs-noflet")
18707 (version (git-version version revision commit))
18708 (source
18709 (origin
18710 (method git-fetch)
18711 (uri (git-reference
18712 (url "https://github.com/nicferrier/emacs-noflet")
18713 (commit commit)))
18714 (file-name (git-file-name name version))
18715 (sha256
18716 (base32
18717 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
18718 (build-system emacs-build-system)
18719 (arguments
18720 `(#:phases
18721 (modify-phases %standard-phases
18722 (add-after 'unpack 'require-dash
18723 ;; noflet.el uses -map from dash, but (require 'dash) is
18724 ;; missing. So, add it.
18725 (lambda _
18726 (substitute* "noflet.el"
18727 ((";;; Code:") ";;; Code:\n(require 'dash)"))
18728 #t)))))
18729 (propagated-inputs
18730 `(("emacs-dash" ,emacs-dash)))
18731 (home-page "https://github.com/nicferrier/emacs-noflet")
18732 (synopsis "Locally override functions")
18733 (description "@code{emacs-noflet} lets you locally override functions,
18734 in the manner of @command{flet}, but with access to the original function
18735 through the symbol: @command{this-fn}.")
18736 (license license:gpl3+))))
18737
18738 (define-public emacs-dumb-jump
18739 (package
18740 (name "emacs-dumb-jump")
18741 (version "0.5.3")
18742 (source
18743 (origin
18744 (method git-fetch)
18745 (uri (git-reference
18746 (url "https://github.com/jacktasia/dumb-jump")
18747 (commit (string-append "v" version))))
18748 (file-name (git-file-name name version))
18749 (sha256
18750 (base32 "1njf60264snhxrd36m4z687lqfkis0p9mmrr7cf1c8l0lfdvawxi"))))
18751 (build-system emacs-build-system)
18752 (arguments
18753 `(#:tests? #f ; FIXME: Tests freeze when run.
18754 #:test-command '("ert-runner")
18755 #:phases
18756 (modify-phases %standard-phases
18757 (add-after 'unpack 'set-shell
18758 (lambda _
18759 ;; Setting the SHELL environment variable is required for the
18760 ;; tests to find sh.
18761 (setenv "SHELL" (which "sh"))
18762 #t)))))
18763 (native-inputs
18764 `(("emacs-el-mock" ,emacs-el-mock)
18765 ("emacs-noflet" ,emacs-noflet)
18766 ("emacs-undercover" ,emacs-undercover)
18767 ("ert-runner" ,emacs-ert-runner)))
18768 (propagated-inputs
18769 `(("emacs-f" ,emacs-f)
18770 ("emacs-popup" ,emacs-popup)))
18771 (home-page "https://github.com/jacktasia/dumb-jump")
18772 (synopsis "Jump to definition for multiple languages without configuration")
18773 (description "Dumb Jump is an Emacs \"jump to definition\" package with
18774 support for multiple programming languages that favors \"just working\" over
18775 speed or accuracy. This means minimal --- and ideally zero --- configuration
18776 with absolutely no stored indexes (tags) or persistent background processes.
18777 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
18778 @command{rg} installed.")
18779 (license license:gpl3+)))
18780
18781 (define-public emacs-dts-mode
18782 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
18783 (revision "1"))
18784 (package
18785 (name "emacs-dts-mode")
18786 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
18787 (source
18788 (origin
18789 (method git-fetch)
18790 (uri (git-reference
18791 (url "https://github.com/bgamari/dts-mode")
18792 (commit commit)))
18793 (file-name (git-file-name name version))
18794 (sha256
18795 (base32
18796 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
18797 (build-system emacs-build-system)
18798 (home-page "https://github.com/bgamari/dts-mode")
18799 (synopsis "Emacs minor mode for editing device tree files")
18800 (description
18801 "This package provides an Emacs minor mode for highlighting
18802 device tree files.")
18803 (license license:gpl3+))))
18804
18805 (define-public emacs-daemons
18806 (package
18807 (name "emacs-daemons")
18808 (version "2.0.0")
18809 (source
18810 (origin
18811 (method git-fetch)
18812 (uri (git-reference
18813 (url "https://github.com/cbowdon/daemons.el")
18814 (commit version)))
18815 (file-name (git-file-name name version))
18816 (sha256
18817 (base32
18818 "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
18819 (build-system emacs-build-system)
18820 (home-page "https://github.com/cbowdon/daemons.el")
18821 (synopsis "Emacs UI for managing init system services")
18822 (description
18823 "This is an Emacs mode to give you a UI for managing init system
18824 daemons (services) for those getting tired of typing out @code{sudo service
18825 my_thing reload} all the time. It offers a consistent UI over different init
18826 systems.")
18827 (license license:gpl3+)))
18828
18829 (define-public emacs-isearch+
18830 (let ((commit "7c251b91a67bf914066e23e269ba52fda5b45f5f")
18831 (revision "2"))
18832 (package
18833 (name "emacs-isearch+")
18834 (version (git-version "0" revision commit))
18835 (source
18836 (origin
18837 (method git-fetch)
18838 (uri (git-reference
18839 (url "https://github.com/emacsmirror/isearch-plus")
18840 (commit commit)))
18841 (file-name (git-file-name name version))
18842 (sha256
18843 (base32
18844 "1w2799714jcdycjlxgs8lpmmz6dmzvcvqy8xwxhvmgpb60g4f2yr"))))
18845 (build-system emacs-build-system)
18846 (home-page "https://www.emacswiki.org/emacs/isearch+.el")
18847 (synopsis "Extensions to @code{isearch.el}")
18848 (description "This package extends @code{isearch} with advice, dynamic
18849 filters, highlighting of regexp group levels, and more.")
18850 (license license:gpl2+))))
18851
18852 (define-public emacs-eshell-bookmark
18853 (package
18854 (name "emacs-eshell-bookmark")
18855 (version "2.0.0")
18856 (source
18857 (origin
18858 (method git-fetch)
18859 (uri (git-reference
18860 (url "https://github.com/Fuco1/eshell-bookmark")
18861 (commit version)))
18862 (file-name (git-file-name name version))
18863 (sha256
18864 (base32
18865 "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"))))
18866 (build-system emacs-build-system)
18867 (home-page "https://github.com/Fuco1/eshell-bookmark")
18868 (synopsis "Provide @file{bookmark.el} integration for @code{eshell}")
18869 (description
18870 "This package allows for bookmarking @code{eshell} buffers. Upon
18871 visiting the bookmark, a new @code{eshell} session will be opened in the
18872 appropriate directory if no @code{eshell} session is active.")
18873 (license license:gpl3+)))
18874
18875 (define-public emacs-eshell-syntax-highlighting
18876 (package
18877 (name "emacs-eshell-syntax-highlighting")
18878 (version "0.3")
18879 (source
18880 (origin
18881 (method git-fetch)
18882 (uri (git-reference
18883 (url "https://github.com/akreisher/eshell-syntax-highlighting")
18884 (commit (string-append "v" version))))
18885 (file-name (git-file-name name version))
18886 (sha256
18887 (base32 "1fb9aa85a3hx1rcmv71j6sc3y278452p1y4dabpwy07avb6apd0p"))))
18888 (build-system emacs-build-system)
18889 (home-page "https://github.com/akreisher/eshell-syntax-highlighting")
18890 (synopsis "Add syntax highlighting to Eshell")
18891 (description
18892 "This package highlights user commands at the Eshell interactive prompt
18893 to provide feedback on the validity of commands and syntax.")
18894 (license license:gpl3+)))
18895
18896 (define-public emacs-eshell-z
18897 (package
18898 (name "emacs-eshell-z")
18899 (version "0.4")
18900 (source
18901 (origin
18902 (method git-fetch)
18903 (uri (git-reference
18904 (url "https://github.com/xuchunyang/eshell-z")
18905 (commit (string-append "v" version))))
18906 (file-name (git-file-name name version))
18907 (sha256
18908 (base32
18909 "13dwaq8q23rwmrkpy3gvf7aswrkk6b9ak5221xl7n0bld4wdhq3j"))))
18910 (build-system emacs-build-system)
18911 (home-page "https://github.com/xuchunyang/eshell-z")
18912 (synopsis "Quick navigation to frequently visited directories")
18913 (description
18914 "This package is a port of @code{z}, and keeps track of visited directories
18915 and commands invoked within them in order to enable navigation via input of
18916 matching regexps.")
18917 (license license:gpl3+)))
18918
18919 (define-public emacs-esh-autosuggest
18920 (package
18921 (name "emacs-esh-autosuggest")
18922 (version "2.0.1")
18923 (source
18924 (origin
18925 (method git-fetch)
18926 (uri (git-reference
18927 (url "https://github.com/dieggsy/esh-autosuggest")
18928 (commit version)))
18929 (file-name (git-file-name name version))
18930 (sha256
18931 (base32
18932 "0l2nnlr3b6df1xn0qjf5d5ryy1wcs1jczyfy795vsasd5gm3g0xh"))))
18933 (build-system emacs-build-system)
18934 (propagated-inputs `(("emacs-company" ,emacs-company)))
18935 (home-page "https://github.com/dieggsy/esh-autosuggest")
18936 (synopsis "Fish-like autosuggestions in Eshell")
18937 (description
18938 "This package assumes you use something other than company for eshell
18939 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
18940 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
18941 for history autosuggestions.
18942
18943 Unless you're using @code{use-package}'s hook keyword, you can enable the
18944 autosuggestions with:
18945 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
18946 (license license:gpl3+)))
18947
18948 (define-public emacs-desktop-environment
18949 (package
18950 (name "emacs-desktop-environment")
18951 (version "0.4.0")
18952 (source
18953 (origin
18954 (method git-fetch)
18955 (uri (git-reference
18956 (url "https://gitlab.petton.fr/DamienCassou/desktop-environment")
18957 (commit (string-append "v" version))))
18958 (file-name (git-file-name name version))
18959 (sha256
18960 (base32
18961 "0s33jncjg8c2xlr90qjk1ishwmwxm9yg0z6n3kzilawcilpxidsh"))))
18962 (build-system emacs-build-system)
18963 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
18964 (synopsis "Control your GNU/Linux desktop environment from Emacs")
18965 (description
18966 "This package helps you control your GNU/Linux desktop from Emacs.
18967 With @code{desktop-environment}, you can control the brightness and volume as
18968 well as take screenshots and lock your screen. The package depends on the
18969 availability of shell commands to do the hard work for us. These commands can
18970 be changed by customizing the appropriate variables.")
18971 (license license:gpl3+)))
18972
18973 (define-public emacs-org-caldav
18974 (let ((commit "8569941a0a5a9393ba51afc8923fd7b77b73fa7a")
18975 (revision "2"))
18976 (package
18977 (name "emacs-org-caldav")
18978 (version (git-version "0.0.0" revision commit))
18979 (source
18980 (origin
18981 (method git-fetch)
18982 (uri (git-reference
18983 (url "https://github.com/dengste/org-caldav")
18984 (commit commit)))
18985 (file-name (git-file-name name version))
18986 (sha256
18987 (base32 "05lgxqaffnqaqnzl24frafdkskran88hl2ml05qvyjhs4jjbgw9g"))))
18988 (build-system emacs-build-system)
18989 (arguments
18990 ;; Tests require to have two specific calendars on a test server.
18991 `(#:exclude '("^org-caldav-testsuite\\.el")))
18992 (propagated-inputs
18993 `(("emacs-org" ,emacs-org)))
18994 (home-page "https://github.com/dengste/org-caldav")
18995 (synopsis "Sync Org files with external calendars via the CalDAV protocol")
18996 (description
18997 "Org CalDAV synchronizes events between Org files and a CalDAV
18998 calendar.")
18999 (license license:gpl3+))))
19000
19001 (define-public emacs-zotxt
19002 (package
19003 (name "emacs-zotxt")
19004 (version "5.0.5")
19005 (source
19006 (origin
19007 (method git-fetch)
19008 (uri (git-reference
19009 (url "https://github.com/egh/zotxt-emacs")
19010 (commit (string-append "v" version))))
19011 (file-name (git-file-name name version))
19012 (sha256
19013 (base32 "1zr67h0w49rsi84mgf6jdili28h8782q6vjl8za0iq1hcx9zqxyf"))))
19014 (build-system emacs-build-system)
19015 (propagated-inputs
19016 `(("emacs-deferred" ,emacs-deferred)
19017 ("emacs-request" ,emacs-request)))
19018 (home-page "https://github.com/egh/zotxt-emacs")
19019 (synopsis "Integrate Emacs with Zotero")
19020 (description "This package provides two integration features between Emacs
19021 and the Zotero research assistant: Insertion of links to Zotero items into an
19022 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
19023 (license license:gpl3+)))
19024
19025 (define-public emacs-evil-magit
19026 (let ((commit "253c644807013fe92429acdef418748794b8f254")
19027 (revision "4"))
19028 (package
19029 (name "emacs-evil-magit")
19030 (version (git-version "0.4.2" revision commit))
19031 (source
19032 (origin
19033 (method git-fetch)
19034 (uri (git-reference
19035 (url "https://github.com/emacs-evil/evil-magit")
19036 (commit commit)))
19037 (file-name (git-file-name name version))
19038 (sha256
19039 (base32
19040 "08mh7phxsdb9w4dfs0pmr4l4fdzzr2rm88z2s8karfi5j5ik2ag5"))))
19041 (build-system emacs-build-system)
19042 (propagated-inputs
19043 `(("emacs-evil" ,emacs-evil)
19044 ("magit" ,emacs-magit)))
19045 (arguments
19046 `(#:tests? #t
19047 #:test-command '("emacs" "-Q" "-batch"
19048 "-L" "."
19049 "-l" "evil-magit-tests"
19050 "-f" "ert-run-tests-batch-and-exit")))
19051 (home-page
19052 "https://github.com/emacs-evil/evil-magit")
19053 (synopsis "Evil-based key bindings for Magit")
19054 (description
19055 "This Emacs library configures Magit and Evil to play well with each other.
19056 For some background see @url{https://github.com/magit/evil-magit/issues/1}.
19057 See the README at @url{https://github.com/justbur/evil-magit} for a table
19058 describing the key binding changes.")
19059 (license license:gpl3+))))
19060
19061 (define-public emacs-evil-multiedit
19062 (package
19063 (name "emacs-evil-multiedit")
19064 (version "1.3.9")
19065 (source
19066 (origin
19067 (method git-fetch)
19068 (uri (git-reference
19069 (url "https://github.com/hlissner/evil-multiedit")
19070 (commit (string-append "v" version))))
19071 (file-name (git-file-name name version))
19072 (sha256
19073 (base32
19074 "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"))))
19075 (build-system emacs-build-system)
19076 (propagated-inputs
19077 `(("emacs-evil" ,emacs-evil)
19078 ("emacs-iedit" ,emacs-iedit)))
19079 (native-inputs
19080 `(("emacs-ert-runner" ,emacs-ert-runner)))
19081 (arguments
19082 `(#:phases
19083 (modify-phases %standard-phases
19084 (add-before 'check 'fix-makefile
19085 (lambda _
19086 (substitute* "Makefile"
19087 (("@cask exec ") ""))
19088 #t)))
19089 #:tests? #t
19090 #:test-command '("make" "test")))
19091 (home-page
19092 "https://github.com/hlissner/evil-multiedit")
19093 (synopsis "Multiple cursors for Evil mode")
19094 (description
19095 "This plugin was an answer to the lack of proper multiple cursor support
19096 in Emacs+Evil. It allows you to select and edit matches interactively,
19097 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
19098 defaults.")
19099 (license license:gpl3+)))
19100
19101 (define-public emacs-evil-mc
19102 (let ((commit "1cabb869fe70cef49f7dc06f015c3ade1a969c8c")
19103 (revision "2"))
19104 (package
19105 (name "emacs-evil-mc")
19106 (version (git-version "0.0.3" revision commit))
19107 (source
19108 (origin
19109 (method git-fetch)
19110 (uri (git-reference
19111 (url "https://github.com/gabesoft/evil-mc")
19112 (commit commit)))
19113 (file-name (git-file-name name version))
19114 (sha256
19115 (base32 "0p83p90faq1p02lmsfs7zrnky3cyzgy8z4m83a81r9kakjzhkrnb"))))
19116 (build-system emacs-build-system)
19117 (propagated-inputs
19118 `(("emacs-evil" ,emacs-evil)))
19119 (native-inputs
19120 `(("emacs-espuds" ,emacs-espuds)))
19121 (home-page "https://github.com/gabesoft/evil-mc")
19122 (synopsis "Interactive search compatible with @code{multiple-cursors}")
19123 (description "This package can be used with @code{multiple-cursors} to
19124 provide an incremental search that moves all fake cursors in sync.")
19125 (license license:expat))))
19126
19127 (define-public emacs-evil-org
19128 (let ((commit "9d4be14118bf27094a30dbff349b815f098aacbf"))
19129 (package
19130 (name "emacs-evil-org")
19131 (version (git-version "1.0.2" "1" commit))
19132 (source
19133 (origin
19134 (method git-fetch)
19135 (uri (git-reference
19136 (url "https://github.com/Somelauw/evil-org-mode")
19137 (commit commit)))
19138 (file-name (git-file-name name version))
19139 (sha256
19140 (base32
19141 "1fxxfkinb0gq4p5b686r7z4jrkv98zfgh5z889zkjacncv8ibswn"))))
19142 (build-system emacs-build-system)
19143 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
19144 (home-page
19145 "https://github.com/Somelauw/evil-org-mode")
19146 (synopsis "Evil keybindings for Org mode")
19147 (description
19148 "This package adds supplemental Evil mode key-bindings to Emacs
19149 Org-mode. It features:
19150 @itemize
19151 @item normal, visual and insert mode bindings;
19152 @item key bindings organised in key themes;
19153 @item operators like > and < to work on headings;
19154 @item text objects;
19155 @item table support;
19156 @item calendar (date selection) support;
19157 @item agenda support.
19158 @end itemize\n")
19159 (license license:gpl3+))))
19160
19161 (define-public emacs-debpaste
19162 (package
19163 (name "emacs-debpaste")
19164 (version "0.1.5")
19165 (home-page "https://github.com/alezost/debpaste.el")
19166 (source
19167 (origin
19168 (method git-fetch)
19169 (uri (git-reference (url home-page)
19170 (commit (string-append "v" version))))
19171 (file-name (git-file-name name version))
19172 (sha256
19173 (base32
19174 "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
19175 (build-system emacs-build-system)
19176 (propagated-inputs
19177 `(("emacs-xml-rpc" ,emacs-xml-rpc)))
19178 (synopsis "Manipulate pastes from the Debian Pastezone")
19179 (description "Debpaste is an Emacs interface for the Debian Pastezone,
19180 allowing you to receive, post, and delete pastes. It communicates with the
19181 server using XML-RPC.")
19182 (license license:gpl3+)))
19183
19184 (define-public emacs-xml-rpc
19185 (package
19186 (name "emacs-xml-rpc")
19187 (version "1.6.15")
19188 (source
19189 (origin
19190 (method git-fetch)
19191 (uri (git-reference
19192 (url "https://github.com/hexmode/xml-rpc-el")
19193 (commit version)))
19194 (file-name (git-file-name name version))
19195 (sha256
19196 (base32 "07vgwnk96i1vpsv2glg6kbkamjcs72xiznsa6xk7nl0nranzr3hd"))))
19197 (build-system emacs-build-system)
19198 (home-page "https://github.com/hexmode/xml-rpc-el")
19199 (synopsis "XML-RPC client for Emacs")
19200 (description "This package provides an XML-RPC client for Emacs capable
19201 of both synchronous and asynchronous method calls using the @code{url}
19202 package's async retrieval functionality. @file{xml-rpc.el} represents XML-RPC
19203 datatypes as Lisp values, automatically converting to and from the XML
19204 datastructures as needed, both for method parameters and return values, making
19205 using XML-RPC methods fairly transparent to the Lisp code.")
19206 (license license:gpl3+)))
19207
19208 (define-public emacs-xpm
19209 (package
19210 (name "emacs-xpm")
19211 (version "1.0.4")
19212 (source
19213 (origin
19214 (method url-fetch)
19215 (uri (string-append "https://elpa.gnu.org/packages/xpm-"
19216 version ".tar"))
19217 (sha256
19218 (base32
19219 "075miyashh9cm3b0gk6ngld3rm8bfgnh4qxnhxmmvjgzf6a64grh"))))
19220 (build-system emacs-build-system)
19221 (home-page "https://elpa.gnu.org/packages/xpm.html")
19222 (synopsis "XPM image editing mode for Emacs")
19223 (description "This Emacs package makes editing XPM images easy (and maybe
19224 fun). Editing is done directly on the (textual) image format, for maximal
19225 cohesion with the Emacs Way.")
19226 (license license:gpl3+)))
19227
19228 (define-public emacs-fish-completion
19229 (package
19230 (name "emacs-fish-completion")
19231 (version "1.2")
19232 (source
19233 (origin
19234 (method git-fetch)
19235 (uri (git-reference
19236 (url "https://gitlab.com/Ambrevar/emacs-fish-completion.git")
19237 (commit version)))
19238 (file-name (git-file-name name version))
19239 (sha256
19240 (base32
19241 "17lqip1i1rrsvxzz4bx9rqf1fvwd3hriwg3sj6qxmfc8pylnp37q"))))
19242 (build-system emacs-build-system)
19243 (inputs `(("fish" ,fish)))
19244 (arguments
19245 `(#:phases
19246 (modify-phases %standard-phases
19247 (add-after 'unpack 'configure
19248 (lambda* (#:key inputs outputs #:allow-other-keys)
19249 (let ((fish (assoc-ref inputs "fish")))
19250 ;; Specify the absolute file names of the various
19251 ;; programs so that everything works out-of-the-box.
19252 (make-file-writable "fish-completion.el")
19253 (emacs-substitute-variables
19254 "fish-completion.el"
19255 ("fish-completion-command"
19256 (string-append fish "/bin/fish")))))))))
19257 (home-page
19258 "https://gitlab.com/Ambrevar/emacs-fish-completion")
19259 (synopsis "Fish completion for Emacs pcomplete")
19260 (description
19261 "This package provides completion for the Fish shell to pcomplete (used
19262 by shell and Eshell). You can set it up globally with:
19263
19264 @example
19265 (when (and (executable-find \"fish\")
19266 (require 'fish-completion nil t))
19267 (global-fish-completion-mode))
19268 @end example
19269
19270 Alternatively, you can call the @code{fish-completion-mode} manually or in
19271 shell/Eshell mode hook.
19272
19273 The package @code{emacs-bash-completion} is an optional dependency: if available,
19274 @code{fish-completion-complete} can be configured to fall back on bash to further
19275 try completing. See @code{fish-completion-fallback-on-bash-p}.")
19276 (license license:gpl3+)))
19277
19278 (define-public emacs-gif-screencast
19279 (package
19280 (name "emacs-gif-screencast")
19281 (version "1.2")
19282 (source
19283 (origin
19284 (method git-fetch)
19285 (uri (git-reference
19286 (url "https://gitlab.com/Ambrevar/emacs-gif-screencast.git")
19287 (commit version)))
19288 (file-name (git-file-name name version))
19289 (sha256
19290 (base32
19291 "1yf6yipvhhna29mzaan5vb3d5qvbrkp2awr5diyf381mvxgk8akh"))))
19292 (build-system emacs-build-system)
19293 (inputs
19294 `(("scrot" ,scrot)
19295 ("imagemagick" ,imagemagick)
19296 ("gifsicle" ,gifsicle)))
19297 (arguments
19298 `(#:phases
19299 (modify-phases %standard-phases
19300 (add-after 'unpack 'configure
19301 (lambda* (#:key inputs outputs #:allow-other-keys)
19302 (let ((scrot (assoc-ref inputs "scrot"))
19303 (imagemagick (assoc-ref inputs "imagemagick"))
19304 (gifsicle (assoc-ref inputs "gifsicle")))
19305 (make-file-writable "gif-screencast.el")
19306 ;; Specify the absolute file names of the various
19307 ;; programs so that everything works out-of-the-box.
19308 (emacs-substitute-variables
19309 "gif-screencast.el"
19310 ("gif-screencast-program"
19311 (string-append scrot "/bin/scrot"))
19312 ("gif-screencast-convert-program"
19313 (string-append imagemagick "/bin/convert"))
19314 ("gif-screencast-cropping-program"
19315 (string-append imagemagick "/bin/mogrify"))
19316 ("gif-screencast-optimize-program"
19317 (string-append gifsicle "/bin/gifsicle")))))))))
19318 (home-page
19319 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
19320 (synopsis "One-frame-per-action GIF recording")
19321 (description
19322 "Call @code{gif-screencast} to start a recording.
19323 A screenshot is taken for every user action. Call
19324 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
19325 the GIF result.")
19326 (license license:gpl3+)))
19327
19328 (define-public emacs-google-translate
19329 (package
19330 (name "emacs-google-translate")
19331 (version "0.12.0")
19332 (source
19333 (origin
19334 (method git-fetch)
19335 (uri (git-reference
19336 (url "https://github.com/atykhonov/google-translate/")
19337 (commit (string-append "v" version))))
19338 (file-name (git-file-name name version))
19339 (sha256
19340 (base32
19341 "0rwpij2bm8d4jq2w5snkp88mfryplw8166dsrjm407n2p6xr48zx"))))
19342 (build-system emacs-build-system)
19343 (home-page "https://github.com/atykhonov/google-translate")
19344 (synopsis "Emacs interface to Google Translate")
19345 (description
19346 "This package provides an Emacs interface to the Google Translate
19347 on-line service.")
19348 (license license:gpl3+)))
19349
19350 (define-public emacs-helm-company
19351 (package
19352 (name "emacs-helm-company")
19353 (version "0.2.5")
19354 (source
19355 (origin
19356 (method git-fetch)
19357 (uri (git-reference
19358 (url "https://github.com/Sodel-the-Vociferous/helm-company")
19359 (commit (string-append "v" version))))
19360 (file-name (git-file-name name version))
19361 (sha256
19362 (base32
19363 "1ci37w6ahnqrfpb284gjvxmimlf61sdxb9k192yy9q983cksv2hx"))))
19364 (build-system emacs-build-system)
19365 (propagated-inputs
19366 `(("emacs-helm" ,emacs-helm)
19367 ("emacs-company" ,emacs-company)))
19368 (native-inputs
19369 `(("emacs-ert-runner" ,emacs-ert-runner)))
19370 (arguments
19371 `(#:tests? #t
19372 #:test-command '("ert-runner")))
19373 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
19374 (synopsis "Helm interface for company-mode")
19375 (description
19376 "This is a Helm interface to company-mode, a text completion
19377 framework.")
19378 (license license:gpl3+)))
19379
19380 (define-public emacs-helm-descbinds
19381 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
19382 (package
19383 (name "emacs-helm-descbinds")
19384 (version (git-version "1.13" "1" commit))
19385 (source
19386 (origin
19387 (method git-fetch)
19388 (uri (git-reference
19389 (url "https://github.com/emacs-helm/helm-descbinds")
19390 (commit commit)))
19391 (file-name (git-file-name name version))
19392 (sha256
19393 (base32
19394 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
19395 (build-system emacs-build-system)
19396 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
19397 (home-page "https://github.com/emacs-helm/helm-descbinds")
19398 (synopsis "Convenient @code{describe-bindings} with Helm")
19399 (description
19400 "This package is a replacement of @code{describe-bindings} for Helm.
19401 @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
19402 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
19403 @code{helm-descbinds}. The bindings are presented in a similar way as
19404 @code{describe-bindings} does, but you can use completion to find the command
19405 you searched for and execute it, or view its documentation.")
19406 (license license:gpl3+))))
19407
19408 (define-public emacs-helm-emms
19409 (let ((commit "37e5aa029abfa5a5c48636314de8157142944fa2"))
19410 (package
19411 (name "emacs-helm-emms")
19412 (version (git-version "1.3" "3" commit))
19413 (source
19414 (origin
19415 (method git-fetch)
19416 (uri (git-reference
19417 (url "https://github.com/emacs-helm/helm-emms")
19418 (commit commit)))
19419 (file-name (git-file-name name version))
19420 (sha256
19421 (base32
19422 "0r1ai6xhzayyik30w2sx9n62bxxwm12vfmjspv0daqif9az8y3vg"))))
19423 (build-system emacs-build-system)
19424 (propagated-inputs
19425 `(("emacs-helm" ,emacs-helm)
19426 ("emacs-emms" ,emacs-emms)))
19427 (home-page
19428 "https://github.com/emacs-helm/helm-emms")
19429 (synopsis "Emms for Helm")
19430 (description "Helm interface for Emms to browse all tracks and all folders
19431 from @code{emms-source-file-default-directory}.")
19432 (license license:gpl3+))))
19433
19434 (define-public emacs-helm-exwm
19435 (package
19436 (name "emacs-helm-exwm")
19437 (version "0.0.2")
19438 (source
19439 (origin
19440 (method git-fetch)
19441 (uri (git-reference
19442 (url "https://github.com/emacs-helm/helm-exwm")
19443 (commit version)))
19444 (file-name (git-file-name name version))
19445 (sha256
19446 (base32 "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v"))))
19447 (build-system emacs-build-system)
19448 (propagated-inputs
19449 `(("emacs-helm" ,emacs-helm)
19450 ("emacs-exwm" ,emacs-exwm)))
19451 (home-page
19452 "https://github.com/emacs-helm/helm-exwm")
19453 (synopsis "Helm for EXWM buffers")
19454 (description
19455 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
19456 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
19457 switch between the various windows of one or several specific applications.
19458 See @code{helm-exwm-switch-browser} for an example.")
19459 (license license:gpl3+)))
19460
19461 (define-public emacs-helm-flycheck
19462 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
19463 (package
19464 (name "emacs-helm-flycheck")
19465 (version (git-version "0.4" "1" commit))
19466 (source
19467 (origin
19468 (method git-fetch)
19469 (uri (git-reference
19470 (url "https://github.com/yasuyk/helm-flycheck")
19471 (commit commit)))
19472 (file-name (git-file-name name version))
19473 (sha256
19474 (base32
19475 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
19476 (build-system emacs-build-system)
19477 (propagated-inputs
19478 `(("emacs-dash" ,emacs-dash)
19479 ("emacs-flycheck" ,emacs-flycheck)
19480 ("emacs-helm" ,emacs-helm)))
19481 (home-page "https://github.com/yasuyk/helm-flycheck")
19482 (synopsis "Show Flycheck errors with Helm")
19483 (description
19484 "This integrates Flycheck with Helm.")
19485 (license license:gpl3+))))
19486
19487 (define-public emacs-helm-ls-git
19488 (let ((commit "4da1a53f2f0a078ee2e896a914a1b19c0bf1d5ed"))
19489 (package
19490 (name "emacs-helm-ls-git")
19491 (version (git-version "1.9.1" "2" commit))
19492 (source
19493 (origin
19494 (method git-fetch)
19495 (uri (git-reference
19496 (url "https://github.com/emacs-helm/helm-ls-git")
19497 (commit commit)))
19498 (file-name (git-file-name name version))
19499 (sha256
19500 (base32
19501 "12fi08w20yjsdfkxl1pk9q4w0z9l92va5fa5ghay9w33xlymc8dc"))))
19502 (build-system emacs-build-system)
19503 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
19504 (home-page "https://github.com/emacs-helm/helm-ls-git")
19505 (synopsis "Helm interface for listing the files in a Git repository")
19506 (description
19507 "This package provides a Helm interface for Git files.
19508 @itemize
19509 @item Display the open buffers in project.
19510 @item Display a status source showing state of project (modified files etc.).
19511 @item Display a list of all files in project under git control.
19512 @item Quickly look at diffs of modified files.
19513 @item Allow switching to @code{git status} with your preferred frontend
19514 (vc-dir, Magit,etc.).
19515 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
19516 can use ack-grep instead of grep).
19517 @item Integrate usage of gid from id-utils.
19518 @item Full integration with @code{helm-find-files}, allow you to browse
19519 projects unrelated to current-buffer.
19520 @item In addition, all actions of type files and buffers are provided.
19521 @end itemize\n")
19522 (license license:gpl3+))))
19523
19524 (define-public emacs-helm-mu
19525 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
19526 (package
19527 (name "emacs-helm-mu")
19528 (version (git-version "20180513" "1" commit))
19529 (source
19530 (origin
19531 (method git-fetch)
19532 (uri (git-reference
19533 (url "https://github.com/emacs-helm/helm-mu")
19534 (commit commit)))
19535 (file-name (git-file-name name version))
19536 (sha256
19537 (base32 "1lh0ahxdc5b2z18m9p30gwg8sbg33sjwkjr38p7h5xsm5fm7i0fz"))))
19538 (build-system emacs-build-system)
19539 (propagated-inputs
19540 `(("emacs-helm" ,emacs-helm)
19541 ("mu" ,mu)))
19542 (home-page
19543 "https://github.com/emacs-helm/helm-mu")
19544 (synopsis
19545 "Helm sources for searching emails and contacts")
19546 (description
19547 "Helm sources for searching emails and contacts using @code{mu} and
19548 @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
19549 Emacs build on top of mu. Mu is highly efficient making it possible to get
19550 instant results even for huge maildirs. It also provides search operators,
19551 e.g: @code{from:Peter to:Anne flag:attach search term}.")
19552 (license license:gpl3+))))
19553
19554 (define-public emacs-helm-pass
19555 (package
19556 (name "emacs-helm-pass")
19557 (version "0.4")
19558 (source
19559 (origin
19560 (method git-fetch)
19561 (uri (git-reference
19562 (url "https://github.com/emacs-helm/helm-pass")
19563 (commit version)))
19564 (file-name (git-file-name name version))
19565 (sha256
19566 (base32
19567 "19w24isddzamkikq17vbv3y7ha22i7wc09d2nqw1j0qwhrrfkng9"))))
19568 (build-system emacs-build-system)
19569 (propagated-inputs
19570 `(("emacs-helm" ,emacs-helm)
19571 ("emacs-password-store" ,emacs-password-store)))
19572 (home-page "https://github.com/emacs-helm/helm-pass")
19573 (synopsis "Helm interface to pass, the standard Unix password manager")
19574 (description
19575 "Users of @code{helm-pass} may also be interested in functionality
19576 provided by other Emacs packages dealing with pass:
19577 @itemize
19578 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
19579 @item @code{emacs-pass}, a major mode for @code{pass}.
19580 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
19581 @code{pass}, included in Emacs 26+).
19582 @end itemize\n")
19583 (license license:gpl3+)))
19584
19585 (define-public emacs-image+
19586 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
19587 (package
19588 (name "emacs-image+")
19589 (version (git-version "0.6.2" "1" commit))
19590 (source
19591 (origin
19592 (method git-fetch)
19593 (uri (git-reference
19594 (url "https://github.com/mhayashi1120/Emacs-imagex")
19595 (commit commit)))
19596 (file-name (git-file-name name version))
19597 (sha256
19598 (base32
19599 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
19600 (build-system emacs-build-system)
19601 (inputs `(("imagemagick" ,imagemagick)))
19602 (arguments
19603 `(#:phases
19604 (modify-phases %standard-phases
19605 (add-after 'unpack 'configure
19606 (lambda* (#:key inputs outputs #:allow-other-keys)
19607 (let ((imagemagick (assoc-ref inputs "imagemagick")))
19608 ;; Specify the absolute file names of the various
19609 ;; programs so that everything works out-of-the-box.
19610 (chmod "image+.el" #o666)
19611 (emacs-substitute-variables
19612 "image+.el"
19613 ("imagex-convert-command"
19614 (string-append imagemagick "/bin/convert"))
19615 ("imagex-identify-command"
19616 (string-append imagemagick "/bin/identify")))))))))
19617 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
19618 (synopsis "Image manipulation extensions for Emacs")
19619 (description
19620 "Image+ provides keybindings allowing you to zoom in or zoom out of an
19621 image, rotate it, save modified images, and more.")
19622 (license license:gpl3+))))
19623
19624 (define-public emacs-package-lint
19625 ;; The commit below includes a fix for a missing file, "stdlib-changes",
19626 ;; preventing build.
19627 (let ((commit "14c216f4889e71eec2a9da64e36ab8990337e82d")
19628 (version "0.13")
19629 (revision "0"))
19630 (package
19631 (name "emacs-package-lint")
19632 (version (git-version version revision commit))
19633 (source
19634 (origin
19635 (method git-fetch)
19636 (uri (git-reference
19637 (url "https://github.com/purcell/package-lint")
19638 (commit commit)))
19639 (file-name (git-file-name name version))
19640 (sha256
19641 (base32
19642 "1zifiqmpj9j14fnrm3jxapady25m1nlm514nfry0jfrhhikvj6i8"))))
19643 (arguments
19644 '(#:include (cons "^data/" %default-include)))
19645 (build-system emacs-build-system)
19646 (home-page "https://github.com/purcell/package-lint")
19647 (synopsis "Linting library for elisp package authors")
19648 (description
19649 "This provides a list of issues with the Emacs package metadata of a file,
19650 e.g. the package dependencies it requires. See function
19651 @code{package-lint-buffer}. Checks will currently be enabled only if a
19652 \"Package-Requires:\" or \"Package-Version:\" header is present in the
19653 file.")
19654 (license license:gpl3+))))
19655
19656 (define-public emacs-picpocket
19657 (let ((version "40")
19658 (commit "6fd88b8711c4370662c0f9c462170187d092a046"))
19659 (package
19660 (name "emacs-picpocket")
19661 (version version)
19662 (source
19663 (origin
19664 (method git-fetch)
19665 (uri (git-reference
19666 (url "https://github.com/johanclaesson/picpocket")
19667 (commit commit)))
19668 (file-name (git-file-name name version))
19669 (sha256
19670 (base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"))))
19671 (build-system emacs-build-system)
19672 (arguments ; needed for running tests
19673 `(#:tests? #t
19674 #:emacs ,emacs
19675 #:test-command '("emacs" "--batch"
19676 "-l" "picpocket-test.el"
19677 "-f" "ert-run-tests-batch-and-exit")))
19678 (home-page "https://github.com/johanclaesson/picpocket")
19679 (synopsis "Image viewer for Emacs")
19680 (description
19681 "Picpocket is an image viewer for GNU Emacs. It has commands for:
19682
19683 @itemize
19684 @item File operations on the picture files (delete, move, copy, hardlink).
19685 @item Scale and rotate the picture.
19686 @item Associate pictures with tags which are saved to disk.
19687 @item Filter pictures according to tags.
19688 @item Customizing keystrokes for quick tagging and file operations.
19689 @item Undo and browse history of undoable commands.
19690 @end itemize")
19691 (license license:gpl3+))))
19692
19693 (define-public emacs-mu4e-conversation
19694 (let ((commit "98110bb9c300fc9866dee8e0023355f9f79c9b96")
19695 (revision "5"))
19696 (package
19697 (name "emacs-mu4e-conversation")
19698 (version (git-version "0.0.1" revision commit))
19699 (source
19700 (origin
19701 (method git-fetch)
19702 (uri (git-reference
19703 (url "https://gitlab.com/Ambrevar/mu4e-conversation.git")
19704 (commit commit)))
19705 (file-name (git-file-name name version))
19706 (sha256
19707 (base32
19708 "080s96jkcw2p288sp1vgds91rgl693iz6hi2dv56p2ih0nnivwlg"))))
19709 (build-system emacs-build-system)
19710 (propagated-inputs
19711 `(("mu" ,mu)))
19712 (home-page
19713 "https://gitlab.com/Ambrevar/mu4e-conversation")
19714 (synopsis
19715 "Show a complete thread in a single buffer")
19716 (description
19717 "This package offers an alternate view to mu4e's e-mail display. It
19718 shows all e-mails of a thread in a single view, where each correspondent has
19719 their own face. Threads can be displayed linearly (in which case e-mails are
19720 displayed in chronological order) or as an Org document where the node tree
19721 maps the thread tree.")
19722 (license license:gpl3+))))
19723
19724 (define-public emacs-pinentry
19725 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
19726 (revision "1"))
19727 (package
19728 (name "emacs-pinentry")
19729 (version (git-version "0.1" revision commit))
19730 (source
19731 (origin
19732 (method url-fetch)
19733 (uri (string-append
19734 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
19735 "/packages/pinentry/pinentry.el?id=" commit))
19736 (file-name (string-append "pinentry.el"))
19737 (sha256
19738 (base32
19739 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
19740 (build-system emacs-build-system)
19741 (propagated-inputs
19742 `(("gnupg" ,gnupg)))
19743 (home-page "https://elpa.gnu.org/packages/pinentry.html")
19744 (synopsis "GnuPG Pinentry server implementation")
19745 (description
19746 "This package allows GnuPG passphrase to be prompted through the
19747 minibuffer instead of graphical dialog.
19748
19749 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
19750 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
19751 server with @code{M-x pinentry-start}.")
19752 (license license:gpl3+))))
19753
19754 (define-public emacs-so-long
19755 (let ((commit "cfae473b1bf65f78ddb015159e667ec0103d881c")
19756 (revision "2"))
19757 (package
19758 (name "emacs-so-long")
19759 (version (git-version "1.0" revision commit))
19760 (source
19761 (origin
19762 (method git-fetch)
19763 (uri (git-reference
19764 (url "https://git.savannah.gnu.org/git/so-long.git")
19765 (commit commit)))
19766 (file-name (git-file-name name version))
19767 (sha256
19768 (base32
19769 "0g943n5cl9lz5s7hszg6yvp10xd1xvd8mfgxyg0yckmp8fqkswin"))))
19770 (build-system emacs-build-system)
19771 (home-page "https://www.emacswiki.org/emacs/SoLong")
19772 (synopsis "Improve performance in files with long lines")
19773 (description "This package improves the performance of Emacs when
19774 viewing files with long lines. It is included as standard with Emacs 27 or
19775 later.")
19776 (license license:gpl3+))))
19777
19778 (define-public emacs-github-review
19779 (let ((commit "a13a3b4f1b6114a32af843971a145ab880f51232")
19780 (revision "2"))
19781 (package
19782 (name "emacs-github-review")
19783 (version (git-version "0.1" revision commit))
19784 (source
19785 (origin
19786 (method git-fetch)
19787 (uri (git-reference
19788 (url "https://github.com/charignon/github-review")
19789 (commit commit)))
19790 (file-name (git-file-name name version))
19791 (sha256
19792 (base32
19793 "0injfpxzgfhmqalba845j5l5cdcxxqz43knhxwinf36g52nfabl0"))))
19794 (build-system emacs-build-system)
19795 (inputs
19796 `(("emacs-dash" ,emacs-dash)
19797 ("emacs-s" ,emacs-s)
19798 ("emacs-ghub" ,emacs-ghub)))
19799 (native-inputs
19800 `(("emacs-buttercup" ,emacs-buttercup)
19801 ("emacs-undercover" ,emacs-undercover)))
19802 (arguments
19803 `(#:tests? #t
19804 #:test-command '("buttercup" "-L" "test/github-review-test.el")))
19805 (home-page "https://github.com/charignon/github-review")
19806 (synopsis "Review GitHub pull requests within Emacs")
19807 (description "This package provides commands to pull in, comment on, and
19808 accept and reject GitHub pull requests.")
19809 (license license:gpl3+))))
19810
19811 (define-public emacs-deadgrep
19812 (let ((commit "7e50e71c6ff4e17dded43e0836dae4e5ec020fcf")
19813 (revision "1"))
19814 (package
19815 (name "emacs-deadgrep")
19816 (version (git-version "0.10" revision commit))
19817 (source
19818 (origin
19819 (method git-fetch)
19820 (uri (git-reference
19821 (url "https://github.com/Wilfred/deadgrep")
19822 (commit commit)))
19823 (file-name (git-file-name name version))
19824 (sha256
19825 (base32
19826 "1vjhrq02l8gvdn2haygzq7277hnhjchs9xrfpcnh76gqip200gx4"))))
19827 (build-system emacs-build-system)
19828 (propagated-inputs
19829 `(("emacs-dash" ,emacs-dash)
19830 ("emacs-s" ,emacs-s)
19831 ("emacs-spinner" ,emacs-spinner)))
19832 (home-page "https://github.com/Wilfred/deadgrep")
19833 (synopsis "Frontend for @code{ripgrep}")
19834 (description "This package provides an Emacs interface for performing
19835 searches with @code{ripgrep}.")
19836 (license license:gpl3+))))
19837
19838 (define-public emacs-focus
19839 (let ((commit "5f3f20e7f22fb9fd7c48abce8bd38061d97e4bc0")
19840 (version "1.0.0")
19841 (revision "1"))
19842 (package
19843 (name "emacs-focus")
19844 (version (git-version version revision commit))
19845 (source
19846 (origin
19847 (method git-fetch)
19848 (uri (git-reference
19849 (url "https://github.com/larstvei/Focus")
19850 (commit commit)))
19851 (file-name (git-file-name name version))
19852 (sha256
19853 (base32
19854 "0a55i4bychfnnzjg67a9h4j130hchcg44446dwwx1l1h48i692dw"))))
19855 (build-system emacs-build-system)
19856 (home-page "https://github.com/larstvei/Focus")
19857 (synopsis "Minor mode for focusing in on relevant text")
19858 (description "This package provides a minor mode that dims the color of
19859 text in neighboring sections.")
19860 (license license:gpl3+))))
19861
19862 (define-public emacs-pandoc-mode
19863 (package
19864 (name "emacs-pandoc-mode")
19865 (version "2.30.1")
19866 (source
19867 (origin
19868 (method git-fetch)
19869 (uri (git-reference
19870 (url "https://github.com/joostkremers/pandoc-mode")
19871 (commit version)))
19872 (file-name (git-file-name name version))
19873 (sha256
19874 (base32
19875 "1k31pkvd9m798i6phcr0y3wd34fgq6ii41hx3lszmikvxb1yvm2y"))))
19876 (build-system emacs-build-system)
19877 (propagated-inputs
19878 `(("emacs-dash" ,emacs-dash)
19879 ("emacs-hydra" ,emacs-hydra)))
19880 (home-page "https://github.com/joostkremers/pandoc-mode")
19881 (synopsis "Minor mode for interacting with Pandoc")
19882 (description "This package provides a Hydra menu for interacting with the
19883 Pandoc, the document-conversion tool.")
19884 (license license:bsd-3)))
19885
19886 (define-public emacs-hlint-refactor-mode
19887 (let ((commit "c4307f86aad6d02e32e9b30cb6edc115584c791c")
19888 (revision "1"))
19889 (package
19890 (name "emacs-hlint-refactor-mode")
19891 (version (git-version "0.0.1" revision commit))
19892 (source
19893 (origin
19894 (method git-fetch)
19895 (uri (git-reference
19896 (url "https://github.com/mpickering/hlint-refactor-mode")
19897 (commit commit)))
19898 (file-name (git-file-name name version))
19899 (sha256
19900 (base32
19901 "1c71w9s34n0i7mm4njchxn6s3ri1y6mh3akgbg4nq41d42h8iap3"))))
19902 (build-system emacs-build-system)
19903 (propagated-inputs
19904 `(("apply-refact" ,apply-refact)
19905 ("hlint" ,hlint)))
19906 (home-page "https://github.com/mpickering/hlint-refactor-mode")
19907 (synopsis "Emacs bindings for @code{hlint}'s @code{--refactor} option")
19908 (description "This package applies refactoring suggestions from
19909 @code{hlint}.")
19910 (license license:expat))))
19911
19912 (define-public emacs-ccls
19913 (let ((commit "675a5704c14a27931e835a431beea3631d92e8e6")
19914 (revision "5"))
19915 (package
19916 (name "emacs-ccls")
19917 (version (git-version "0.1" revision commit))
19918 (source
19919 (origin
19920 (method git-fetch)
19921 (uri (git-reference
19922 (url "https://github.com/MaskRay/emacs-ccls")
19923 (commit commit)))
19924 (file-name (git-file-name name version))
19925 (sha256
19926 (base32
19927 "0l4bhyr9d8ljz1f0cfg1s2cjcmh6fiwbk5mdlvc7rrwz5hxc21is"))))
19928 (build-system emacs-build-system)
19929 (propagated-inputs
19930 `(("ccls" ,ccls)
19931 ("emacs-dash" ,emacs-dash)
19932 ("emacs-lsp-mode" ,emacs-lsp-mode)))
19933 (home-page "https://github.com/MaskRay/emacs-ccls")
19934 (synopsis "Emacs support for the @code{ccls} language server")
19935 (description "This package extends @code{lsp-mode} to work with @code{C}
19936 and @code{C++} files through the @code{ccls} language server.")
19937 (license license:expat))))
19938
19939 (define-public emacs-org-brain
19940 (package
19941 (name "emacs-org-brain")
19942 (version "0.5")
19943 (source
19944 (origin
19945 (method git-fetch)
19946 (uri (git-reference
19947 (url "https://github.com/Kungsgeten/org-brain")
19948 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
19949 (file-name (git-file-name name version))
19950 (sha256
19951 (base32
19952 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
19953 (build-system emacs-build-system)
19954 (home-page "https://github.com/Kungsgeten/org-brain")
19955 (synopsis "Org-mode wiki and concept-mapping for Emacs")
19956 (description "@code{emacs-org-brain} implements a variant of concept
19957 mapping in Emacs, using @code{org-mode}. An org-brain is a network of
19958 org-mode entries, where each entry is a file or a headline, and you can get a
19959 visual overview of the relationships between the entries: parents, children,
19960 siblings and friends. This visual overview can also be used to browse your
19961 entries. You can think of entries as nodes in a mind map, or pages in a
19962 wiki.")
19963 (license license:expat)))
19964
19965 (define-public emacs-recent-addresses
19966 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
19967 (revision "1"))
19968 (package
19969 (name "emacs-recent-addresses")
19970 (home-page "https://nschum.de/src/emacs/recent-addresses/")
19971 (version (git-version "0.1" revision commit))
19972 (source (origin
19973 (method git-fetch)
19974 (uri (git-reference
19975 ;; Note: Use a branch that works with Helm. Submitted
19976 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
19977 (url "https://github.com/civodul/recent-addresses.el")
19978 (commit commit)))
19979 (sha256
19980 (base32
19981 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
19982 (file-name (git-file-name name version))))
19983 (build-system emacs-build-system)
19984 (synopsis "Record recently-used email addressed and auto-complete them")
19985 (description
19986 "@code{recent-addresses} is an Emacs package that allows you to quickly
19987 look up previously used email addresses. It can be used alongside the Gnus
19988 email client.")
19989 (license license:gpl2+))))
19990
19991 (define-public emacs-fold-dwim
19992 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
19993 (revision "0"))
19994 (package
19995 (name "emacs-fold-dwim")
19996 (version (git-version "1.2" revision commit))
19997 (home-page "https://github.com/emacsattic/fold-dwim")
19998 (source (origin
19999 (method git-fetch)
20000 (uri (git-reference (url home-page) (commit commit)))
20001 (sha256
20002 (base32
20003 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
20004 (file-name (git-file-name name version))))
20005 (build-system emacs-build-system)
20006 (synopsis "Unified user interface for Emacs folding modes")
20007 (description
20008 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
20009 can do different things depending on the context. In this package, it means
20010 that, if the cursor is in a currently hidden folded construction, we want to
20011 show it; if it's not, we want to hide whatever fold the cursor is in.")
20012 (license license:gpl2+))))
20013
20014 (define-public emacs-markup-faces
20015 (package
20016 (name "emacs-markup-faces")
20017 (version "1.0.0")
20018 (source
20019 (origin
20020 (method url-fetch)
20021 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
20022 version ".el"))
20023 (sha256
20024 (base32
20025 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
20026 (build-system emacs-build-system)
20027 (home-page "https://github.com/sensorflo/markup-faces")
20028 (synopsis "Collection of Emacs faces for markup language modes")
20029 (description "emacs-markup-faces is like font-lock-faces, but tailored for
20030 markup languages instead programming languages. The sub group markup-faces-text
20031 is also intended for 'text viewing modes' such as info or (wo)man. This gives a
20032 common look and feel, or let's say theme, across different markup language modes
20033 and 'text viewing modes' respectively.")
20034 (license license:gpl3+)))
20035
20036 (define-public emacs-adoc-mode
20037 (package
20038 (name "emacs-adoc-mode")
20039 (version "0.6.6")
20040 (source
20041 (origin
20042 (method git-fetch)
20043 (uri (git-reference
20044 (url "https://github.com/sensorflo/adoc-mode")
20045 (commit (string-append "V" version))))
20046 (file-name (git-file-name name version))
20047 (sha256
20048 (base32
20049 "0kp2aafjhqxz3mjr9hkkss85r4n51chws5a2qj1xzb63dh36liwm"))))
20050 (build-system emacs-build-system)
20051 (arguments
20052 `(#:phases
20053 (modify-phases %standard-phases
20054 ;; See: https://github.com/sensorflo/adoc-mode/issues/39.
20055 (add-after 'unpack 'disable-failing-tests
20056 (lambda _
20057 (let-syntax
20058 ((disable-tests
20059 (syntax-rules ()
20060 ((_ file ())
20061 (syntax-error "test names list must not be empty"))
20062 ((_ file (test-name ...))
20063 (substitute* file
20064 (((string-append "^\\(ert-deftest " test-name ".*") all)
20065 (string-append all "(skip-unless nil)\n")) ...)))))
20066 (disable-tests "adoc-mode-test.el"
20067 ("adoctest-test-tempo-delimited-blocks"
20068 "adoctest-test-tempo-macros"
20069 "adoctest-test-tempo-paragraphs"
20070 "adoctest-test-tempo-passthroug-macros"
20071 "adoctest-test-tempo-quotes")))
20072 #t)))
20073 #:tests? #t
20074 #:test-command '("emacs" "-Q" "-batch"
20075 "-l" "adoc-mode-test.el"
20076 "-f" "ert-run-tests-batch-and-exit")))
20077 (propagated-inputs
20078 `(("emacs-markup-faces" ,emacs-markup-faces)))
20079 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
20080 (synopsis "AsciiDoc mode for Emacs")
20081 (description "This package provides an Emacs major mode for editing AsciiDoc
20082 files. It focuses on highlighting the document to improve readability.")
20083 (license license:gpl2+)))
20084
20085 (define-public emacs-racer
20086 (package
20087 (name "emacs-racer")
20088 (version "1.2")
20089 (source
20090 (origin
20091 (method git-fetch)
20092 (uri
20093 (git-reference
20094 (url "https://github.com/racer-rust/emacs-racer")
20095 (commit version)))
20096 (file-name (git-file-name name version))
20097 (sha256
20098 (base32 "0xj5iki10cg8j8vvqjlw6lfx97k3agwirhchcjnzbnkry48x9qi6"))))
20099 (arguments
20100 `(#:tests? #t
20101 #:test-command '("make" "test")
20102 #:phases
20103 (modify-phases %standard-phases
20104 (add-before 'check 'fix-makefile
20105 (lambda _
20106 (substitute* "Makefile"
20107 (("\\$\\{CASK\\} exec ") ""))
20108 #t))
20109 ;; Two tests are failing with Emacs 27, as reported here:
20110 ;; <https://github.com/racer-rust/emacs-racer/issues/136>. Disable
20111 ;; them.
20112 (add-before 'check 'fix-failing-tests
20113 (lambda _
20114 (substitute* "test/racer-test.el"
20115 (("`Write`") "Write")
20116 (("^\\\\\\[`str\\]:.*") "")
20117 ((" \\[`str`\\]") " str"))
20118 #t)))))
20119 (native-inputs
20120 `(("emacs-ert-runner" ,emacs-ert-runner)
20121 ("emacs-undercover" ,emacs-undercover)))
20122 (propagated-inputs
20123 `(("emacs-dash" ,emacs-dash)
20124 ("emacs-f" ,emacs-f)
20125 ("emacs-pos-tip" ,emacs-pos-tip)
20126 ("emacs-rust-mode" ,emacs-rust-mode)
20127 ("emacs-s" ,emacs-s)))
20128 (build-system emacs-build-system)
20129 (home-page "https://github.com/racer-rust/emacs-racer")
20130 (synopsis "Racer support for Emacs")
20131 (description
20132 "This is the official Emacs package for Racer. It supports code
20133 completion of variables, functions and modules. It can also jump to
20134 definition of functions and types, and show a help buffer based on the
20135 docstring of the thing at point.")
20136 (license license:expat)))
20137
20138 (define-public emacs-rust-mode
20139 (package
20140 (name "emacs-rust-mode")
20141 (version "0.5.0")
20142 (source (origin
20143 (method git-fetch)
20144 (uri (git-reference
20145 (url "https://github.com/rust-lang/rust-mode")
20146 (commit version)))
20147 (file-name (git-file-name name version))
20148 (sha256
20149 (base32
20150 "1f3nnl0d7p9b5cv1bpm0hj898qmr2psxfvmqr61bh684z7fgc045"))))
20151 (build-system emacs-build-system)
20152 (arguments
20153 `(#:phases
20154 (modify-phases %standard-phases
20155 (replace 'check
20156 (lambda _
20157 (invoke "sh" "run_rust_emacs_tests.sh"))))))
20158 (home-page "https://github.com/rust-lang/rust-mode")
20159 (synopsis "Major Emacs mode for editing Rust source code")
20160 (description "This package provides a major Emacs mode for editing Rust
20161 source code.")
20162 (license (list license:expat
20163 license:asl2.0))))
20164
20165 (define-public emacs-ztree
20166 (let ((commit "6eee81d2691009ce60b2edf7c298b227caf1b0d6"))
20167 (package
20168 (name "emacs-ztree")
20169 (version (git-version "1.0.5" "2" commit))
20170 (source
20171 (origin
20172 (method git-fetch)
20173 (uri (git-reference
20174 (url "https://github.com/fourier/ztree")
20175 (commit commit)))
20176 (file-name (git-file-name name version))
20177 (sha256
20178 (base32
20179 "1xmimjflylssx63g1kpd5n34gdlpivgg9ih8nwplad57bxiy2yqb"))))
20180 (build-system emacs-build-system)
20181 (home-page "https://github.com/fourier/ztree")
20182 (synopsis "Directory tree comparison mode for Emacs")
20183 (description "Ztree is a project dedicated to implementation of several
20184 text-tree applications inside GNU Emacs. It consists of 2 subprojects:
20185 @command{ztree-diff} and @command{ztree-dir} (the basis of
20186 @command{ztree-diff}).")
20187 (license license:gpl3))))
20188
20189 (define-public emacs-helm-org-contacts
20190 (let ((commit "e7f11615802df55bb8b679450b5a5ef82a9081f9"))
20191 (package
20192 (name "emacs-helm-org-contacts")
20193 (version (git-version "20200310" "1" commit))
20194 (source
20195 (origin
20196 (method git-fetch)
20197 (uri (git-reference
20198 (url "https://github.com/tmalsburg/helm-org-contacts")
20199 (commit commit)))
20200 (file-name (git-file-name name version))
20201 (sha256
20202 (base32
20203 "06a1gbrq3qcfsn0kyv4i24x1xxfrrwqa3kgfj4xa4va88q2vqyb5"))))
20204 (build-system emacs-build-system)
20205 (propagated-inputs
20206 `(("emacs-dash" ,emacs-dash)
20207 ("emacs-helm" ,emacs-helm)
20208 ("emacs-s" ,emacs-s)))
20209 (home-page "https://github.com/tmalsburg/helm-org-contacts")
20210 (synopsis "Helm source for org-contacts")
20211 (description "This Helm source can be used to search contacts stored in
20212 org-contacts format. There are actions for inserting postal addresses, email
20213 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
20214 was called.")
20215 (license license:gpl3))))
20216
20217 (define-public emacs-dired-du
20218 (package
20219 (name "emacs-dired-du")
20220 (version "0.5.2")
20221 (source
20222 (origin
20223 (method url-fetch)
20224 (uri (string-append
20225 "https://elpa.gnu.org/packages/dired-du-" version ".tar"))
20226 (sha256
20227 (base32 "0vhph7vcicsiq28b10h3b4dvnhckcy4gccpdgsad5j7pwa5k26m1"))))
20228 (build-system emacs-build-system)
20229 (home-page "https://elpa.gnu.org/packages/dired-du.html")
20230 (synopsis "Dired with recursive directory sizes")
20231 (description
20232 "Display the recursive size of directories in Dired.
20233 This file defines a minor mode @command{dired-du-mode} to show the recursive
20234 size of directories in Dired buffers. If @command{du} program is available,
20235 then the directory sizes are obtained with it. Otherwise, the directory sizes
20236 are obtained with Lisp. The former is faster and provide a more precise
20237 value. For directories where the user doesn't have read permission, the
20238 recursive size is not obtained. Once this mode is enabled, every new Dired
20239 buffer displays recursive dir sizes.")
20240 (license license:gpl3+)))
20241
20242 (define-public emacs-dired-rsync
20243 (package
20244 (name "emacs-dired-rsync")
20245 (version "0.6")
20246 (source (origin
20247 (method git-fetch)
20248 (uri (git-reference
20249 (url "https://github.com/stsquad/dired-rsync")
20250 (commit version)))
20251 (file-name (git-file-name name version))
20252 (sha256
20253 (base32
20254 "19za6i96xrmczdh928n5ixd7j7pvy175sz1msaiwvdjwysjr8k51"))))
20255 (build-system emacs-build-system)
20256 (propagated-inputs
20257 `(("emacs-s" ,emacs-s)
20258 ("emacs-dash" ,emacs-dash)))
20259 (home-page "https://github.com/stsquad/dired-rsync/")
20260 (synopsis "Support for rsync from Emacs dired buffers")
20261 (description "This package adds a single command @code{dired-rsync} which
20262 allows the user to copy marked files in a dired buffer via @code{rsync}. This
20263 is useful, especially for large files, because the copy happens in the
20264 background and doesn’t lock up Emacs. It is also more efficient than using
20265 tramps own encoding methods for moving data between systems.")
20266 (license license:gpl3+)))
20267
20268 (define-public emacs-pcre2el
20269 ;; Last release is very old so we get the latest commit.
20270 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
20271 (package
20272 (name "emacs-pcre2el")
20273 (version (git-version "1.8" "1" commit))
20274 (source
20275 (origin
20276 (method git-fetch)
20277 (uri (git-reference
20278 (url "https://github.com/joddie/pcre2el")
20279 (commit commit)))
20280 (file-name (git-file-name name version))
20281 (sha256
20282 (base32
20283 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
20284 (build-system emacs-build-system)
20285 (home-page "https://github.com/joddie/pcre2el")
20286 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
20287 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
20288 Tools) is a utility for working with regular expressions in Emacs, based on a
20289 recursive-descent parser for regexp syntax. In addition to converting (a
20290 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
20291
20292 @itemize
20293 @item convert Emacs syntax to PCRE
20294 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
20295 @item untangle complex regexps by showing the parse tree in @code{rx} form and
20296 highlighting the corresponding chunks of code
20297 @item show the complete list of strings (productions) matching a regexp,
20298 provided the list is finite
20299 @item provide live font-locking of regexp syntax (so far only for Elisp
20300 buffers – other modes on the TODO list).
20301 @end itemize\n")
20302 (license license:gpl3))))
20303
20304 (define-public emacs-magit-todos
20305 (package
20306 (name "emacs-magit-todos")
20307 (version "1.5.3")
20308 (source
20309 (origin
20310 (method git-fetch)
20311 (uri (git-reference
20312 (url "https://github.com/alphapapa/magit-todos")
20313 (commit version)))
20314 (file-name (git-file-name name version))
20315 (sha256
20316 (base32
20317 "12ay02vk6bk77k33mhlqi41m03a77y80b15rj1dbh1n6jfrjwkfy"))))
20318 (build-system emacs-build-system)
20319 (propagated-inputs
20320 `(("emacs-async" ,emacs-async)
20321 ("emacs-dash" ,emacs-dash)
20322 ("emacs-f" ,emacs-f)
20323 ("emacs-hl-todo" ,emacs-hl-todo)
20324 ("magit" ,emacs-magit)
20325 ("emacs-pcre2el" ,emacs-pcre2el)
20326 ("emacs-s" ,emacs-s)))
20327 (home-page "https://github.com/alphapapa/magit-todos")
20328 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
20329 (description "This package displays keyword entries from source code
20330 comments and Org files in the Magit status buffer. Activating an item jumps
20331 to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
20332 few (like NOTE).")
20333 (license license:gpl3)))
20334
20335 (define-public emacs-git-annex
20336 ;; Unreleased version has a fontification fix.
20337 (let ((commit "1324d3f23c534fe79391a2c256bb8803054e383b")
20338 (revision "2"))
20339 (package
20340 (name "emacs-git-annex")
20341 (version (git-version "1.1" revision commit))
20342 (source
20343 (origin
20344 (method git-fetch)
20345 (uri (git-reference
20346 (url "https://github.com/jwiegley/git-annex-el")
20347 (commit commit)))
20348 (file-name (git-file-name name version))
20349 (sha256
20350 (base32
20351 "1lfky2nsrlndlbvk6vwbswnvbvkz1sxgg0n3r5q6xykdkjym0lrh"))))
20352 (build-system emacs-build-system)
20353 (home-page "https://github.com/jwiegley/git-annex-el")
20354 (synopsis "Emacs integration for git-annex")
20355 (description "Enhances Dired and buffers visiting annex files with
20356 git-annex functionality. In Dired, the names of annex files are shortened by
20357 hiding the symbolic links and fontified based on whether content is present.
20358 Commands for performing some common operations (e.g., unlocking and adding
20359 files) are provided.")
20360 (license license:gpl2+))))
20361
20362 (define-public emacs-hackernews
20363 (package
20364 (name "emacs-hackernews")
20365 (version "0.6.1")
20366 (source
20367 (origin
20368 (method git-fetch)
20369 (uri (git-reference
20370 (url "https://github.com/clarete/hackernews.el")
20371 (commit (string-append "v" version))))
20372 (file-name (git-file-name name version))
20373 (sha256
20374 (base32
20375 "17lkjcka6ydd6khhz5jbjlybfpx05153z0d8s1rxaxcwl7z2y6cf"))))
20376 (build-system emacs-build-system)
20377 (home-page "https://github.com/clarete/hackernews.el")
20378 (synopsis "Hacker News client for Emacs")
20379 (description "The @command{hackernews} package is able to fetch stories
20380 from six different Hacker News feeds, namely top, new, best, ask, show and job
20381 stories. The default feed is top stories, which corresponds to the Hacker
20382 News homepage.")
20383 (license license:gpl3)))
20384
20385 (define-public emacs-youtube-dl
20386 (let ((commit "af877b5bc4f01c04fccfa7d47a2c328926f20ef4")
20387 (revision "2"))
20388 (package
20389 (name "emacs-youtube-dl")
20390 (version (git-version "1.0" "2" commit))
20391 (source
20392 (origin
20393 (method git-fetch)
20394 (uri (git-reference
20395 (url "https://github.com/skeeto/youtube-dl-emacs/")
20396 (commit commit)))
20397 (file-name (git-file-name name version))
20398 (sha256
20399 (base32
20400 "0zkl9jkjbx0lmp9ylv4rqg1zwqibk053s4rp7s1h0i18nzk7vn8j"))))
20401 (build-system emacs-build-system)
20402 (inputs
20403 `(("youtube-dl" ,youtube-dl)))
20404 (arguments
20405 `(#:phases
20406 (modify-phases %standard-phases
20407 (add-after 'unpack 'configure
20408 (lambda* (#:key inputs #:allow-other-keys)
20409 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
20410 ;; .el is read-only in git.
20411 (chmod "youtube-dl.el" #o644)
20412 ;; Specify the absolute file names of the various
20413 ;; programs so that everything works out-of-the-box.
20414 (emacs-substitute-variables
20415 "youtube-dl.el"
20416 ("youtube-dl-program"
20417 (string-append youtube-dl "/bin/youtube-dl")))))))))
20418 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
20419 (synopsis "Emacs youtube-dl download manager")
20420 (description "This package manages a video download queue for
20421 @command{youtube-dl}, which serves as the back end. It manages a single
20422 @command{youtube-dl} subprocess, downloading one video at a time. New videos
20423 can be queued at any time.")
20424 (license license:unlicense))))
20425
20426 (define-public emacs-ytdl
20427 (package
20428 (name "emacs-ytdl")
20429 (version "1.3.5")
20430 (source
20431 (origin
20432 (method git-fetch)
20433 (uri (git-reference
20434 (url "https://gitlab.com/tuedachu/ytdl")
20435 (commit version)))
20436 (file-name (git-file-name name version))
20437 (sha256
20438 (base32 "1xv93ny942gha1ipic5r6z4icjsb7src7ssdck9983kks3zacjk7"))))
20439 (build-system emacs-build-system)
20440 (inputs
20441 `(("youtube-dl" ,youtube-dl)))
20442 (propagated-inputs
20443 `(("async" ,emacs-async)
20444 ("transient" ,emacs-transient)))
20445 (arguments
20446 `(#:phases
20447 (modify-phases %standard-phases
20448 (add-after 'unpack 'configure
20449 (lambda* (#:key inputs #:allow-other-keys)
20450 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
20451 ;; .el is read-only in git.
20452 (make-file-writable "ytdl.el")
20453 ;; Specify the absolute file names of the various programs so
20454 ;; that everything works out-of-the-box.
20455 (emacs-substitute-variables "ytdl.el"
20456 ("ytdl-command" (string-append youtube-dl "/bin/youtube-dl")))
20457 #t))))))
20458 (home-page "https://gitlab.com/tuedachu/ytdl")
20459 (synopsis "Emacs interface for youtube-dl")
20460 (description
20461 "This package manages a video download queue for @command{youtube-dl},
20462 which serves as the back end. New videos can be queued at any time. All
20463 youtube-dl backends are supported. It is possible to create download profiles
20464 depending on the downloaded URL.")
20465 (license license:gpl3+)))
20466
20467 (define-public emacs-org-web-tools
20468 (package
20469 (name "emacs-org-web-tools")
20470 (version "1.1.1")
20471 (source
20472 (origin
20473 (method git-fetch)
20474 (uri (git-reference
20475 (url "https://github.com/alphapapa/org-web-tools")
20476 (commit version)))
20477 (file-name (git-file-name name version))
20478 (sha256
20479 (base32
20480 "0v4qad54r0z7dr7kg5lpfdsazi44qvrbybx9aciyl4w9grfajphb"))))
20481 (build-system emacs-build-system)
20482 (propagated-inputs
20483 `(("emacs-dash" ,emacs-dash)
20484 ("emacs-esxml" ,emacs-esxml)
20485 ("emacs-request" ,emacs-request)
20486 ("emacs-s" ,emacs-s)))
20487 (inputs
20488 `(("pandoc" ,pandoc)))
20489 (arguments
20490 `(#:phases
20491 (modify-phases %standard-phases
20492 (add-after 'unpack 'patch-exec-paths
20493 (lambda* (#:key inputs #:allow-other-keys)
20494 (let ((pandoc (assoc-ref inputs "pandoc")))
20495 (substitute* "org-web-tools.el"
20496 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
20497 #t))))))
20498 (home-page "https://github.com/alphapapa/org-web-tools")
20499 (synopsis "Display/Process web page as Org-mode content")
20500 (description "This package contains library functions and commands useful
20501 for retrieving web page content and processing it into Org-mode content.
20502
20503 For example, you can copy a URL to the clipboard or kill-ring, then run a
20504 command that downloads the page, isolates the “readable” content with
20505 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
20506 displays it in an Org-mode buffer. Another command does all of that but
20507 inserts it as an Org entry instead of displaying it in a new buffer.")
20508 (license license:gpl3+)))
20509
20510 (define-public emacs-blimp
20511 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
20512 (package
20513 (name "emacs-blimp")
20514 (version (git-version "0.0.0" "1" commit))
20515 (source
20516 (origin
20517 (method git-fetch)
20518 (uri (git-reference
20519 (url "https://github.com/walseb/blimp")
20520 (commit commit)))
20521 (file-name (git-file-name name version))
20522 (sha256
20523 (base32
20524 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
20525 (build-system emacs-build-system)
20526 (propagated-inputs
20527 `(("emacs-eimp" ,emacs-eimp)))
20528 (home-page "https://github.com/walseb/blimp")
20529 (synopsis "Emacs wrapper around all Imagemagick commands")
20530 (description "Blimp (Bustling Image Manipulation Package) is a complete
20531 wrapper around all Imagemagick commands with descriptions, autocompletion (for
20532 some commands) and hints displayed in prompt using @command{eimp.el} to
20533 execute its commands and resize images.")
20534 (license license:gpl3+))))
20535
20536 (define-public emacs-synosaurus
20537 (package
20538 (name "emacs-synosaurus")
20539 (version "0.2.0")
20540 (source
20541 (origin
20542 (method git-fetch)
20543 (uri (git-reference
20544 (url "https://github.com/hpdeifel/synosaurus")
20545 (commit (string-append "v" version))))
20546 (file-name (git-file-name name version))
20547 (sha256
20548 (base32
20549 "14dd6p89pmpf1w3nx4f9mzm4sn2b64nicws436ck7pmp223pwciv"))))
20550 (build-system emacs-build-system)
20551 (propagated-inputs
20552 `(("wordnet" ,wordnet)))
20553 (arguments
20554 `(#:phases
20555 (modify-phases %standard-phases
20556 (add-after 'unpack 'configure
20557 (lambda* (#:key inputs outputs #:allow-other-keys)
20558 (let ((wn (assoc-ref inputs "wordnet")))
20559 ;; .el is read-only in git.
20560 (make-file-writable "synosaurus-wordnet.el")
20561 ;; Specify the absolute file names of the various
20562 ;; programs so that everything works out-of-the-box.
20563 (emacs-substitute-variables "synosaurus-wordnet.el"
20564 ("synosaurus-wordnet--command"
20565 (string-append wn "/bin/wn")))))))))
20566 (home-page "https://github.com/hpdeifel/synosaurus")
20567 (synopsis "Extensible thesaurus mode for Emacs")
20568 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
20569 backends, including the @command{wordnet} offline backend.")
20570 (license license:gpl3+)))
20571
20572 (define-public emacs-editorconfig
20573 (package
20574 (name "emacs-editorconfig")
20575 (version "0.8.1")
20576 (source
20577 (origin
20578 (method git-fetch)
20579 (uri (git-reference
20580 (url "https://github.com/editorconfig/editorconfig-emacs")
20581 (commit (string-append "v" version))))
20582 (file-name (git-file-name name version))
20583 (sha256
20584 (base32
20585 "1djlhkap7zddknzvjsjz0agpfsms1ih05zcpg1bikid2vs4gddyr"))))
20586 (build-system emacs-build-system)
20587 (home-page "https://github.com/editorconfig/editorconfig-emacs")
20588 (synopsis "Define and maintain consistent coding styles between different
20589 editors and IDEs")
20590 (description "The EditorConfig project consists of a file format for
20591 defining coding styles and a collection of text editor plugins that enable
20592 editors to read the file format and adhere to defined styles. EditorConfig
20593 files are easily readable and they work nicely with version control systems.")
20594 (license license:gpl3+)))
20595
20596 (define-public emacs-all-the-icons
20597 (package
20598 (name "emacs-all-the-icons")
20599 (version "4.0.1")
20600 (source
20601 (origin
20602 (method git-fetch)
20603 (uri (git-reference
20604 (url "https://github.com/domtronn/all-the-icons.el")
20605 (commit version)))
20606 (file-name (git-file-name name version))
20607 (sha256
20608 (base32 "0yh7gnv9xfqn8q4rzaa6wpyn9575vyfxy7d3afly2mqsb367fgm5"))))
20609 (build-system emacs-build-system)
20610 (arguments
20611 `(#:include '("\\.el$" "^data/" "^fonts/")
20612 ;; Compiling "test/" fails with "Symbol’s value as variable is void:
20613 ;; all-the-icons--root-code". Ignoring tests.
20614 #:exclude '("^test/")
20615 #:tests? #f))
20616 (propagated-inputs
20617 `(("f" ,emacs-f)
20618 ("memoize" ,emacs-memoize)))
20619 (home-page "https://github.com/domtronn/all-the-icons.el")
20620 (synopsis "Collect icon fonts and propertize them within Emacs")
20621 (description
20622 "All-the-icons is a utility package to collect various icon fonts and
20623 propertize them within Emacs. Icon fonts allow you to propertize and format
20624 icons the same way you would normal text. This enables things such as better
20625 scaling of and anti aliasing of the icons.")
20626 ;; Package is released under Expat license. Elisp files are licensed
20627 ;; under GPL3+. Fonts come with various licenses: Expat for
20628 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
20629 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
20630 ;; "ocitcons.ttf" and "weathericons.ttf".
20631 (license
20632 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
20633
20634 (define-public emacs-wttrin
20635 (let ((commit "df5427ce2a5ad4dab652dbb1c4a1834d7ddc2abc")
20636 (revision "1"))
20637 (package
20638 (name "emacs-wttrin")
20639 (version (git-version "0.2.0" revision commit))
20640 (source (origin
20641 (method git-fetch)
20642 (uri (git-reference
20643 (url "https://github.com/bcbcarl/emacs-wttrin")
20644 (commit commit)))
20645 (file-name (git-file-name name version))
20646 (sha256
20647 (base32
20648 "1ai655f10iayb4vw0ass2j3x83f4vsv90326mnywkzfl3sxd432z"))))
20649 (build-system emacs-build-system)
20650 (propagated-inputs
20651 `(("emacs-xterm-color" ,emacs-xterm-color)))
20652 (home-page "https://github.com/bcbcarl/emacs-wttrin")
20653 (synopsis "Frontend for weather web service @url{wttr.in}")
20654 (description "This package provides local weather information from
20655 @url{wttr.in}.")
20656 (license license:expat))))
20657
20658 (define-public emacs-browse-kill-ring
20659 (let ((commit "1ef72cc6accd94cd7032c02b1b2c78ae7f1d1965")
20660 (revision "0"))
20661 (package
20662 (name "emacs-browse-kill-ring")
20663 (version (git-version "2.0.0" revision commit))
20664 (source
20665 (origin
20666 (method git-fetch)
20667 (uri (git-reference
20668 (url "https://github.com/browse-kill-ring/browse-kill-ring")
20669 (commit commit)))
20670 (file-name (git-file-name name version))
20671 (sha256
20672 (base32
20673 "0mil32g7hcw376jibs5hdyv00xbaql3m4a27rwqaafg0x59avxdj"))))
20674 (build-system emacs-build-system)
20675 (home-page "https://github.com/browse-kill-ring/browse-kill-ring")
20676 (synopsis "Interactively insert items from kill-ring")
20677 (description
20678 "Did you ever feel that @code{C-y M-y M-y M-y ...} is not a great way
20679 of trying to find that piece of text you know you killed a while back? Then
20680 @code{browse-kill-ring.el} is for you.")
20681 (license license:gpl2+))))
20682
20683 (define-public emacs-powerline
20684 (package
20685 (name "emacs-powerline")
20686 (version "2.4")
20687 (source
20688 (origin
20689 (method git-fetch)
20690 (uri (git-reference
20691 (url "https://github.com/milkypostman/powerline")
20692 (commit version)))
20693 (file-name (git-file-name name version))
20694 (sha256
20695 (base32
20696 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
20697 (build-system emacs-build-system)
20698 (home-page "https://github.com/milkypostman/powerline/")
20699 (synopsis "Mode-line plugin for Emacs")
20700 (description "Powerline is a utility plugin which allows you to create
20701 a better-looking, more functional Emacs mode-line. A collection of predefined
20702 themes comes with the package.")
20703 (license license:gpl3+)))
20704
20705 (define-public emacs-spaceline
20706 (package
20707 (name "emacs-spaceline")
20708 (version "2.0.1")
20709 (source
20710 (origin
20711 (method git-fetch)
20712 (uri (git-reference
20713 (url "https://github.com/TheBB/spaceline")
20714 (commit (string-append "v" version))))
20715 (file-name (git-file-name name version))
20716 (sha256
20717 (base32
20718 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
20719 (build-system emacs-build-system)
20720 (propagated-inputs
20721 `(("dash" ,emacs-dash)
20722 ("powerline" ,emacs-powerline)
20723 ("s" ,emacs-s)))
20724 (home-page "https://github.com/TheBB/spaceline")
20725 (synopsis "Powerline theme from Spacemacs")
20726 (description "Spaceline provides Spacemacs' mode-line theme.
20727 This package provides features for three kinds of users.
20728
20729 @itemize
20730 @item You just want to use the Spacemacs mode-line theme and forget about it.
20731 @item You want to use something similar to the Spacemacs mode-line theme, but
20732 with a handful of easy tweaks.
20733 @item You want an easy-to-use library for building your own mode-line from
20734 scratch, and you think the Spacemacs theme looks good.
20735 @end itemize")
20736 (license license:gpl3+)))
20737
20738 (define-public emacs-spaceline-next
20739 (let ((commit "1b26af2c1a701481ac5d90928fe0200e389756c3")
20740 (last-release-version "2.0.1")
20741 (revision "0"))
20742 (package
20743 (inherit emacs-spaceline)
20744 (name "emacs-spaceline-next")
20745 (version (git-version last-release-version revision commit))
20746 (source
20747 (origin
20748 (method git-fetch)
20749 (uri (git-reference
20750 (url "https://github.com/TheBB/spaceline")
20751 (commit commit)))
20752 (sha256
20753 (base32 "11lwckqcgzsahrkkm5wk1ph4kc7d4yz05r7251g8c9f0q6vdj9dp"))
20754 (file-name (git-file-name name version)))))))
20755
20756 (define-public emacs-column-marker
20757 (package
20758 (name "emacs-column-marker")
20759 (version "9")
20760 (source
20761 (origin
20762 (method url-fetch)
20763 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
20764 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
20765 (build-system emacs-build-system)
20766 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
20767 (synopsis "Emacs mode for highlighting columns")
20768 (description
20769 "With @code{column-marker.el} you can highlight any number of text columns.
20770 Three such highlight column markers are provided by default. This is
20771 especially useful for languages like COBOL or Fortran where certain columns
20772 have special meaning. It is also handy for aligning text across long vertical
20773 distances. Multi-column characters, such as @kbd{TAB} are treated
20774 correctly.")
20775 (license license:gpl2+)))
20776
20777 (define-public emacs-slime-repl-ansi-color
20778 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
20779 (package
20780 (name "emacs-slime-repl-ansi-color")
20781 (version (git-version "0.0.0" "1" commit))
20782 (source (origin
20783 (method git-fetch)
20784 (uri (git-reference
20785 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
20786 (commit commit)))
20787 (file-name (git-file-name name version))
20788 (sha256
20789 (base32
20790 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
20791 (build-system emacs-build-system)
20792 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
20793 (synopsis "Color ANSI codes in the REPL of SLIME")
20794 (description "Color ANSI codes in the REPL of SLIME")
20795 (license license:gpl2+))))
20796
20797 (define-public emacs-helm-slime
20798 (package
20799 (name "emacs-helm-slime")
20800 (version "0.4.0")
20801 (source (origin
20802 (method git-fetch)
20803 (uri (git-reference
20804 (url "https://github.com/emacs-helm/helm-slime")
20805 (commit version)))
20806 (file-name (git-file-name name version))
20807 (sha256
20808 (base32
20809 "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"))))
20810 (build-system emacs-build-system)
20811 (propagated-inputs
20812 `(("emacs-helm" ,emacs-helm)
20813 ("emacs-slime" ,emacs-slime)))
20814 (home-page "https://github.com/emacs-helm/helm-slime")
20815 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
20816 (description "Helm-SLIME defines a few new commands:
20817
20818 @itemize
20819 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
20820 @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
20821 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
20822 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
20823 @end itemize\n")
20824 (license license:gpl3+)))
20825
20826 (define-public emacs-helm-sly
20827 (package
20828 (name "emacs-helm-sly")
20829 (version "0.7.2")
20830 (source (origin
20831 (method git-fetch)
20832 (uri (git-reference
20833 (url "https://github.com/emacs-helm/helm-sly")
20834 (commit version)))
20835 (file-name (git-file-name name version))
20836 (sha256
20837 (base32
20838 "06x8wyx1r0s7askkvlbklgz1cszv34qsvv3gryndw350smk1v8kx"))))
20839 (build-system emacs-build-system)
20840 (propagated-inputs
20841 `(("emacs-helm" ,emacs-helm)
20842 ("emacs-sly" ,emacs-sly)))
20843 (home-page "https://github.com/emacs-helm/helm-sly")
20844 (synopsis "Helm for SLY, a Common Lisp interaction mode for Emacs")
20845 (description "Helm-SLY defines a few new commands:
20846
20847 @itemize
20848 @item @code{helm-sly-list-connections}: Yet another Lisp connection list with
20849 Helm.
20850 @item @code{helm-sly-apropos}: Yet another @command{apropos} with Helm.
20851 @item @code{helm-sly-mini}: Like @command{helm-sly-list-connections}, but
20852 include an extra source of Lisp-related buffers, like the events buffer or the
20853 scratch buffer.
20854 @end itemize\n")
20855 (license license:gpl3+)))
20856
20857 (define-public emacs-gtk-look
20858 (package
20859 (name "emacs-gtk-look")
20860 (version "29")
20861 (source (origin
20862 (method url-fetch)
20863 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
20864 (sha256
20865 (base32
20866 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
20867 (build-system emacs-build-system)
20868 (arguments
20869 `(#:phases
20870 (modify-phases %standard-phases
20871 (add-after 'unpack 'configure
20872 (lambda _
20873 ;; File is read-only.
20874 (chmod "gtk-look.el" #o644)
20875 (emacs-substitute-variables "gtk-look.el"
20876 ("gtk-lookup-devhelp-indices"
20877 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
20878 #t)))))
20879 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
20880 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
20881 (description "@command{gtk-look} finds and displays HTML documentation for
20882 GTK, GNOME and Glib functions and variables in Emacs, similar to what
20883 info-lookup-symbol does for info files (C-h S). The documentation is expected
20884 to be devhelp indexes with HTML files. The location of the indexes can be
20885 customized. In addition to C code development @command{gtk-look} is good for
20886
20887 @itemize
20888 @item @command{perl-gtk2}, recognising class funcs like
20889 @command{Gtk2::Label->new} and bare method names like @command{set_text}.
20890 @item @command{guile-gnome}, recognising methods like @command{set-text} and
20891 classes like @command{<gtk-window>}.
20892 @end itemize\n")
20893 (license license:gpl3+)))
20894
20895 (define-public emacs-ov
20896 (package
20897 (name "emacs-ov")
20898 (version "1.0.6")
20899 (source (origin
20900 (method git-fetch)
20901 (uri (git-reference
20902 (url "https://github.com/ShingoFukuyama/ov.el")
20903 (commit version)))
20904 (file-name (git-file-name name version))
20905 (sha256
20906 (base32
20907 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
20908 (build-system emacs-build-system)
20909 (home-page "https://github.com/ShingoFukuyama/ov.el")
20910 (synopsis "Overlay library for Emacs Lisp")
20911 (description "@code{ov.el} provides a simple way to manipulate overlays in
20912 Emacs.")
20913 (license license:gpl3+)))
20914
20915 (define-public emacs-matrix-client
20916 (let ((commit "d2ac55293c96d4c95971ed8e2a3f6f354565c5ed"))
20917 (package
20918 (name "emacs-matrix-client")
20919 (version (git-version "0.0.0" "6" commit))
20920 (source (origin
20921 (method git-fetch)
20922 (uri (git-reference
20923 (url "https://github.com/jgkamat/matrix-client-el")
20924 (commit commit)))
20925 (file-name (git-file-name name version))
20926 (sha256
20927 (base32
20928 "1scfv1502yg7x4bsl253cpr6plml1j4d437vci2ggs764sh3rcqq"))))
20929 (build-system emacs-build-system)
20930 (propagated-inputs
20931 `(("a" ,emacs-a)
20932 ("anaphora" ,emacs-anaphora)
20933 ("dash" ,emacs-dash)
20934 ("esxml" ,emacs-esxml)
20935 ("f" ,emacs-f)
20936 ("frame-purpose" ,emacs-frame-purpose)
20937 ("ht" ,emacs-ht)
20938 ("ov" ,emacs-ov)
20939 ("rainbow-identifiers" ,emacs-rainbow-identifiers)
20940 ("request" ,emacs-request)
20941 ("s" ,emacs-s)
20942 ("tracking" ,emacs-tracking)))
20943 (home-page "https://github.com/jgkamat/matrix-client-el")
20944 (synopsis "Matrix client for Emacs")
20945 (description "@code{matrix-client} is a simple chat UI to Matrix.org
20946 rooms. It also provides an API which allows Emacs to seamlessly create
20947 RPC channels with users and other software.")
20948 (license license:gpl3+))))
20949
20950 (define-public emacs-sesman
20951 (package
20952 (name "emacs-sesman")
20953 (version "0.3.4")
20954 (source
20955 (origin
20956 (method git-fetch)
20957 (uri (git-reference
20958 (url "https://github.com/vspinu/sesman")
20959 (commit (string-append "v" version))))
20960 (file-name (git-file-name name version))
20961 (sha256
20962 (base32
20963 "0z5jb4vpbjsi63w3wjy6d2lgz33qdfvrgfb3bszv4hcf6a96y7fc"))))
20964 (build-system emacs-build-system)
20965 (arguments
20966 `(#:phases
20967 (modify-phases %standard-phases
20968 (add-after 'unpack 'set-shell
20969 ;; Setting the SHELL environment variable is required for the tests
20970 ;; to find sh.
20971 (lambda _
20972 (setenv "SHELL" (which "sh"))
20973 #t)))
20974 #:tests? #t
20975 #:test-command '("make" "test")))
20976 (home-page "https://github.com/vspinu/sesman")
20977 (synopsis "Session manager for Emacs based IDEs")
20978 (description "Sesman provides facilities for session management and
20979 interactive session association with the current contexts (project, directory,
20980 buffers). While sesman can be used to manage arbitrary sessions, it primary
20981 targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
20982 (license license:gpl3+)))
20983
20984 (define-public emacs-buttercup
20985 (package
20986 (name "emacs-buttercup")
20987 (version "1.24")
20988 (source
20989 (origin
20990 (method git-fetch)
20991 (uri (git-reference
20992 (url "https://github.com/jorgenschaefer/emacs-buttercup")
20993 (commit (string-append "v" version))))
20994 (file-name (git-file-name name version))
20995 (sha256
20996 (base32
20997 "1w02p4bfkyga6sign4flq2kw0hawyvnv63410pyh8nm7acp311gg"))))
20998 (build-system emacs-build-system)
20999 (arguments
21000 `(#:tests? #t
21001 #:test-command '("make" "test")
21002 #:phases
21003 (modify-phases %standard-phases
21004 (add-after 'install 'install-bin
21005 (lambda* (#:key outputs #:allow-other-keys)
21006 (install-file "bin/buttercup"
21007 (string-append (assoc-ref outputs "out") "/bin"))
21008 #t)))))
21009 (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
21010 (synopsis "Behavior driven emacs lisp testing framework")
21011 (description "Buttercup is a behavior-driven development framework for
21012 testing Emacs Lisp code. It groups related tests so they can share
21013 common set-up and tear-down code, and allows the programmer to \"spy\" on
21014 functions to ensure they are called with the right arguments during testing.")
21015 (license license:gpl3+)))
21016
21017 (define-public emacs-cort
21018 (package
21019 (name "emacs-cort")
21020 (version "7.1.0")
21021 (source (origin
21022 (method git-fetch)
21023 (uri (git-reference
21024 (url "https://github.com/conao3/cort.el")
21025 (commit (string-append "v" version))))
21026 (file-name (git-file-name name version))
21027 (sha256
21028 (base32
21029 "03c223nczpbdkjmq69panhbsq2a0zj20w329jgj4c0zsj8m1a32a"))))
21030 (build-system emacs-build-system)
21031 (propagated-inputs
21032 `(("emacs-ansi" ,emacs-ansi)))
21033 (arguments
21034 `(#:tests? #t
21035 #:test-command '("emacs" "--batch" "--quick"
21036 "--directory=." "--load=cort-tests.el"
21037 "--funcall=cort-test-run")))
21038 (home-page "https://github.com/conao3/cort.el")
21039 (synopsis "Unit test framework for the Emacs Lisp")
21040 (description "@code{cort} is a lightweight Emacs Lisp unit test library.")
21041 (license license:gpl3+)))
21042
21043 (define-public emacs-wordnut
21044 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
21045 (revision "0"))
21046 (package
21047 (name "emacs-wordnut")
21048 (version (git-version "0.1" revision commit))
21049 (home-page "https://github.com/gromnitsky/wordnut")
21050 (source (origin
21051 (method git-fetch)
21052 (uri (git-reference (url home-page) (commit commit)))
21053 (sha256
21054 (base32
21055 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
21056 (patches
21057 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
21058 (file-name (git-file-name name version))))
21059 (build-system emacs-build-system)
21060 (propagated-inputs
21061 `(("wordnet" ,wordnet)
21062 ("emacs-adaptive-wrap" ,emacs-adaptive-wrap)))
21063 (synopsis "Major mode for WordNet")
21064 (description "This Emacs package provides an interface for
21065 @code{wordnet}. Features include completion, if the query is not found
21066 too ambiguous and navigation in the result buffer.")
21067 (license license:gpl3+))))
21068
21069 (define-public emacs-frame-local
21070 ;; There is no release yet. Version is extracted from the main
21071 ;; file.
21072 (let ((version "0.0.1")
21073 (revision "0")
21074 (commit "7ee1106c3bcd4022f48421f8cb1ef4f995da816e"))
21075 (package
21076 (name "emacs-frame-local")
21077 (version (git-version version revision commit))
21078 (source
21079 (origin
21080 (method git-fetch)
21081 (uri (git-reference
21082 (url "https://github.com/sebastiencs/frame-local")
21083 (commit commit)))
21084 (file-name (git-file-name name version))
21085 (sha256
21086 (base32 "0zfxsxdh3bd3fd566zl0byp13p5b8f4cgkwl637imvarvahczigp"))))
21087 (build-system emacs-build-system)
21088 (home-page "https://github.com/sebastiencs/frame-local")
21089 (synopsis "Access variables local to an Emacs frame")
21090 (description
21091 "This package allows setting and accessing variables local to
21092 an Emacs frame. Note that the variables created with this package do
21093 not have any relation with variables defined by @code{defvar},
21094 @code{defconst}, etc.")
21095 (license license:gpl3+))))
21096
21097 (define-public emacs-frame-purpose
21098 (package
21099 (name "emacs-frame-purpose")
21100 (version "1.0")
21101 (source (origin
21102 (method git-fetch)
21103 (uri (git-reference
21104 (url "https://github.com/alphapapa/frame-purpose.el")
21105 (commit version)))
21106 (sha256
21107 (base32
21108 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
21109 (file-name (git-file-name name version))))
21110 (build-system emacs-build-system)
21111 (inputs
21112 `(("dash" ,emacs-dash)))
21113 (synopsis "Purpose-specific frames for Emacs")
21114 (description "@code{frame-purpose} makes it easy to open purpose-specific
21115 frames that only show certain buffers, e.g. by buffers’ major mode, their
21116 filename or directory, etc, with custom frame/X-window titles, icons, and
21117 other frame parameters.")
21118 (home-page "https://github.com/alphapapa/frame-purpose.el")
21119 (license license:gpl3+)))
21120
21121 (define-public emacs-arduino-mode
21122 (let ((commit "23ae47c9f28f559e70b790b471f20310e163a39b")
21123 (revision "1")) ;no release yet
21124 (package
21125 (name "emacs-arduino-mode")
21126 (version (git-version "0" revision commit))
21127 (source (origin
21128 (method git-fetch)
21129 (uri (git-reference
21130 (url "https://github.com/stardiviner/arduino-mode")
21131 (commit commit)))
21132 (sha256
21133 (base32
21134 "08vnbz9gpah1l93fzfd87aawrhcnh2v1kyfxgsn88pdwg8awz8rx"))
21135 (file-name (git-file-name name version))))
21136 (build-system emacs-build-system)
21137 (inputs
21138 `(("spinner" ,emacs-spinner)
21139 ("flycheck" ,emacs-flycheck)))
21140 (arguments
21141 `(#:phases
21142 (modify-phases %standard-phases
21143 ;; Emacs complains that "defmethod" and "defgeneric" are obsolete
21144 ;; macros when compiling. Substitute them with the recommended
21145 ;; macros "cl-defmethod" and "cl-defgeneric", respectively.
21146 (add-after 'unpack 'fix-obsolete
21147 (lambda _
21148 (substitute* "ede-arduino.el"
21149 (("defmethod") "cl-defmethod")
21150 (("defgeneric") "cl-defgeneric"))
21151 #t)))))
21152 (synopsis "Emacs major mode for editing Arduino sketches")
21153 (description "Emacs major mode for editing Arduino sketches.")
21154 (home-page "https://github.com/stardiviner/arduino-mode")
21155 (license license:gpl3+))))
21156
21157 (define-public emacs-annalist
21158 (package
21159 (name "emacs-annalist")
21160 (version "1.0.1")
21161 (source (origin
21162 (method git-fetch)
21163 (uri (git-reference
21164 (url "https://github.com/noctuid/annalist.el")
21165 (commit version)))
21166 (sha256
21167 (base32
21168 "1jlb5w4972l8m2aa18q2l6arfpm65g4nk21dn1yi8c9dbpk2g67c"))
21169 (file-name (git-file-name name version))))
21170 (build-system emacs-build-system)
21171 (native-inputs
21172 `(("emacs-buttercup" ,emacs-buttercup)
21173 ("emacs-lispy" ,emacs-lispy)
21174 ("emacs-evil" ,emacs-evil)))
21175 (arguments
21176 `(#:phases
21177 (modify-phases %standard-phases
21178 (add-before 'check 'fix-makefile
21179 (lambda _
21180 (substitute* "Makefile"
21181 (("cask exec ") ""))
21182 #t)))
21183 #:tests? #t
21184 #:test-command '("make" "test")))
21185 (home-page "https://github.com/noctuid/annalist.el")
21186 (synopsis "Record and display information with Org headings and tables")
21187 (description "This package allows for keybindings, settings, hooks, and
21188 advice to be recorded and displayed.")
21189 (license license:gpl3+)))
21190
21191 (define-public emacs-general
21192 (let ((commit "a0b17d207badf462311b2eef7c065b884462cb7c")
21193 (revision "4"))
21194 (package
21195 (name "emacs-general")
21196 (version (git-version "0" revision commit))
21197 (source
21198 (origin
21199 (method git-fetch)
21200 (uri (git-reference
21201 (url "https://github.com/noctuid/general.el")
21202 (commit commit)))
21203 (sha256
21204 (base32 "0wn5rk3gkimdklip392mnjrmkymgrb7q9skifi03cbpjam1anzvv"))
21205 (file-name (git-file-name name version))))
21206 (build-system emacs-build-system)
21207 (native-inputs
21208 `(("emacs-buttercup" ,emacs-buttercup)
21209 ("emacs-evil" ,emacs-evil)
21210 ("emacs-which-key" ,emacs-which-key)
21211 ("emacs-use-package" ,emacs-use-package)))
21212 (arguments
21213 `(#:tests? #t
21214 #:test-command '("buttercup" "-L" "test/test-general.el")))
21215 (home-page "https://github.com/noctuid/general.el")
21216 (synopsis "More convenient key definitions in emacs")
21217 (description "@code{general.el} provides a more convenient method for
21218 binding keys in emacs (for both evil and non-evil users). Like
21219 @code{use-package}, which provides a convenient, unified interface for
21220 managing packages, @code{general.el} is intended to provide a convenient,
21221 unified interface for key definitions. While this package does implement some
21222 completely new functionality (such as the ability to make vim-style
21223 keybindings under non-prefix keys with an optional timeout), its primary
21224 purpose is to build on existing functionality to make key definition more
21225 clear and concise. @code{general-define-key} is user-extensible and supports
21226 defining multiple keys in multiple keymaps at once, implicitly wrapping key
21227 strings with (@code{kbd ...}), using named prefix key sequences (like the
21228 leader key in vim), and much more.")
21229 (license license:gpl3+))))
21230
21231 (define-public emacs-tldr
21232 (let ((commit "7203d1be3dcbf12131846ffe06601933fa874d74"))
21233 (package
21234 (name "emacs-tldr")
21235 (version (git-version "0" "1" commit))
21236 (home-page "https://github.com/kuanyui/tldr.el")
21237 (source (origin
21238 (method git-fetch)
21239 (uri (git-reference
21240 (url (string-append home-page ".git"))
21241 (commit commit)))
21242 (sha256
21243 (base32
21244 "1bw6la463l2yfm7rp76ga4makfy4kpxgwi7ni5gxk31w11g26ryk"))
21245 (file-name (git-file-name name version))))
21246 (build-system emacs-build-system)
21247 (propagated-inputs
21248 `(("emacs-request" ,emacs-request)))
21249 (synopsis "Simplified and community-driven man pages for Emacs")
21250 (description "@code{emacs-tldr} allows the user to access tldr pages
21251 from within emacs. The @code{tldr} pages are a community effort to simplify
21252 the man pages with practical examples.")
21253 (license license:wtfpl2))))
21254
21255 (define-public emacs-window-layout
21256 (package
21257 (name "emacs-window-layout")
21258 (version "1.4")
21259 (home-page "https://github.com/kiwanami/emacs-window-layout")
21260 (source (origin
21261 (method git-fetch)
21262 (uri (git-reference
21263 (url home-page)
21264 (commit (string-append "v" version))))
21265 (sha256
21266 (base32
21267 "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"))
21268 (file-name (git-file-name name version))))
21269 (build-system emacs-build-system)
21270 (synopsis "Simple window layout management framework for emacs")
21271 (description "A window-layout management library that can split a frame
21272 or a window into some windows according to a layout recipe.")
21273 (license license:gpl3+)))
21274
21275 (define-public emacs-e2wm
21276 (package
21277 (name "emacs-e2wm")
21278 (version "1.4")
21279 (home-page "https://github.com/kiwanami/emacs-window-manager")
21280 (source (origin
21281 (method git-fetch)
21282 (uri (git-reference
21283 (url home-page)
21284 (commit (string-append "v" version))))
21285 (sha256
21286 (base32
21287 "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
21288 (file-name (git-file-name name version))))
21289 (build-system emacs-build-system)
21290 (propagated-inputs
21291 `(("emacs-window-layout" ,emacs-window-layout)))
21292 (synopsis "Equilibrium Emacs Window Manager")
21293 (description "E2WM is a window manager for Emacs. It enables to
21294 customize the place of pop-up window, how the windows are split, how the
21295 buffers are located in the windows, keybinds to manipulate windows and
21296 buffers, etc. It also has plug-ins to help your Emacs life.")
21297 (license license:gpl3+)))
21298
21299 (define-public emacs-ctable
21300 (let ((commit "b8830d1ca95abb100a81bc32011bd17d5ecba000"))
21301 (package
21302 (name "emacs-ctable")
21303 (version (git-version "0.1.2" "1" commit))
21304 (home-page "https://github.com/kiwanami/emacs-ctable")
21305 (source (origin
21306 (method git-fetch)
21307 (uri (git-reference
21308 (url home-page)
21309 (commit commit)))
21310 (sha256
21311 (base32
21312 "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h"))
21313 (file-name (git-file-name name version))))
21314 (build-system emacs-build-system)
21315 (synopsis "Table component for Emacs Lisp")
21316 (description "This program is a table component for Emacs Lisp. Other
21317 programs can use this table component for the application UI.")
21318 (license license:gpl3+))))
21319
21320 (define-public emacs-leetcode
21321 (let ((commit "8624496af9e105c3e07d88844b37ede87540d604")
21322 (revision "1"))
21323 (package
21324 (name "emacs-leetcode")
21325 (version (git-version "0" "1" commit))
21326 (home-page "https://github.com/ginqi7/leetcode-emacs")
21327 (source (origin
21328 (method git-fetch)
21329 (uri (git-reference
21330 (url "https://github.com/ginqi7/leetcode-emacs")
21331 (commit commit)))
21332 (sha256
21333 (base32
21334 "11pp7ydlmwrv7djf9mwk4xzn295xbmdnj5x13bfj5yjpjr89p531"))
21335 (file-name (git-file-name name version))))
21336 (build-system emacs-build-system)
21337 (propagated-inputs
21338 `(("emacs-names" ,emacs-names)
21339 ("emacs-ctable" ,emacs-ctable)))
21340 (synopsis "Solve and submit LeetCode problems from within Emacs")
21341 (description "This package provides an Emacs interface to LeetCode
21342 allowing users to log in and solve problems of their choice using Emacs.")
21343 (license license:unlicense))))
21344
21345 (define-public emacs-epc
21346 (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
21347 (package
21348 (name "emacs-epc")
21349 (version (git-version "0.1.1" "1" commit))
21350 (home-page "https://github.com/kiwanami/emacs-epc")
21351 (source (origin
21352 (method git-fetch)
21353 (uri (git-reference
21354 (url home-page)
21355 (commit commit)))
21356 (sha256
21357 (base32
21358 "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
21359 (file-name (git-file-name name version))))
21360 (build-system emacs-build-system)
21361 (propagated-inputs
21362 `(("emacs-deferred" ,emacs-deferred)
21363 ("emacs-ctable" ,emacs-ctable)))
21364 (synopsis "RPC stack for Emacs Lisp")
21365 (description "This program is an asynchronous RPC stack for Emacs.
21366 Using this RPC stack, Emacs can communicate with the peer process
21367 smoothly. Because the protocol employs S-expression encoding and consists of
21368 asynchronous communications, the RPC response is fairly good.")
21369 (license license:gpl3+))))
21370
21371 (define-public emacs-edbi
21372 (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
21373 (package
21374 (name "emacs-edbi")
21375 (version (git-version "0.1.3" "1" commit))
21376 (home-page "https://github.com/kiwanami/emacs-edbi")
21377 (source (origin
21378 (method git-fetch)
21379 (uri (git-reference
21380 (url home-page)
21381 (commit commit)))
21382 (sha256
21383 (base32
21384 "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
21385 (file-name (git-file-name name version))))
21386 (build-system emacs-build-system)
21387 (inputs
21388 `(("perl" ,perl)
21389 ("perl-rpc-epc-service" ,perl-rpc-epc-service)
21390 ("perl-dbi" ,perl-dbi)
21391 ;; TODO: Adding support for perl-dbd-mysql and others would
21392 ;; dramatically increase the closure size. Make several packages?
21393 ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
21394 (propagated-inputs
21395 `(("emacs-e2wm" ,emacs-e2wm)
21396 ("emacs-epc" ,emacs-epc)))
21397 (arguments
21398 `(#:include '("\\.el$" "\\.pl$")
21399 #:phases
21400 (modify-phases %standard-phases
21401 (add-after 'install 'patch-path
21402 (lambda* (#:key inputs outputs #:allow-other-keys)
21403 (let ((perl (assoc-ref inputs "perl"))
21404 (dir (string-append (assoc-ref outputs "out")
21405 "/share/emacs/site-lisp")))
21406 (substitute* (string-append dir "/edbi.el")
21407 (("\"perl\"") (string-append "\"" perl "/bin/perl\"")))
21408 (chmod (string-append dir "/edbi-bridge.pl") #o555)
21409 (wrap-program (string-append dir "/edbi-bridge.pl")
21410 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))
21411 #t))))))
21412 (synopsis "Database Interface for Emacs Lisp")
21413 (description "This program connects the database server through Perl's
21414 DBI, and provides DB-accessing API and the simple management UI.")
21415 (license license:gpl3+))))
21416
21417 (define-public emacs-edbi-sqlite
21418 (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
21419 (package
21420 (name "emacs-edbi-sqlite")
21421 (version (git-version "0.1.1" "1" commit))
21422 (home-page "https://github.com/proofit404/edbi-sqlite")
21423 (source (origin
21424 (method git-fetch)
21425 (uri (git-reference
21426 (url home-page)
21427 (commit commit)))
21428 (sha256
21429 (base32
21430 "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
21431 (file-name (git-file-name name version))))
21432 (build-system emacs-build-system)
21433 (propagated-inputs
21434 `(("emacs-edbi" ,emacs-edbi)))
21435 (synopsis "Open SQLite files in Emacs")
21436 (description "This package is a convenience wrapper for @command{edbi}
21437 to open SQLite databases.")
21438 (license license:gpl3+))))
21439
21440 (define-public emacs-nice-citation
21441 (let ((commit "1013b56d9d1495a335f40a5f76203034dc5fa0ea")
21442 (revision "0"))
21443 (package
21444 (name "emacs-nice-citation")
21445 (version (git-version "0.0.2" revision commit))
21446 (source
21447 (origin
21448 (method git-fetch)
21449 (uri (git-reference
21450 (url "https://github.com/damiencollard/nice-citation")
21451 (commit commit)))
21452 (sha256
21453 (base32 "00xqr7haca5vd0bzd043lc6x4fjb903z96frz9b8cbd7spp63z7q"))
21454 (file-name (git-file-name name version))))
21455 (build-system emacs-build-system)
21456 (home-page "https://github.com/damiencollard/nice-citation")
21457 (synopsis "Depth-colored citations for Gnus")
21458 (description
21459 "This package replaces the traditional chevron citation marks @samp{>}
21460 with a Unicode vertical bar with the same color as the text it is quoting.
21461
21462 It is purely presentation: the underlying text is unchanged. In particular,
21463 if you send a message containing a citation, it will contain the traditional
21464 chevron marks.")
21465 (license license:gpl3+))))
21466
21467 (define-public emacs-nix-mode
21468 (package
21469 (name "emacs-nix-mode")
21470 (version "1.4.5")
21471 (source
21472 (origin
21473 (method git-fetch)
21474 (uri (git-reference
21475 (url "https://github.com/NixOS/nix-mode")
21476 (commit (string-append "v" version))))
21477 (file-name (git-file-name name version))
21478 (sha256
21479 (base32 "1bqlhkxg0faddhvxx909dq46dxdxk4mdyhdpww92dmzgxdpq38sx"))))
21480 (build-system emacs-build-system)
21481 (inputs
21482 `(("emacs-company" ,emacs-company)
21483 ("emacs-json-mode" ,emacs-json-mode)
21484 ("emacs-mmm-mode" ,emacs-mmm-mode)))
21485 (home-page "https://github.com/NixOS/nix-mode")
21486 (synopsis "Emacs major mode for editing Nix expressions")
21487 (description "@code{nixos-mode} provides an Emacs major mode for editing
21488 Nix expressions. It supports syntax highlighting, indenting and refilling of
21489 comments.")
21490 (license license:lgpl2.1+)))
21491
21492 (define-public emacs-libmpdel
21493 (package
21494 (name "emacs-libmpdel")
21495 (version "1.2.0")
21496 (source (origin
21497 (method git-fetch)
21498 (uri (git-reference
21499 (url "https://gitea.petton.fr/mpdel/libmpdel.git")
21500 (commit (string-append "v" version))))
21501 (file-name (git-file-name name version))
21502 (sha256
21503 (base32
21504 "1nzs6g2mg3jhfhhfcxjhd9sbvwzhmr6j6mc80ln2nr4gzjqgaa4k"))))
21505 (build-system emacs-build-system)
21506 (home-page "https://gitea.petton.fr/mpdel/libmpdel")
21507 (synopsis "Emacs library to communicate with Music Player Daemon (MPD)")
21508 (description
21509 "An Emacs library client to communicate with Music Player Daemon (MPD), a
21510 flexible, powerful, server-side application for playing music.")
21511 (license license:gpl3+)))
21512
21513 (define-public emacs-mpdel
21514 (package
21515 (name "emacs-mpdel")
21516 (version "1.0.0")
21517 (source
21518 (origin
21519 (method git-fetch)
21520 (uri (git-reference
21521 (url "https://gitea.petton.fr/mpdel/mpdel.git")
21522 (commit (string-append "v" version))))
21523 (file-name (git-file-name name version))
21524 (sha256
21525 (base32
21526 "0pyyvbzskr44dxbmlp3y0r6s459fd51cvwjmnjaqxfxflr5v891g"))))
21527 (build-system emacs-build-system)
21528 (inputs
21529 `(("emacs-libmpdel" ,emacs-libmpdel)))
21530 (home-page "https://gitea.petton.fr/mpdel/mpdel")
21531 (synopsis "Emacs user interface for Music Player Daemon (MPD)")
21532 (description
21533 "MPDel provides an Emacs user interface to control playback (play, pause,
21534 next, volume) and display and control the current playlist as well as your
21535 stored playlists.")
21536 (license license:gpl3+)))
21537
21538 (define-public emacs-vterm
21539 (let ((version "0.0.1")
21540 (revision "0")
21541 (commit "a670b786539d3c8865d8f68fe0c67a2d4afbf1aa"))
21542 (package
21543 (name "emacs-vterm")
21544 (version (git-version version revision commit))
21545 (source (origin
21546 (method git-fetch)
21547 (uri (git-reference
21548 (url "https://github.com/akermu/emacs-libvterm")
21549 (commit commit)))
21550 (file-name (git-file-name name version))
21551 (sha256
21552 (base32
21553 "0s244crjkbzl2jhp9m4sm1xdhbpxwph0m3jg18livirgajvdz6hn"))))
21554 (build-system emacs-build-system)
21555 (arguments
21556 `(#:modules ((guix build emacs-build-system)
21557 ((guix build cmake-build-system) #:prefix cmake:)
21558 (guix build emacs-utils)
21559 (guix build utils))
21560 #:imported-modules (,@%emacs-build-system-modules
21561 (guix build cmake-build-system))
21562 #:phases
21563 (modify-phases %standard-phases
21564 (add-before 'add-source-to-load-path 'substitute-vterm-module-path
21565 (lambda* (#:key outputs #:allow-other-keys)
21566 (chmod "vterm.el" #o644)
21567 (emacs-substitute-sexps "vterm.el"
21568 ("(require 'vterm-module nil t)"
21569 `(module-load
21570 ,(string-append (assoc-ref outputs "out")
21571 "/lib/vterm-module.so"))))
21572 #t))
21573 (add-after 'build 'configure
21574 ;; Run cmake.
21575 (lambda* (#:key outputs #:allow-other-keys)
21576 ((assoc-ref cmake:%standard-phases 'configure)
21577 #:outputs outputs
21578 #:out-of-source? #f
21579 #:configure-flags '("-DUSE_SYSTEM_LIBVTERM=ON"))
21580 #t))
21581 (add-after 'configure 'make
21582 ;; Run make.
21583 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
21584 ;; Compile the shared object file.
21585 (apply invoke "make" "all" make-flags)
21586 ;; Move the file into /lib.
21587 (install-file
21588 "vterm-module.so"
21589 (string-append (assoc-ref outputs "out") "/lib"))
21590 #t)))
21591 #:tests? #f))
21592 (native-inputs
21593 `(("cmake" ,cmake-minimal)
21594 ("libtool" ,libtool)
21595 ("libvterm" ,libvterm)))
21596 (home-page "https://github.com/akermu/emacs-libvterm")
21597 (synopsis "Emacs libvterm integration")
21598 (description "This package implements a bridge to @code{libvterm} to
21599 display a terminal in an Emacs buffer.")
21600 (license license:gpl3+))))
21601
21602 (define-public emacs-vterm-toggle
21603 ;; There have been no releases.
21604 (let ((commit "d10239b7bb89b78dddb82f66ac2286bc0b02747b")
21605 (revision "1"))
21606 (package
21607 (name "emacs-vterm-toggle")
21608 (version (git-version "0.0.4" revision commit))
21609 (source
21610 (origin
21611 (method git-fetch)
21612 (uri (git-reference
21613 (url "https://github.com/jixiuf/vterm-toggle")
21614 (commit commit)))
21615 (file-name (git-file-name name version))
21616 (sha256
21617 (base32 "0r9n23wg9cfy10h5f9zqr8jpkvw34f9rylri3nxq870awjab7rqi"))))
21618 (build-system emacs-build-system)
21619 (propagated-inputs `(("emacs-vterm" ,emacs-vterm)))
21620 (home-page "https://github.com/jixiuf/vterm-toggle")
21621 (synopsis "Toggle between a vterm buffer and other buffers")
21622 (description
21623 "This package provides a DWIM way to switch from an Emacs buffer to
21624 a vterm buffer and back again.")
21625 (license license:gpl3+))))
21626
21627 (define-public emacs-simple-mpc
21628 ;; There have been no releases.
21629 (let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
21630 (revision "1"))
21631 (package
21632 (name "emacs-simple-mpc")
21633 (version (git-version "0" revision commit))
21634 (source
21635 (origin
21636 (method git-fetch)
21637 (uri (git-reference
21638 (url "https://github.com/jorenvo/simple-mpc")
21639 (commit commit)))
21640 (file-name (git-file-name name version))
21641 (sha256
21642 (base32
21643 "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"))))
21644 (build-system emacs-build-system)
21645 (propagated-inputs `(("emacs-s" ,emacs-s)))
21646 (home-page "https://github.com/jorenvo/simple-mpc")
21647 (synopsis "Simple Emacs frontend to mpc")
21648 (description "This package provides an Emacs major mode which acts as a
21649 front end to mpc, a client for the @dfn{Music Player Daemon} (MPD).")
21650 (license license:gpl3+))))
21651
21652 (define-public emacs-mkmcc-gnuplot-mode
21653 (package
21654 (name "emacs-mkmcc-gnuplot-mode")
21655 (version "1.2.0")
21656 (source
21657 (origin
21658 (method git-fetch)
21659 (uri (git-reference
21660 (url "https://github.com/mkmcc/gnuplot-mode")
21661 (commit "601f6392986f0cba332c87678d31ae0d0a496ce7")))
21662 (file-name (git-file-name name version))
21663 (sha256
21664 (base32
21665 "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"))))
21666 (build-system emacs-build-system)
21667 (home-page "https://mkmcc.github.io/software/gnuplot-mode.html")
21668 (synopsis "Minimal emacs major mode for editing gnuplot scripts")
21669 (description "@code{emacs-mkmcc-gnuplot-mode} is a minimal emacs major
21670 mode for editing gnuplot scripts. It provides syntax highlighting,
21671 indentation and a command to plot the file.")
21672 (license license:gpl3+)))
21673
21674 (define-public emacs-cmake-font-lock
21675 (let ((commit "e0ceaaae19c13b66f781512e3295bfc6707b56f4")
21676 (revision "1"))
21677 (package
21678 (name "emacs-cmake-font-lock")
21679 (version (git-version "0.1.5" revision commit))
21680 (source (origin
21681 (method git-fetch)
21682 (uri (git-reference
21683 (url "https://github.com/Lindydancer/cmake-font-lock")
21684 (commit commit)))
21685 (file-name (git-file-name name version))
21686 (sha256
21687 (base32
21688 "03gsyn95dlmsn15bl353bphi3qy7ccn5bss3f7n97kf38bllh0yf"))))
21689 (build-system emacs-build-system)
21690 (native-inputs
21691 `(("emacs-faceup" ,emacs-faceup)))
21692 (arguments
21693 `(#:include (cons "^admin\\/" %default-include)))
21694 (home-page "https://github.com/Lindydancer/cmake-font-lock")
21695 (synopsis "Advanced type-aware syntax-highlighting for CMake")
21696 (description "This package highlights function arguments in CMake
21697 according to their use.")
21698 (license license:gpl3+))))
21699
21700 (define-public emacs-dtrt-indent
21701 (package
21702 (name "emacs-dtrt-indent")
21703 (version "1.4")
21704 (source (origin
21705 (method git-fetch)
21706 (uri (git-reference
21707 (url "https://github.com/jscheid/dtrt-indent")
21708 (commit version)))
21709 (file-name (git-file-name name version))
21710 (sha256
21711 (base32
21712 "11r68sh3yrrfib7pixnazispwsffrygmgplffrv8qq57xrqzyxih"))))
21713 (build-system emacs-build-system)
21714 (home-page "https://github.com/jscheid/dtrt-indent")
21715 (synopsis "Minor mode that guesses the indentation offset")
21716 (description "This package provides a minor mode that guesses the
21717 indentation offset originally used for creating source code files and
21718 transparently adjusts the corresponding settings in Emacs, making it more
21719 convenient to edit foreign files.")
21720 (license license:gpl2+)))
21721
21722 (define-public emacs-repo
21723 (package
21724 (name "emacs-repo")
21725 (version "0.2.0")
21726 (source (origin
21727 (method git-fetch)
21728 (uri (git-reference
21729 (url "https://github.com/canatella/repo-el")
21730 (commit version)))
21731 (file-name (git-file-name name version))
21732 (sha256
21733 (base32
21734 "0jgiawdnzjlrpx2j1y6djwbqncdpmyfd31q1qf1890049y8ppxnb"))))
21735 (build-system emacs-build-system)
21736 (native-inputs
21737 `(("emacs-el-mock" ,emacs-el-mock)
21738 ("ert-runner" ,emacs-ert-runner)))
21739 (propagated-inputs
21740 `(("emacs-f" ,emacs-f)
21741 ("magit" ,emacs-magit)))
21742 (home-page "https://github.com/canatella/repo-el")
21743 (synopsis "Emacs interface for the Google Repo tool")
21744 (description "This package provides integration of the Google Repo tool
21745 with emacs. It displays the output of the @code{repo status} command in a
21746 buffer and launches Magit from the status buffer for the project at point.")
21747 (license license:gpl3+)))
21748
21749 (define-public emacs-repology
21750 (package
21751 (name "emacs-repology")
21752 (version "1.1.0")
21753 (source
21754 (origin
21755 (method url-fetch)
21756 (uri (string-append "https://elpa.gnu.org/packages/"
21757 "repology-" version ".tar"))
21758 (sha256
21759 (base32 "031245rrhazj53bk1csa6x3ygzvg74w2hwjf08ficwvmdn97li90"))))
21760 (build-system emacs-build-system)
21761 (home-page "https://elpa.gnu.org/packages/repology.html")
21762 (synopsis "Repology API access via Elisp")
21763 (description
21764 "This package provides tools to query Repology API (see
21765 @url{https://repology.org/api}), process results, and display them.")
21766 (license license:gpl3+)))
21767
21768 (define-public emacs-alect-themes
21769 (package
21770 (name "emacs-alect-themes")
21771 (version "0.9")
21772 (source (origin
21773 (method git-fetch)
21774 (uri (git-reference
21775 (url "https://github.com/alezost/alect-themes")
21776 (commit (string-append "v" version))))
21777 (file-name (git-file-name name version))
21778 (sha256
21779 (base32
21780 "0nffxpdm0sa7bynwi0rmlwpc4qmvbda5ankhzz7fmk4ap9fkjxv9"))))
21781 (build-system emacs-build-system)
21782 (home-page "https://github.com/alezost/alect-themes")
21783 (synopsis "Low contrast, light, dark and black color theme for Emacs")
21784 (description "@code{emacs-alect-themes} provides configurable light, dark
21785 and black color themes for Emacs. The themes are intended to be used with
21786 GUI.")
21787 (license license:gpl3+)))
21788
21789 (define-public emacs-google-c-style
21790 (let ((commit "6271f3f473ceb3a7fef99388a3040903b1a145f1")
21791 (revision "0"))
21792 (package
21793 (name "emacs-google-c-style")
21794 (version (git-version "0.1" revision commit))
21795 (source (origin
21796 (method git-fetch)
21797 (uri (git-reference
21798 (url "https://github.com/google/styleguide")
21799 (commit commit)))
21800 (file-name (git-file-name name version))
21801 (sha256
21802 (base32
21803 "1jghyyasdl15c4gaqaxmdn43am63k6bykn5ab83f1ahv9zi1krxk"))))
21804 (build-system emacs-build-system)
21805 (home-page "https://github.com/google/styleguide")
21806 (synopsis "Emacs settings file for Google C/C++ style")
21807 (description "@code{emacs-google-c-style} provides an Emacs settings
21808 file for Google C and C++ style.")
21809 (license license:gpl1+))))
21810
21811 (define-public emacs-redshank
21812 (let ((commit "f98e68f532e622bcd464292ca4a9cf5fbea14ebb")
21813 (revision "1"))
21814 (package
21815 (name "emacs-redshank")
21816 (version (git-version "0.1" revision commit))
21817 (source (origin
21818 (method git-fetch)
21819 (uri (git-reference
21820 (url "http://www.foldr.org/~michaelw/projects/redshank.git")
21821 (commit commit)))
21822 (file-name (git-file-name name version))
21823 (sha256
21824 (base32
21825 "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"))))
21826 (build-system emacs-build-system)
21827 (propagated-inputs
21828 `(("emacs-paredit" ,emacs-paredit)))
21829 (home-page "http://www.foldr.org/~michaelw/emacs/redshank/")
21830 (synopsis "Common Lisp Editing Extensions (for Emacs)")
21831 (description "Redshank is a collection of code-wrangling Emacs macros
21832 mostly geared towards Common Lisp, but some are useful for other Lisp
21833 dialects, too. Redshank's code transformations aim to be expression-based (as
21834 opposed to character-based).")
21835 (license license:gpl1+))))
21836
21837 (define-public emacs-disk-usage
21838 (package
21839 (name "emacs-disk-usage")
21840 (version "1.3.3")
21841 (source
21842 (origin
21843 (method git-fetch)
21844 (uri (git-reference
21845 (url "https://gitlab.com/Ambrevar/emacs-disk-usage")
21846 (commit version)))
21847 (file-name (git-file-name name version))
21848 (sha256
21849 (base32
21850 "0hv2gsd8k5fbjgckgiyisq4rn1i7y4rchbjy8kmixjv6mx563bll"))))
21851 (build-system emacs-build-system)
21852 (home-page "https://gitlab.com/Ambrevar/emacs-disk-usage")
21853 (synopsis "Sort and browse disk usage listings with Emacs")
21854 (description "Disk Usage is a file system analyzer: it offers a tabulated
21855 view of file listings sorted by size. Directory sizes are computed
21856 recursively. The results are cached for speed.")
21857 (license license:gpl3+)))
21858
21859 (define-public emacs-orgit
21860 (package
21861 (name "emacs-orgit")
21862 (version "1.6.3")
21863 (home-page "https://github.com/magit/orgit")
21864 (source (origin
21865 (method git-fetch)
21866 (uri (git-reference
21867 (url home-page)
21868 (commit (string-append "v" version))))
21869 (file-name (git-file-name name version))
21870 (sha256
21871 (base32
21872 "08amzcvw483dpfq5r34ysn84wzd538qk0jblc94vgcaidspx6481"))))
21873 (build-system emacs-build-system)
21874 (propagated-inputs
21875 `(("emacs-dash" ,emacs-dash)
21876 ("emacs-magit" ,emacs-magit)))
21877 (synopsis "Support for Org links to Magit buffers")
21878 (description "This package defines several Org link types, which can be
21879 used to link to certain Magit buffers. Use the command
21880 @command{org-store-link} while such a buffer is current to store a link.
21881 Later you can insert it into an Org buffer using the command
21882 @code{org-insert-link}.")
21883 (license license:gpl3+)))
21884
21885 (define-public emacs-amx
21886 (package
21887 (name "emacs-amx")
21888 (version "3.3")
21889 (source
21890 (origin
21891 (method git-fetch)
21892 (uri (git-reference
21893 (url "https://github.com/DarwinAwardWinner/amx")
21894 (commit (string-append "v" version))))
21895 (file-name (git-file-name name version))
21896 (sha256
21897 (base32 "0ikjzs119g57cwh2v3jmy63lggqc0ib99q5gsl93slkk4y2ihavw"))))
21898 (build-system emacs-build-system)
21899 (propagated-inputs
21900 `(("emacs-s" ,emacs-s)))
21901 (home-page "https://github.com/DarwinAwardWinner/amx")
21902 (synopsis "Alternative M-x interface for Emacs")
21903 (description "Amx is an alternative interface for M-x in Emacs. It
21904 provides several enhancements over the ordinary
21905 @code{execute-extended-command}, such as prioritizing your most-used commands
21906 in the completion list and showing keyboard shortcuts, and it supports several
21907 completion systems for selecting commands, such as Ido and Ivy.")
21908 (license license:gpl3+)))
21909
21910 (define-public emacs-lorem-ipsum
21911 (let ((commit "4b39f6fed455d67f635b3837cf5668bf74d0f6cd"))
21912 (package
21913 (name "emacs-lorem-ipsum")
21914 (version (git-version "0.2" "1" commit))
21915 (home-page "https://github.com/jschaf/emacs-lorem-ipsum/")
21916 (source (origin
21917 (method git-fetch)
21918 (uri (git-reference
21919 (url home-page)
21920 (commit commit)))
21921 (file-name (git-file-name name version))
21922 (sha256
21923 (base32
21924 "0a3b18p3vdjci89prsgdzjnfxsl8p67vjhf8ai4qdng7zvh50lir"))))
21925 (build-system emacs-build-system)
21926 (synopsis "Insert dummy pseudo Latin text in Emacs")
21927 (description "This package provides convenience functions to insert
21928 dummy Latin text into a buffer. This can be useful if you need to produce
21929 paragraphs or pages of text for testing purposes.")
21930 (license license:gpl3+))))
21931
21932 (define-public emacs-lisp-extra-font-lock
21933 (let ((commit "4605eccbe1a7fcbd3cacf5b71249435413b4db4f"))
21934 (package
21935 (name "emacs-lisp-extra-font-lock")
21936 (version (git-version "0.0.6" "1" commit))
21937 (home-page "https://github.com/Lindydancer/lisp-extra-font-lock")
21938 (source (origin
21939 (method git-fetch)
21940 (uri (git-reference
21941 (url home-page)
21942 (commit commit)))
21943 (file-name (git-file-name name version))
21944 (sha256
21945 (base32
21946 "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w"))))
21947 (build-system emacs-build-system)
21948 (synopsis "Highlight bound variables and quoted expressions in Emacs")
21949 (description "This package highlight the location where local variables
21950 is created (bound, for example, by let) as well as quoted and backquoted
21951 constant expressions.")
21952 (license license:gpl3+))))
21953
21954 (define-public emacs-docker-tramp
21955 (package
21956 (name "emacs-docker-tramp")
21957 (version "0.1")
21958 (source
21959 (origin
21960 (method git-fetch)
21961 (uri (git-reference
21962 (url "https://github.com/emacs-pe/docker-tramp.el")
21963 (commit (string-append "v" version))))
21964 (file-name (git-file-name name version))
21965 (sha256
21966 (base32
21967 "0lxvzmfg52fhxrhbvp92zwp7cv4i1rlxnkyyzgngj3sjm7y60yvg"))))
21968 (build-system emacs-build-system)
21969 (home-page "https://github.com/emacs-pe/docker-tramp.el")
21970 (synopsis "TRAMP integration for docker containers")
21971 (description
21972 "This package provides a TRAMP method for Docker containers.")
21973 (license license:gpl3+)))
21974
21975 (define-public emacs-docker
21976 (package
21977 (name "emacs-docker")
21978 (version "1.3.0")
21979 (source (origin
21980 (method git-fetch)
21981 (uri (git-reference
21982 (url "https://github.com/Silex/docker.el")
21983 (commit version)))
21984 (file-name (git-file-name name version))
21985 (sha256
21986 (base32
21987 "1g8r1faqp0z0vqp9qrl8m84pa0v2ddvc91klphdkfmldwv7rfipw"))))
21988 (inputs
21989 `(("emacs-undercover" ,emacs-undercover)))
21990 (propagated-inputs
21991 `(("emacs-dash" ,emacs-dash)
21992 ("emacs-docker-tramp" ,emacs-docker-tramp)
21993 ("emacs-magit-popup" ,emacs-magit-popup)
21994 ("emacs-s" ,emacs-s)
21995 ("emacs-tablist" ,emacs-tablist)
21996 ("emacs-json-mode" ,emacs-json-mode)))
21997 (arguments
21998 `(#:phases
21999 (modify-phases %standard-phases
22000 (delete 'check)))) ;no tests
22001 (build-system emacs-build-system)
22002 (home-page "https://github.com/Silex/docker.el")
22003 (synopsis "Manage docker from Emacs")
22004 (description "This package provides an Emacs interface for Docker.")
22005 (license license:gpl3+)))
22006
22007 (define-public emacs-dockerfile-mode
22008 (package
22009 (name "emacs-dockerfile-mode")
22010 (version "1.3")
22011 (source
22012 (origin
22013 (method git-fetch)
22014 (uri (git-reference
22015 (url "https://github.com/spotify/dockerfile-mode")
22016 (commit (string-append "v" version))))
22017 (file-name (git-file-name name version))
22018 (sha256
22019 (base32
22020 "1br73dsls42fn4rwagljkpa3l4wwj6f7jxfn3gmgl6c54z81av3v"))))
22021 (build-system emacs-build-system)
22022 (propagated-inputs
22023 `(("emacs-s" ,emacs-s)))
22024 (home-page "https://github.com/spotify/dockerfile-mode")
22025 (synopsis "Major mode for editing Dockerfile")
22026 (description
22027 "This package provides a major mode @code{dockerfile-mode} for use with
22028 the standard @code{Dockerfile} file format.")
22029 (license license:asl2.0)))
22030
22031 (define-public emacs-lsp-mode
22032 (package
22033 (name "emacs-lsp-mode")
22034 (version "7.0.1")
22035 (source
22036 (origin
22037 (method git-fetch)
22038 (uri (git-reference
22039 (url "https://github.com/emacs-lsp/lsp-mode")
22040 (commit version)))
22041 (file-name (git-file-name name version))
22042 (sha256
22043 (base32 "1z8zm7qr21hvhl6rnbznv2l9drh1pp5y4zkjrx5ac4x77b8i4aaz"))))
22044 (build-system emacs-build-system)
22045 (propagated-inputs
22046 `(("emacs-dash" ,emacs-dash)
22047 ("emacs-f" ,emacs-f)
22048 ("emacs-ht" ,emacs-ht)
22049 ("emacs-hydra" ,emacs-hydra)
22050 ("emacs-markdown-mode" ,emacs-markdown-mode)
22051 ("emacs-spinner" ,emacs-spinner)))
22052 (home-page "https://emacs-lsp.github.io/lsp-mode/")
22053 (synopsis "Emacs client and library for the Language Server Protocol")
22054 (description
22055 "LSP mode is a client and library implementation for the Language Server
22056 Protocol. This mode creates an IDE-like experience by providing optional
22057 integration with other popular Emacs packages like Company, Flycheck, and
22058 Projectile.")
22059 (license license:gpl3+)))
22060
22061 (define-public emacs-lsp-treemacs
22062 (package
22063 (name "emacs-lsp-treemacs")
22064 (version "0.3")
22065 (source
22066 (origin
22067 (method git-fetch)
22068 (uri (git-reference
22069 (url "https://github.com/emacs-lsp/lsp-treemacs")
22070 (commit version)))
22071 (file-name (git-file-name name version))
22072 (sha256
22073 (base32 "1z9cb7i546pbzvxii6lsj31jq8m70xrzscphl5z71vh93sydyhkb"))))
22074 (build-system emacs-build-system)
22075 (propagated-inputs
22076 `(("emacs-lsp-mode" ,emacs-lsp-mode)
22077 ("emacs-treemacs" ,emacs-treemacs)))
22078 (home-page "https://github.com/emacs-lsp/lsp-treemacs")
22079 (synopsis "Integration between LSP mode and treemacs")
22080 (description
22081 "This package provides integration between LSP mode and treemacs,
22082 and implementation of treeview controls using treemacs as a tree renderer.")
22083 (license license:gpl3+)))
22084
22085 (define-public emacs-dap-mode
22086 (package
22087 (name "emacs-dap-mode")
22088 (version "0.6")
22089 (source
22090 (origin
22091 (method git-fetch)
22092 (uri (git-reference
22093 (url "https://github.com/emacs-lsp/dap-mode")
22094 (commit version)))
22095 (file-name (git-file-name name version))
22096 (sha256
22097 (base32 "1d4hdydfk86d4slibigyhwng8wx3vzyap8hp5iv0h7wr6868m4iv"))))
22098 (build-system emacs-build-system)
22099 (propagated-inputs
22100 `(("emacs-bui" ,emacs-bui)
22101 ("emacs-lsp-mode" ,emacs-lsp-mode)
22102 ("emacs-posframe" ,emacs-posframe)
22103 ("emacs-lsp-treemacs" ,emacs-lsp-treemacs)))
22104 (home-page "https://emacs-lsp.github.io/dap-mode")
22105 (synopsis "Emacs client/library for Debug Adapter Protocol ")
22106 (description
22107 "Dap mode is an Emacs client/library for Debug Adapter
22108 Protocol (DAP), a wire protocol for communication between client and
22109 debug server. It is similar to the LSP but provides integration with
22110 Debug server.")
22111 (license license:gpl3+)))
22112
22113 (define-public emacs-pfuture
22114 (package
22115 (name "emacs-pfuture")
22116 (version "1.9")
22117 (source (origin
22118 (method git-fetch)
22119 (uri (git-reference
22120 (url "https://github.com/Alexander-Miller/pfuture")
22121 (commit version)))
22122 (file-name (git-file-name name version))
22123 (sha256
22124 (base32
22125 "1chpin5277vbl2xvsl04pzzk7a9dbcvclibm2496gz6yvd19pwsf"))))
22126 (build-system emacs-build-system)
22127 (home-page
22128 "https://github.com/Alexander-Miller/pfuture")
22129 (synopsis "Simple wrapper around asynchronous processes for Emacs")
22130 (description "This package provides a simple wrapper around asynchronous
22131 processes for Emacs")
22132 (license license:gpl3+)))
22133
22134 (define-public emacs-treemacs
22135 (package
22136 (name "emacs-treemacs")
22137 (version "2.8")
22138 (source (origin
22139 (method git-fetch)
22140 (uri (git-reference
22141 (url "https://github.com/Alexander-Miller/treemacs")
22142 (commit version)))
22143 (file-name (git-file-name name version))
22144 (sha256
22145 (base32
22146 "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"))))
22147 (build-system emacs-build-system)
22148 (propagated-inputs
22149 `(("emacs-ace-window" ,emacs-ace-window)
22150 ("emacs-dash" ,emacs-dash)
22151 ("emacs-f" ,emacs-f)
22152 ("emacs-ht" ,emacs-ht)
22153 ("emacs-hydra" ,emacs-hydra)
22154 ("emacs-pfuture" ,emacs-pfuture)
22155 ("emacs-s" ,emacs-s)))
22156 (native-inputs
22157 `(("emacs-buttercup" ,emacs-buttercup)
22158 ("emacs-el-mock" ,emacs-el-mock)))
22159 (inputs
22160 `(("python" ,python)))
22161 (arguments
22162 `(#:tests? #t
22163 #:phases
22164 (modify-phases %standard-phases
22165 (add-after 'unpack 'fix-makefile
22166 (lambda _
22167 (substitute* "Makefile"
22168 (("@\\$\\(CASK\\) exec ") "")
22169 ;; Guix does not need to prepare dependencies before testing.
22170 (("test: prepare") "test:"))
22171 #t))
22172 (add-after 'fix-makefile 'chdir-elisp
22173 ;; Elisp directory is not in root of the source.
22174 (lambda _
22175 (chdir "src/elisp")))
22176 (replace 'check
22177 ;; FIXME: Work around ‘treemacs--parse-collapsed-dirs’ and
22178 ;; `treemacs-collect-child-nodes' test failures.
22179 (lambda _
22180 (with-directory-excursion "../.." ;treemacs root
22181 (chmod "test/test-treemacs.el" #o644)
22182 (emacs-substitute-sexps "test/test-treemacs.el"
22183 ("(describe \"treemacs--parse-collapsed-dirs\"" "")
22184 ("\"Finds only direct childre\"" ""))
22185 (invoke "make" "test"))))
22186 (add-before 'install 'patch-paths
22187 (lambda* (#:key inputs outputs #:allow-other-keys)
22188 (with-directory-excursion "../.." ;treemacs root
22189 (chmod "src/elisp/treemacs-core-utils.el" #o644)
22190 (emacs-substitute-variables "src/elisp/treemacs-core-utils.el"
22191 ("treemacs-dir"
22192 (string-append (assoc-ref outputs "out") "/")))
22193 (chmod "src/elisp/treemacs-icons.el" #o644)
22194 (substitute* "src/elisp/treemacs-icons.el"
22195 (("icons/default") "share/emacs-treemacs/images"))
22196 (chmod "src/elisp/treemacs-customization.el" #o644)
22197 (emacs-substitute-variables "src/elisp/treemacs-customization.el"
22198 ("treemacs-python-executable"
22199 (string-append (assoc-ref inputs "python") "/bin/python3")))
22200 (chmod "src/elisp/treemacs-async.el" #o644)
22201 (substitute* "src/elisp/treemacs-async.el"
22202 (("src/scripts") (string-append "share/" ,name "/scripts"))))
22203 #t))
22204 (add-after 'install 'install-data
22205 (lambda* (#:key outputs #:allow-other-keys)
22206 (let ((out (assoc-ref outputs "out")))
22207 (with-directory-excursion "../.." ;treemacs root
22208 (copy-recursively "icons/default"
22209 (string-append out "/share/" ,name "/images"))
22210 (copy-recursively
22211 "src/scripts"
22212 (string-append out "/share/" ,name "/scripts"))
22213 #t)))))))
22214 (home-page "https://github.com/Alexander-Miller/treemacs")
22215 (synopsis "Emacs tree style file explorer")
22216 (description
22217 "Treemacs is a file and project explorer similar to NeoTree or Vim's
22218 NerdTree, but largely inspired by the Project Explorer in Eclipse. It shows
22219 the file system outlines of your projects in a simple tree layout allowing
22220 quick navigation and exploration, while also possessing basic file management
22221 utilities.")
22222 (license license:gpl3+)))
22223
22224 (define-public emacs-treemacs-extra
22225 (package
22226 (inherit emacs-treemacs)
22227 (name "emacs-treemacs-extra")
22228 (propagated-inputs
22229 `(,@(package-propagated-inputs emacs-treemacs)
22230 ("emacs-evil" ,emacs-evil)
22231 ("emacs-magit" ,emacs-magit)
22232 ("emacs-projectile" ,emacs-projectile)
22233 ("emacs-persp-mode" ,emacs-persp-mode)))
22234 (arguments
22235 (substitute-keyword-arguments
22236 (package-arguments emacs-treemacs)
22237 ((#:phases phases)
22238 `(modify-phases ,phases
22239 (add-after 'chdir-elisp 'copy-extra
22240 (lambda _
22241 (copy-recursively "../extra" ".")))))))))
22242
22243 (define-public emacs-libyaml
22244 ;; Upstream made no release so far.
22245 (let ((version "0")
22246 (revision "1")
22247 (commit "703e0d448c7ee24e25b513a3c65980c80e166805"))
22248 (package
22249 (name "emacs-libyaml")
22250 (version (git-version version revision commit))
22251 (source
22252 (origin
22253 (method git-fetch)
22254 (uri (git-reference
22255 (url "https://github.com/syohex/emacs-libyaml")
22256 (commit commit)))
22257 (file-name (git-file-name name version))
22258 (sha256
22259 (base32 "08l7pm9v50ykd3fkbm0bh2kcd57cadbc5i9r6rj51vd32w3pl2yl"))))
22260 (build-system emacs-build-system)
22261 (arguments
22262 `(#:tests? #f ;no test
22263 #:modules ((guix build emacs-build-system)
22264 (guix build emacs-utils)
22265 (guix build utils))
22266 #:imported-modules (,@%emacs-build-system-modules
22267 (guix build gnu-build-system))
22268 #:phases
22269 (modify-phases %standard-phases
22270 (add-before 'add-source-to-load-path 'substitute-libyaml-core-path
22271 (lambda* (#:key outputs #:allow-other-keys)
22272 (chmod "libyaml.el" #o644)
22273 (substitute* "libyaml.el"
22274 (("^\\(require 'libyaml-core\\)")
22275 (string-append "(module-load \"" (assoc-ref outputs "out")
22276 "/lib/libyaml-core.so\")")))
22277 #t))
22278 (add-after 'check 'make
22279 ;; Run make.
22280 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
22281 ;; Compile the shared object file.
22282 (apply invoke "make" "all" "CPPFLAGS=" make-flags)
22283 ;; Move the file into /lib.
22284 (install-file "libyaml-core.so"
22285 (string-append (assoc-ref outputs "out") "/lib"))
22286 #t)))))
22287 (native-inputs `(("libyaml" ,libyaml)))
22288 (home-page "https://github.com/syohex/emacs-libyaml")
22289 (synopsis "Libyaml bindings for Emacs")
22290 (description
22291 "This package implements bindings for LibYAML to be able to parse YAML
22292 files in Elisp.")
22293 (license license:gpl3+))))
22294
22295 (define-public emacs-lsp-java
22296 (package
22297 (name "emacs-lsp-java")
22298 (version "3.1")
22299 (source (origin
22300 (method git-fetch)
22301 (uri (git-reference
22302 (url "https://github.com/emacs-lsp/lsp-java")
22303 (commit version)))
22304 (file-name (git-file-name name version))
22305 (sha256
22306 (base32
22307 "1h0hqgjpk5mbylma1fkva0vx45achf0k7ab2c5y8a2449niww90h"))))
22308 (build-system emacs-build-system)
22309 (propagated-inputs
22310 `(("emacs-dap-mode" ,emacs-dap-mode)
22311 ("emacs-lsp-mode" ,emacs-lsp-mode)
22312 ("emacs-markdown-mode" ,emacs-markdown-mode)
22313 ("emacs-dash" ,emacs-dash)
22314 ("emacs-f" ,emacs-f)
22315 ("emacs-ht" ,emacs-ht)
22316 ("emacs-request" ,emacs-request)
22317 ("emacs-treemacs" ,emacs-treemacs)))
22318 (home-page "https://github.com/emacs-lsp/lsp-java/")
22319 (synopsis "Java support for lsp-mode")
22320 (description "Emacs Java IDE using Eclipse JDT Language Server.")
22321 (license license:gpl3+)))
22322
22323 (define-public emacs-lsp-ui
22324 (package
22325 (name "emacs-lsp-ui")
22326 (version "7.0.1")
22327 (source (origin
22328 (method git-fetch)
22329 (uri (git-reference
22330 (url "https://github.com/emacs-lsp/lsp-ui")
22331 (commit version)))
22332 (file-name (git-file-name name version))
22333 (sha256
22334 (base32
22335 "09dmhhxmfjnzdc5kygwsjf8nwqlnq9rbgrca679s2wy93miqj7vc"))))
22336 (build-system emacs-build-system)
22337 (propagated-inputs
22338 `(("emacs-dash" ,emacs-dash)
22339 ("emacs-lsp-mode" ,emacs-lsp-mode)
22340 ("emacs-markdown-mode" ,emacs-markdown-mode)
22341 ("emacs-flycheck" ,emacs-flycheck)))
22342 (home-page "https://github.com/emacs-lsp/lsp-ui")
22343 (synopsis "User interface extensions for @code{lsp-mode}")
22344 (description
22345 "@code{LSP-ui} contains several enhancements and integrations for
22346 @code{lsp-mode}, such as visual flychecking, displaying references in-line,
22347 and code peeking.")
22348 (license license:gpl3+)))
22349
22350 (define-public emacs-lsp-lua-emmy
22351 (let ((commit "ab53fb2a8b8942804eb75bab5624fd19f1d360bf"))
22352 (package
22353 (name "emacs-lsp-lua-emmy")
22354 (version (git-version "0.1.0" "1" commit))
22355 (source (origin
22356 (method git-fetch)
22357 (uri (git-reference
22358 (url "https://github.com/phenix3443/lsp-lua-emmy")
22359 (commit commit)))
22360 (file-name (git-file-name name version))
22361 (sha256
22362 (base32
22363 "0rbizis73n1w5ig07fj1han74chbc1zpbp5bn37rj0gz608aqka8"))))
22364 (build-system emacs-build-system)
22365 (propagated-inputs
22366 `(("emacs-lsp-mode" ,emacs-lsp-mode)))
22367 (home-page "https://github.com/phenix3443/lsp-lua-emmy/")
22368 (synopsis "Lua support in @code{lsp-mode} client for Emacs")
22369 (description "This package provides a Lua language support in
22370 @code{lsp-mode} client for Emacs.")
22371 (license license:gpl3+))))
22372
22373 (define-public emacs-lsp-ivy
22374 (package
22375 (name "emacs-lsp-ivy")
22376 (version "0.4")
22377 (source
22378 (origin
22379 (method git-fetch)
22380 (uri (git-reference
22381 (url "https://github.com/emacs-lsp/lsp-ivy")
22382 (commit version)))
22383 (file-name (git-file-name name version))
22384 (sha256
22385 (base32 "08dpn0vcfdwwysijwdpnnj91m69yw0q464i0wmp51zpj3dyd4kb1"))))
22386 (build-system emacs-build-system)
22387 (propagated-inputs
22388 `(("emacs-dash" ,emacs-dash)
22389 ("emacs-ivy" ,emacs-ivy)
22390 ("emacs-lsp-mode" ,emacs-lsp-mode)))
22391 (home-page "https://github.com/emacs-lsp/lsp-ivy")
22392 (synopsis "Provide LSP-enhanced completion for symbols")
22393 (description
22394 "This package enhances @code{ivy} with completion for symbols from
22395 workspaces with a LSP-compliant server running.")
22396 (license license:gpl3+)))
22397
22398 (define-public emacs-helm-lsp
22399 (package
22400 (name "emacs-helm-lsp")
22401 (version "0.2")
22402 (source (origin
22403 (method git-fetch)
22404 (uri (git-reference
22405 (url "https://github.com/emacs-lsp/helm-lsp")
22406 (commit version)))
22407 (file-name (git-file-name name version))
22408 (sha256
22409 (base32
22410 "1vq3qpqm3ndqyvf5bk8qhqcr60x9ykc0ipk2a43rr3yjm4z1b6s9"))))
22411 (build-system emacs-build-system)
22412 (propagated-inputs
22413 `(("emacs-helm" ,emacs-helm)
22414 ("emacs-lsp-mode" ,emacs-lsp-mode)
22415 ("emacs-dash" ,emacs-dash)))
22416 (home-page "https://github.com/emacs-lsp/helm-lsp")
22417 (synopsis "Provide LSP-enhanced completion for symbols")
22418 (description
22419 "This package enhances @code{helm} with completion for symbols from
22420 workspaces with a LSP-compliant server running.")
22421 (license license:gpl3+)))
22422
22423 (define-public emacs-helm-notmuch
22424 (package
22425 (name "emacs-helm-notmuch")
22426 (version "1.2")
22427 (home-page "https://github.com/emacs-helm/helm-notmuch/")
22428 (source (origin
22429 (method git-fetch)
22430 (uri (git-reference
22431 (url home-page)
22432 (commit version)))
22433 (file-name (git-file-name name version))
22434 (sha256
22435 (base32
22436 "1k038dbdpaa411gl4071x19fklhnizhr346plxw23lsnxir9dhqc"))))
22437 (build-system emacs-build-system)
22438 (propagated-inputs
22439 `(("emacs-helm" ,emacs-helm)
22440 ("notmuch" ,notmuch)))
22441 (synopsis "Search emails with Emacs Notmuch and Helm")
22442 (description
22443 "This package can be used to search emails in Emacs, searching result
22444 displays as you type thanks to Helm, though @command{notmuch-search} does the
22445 real search.")
22446 (license license:gpl3+)))
22447
22448 (define-public emacs-elmacro
22449 (package
22450 (name "emacs-elmacro")
22451 (version "1.1.1")
22452 (home-page "https://github.com/Silex/elmacro")
22453 (source (origin
22454 (method git-fetch)
22455 (uri (git-reference
22456 (url home-page)
22457 (commit version)))
22458 (file-name (git-file-name name version))
22459 (sha256
22460 (base32
22461 "1x4wnsshf9h10mp51x92vs5rxw5had4gmw6zz4f53czx1ymcv16a"))))
22462 (build-system emacs-build-system)
22463 (propagated-inputs
22464 `(("emacs-s" ,emacs-s)
22465 ("emacs-dash" ,emacs-dash)))
22466 (synopsis "Convert keyboard macros to Emacs Lisp")
22467 (description
22468 "This package displays keyboard macros or latest interactive commands
22469 as Emacs Lisp.")
22470 (license license:gpl3+)))
22471
22472 (define-public emacs-transient
22473 (package
22474 (name "emacs-transient")
22475 (version "0.3.0")
22476 (source (origin
22477 (method git-fetch)
22478 (uri (git-reference
22479 (url "https://github.com/magit/transient")
22480 (commit (string-append "v" version))))
22481 (file-name (git-file-name name version))
22482 (sha256
22483 (base32
22484 "0g694ydmb9zjn99hxgfjd3m73kpmnkbrgqhr73b4crbxza5sl29c"))))
22485 (build-system emacs-build-system)
22486 (arguments
22487 `(#:tests? #f ;no test suite
22488 #:phases
22489 (modify-phases %standard-phases
22490 (add-after 'unpack 'build-info-manual
22491 (lambda _
22492 (invoke "make" "info")
22493 ;; Move the info file to lisp so that it gets installed by the
22494 ;; emacs-build-system.
22495 (rename-file "docs/transient.info" "lisp/transient.info")
22496 #t))
22497 (add-after 'build-info-manual 'enter-lisp-directory
22498 (lambda _
22499 (chdir "lisp")
22500 #t)))))
22501 (native-inputs
22502 `(("texinfo" ,texinfo)))
22503 (propagated-inputs
22504 `(("dash" ,emacs-dash)))
22505 (home-page "https://magit.vc/manual/transient")
22506 (synopsis "Transient commands in Emacs")
22507 (description "Taking inspiration from prefix keys and prefix arguments
22508 in Emacs, Transient implements a similar abstraction involving a prefix
22509 command, infix arguments and suffix commands. We could call this abstraction
22510 a \"transient command\", but because it always involves at least two
22511 commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
22512 (license license:gpl3+)))
22513
22514 (define-public emacs-forge
22515 (let ((commit "05ef02913004826165c383bd6d2ff6574542b76c"))
22516 (package
22517 (name "emacs-forge")
22518 (version (git-version "0.1.0" "5" commit))
22519 (source
22520 (origin
22521 (method git-fetch)
22522 (uri (git-reference
22523 (url "https://github.com/magit/forge")
22524 (commit commit)))
22525 (file-name (git-file-name name version))
22526 (sha256
22527 (base32
22528 "1vv7xlawj2zmwqk69qlsqflhh0lbyqm5xf4x8l4v2069g0k8mmx1"))))
22529 (build-system emacs-build-system)
22530 (native-inputs
22531 `(("texinfo" ,texinfo)))
22532 (propagated-inputs
22533 `(("emacs-closql" ,emacs-closql)
22534 ("emacs-dash" ,emacs-dash)
22535 ("emacs-emacsql-sqlite" ,emacs-emacsql)
22536 ("emacs-ghub" ,emacs-ghub)
22537 ("emacs-let-alist" ,emacs-let-alist)
22538 ("emacs-magit" ,emacs-magit)
22539 ("emacs-markdown-mode" ,emacs-markdown-mode)
22540 ("emacs-transient" ,emacs-transient)))
22541 (arguments
22542 `(#:tests? #f ;no tests
22543 #:phases
22544 (modify-phases %standard-phases
22545 (add-after 'unpack 'build-info-manual
22546 (lambda _
22547 (invoke "make" "info")
22548 ;; Move the info file to lisp so that it gets installed by the
22549 ;; emacs-build-system.
22550 (rename-file "docs/forge.info" "lisp/forge.info")))
22551 (add-after 'build-info-manual 'chdir-lisp
22552 (lambda _
22553 (chdir "lisp")
22554 #t)))))
22555 (home-page "https://github.com/magit/forge/")
22556 (synopsis "Access Git forges from Magit")
22557 (description "Work with Git forges, such as Github and Gitlab, from the
22558 comfort of Magit and the rest of Emacs.")
22559 (license license:gpl3+))))
22560
22561 (define-public emacs-matcha
22562 (let ((commit "c7df5cf5cdac9ae369e241342389ccda0205eab9"))
22563 (package
22564 (name "emacs-matcha")
22565 (version (git-version "0.0.1" "1" commit)) ;no upstream release
22566 (source (origin
22567 (method git-fetch)
22568 (uri (git-reference
22569 (url "https://github.com/jojojames/matcha")
22570 (commit commit)))
22571 (file-name (git-file-name name version))
22572 (sha256
22573 (base32
22574 "1lfnh1glg6al677m7ci0x8g5wjdhjxlfl3nv1f1ppsw4dpnwsj9b"))))
22575 (propagated-inputs
22576 `(("emacs-hydra" ,emacs-hydra)
22577 ("emacs-transient" ,emacs-transient)))
22578 (build-system emacs-build-system)
22579 (home-page "https://github.com/jojojames/matcha/")
22580 (synopsis "Collection of hydras with a generic interface to launch them")
22581 (description "Matcha provides a collection of transients for various
22582 packages with a consistent way to use them.")
22583 (license license:gpl3+))))
22584
22585 (define-public emacs-undo-propose-el
22586 (let ((commit "f80baee566807d733fbacbab08a897bcd62579c3")
22587 (revision "3"))
22588 (package
22589 (name "emacs-undo-propose-el")
22590 (version (git-version "3.0.0" revision commit))
22591 (source
22592 (origin
22593 (method git-fetch)
22594 (uri (git-reference
22595 (url "https://github.com/jackkamm/undo-propose-el")
22596 (commit commit)))
22597 (file-name (git-file-name name version))
22598 (sha256
22599 (base32
22600 "00rqz63bhh66q78l646q3w16gydygj8h4d8np0dpbifgzciak90b"))))
22601 (build-system emacs-build-system)
22602 (arguments
22603 `(#:tests? #t
22604 #:test-command '("make" "test")))
22605 (home-page "https://github.com/jackkamm/undo-propose-el")
22606 (synopsis "Simple and safe navigation of @code{undo} history")
22607 (description "This package permits navigation of @code{undo} history in a
22608 temporary buffer, which is read-only save for @code{undo} commands, and
22609 subsequent committal of a chain of @code{undo} commands as a single edit in
22610 the @code{undo} history.")
22611 (license license:gpl3+))))
22612
22613 (define-public emacs-elisp-docstring-mode
22614 (let ((commit "f512e509dd690f65133e55563ebbfd2dede5034f")
22615 (version "0.0.1")
22616 (revision "1"))
22617 (package
22618 (name "emacs-elisp-docstring-mode")
22619 (version (git-version version revision commit))
22620 (source
22621 (origin
22622 (method git-fetch)
22623 (uri (git-reference
22624 (url "https://github.com/Fuco1/elisp-docstring-mode")
22625 (commit commit)))
22626 (file-name (git-file-name name version))
22627 (sha256
22628 (base32
22629 "0al8m75p359h4n82rf0dsl22qfdg9cwwywn5pn7x6gb96c7qrqaa"))))
22630 (build-system emacs-build-system)
22631 (home-page "https://github.com/Fuco1/elisp-docstring-mode")
22632 (synopsis "Major mode for editing Emacs Lisp docstrings")
22633 (description "This package provides font lock and automatic escaping and
22634 unescaping of quotes.")
22635 (license license:gpl3+))))
22636
22637 (define-public emacs-vimrc-mode
22638 (let ((commit "13bc150a870d5d4a95f1111e4740e2b22813c30e")
22639 (version "0.3.1")
22640 (revision "1"))
22641 (package
22642 (name "emacs-vimrc-mode")
22643 (version (git-version version revision commit))
22644 (source
22645 (origin
22646 (method git-fetch)
22647 (uri (git-reference
22648 (url "https://github.com/mcandre/vimrc-mode")
22649 (commit commit)))
22650 (file-name (git-file-name name version))
22651 (sha256
22652 (base32
22653 "0026dqs3hwygk2k2xfra90w5sfnxrfj7l69jz7sq5glavbf340pk"))))
22654 (build-system emacs-build-system)
22655 (home-page "https://github.com/mcandre/vimrc-mode")
22656 (synopsis "Major mode for Vimscript")
22657 (description "This package provides font lock and @code{beginning-} and
22658 @code{end-of-defun} functions for Vimscript files.")
22659 (license license:gpl3+))))
22660
22661 (define-public emacs-flycheck-elm
22662 (let ((revision "0")
22663 (commit "1b60050efd4729bfba548f3e5adbcb58436667cb"))
22664 (package
22665 (name "emacs-flycheck-elm")
22666 (version (git-version "0" revision commit))
22667 (source
22668 (origin
22669 (method git-fetch)
22670 (uri
22671 (git-reference
22672 (url "https://github.com/bsermons/flycheck-elm")
22673 (commit commit)))
22674 (file-name (git-file-name name version))
22675 (sha256
22676 (base32 "1kjms9d2c98ffd1qxs879qhg0n4jzic0r5kni9y4gz3v09ww8zms"))))
22677 (build-system emacs-build-system)
22678 (propagated-inputs
22679 `(("emacs-flycheck" ,emacs-flycheck)
22680 ("emacs-let-alist" ,emacs-let-alist)))
22681 (home-page "https://github.com/bsermons/flycheck-elm")
22682 (synopsis "Flycheck support for the Elm language")
22683 (description "Flycheck Elm adds Flycheck support for Elm language.")
22684 (license license:gpl3+))))
22685
22686 (define-public emacs-flycheck-haskell
22687 (let ((commit "32ddff87165a7d3a35e7318bee997b5b4bd41278")
22688 (revision "2"))
22689 (package
22690 (name "emacs-flycheck-haskell")
22691 (version (git-version "0.8" revision commit))
22692 (source
22693 (origin
22694 (method git-fetch)
22695 (uri (git-reference
22696 (url "https://github.com/flycheck/flycheck-haskell")
22697 (commit commit)))
22698 (file-name (git-file-name name version))
22699 (sha256
22700 (base32
22701 "10pgsbagq6qj4mshq5sypv0q0khck92b30sc793b4g1pfpsxvgjn"))))
22702 (build-system emacs-build-system)
22703 (propagated-inputs
22704 `(("emacs-dash" ,emacs-dash)
22705 ("emacs-flycheck" ,emacs-flycheck)
22706 ("emacs-haskell-mode" ,emacs-haskell-mode)
22707 ("emacs-let-alist" ,emacs-let-alist)))
22708 (arguments
22709 `(#:include '("\\.el$" "\\.hs$")))
22710 (home-page "https://github.com/flycheck/flycheck-haskell")
22711 (synopsis "Flycheck for Haskell")
22712 (description "This package configures syntax-checking for Haskell
22713 buffers.")
22714 (license license:gpl3+))))
22715
22716 (define-public emacs-js2-refactor-el
22717 (let ((commit "d4c40b5fc86d3edd7c6a7d83ac86483ee1cb7a28")
22718 (revision "2"))
22719 (package
22720 (name "emacs-js2-refactor-el")
22721 (version (git-version "0.9.0" revision commit))
22722 (source
22723 (origin
22724 (method git-fetch)
22725 (uri (git-reference
22726 (url "https://github.com/magnars/js2-refactor.el")
22727 (commit commit)))
22728 (file-name (git-file-name name version))
22729 (sha256
22730 (base32
22731 "08b25y3raz0p98zxk9xdd8nj9shqd6mzrqhbq1gg4cwsmi7h7ly1"))))
22732 (build-system emacs-build-system)
22733 (propagated-inputs
22734 `(("emacs-dash" ,emacs-dash)
22735 ("emacs-s" ,emacs-s)
22736 ("emacs-js2-mode" ,emacs-js2-mode)
22737 ("emacs-yasnippet" ,emacs-yasnippet)
22738 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
22739 (native-inputs
22740 `(("emacs-buttercup" ,emacs-buttercup)
22741 ("emacs-espuds" ,emacs-espuds)))
22742 (home-page "https://github.com/magnars/js2-refactor.el")
22743 (synopsis "JavaScript refactoring in Emacs")
22744 (description "This package provides various refactoring functions for
22745 JavaScript.")
22746 (license license:gpl3+))))
22747
22748 (define-public emacs-prettier
22749 (let ((commit "e9b73e81d3e1642aec682195f127a42dfb0b5774")
22750 (version "0.1.0")
22751 (revision "1"))
22752 (package
22753 (name "emacs-prettier")
22754 (version (git-version version revision commit))
22755 (source
22756 (origin
22757 (method git-fetch)
22758 (uri (git-reference
22759 (url "https://github.com/prettier/prettier-emacs")
22760 (commit commit)))
22761 (file-name (git-file-name name version))
22762 (sha256
22763 (base32
22764 "0hj4fv3fgc60i6jrsx4a81s5c9fsxxafhhs3q2q1dypsscjci9ph"))))
22765 (build-system emacs-build-system)
22766 (home-page "https://github.com/prettier/prettier-emacs")
22767 (synopsis "Automatic formatting of JavaScript code")
22768 (description "This package integrates Prettier with Emacs, and
22769 provides a minor mode that autoformats the buffer upon saving.")
22770 (license license:expat))))
22771
22772 (define-public emacs-fish-mode
22773 (package
22774 (name "emacs-fish-mode")
22775 (version "0.1.6")
22776 (source
22777 (origin
22778 (method git-fetch)
22779 (uri (git-reference
22780 (url "https://github.com/wwwjfy/emacs-fish")
22781 (commit version)))
22782 (file-name (git-file-name name version))
22783 (sha256
22784 (base32
22785 "1spxxkji9xa930sbwvzyjm8jrqk9ra0xqhivw7zd12a4c56nhna9"))))
22786 (build-system emacs-build-system)
22787 (home-page "https://github.com/wwwjfy/emacs-fish")
22788 (synopsis "Major mode for Fish shell scripts")
22789 (description "This package provides syntax highlighting and indentation
22790 functions for Fish shell scripts.")
22791 (license license:gpl3+)))
22792
22793 (define-public emacs-eshell-up
22794 (let ((commit "9c100bae5c3020e8d9307e4332d3b64e7dc28519")
22795 (version "0.0.3")
22796 (revision "12"))
22797 (package
22798 (name "emacs-eshell-up")
22799 (version (git-version version revision commit))
22800 (source
22801 (origin
22802 (method git-fetch)
22803 (uri (git-reference
22804 (url "https://github.com/peterwvj/eshell-up")
22805 (commit commit)))
22806 (file-name (git-file-name name version))
22807 (sha256
22808 (base32
22809 "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"))))
22810 (build-system emacs-build-system)
22811 (home-page "https://github.com/peterwvj/eshell-up")
22812 (synopsis "Quickly go to a parent directory in @code{Eshell}")
22813 (description "This package provides quick navigation to a specific
22814 parent directory using @code{Eshell}.")
22815 (license license:gpl3+))))
22816
22817 (define-public emacs-springboard
22818 ;; Upstream provides no tag. Using the latest commit. Version is extracted
22819 ;; from "Version:" keyword.
22820 (let ((commit "687d1e5898a880878995dc9bffe93b4598366203")
22821 (version "1.0")
22822 (revision "1"))
22823 (package
22824 (name "emacs-springboard")
22825 (version (git-version version revision commit))
22826 (source
22827 (origin
22828 (method git-fetch)
22829 (uri (git-reference
22830 (url "https://github.com/jwiegley/springboard")
22831 (commit commit)))
22832 (file-name (git-file-name name version))
22833 (sha256
22834 (base32 "0fn8c4hqblfjvcpg68kj2dmdjqsdnxddqbzgvakl43zckjg8pi01"))))
22835 (build-system emacs-build-system)
22836 (propagated-inputs
22837 `(("emacs-helm" ,emacs-helm)
22838 ("emacs-ivy" ,emacs-ivy)))
22839 (home-page "https://github.com/jwiegley/springboard")
22840 (synopsis "Change the Emacs default directory quickly")
22841 (description
22842 "This Emacs package provides a quick way to change the default
22843 directory for only the next invoked command. The directory selection can be
22844 done using Helm, Ido or Ivy.")
22845 (license license:gpl2+))))
22846
22847 (define-public emacs-tco-el
22848 (let ((commit "482db5313f090b17ed22ccd856f0e141dc75afe6")
22849 (revision "1"))
22850 (package
22851 (name "emacs-tco-el")
22852 (version (git-version "0.3" revision commit))
22853 (source
22854 (origin
22855 (method git-fetch)
22856 (uri (git-reference
22857 (url "https://github.com/Wilfred/tco.el")
22858 (commit commit)))
22859 (file-name (git-file-name name version))
22860 (sha256
22861 (base32
22862 "1z7xkbrqznk6ni687qqknp8labcyhl8y6576hjfri89fn21385y9"))))
22863 (build-system emacs-build-system)
22864 (propagated-inputs
22865 `(("emacs-dash" ,emacs-dash)))
22866 (native-inputs
22867 `(("emacs-ert-runner" ,emacs-ert-runner)
22868 ("emacs-undercover" ,emacs-undercover)))
22869 (arguments
22870 `(#:tests? #t
22871 #:test-command '("ert-runner")))
22872 (home-page "https://github.com/Wilfred/tco.el")
22873 (synopsis "Tail-call optimization for Emacs Lisp")
22874 (description "This package provides tail-call optimization for Emacs
22875 Lisp functions that call themselves in tail position.")
22876 (license license:gpl3+))))
22877
22878 (define-public emacs-equake
22879 (let ((commit "7eddc025ee61b83029363e22219af228b8c20681")
22880 (revision "2"))
22881 (package
22882 (name "emacs-equake")
22883 (version (git-version "0.85" revision commit))
22884 (source
22885 (origin
22886 (method git-fetch)
22887 (uri (git-reference
22888 (url "https://gitlab.com/emacsomancer/equake/")
22889 (commit commit)))
22890 (file-name (git-file-name name version))
22891 (sha256
22892 (base32
22893 "1c55pbqak3d02sw6z1139baxzy401b90g0gxzcc3j6sgplz6sc6w"))))
22894 (build-system emacs-build-system)
22895 (propagated-inputs
22896 `(("emacs-dash" ,emacs-dash)
22897 ("emacs-tco-el" ,emacs-tco-el)))
22898 (home-page "https://gitlab.com/emacsomancer/equake/")
22899 (synopsis "Drop-down console for @code{Eshell} and terminal emulators")
22900 (description "This package provides a Quake-style drop-down console
22901 compatible with Emacs' shell modes.")
22902 (license license:gpl3+))))
22903
22904 (define-public emacs-vdiff
22905 ;; There is no proper tag, but the commit below matches the version bump.
22906 (let ((commit "007e44be19d068fd6b49874b6e9b8df8b1f552bd"))
22907 (package
22908 (name "emacs-vdiff")
22909 (version "0.2.4")
22910 (source
22911 (origin
22912 (method git-fetch)
22913 (uri (git-reference
22914 (url "https://github.com/justbur/emacs-vdiff")
22915 (commit commit)))
22916 (file-name (git-file-name name version))
22917 (sha256
22918 (base32 "197xrwph1llrzjgkhlvagiwdgfp68pb45w5afg89ndahpqc2725s"))))
22919 (build-system emacs-build-system)
22920 (propagated-inputs
22921 `(("emacs-hydra" ,emacs-hydra)))
22922 (arguments
22923 `(#:tests? #t
22924 #:test-command '("emacs" "-Q" "-batch" "-L" "."
22925 "-l" "vdiff-test.el"
22926 "-f" "ert-run-tests-batch-and-exit")))
22927 (home-page "https://github.com/justbur/emacs-vdiff/")
22928 (synopsis "Frontend for diffing based on vimdiff")
22929 (description
22930 "This package permits comparisons of two or three buffers based on diff
22931 output.")
22932 (license license:gpl3+))))
22933
22934 (define-public emacs-vdiff-magit
22935 ;; Need to use a more recent commit than the latest release version because
22936 ;; of Magit and Transient
22937 (let ((commit "b100d126c69e5c26a61ae05aa1778bcc4302b597")
22938 (version "0.3.2")
22939 (revision "8"))
22940 (package
22941 (name "emacs-vdiff-magit")
22942 (version (git-version version revision commit))
22943 (source
22944 (origin
22945 (method git-fetch)
22946 (uri (git-reference
22947 (url "https://github.com/justbur/emacs-vdiff-magit/")
22948 (commit commit)))
22949 (file-name (git-file-name name version))
22950 (sha256
22951 (base32
22952 "16cjmrzflf2i1w01973sl944xrfanakba8sb4dpwi79d92xp03xy"))))
22953 (build-system emacs-build-system)
22954 (propagated-inputs
22955 `(("emacs-vdiff" ,emacs-vdiff)
22956 ("emacs-magit" ,emacs-magit)
22957 ("emacs-transient" ,emacs-transient)))
22958 (home-page "https://github.com/justbur/emacs-vdiff-magit/")
22959 (synopsis "Frontend for diffing based on vimdiff")
22960 (description "This package permits comparisons of two or three buffers
22961 based on diff output.")
22962 (license license:gpl3+))))
22963
22964 (define-public emacs-all-the-icons-dired
22965 (let ((commit "fc2dfa1e9eb8bf1c402a675e7089638d702a27a5")
22966 (version "1.0")
22967 (revision "2"))
22968 (package
22969 (name "emacs-all-the-icons-dired")
22970 (version (git-version version revision commit))
22971 (source
22972 (origin
22973 (method git-fetch)
22974 (uri (git-reference
22975 (url "https://github.com/jtbm37/all-the-icons-dired/")
22976 (commit commit)))
22977 (file-name (git-file-name name version))
22978 (sha256
22979 (base32
22980 "0zhyhz4lhx0d8wwh1xxxf7ck4s621fk9757ql2ypxbr4iqh7sjlp"))))
22981 (build-system emacs-build-system)
22982 (propagated-inputs
22983 `(("emacs-all-the-icons" ,emacs-all-the-icons)))
22984 (home-page "https://github.com/jtbm37/all-the-icons-dired/")
22985 (synopsis "Show icons for each file in @code{dired-mode}")
22986 (description "This package allows icons from @file{all-the-icons.el} to
22987 be used in @code{dired-mode}.")
22988 (license license:gpl3+))))
22989
22990 (define-public emacs-exwm-edit
22991 (let ((commit "e1291e311840f1049106fe98cec032a1c75efd2b")
22992 (version "0.0.1")
22993 (revision "3"))
22994 (package
22995 (name "emacs-exwm-edit")
22996 (version (git-version version revision commit))
22997 (source
22998 (origin
22999 (method git-fetch)
23000 (uri (git-reference
23001 (url "https://github.com/agzam/exwm-edit/")
23002 (commit commit)))
23003 (file-name (git-file-name name version))
23004 (sha256
23005 (base32
23006 "031cb8fvv5n30djr9lpl6vz3rl15zykfvjlgkjc8l33a3l5mw8j0"))))
23007 (build-system emacs-build-system)
23008 (propagated-inputs
23009 `(("emacs-exwm" ,emacs-exwm)))
23010 (home-page "https://github.com/agzam/exwm-edit/")
23011 (synopsis "Open temp buffers for editing text from EXWM buffers")
23012 (description "This package facilitates editing text from EXWM buffers by
23013 generating a temp buffer in which any useful Emacs utilities and modes can be
23014 invoked.")
23015 (license license:gpl3+))))
23016
23017 (define-public emacs-ert-async
23018 (package
23019 (name "emacs-ert-async")
23020 (version "0.1.2")
23021 (source
23022 (origin
23023 (method git-fetch)
23024 (uri (git-reference
23025 (url "https://github.com/rejeep/ert-async.el")
23026 (commit (string-append "v" version))))
23027 (file-name (git-file-name name version))
23028 (sha256
23029 (base32
23030 "0hn9i405nfhjd1h9vnwj43nxbbz00khrwkjq0acfyxjaz1shfac9"))))
23031 (build-system emacs-build-system)
23032 (home-page "https://github.com/rejeep/ert-async.el")
23033 (synopsis "Async support for ERT")
23034 (description "This package allows ERT to work with asynchronous tests.")
23035 (license license:gpl3+)))
23036
23037 (define-public emacs-prodigy-el
23038 (let ((commit "0a12eec1f001a4eef16b2c0c524f02f2647a4ff1")
23039 (revision "2"))
23040 (package
23041 (name "emacs-prodigy-el")
23042 (version (git-version "0.7.0" revision commit))
23043 (source
23044 (origin
23045 (method git-fetch)
23046 (uri (git-reference
23047 (url "https://github.com/rejeep/prodigy.el")
23048 (commit commit)))
23049 (file-name (git-file-name name version))
23050 (sha256
23051 (base32
23052 "02kysq57kqzg0zkhaf302ada9cp9spgp71z8vbdq4c7dl6x75h4g"))))
23053 (build-system emacs-build-system)
23054 (propagated-inputs
23055 `(("emacs-dash" ,emacs-dash)
23056 ("emacs-s" ,emacs-s)
23057 ("emacs-f" ,emacs-f)))
23058 (native-inputs
23059 `(("emacs-el-mock" ,emacs-el-mock)
23060 ("emacs-ert-async" ,emacs-ert-async)))
23061 (home-page "https://github.com/rejeep/prodigy.el")
23062 (synopsis "Manage external services from within Emacs")
23063 (description "This package provides a GUI for defining and monitoring services.")
23064 (license license:gpl3+))))
23065
23066 (define-public emacs-web-server
23067 (package
23068 (name "emacs-web-server")
23069 (version "0.1.2")
23070 (source
23071 (origin
23072 (method url-fetch)
23073 (uri (string-append "https://elpa.gnu.org/packages/"
23074 "web-server-" version ".tar"))
23075 (sha256
23076 (base32 "10lcsl4dg2yr9zjd99gq9jz150wvvh6r5y9pd88l8y9vz16f2lim"))))
23077 (build-system emacs-build-system)
23078 (home-page "https://github.com/eschulte/emacs-web-server/")
23079 (synopsis "Web server with handlers in Emacs Lisp")
23080 (description "This package supports HTTP GET and POST requests with
23081 url-encoded parameters, as well as web sockets.")
23082 (license license:gpl3+)))
23083
23084 (define-public emacs-markdown-preview-mode
23085 (package
23086 (name "emacs-markdown-preview-mode")
23087 (version "0.9.2")
23088 (source
23089 (origin
23090 (method git-fetch)
23091 (uri (git-reference
23092 (url "https://github.com/ancane/markdown-preview-mode")
23093 (commit (string-append "v" version))))
23094 (file-name (git-file-name name version))
23095 (sha256
23096 (base32
23097 "1d1id99gagymvzdfa1mwqh8y3szm8ii47rpijkfi1qnifjg5jaq9"))))
23098 (build-system emacs-build-system)
23099 (propagated-inputs
23100 `(("emacs-markdown-mode" ,emacs-markdown-mode)
23101 ("emacs-websocket" ,emacs-websocket)
23102 ("emacs-web-server" ,emacs-web-server)))
23103 (arguments '(#:include '("\\.el$" "\\.html$")))
23104 (home-page "https://github.com/ancane/markdown-preview-mode")
23105 (synopsis "Preview Markdown files")
23106 (description "This package provides a minor mode for preview of Markdown
23107 files, and sends rendered Markdown to a web browser.")
23108 (license license:gpl3+)))
23109
23110 (define-public emacs-dotenv-mode
23111 (package
23112 (name "emacs-dotenv-mode")
23113 (version "0.2.5")
23114 (source
23115 (origin
23116 (method git-fetch)
23117 (uri (git-reference
23118 (url "https://github.com/preetpalS/emacs-dotenv-mode")
23119 (commit (string-append "v" version))))
23120 (file-name (git-file-name name version))
23121 (sha256
23122 (base32
23123 "0ys1czramj3c8zbnxxc599bqc0nqp3nnn3n45ac9cjglx5iaydq3"))))
23124 (build-system emacs-build-system)
23125 (home-page "https://github.com/preetpalS/emacs-dotenv-mode")
23126 (synopsis "Major mode for @file{.env} files")
23127 (description "This package provides syntax highlighting for @file{.env}
23128 files.")
23129 (license license:gpl3+)))
23130
23131 (define-public emacs-add-node-modules-path
23132 (let ((commit "f31e69ccb681f882aebb806ce6e9478e3ac39708")
23133 (version "1.2.0")
23134 (revision "10"))
23135 (package
23136 (name "emacs-add-node-modules-path")
23137 (version (git-version version revision commit))
23138 (source
23139 (origin
23140 (method git-fetch)
23141 (uri (git-reference
23142 (url "https://github.com/codesuki/add-node-modules-path")
23143 (commit commit)))
23144 (file-name (git-file-name name version))
23145 (sha256
23146 (base32
23147 "0p106bqmvdr8by5iv02bshm339qbrjcch2d15mrm4h3nav03v306"))))
23148 (build-system emacs-build-system)
23149 (home-page "https://github.com/codesuki/add-node-modules-path")
23150 (synopsis "Add @file{node_modules} to the buffer-local @file{exec-path}")
23151 (description "This package searches the parent directories of the
23152 current file for the project's @file{node_modules/.bin/} directory, allowing
23153 Emacs to find project-specific installations of packages.")
23154 (license license:expat))))
23155
23156 (define-public emacs-flow-minor-mode
23157 (let ((commit "d1b32a7dd0d33c6a00a106da5f4b2323602cbd3e")
23158 (version "0.3")
23159 (revision "4"))
23160 (package
23161 (name "emacs-flow-minor-mode")
23162 (version (git-version version revision commit))
23163 (source
23164 (origin
23165 (method git-fetch)
23166 (uri (git-reference
23167 (url "https://github.com/an-sh/flow-minor-mode")
23168 (commit commit)))
23169 (file-name (git-file-name name version))
23170 (sha256
23171 (base32
23172 "169r4ib9qg9q6fm3p0p23qs1qx4pa9pg1qvyq4ysr85i7kwygppl"))))
23173 (build-system emacs-build-system)
23174 (home-page "https://github.com/an-sh/flow-minor-mode")
23175 (synopsis "Minor mode for JavaScript Flow files")
23176 (description "This package integrates Flow with Emacs, allowing for
23177 definition-jumping and type-checking on demand.")
23178 (license license:bsd-3))))
23179
23180 (define-public emacs-rjsx-mode
23181 (package
23182 (name "emacs-rjsx-mode")
23183 (version "0.5.0")
23184 (source
23185 (origin
23186 (method git-fetch)
23187 (uri (git-reference
23188 (url "https://github.com/felipeochoa/rjsx-mode")
23189 (commit (string-append "v" version))))
23190 (file-name (git-file-name name version))
23191 (sha256
23192 (base32
23193 "08b4hdgq4hc1yfd9pvyir2j3cqqdqa3j5svgaba97x5fzhsz7y8i"))))
23194 (build-system emacs-build-system)
23195 (propagated-inputs
23196 `(("emacs-js2-mode" ,emacs-js2-mode)))
23197 (arguments
23198 `(#:tests? #t
23199 #:test-command '("make" "test")))
23200 (home-page "https://github.com/felipeochoa/rjsx-mode")
23201 (synopsis "Major mode for JSX files")
23202 (description "This package extends the parser of @code{js2-mode} to
23203 support JSX syntax.")
23204 (license license:expat)))
23205
23206 (define-public emacs-origami-el
23207 (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366")
23208 (version "1.0")
23209 (revision "1"))
23210 (package
23211 (name "emacs-origami-el")
23212 (version (git-version version revision commit))
23213 (source
23214 (origin
23215 (method git-fetch)
23216 (uri (git-reference
23217 (url "https://github.com/gregsexton/origami.el")
23218 (commit commit)))
23219 (file-name (git-file-name name version))
23220 (sha256
23221 (base32
23222 "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x"))))
23223 (build-system emacs-build-system)
23224 (propagated-inputs
23225 `(("emacs-dash" ,emacs-dash)
23226 ("emacs-s" ,emacs-s)))
23227 (home-page "https://github.com/gregsexton/origami.el")
23228 (synopsis "Flexible text-folding")
23229 (description "This package provides a minor mode for collapsing and
23230 expanding regions of text without modifying the actual contents.")
23231 (license license:expat))))
23232
23233 (define-public emacs-peep-dired
23234 (let ((commit "c88a9a3050197840edfe145f11e0bb9488de32f4")
23235 (version "0")
23236 (revision "1"))
23237 (package
23238 (name "emacs-peep-dired")
23239 (version (git-version version revision commit))
23240 (source
23241 (origin
23242 (method git-fetch)
23243 (uri (git-reference
23244 (url "https://github.com/asok/peep-dired")
23245 (commit commit)))
23246 (file-name (git-file-name name version))
23247 (sha256
23248 (base32
23249 "1wy5qpnfri1gha2cnl6q20qar8dbl2mimpb43bnhmm2g3wgjyad6"))))
23250 (build-system emacs-build-system)
23251 (home-page "https://github.com/asok/peep-dired")
23252 (synopsis "Preview files in another window")
23253 (description "This package provides a minor mode that allows files to be
23254 previewed by scrolling up and down within a @code{dired} buffer.")
23255 (license license:gpl3+))))
23256
23257 (define-public emacs-counsel-etags
23258 (package
23259 (name "emacs-counsel-etags")
23260 (version "1.9.16")
23261 (source
23262 (origin
23263 (method git-fetch)
23264 (uri (git-reference
23265 (url "https://github.com/redguardtoo/counsel-etags")
23266 (commit version)))
23267 (file-name (git-file-name name version))
23268 (sha256
23269 (base32 "01si554r0s6m7ypx1m2n0z6j6q6yihifz76dha6q6v56ixdlv626"))))
23270 (build-system emacs-build-system)
23271 (propagated-inputs
23272 `(("emacs-counsel" ,emacs-counsel)))
23273 (arguments
23274 `(#:tests? #t
23275 #:test-command '("make" "test")))
23276 (home-page "https://github.com/redguardtoo/counsel-etags")
23277 (synopsis "Fast @code{Ctags}/@code{Etags} solution with @code{ivy-mode}")
23278 (description "This package uses @code{ivy-mode} to facilitate navigating
23279 and searching through @code{Ctags} files.")
23280 (license license:gpl3+)))
23281
23282 (define-public emacs-ivy-clipmenu
23283 (let ((commit "d2071f2c5043a05d610cd1952e84176ca78c31dc"))
23284 (package
23285 (name "emacs-ivy-clipmenu")
23286 (version (git-version "0.0.1" "1" commit))
23287 (source (origin
23288 (method git-fetch)
23289 (uri (git-reference
23290 (url "https://github.com/wpcarro/ivy-clipmenu.el")
23291 (commit commit)))
23292 (file-name (git-file-name name version))
23293 (sha256
23294 (base32
23295 "0npd8glzk5z4n7y9mzbsbzi0cf3by19fqcki052jr3dga363lds7"))))
23296 (propagated-inputs
23297 `(("emacs-f" ,emacs-f)
23298 ("emacs-ivy" ,emacs-ivy)))
23299 (build-system emacs-build-system)
23300 (home-page "https://github.com/wpcarro/ivy-clipmenu.el")
23301 (synopsis "Ivy integration with clipmenu")
23302 (description "Ivy integration with the clipboard manager, clipmenu.")
23303 (license license:expat))))
23304
23305 (define-public emacs-org-download
23306 (let ((commit "42ac361ef5502017e6fc1bceb00333eba90402f4")
23307 (revision "3"))
23308 (package
23309 (name "emacs-org-download")
23310 (version (git-version "0.1.0" revision commit))
23311 (source (origin
23312 (method git-fetch)
23313 (uri (git-reference
23314 (url "https://github.com/abo-abo/org-download")
23315 (commit commit)))
23316 (file-name (git-file-name name version))
23317 (sha256
23318 (base32 "0cg4y7hy7xbq4vrbdicfzgvyaf3cjbx2zkqd4yl0y2garz71j99l"))))
23319 (build-system emacs-build-system)
23320 (propagated-inputs
23321 `(("emacs-org" ,emacs-org)
23322 ("emacs-async" ,emacs-async)))
23323 (home-page "https://github.com/abo-abo/org-download")
23324 (synopsis "Facilitate moving images")
23325 (description "This package provides utilities for managing image files
23326 copied into @code{org-mode} buffers.")
23327 (license license:gpl3+))))
23328
23329 (define-public emacs-org-drill-table
23330 ;; No releases or tags.
23331 (let ((commit "096387d929bcf3eb479e0a9d5da9cf32c756a759")
23332 (revision "0"))
23333 (package
23334 (name "emacs-org-drill-table")
23335 (version (git-version "0.1" revision commit))
23336 (source
23337 (origin
23338 (method git-fetch)
23339 (uri (git-reference
23340 (url "https://github.com/chrisbarrett/org-drill-table.git")
23341 (commit commit)))
23342 (file-name (git-file-name name version))
23343 (sha256
23344 (base32 "1a8ygrcag8i9hdpy2vsn0sh8lwhl9b56rv91j3rddy1jv5qx1ipb"))))
23345 (build-system emacs-build-system)
23346 (propagated-inputs
23347 `(("emacs-dash" ,emacs-dash)
23348 ("emacs-org" ,emacs-org)
23349 ("emacs-s" ,emacs-s)))
23350 (home-page "https://github.com/chrisbarrett/org-drill-table")
23351 (synopsis "Generate Org drill cards using Org mode tables")
23352 (description
23353 "This package generates drill cards based on an Org mode table in the
23354 current subtree. The cards are inserted under a new ``Cards'' heading in the
23355 current tree.")
23356 (license license:gpl3+))))
23357
23358 (define-public emacs-dash-docs
23359 (let ((commit "dafc8fc9f1ddb2e4e39e0b8d066c42d5d7ce8d06")
23360 (revision "2"))
23361 (package
23362 (name "emacs-dash-docs")
23363 (version (git-version "1.4.0" revision commit))
23364 (source
23365 (origin
23366 (method git-fetch)
23367 (uri (git-reference
23368 (url "https://github.com/dash-docs-el/dash-docs")
23369 (commit commit)))
23370 (file-name (git-file-name name version))
23371 (sha256
23372 (base32
23373 "0n6d3mm43gj16v8kjjradcfik93wb89dsqnfcbskb28bvcamafid"))))
23374 (build-system emacs-build-system)
23375 (propagated-inputs
23376 `(("emacs-async" ,emacs-async)))
23377 (native-inputs
23378 `(("emacs-undercover" ,emacs-undercover)
23379 ("emacs-ert-runner" ,emacs-ert-runner)))
23380 (arguments
23381 `(#:tests? #t
23382 #:test-command '("ert-runner")
23383 #:phases
23384 ;; this test requires network access, so remove it
23385 (modify-phases %standard-phases
23386 (add-before 'check 'make-tests-writable
23387 (lambda _
23388 (make-file-writable "test/dash-docs-test.el")
23389 #t))
23390 (add-before 'check 'delete-test
23391 (lambda _
23392 (emacs-batch-edit-file "test/dash-docs-test.el"
23393 `(progn (progn
23394 (goto-char (point-min))
23395 (re-search-forward "ert-deftest dash-docs-official-docsets-test")
23396 (beginning-of-line)
23397 (kill-sexp))
23398 (basic-save-buffer)))
23399 #t)))))
23400 (home-page "https://github.com/dash-docs-el/dash-docs")
23401 (synopsis "Offline documentation browser for APIs using Dash docsets")
23402 (description "This package exposes functionality to work with Dash docsets.")
23403 (license license:gpl3+))))
23404
23405 (define-public emacs-helm-dash
23406 (let ((commit "7f853bd34da666f0e9a883011c80f451b06f6c59")
23407 (revision "2"))
23408 (package
23409 (name "emacs-helm-dash")
23410 (version (git-version "1.3.0" revision commit))
23411 (source
23412 (origin
23413 (method git-fetch)
23414 (uri (git-reference
23415 (url "https://github.com/areina/helm-dash")
23416 (commit commit)))
23417 (file-name (git-file-name name version))
23418 (sha256
23419 (base32
23420 "0r192vzry1212ihabg9pgw9xar8zdgnbgy0vsgvfm8s5wj6ny7jp"))))
23421 (build-system emacs-build-system)
23422 (propagated-inputs
23423 `(("emacs-helm" ,emacs-helm)
23424 ("emacs-dash-docs" ,emacs-dash-docs)))
23425 (home-page "https://github.com/areina/helm-dash")
23426 (synopsis "Offline documentation browser for APIs using Dash docsets")
23427 (description "This package uses Helm to install and navigate through
23428 Dash docsets.")
23429 (license license:gpl3+))))
23430
23431 (define-public emacs-counsel-dash
23432 (let ((commit "370d5f6f14b5294d0eb717f7b2a6a8e93df1ed24")
23433 (revision "4"))
23434 (package
23435 (name "emacs-counsel-dash")
23436 (version (git-version "0.1.3" revision commit))
23437 (source
23438 (origin
23439 (method git-fetch)
23440 (uri (git-reference
23441 (url "https://github.com/dash-docs-el/counsel-dash")
23442 (commit commit)))
23443 (file-name (git-file-name name version))
23444 (sha256
23445 (base32 "1fn38vbz46ijarjvhgw7iy7dj9s2a2miy95fyy9f8b5sj8nrdfvz"))))
23446 (build-system emacs-build-system)
23447 (propagated-inputs
23448 `(("emacs-counsel" ,emacs-counsel)
23449 ("emacs-dash-docs" ,emacs-dash-docs)))
23450 (home-page "https://github.com/dash-docs-el/counsel-dash")
23451 (synopsis "Offline documentation browser for APIs using Dash docsets")
23452 (description "This package uses @code{ivy-mode} to install and navigate
23453 through Dash docsets.")
23454 (license license:expat))))
23455
23456 (define-public emacs-cascading-dir-locals
23457 (let ((release "0.1")
23458 (revision "0")
23459 (commit "efdf5e6d62b955ee0ca3c170eae1d388799f9fa0"))
23460 (package
23461 (name "emacs-cascading-dir-locals")
23462 (version (git-version release revision commit))
23463 (home-page "https://github.com/fritzgrabo/cascading-dir-locals")
23464 (source
23465 (origin
23466 (method git-fetch)
23467 (uri (git-reference
23468 (url home-page)
23469 (commit commit)))
23470 (file-name (git-file-name name version))
23471 (sha256
23472 (base32 "1jwd99kk5l588n7wwi1x3b4bgimm66x1icna3n20pwaj49kf0zy8"))))
23473 (build-system emacs-build-system)
23474 (synopsis "Apply all @file{.dir-locals.el} from root to current directory")
23475 (description
23476 "This package provides a global minor mode that changes how Emacs
23477 handles the lookup of applicable dir-locals files (@file{.dir-locals.el}):
23478 instead of starting at the directory of the visited file and moving up the
23479 directory tree only until a first dir-locals file is found, collect and apply
23480 all (!) dir-locals files found from the current directory up to the root one.
23481
23482 Values specified in files nearer to the current directory take precedence over
23483 values in files farther away from it.
23484
23485 You might want to use this to globally set dir-local variables that apply to
23486 all of your projects, then override or add variables on a per-project basis.")
23487 (license license:gpl3+))))
23488
23489 (define-public emacs-calibredb
23490 (package
23491 (name "emacs-calibredb")
23492 (version "2.8.0")
23493 (source
23494 (origin
23495 (method git-fetch)
23496 (uri (git-reference
23497 (url "https://github.com/chenyanming/calibredb.el")
23498 (commit version)))
23499 (file-name (git-file-name name version))
23500 (sha256
23501 (base32 "19gc05k2p1l8wlkrqij9cw6d61hzknd6a9n64kzlpi87cpbav3lv"))))
23502 (build-system emacs-build-system)
23503 (arguments
23504 '(#:phases
23505 (modify-phases %standard-phases
23506 (add-after 'unpack 'patch-paths
23507 (lambda* (#:key inputs #:allow-other-keys)
23508 (let ((calibre (assoc-ref inputs "calibre")))
23509 (make-file-writable "calibredb-core.el")
23510 (emacs-substitute-variables "calibredb-core.el"
23511 ("calibredb-program"
23512 (string-append calibre "/bin/calibredb"))
23513 ("calibredb-fetch-metadata-program"
23514 (string-append calibre "/bin/fetch-ebook-metadata"))))
23515 #t)))))
23516 (inputs
23517 `(("calibre" ,calibre)))
23518 (propagated-inputs
23519 `(("emacs-dash" ,emacs-dash)
23520 ("emacs-s" ,emacs-s)
23521 ("emacs-transient" ,emacs-transient)))
23522 (home-page "https://github.com/chenyanming/calibredb.el")
23523 (synopsis "Yet another calibre client for Emacs")
23524 (description "This package integrates calibre into Emacs.
23525 @enumerate
23526 @item Powerful ebook dashboard.
23527 @item Manage ebooks, actually not only ebooks!
23528 @item Manage Ebook libraries.
23529 @item Another bookmarks solution, by setting the tags and comments.
23530 @item Quick search, filter, make actions on items with ivy and helm.
23531 @item Org-ref support.
23532 @end enumerate")
23533 (license license:gpl3)))
23534
23535 (define-public emacs-el-patch
23536 (package
23537 (name "emacs-el-patch")
23538 (version "2.2.3")
23539 (source
23540 (origin
23541 (method git-fetch)
23542 (uri (git-reference
23543 (url "https://github.com/raxod502/el-patch")
23544 (commit version)))
23545 (file-name (git-file-name name version))
23546 (sha256
23547 (base32
23548 "18djslz177q6q33y82zmg2v6n9236a76kiqfvxdk4vbqzjbq82f7"))))
23549 (build-system emacs-build-system)
23550 (home-page "https://github.com/raxod502/el-patch")
23551 (synopsis "Future-proof your Emacs customizations")
23552 (description "This package allows for an alternate definition of an Elisp
23553 function to be specified and for any differences from the original definition
23554 to be examined using Ediff.")
23555 (license license:expat)))
23556
23557 (define-public emacs-info-plus
23558 (let ((commit "29811edf7a71764ac343631facc00268d9483146")
23559 (revision "3"))
23560 (package
23561 (name "emacs-info-plus")
23562 (version (git-version "0" revision commit))
23563 (source
23564 (origin
23565 (method git-fetch)
23566 (uri (git-reference
23567 (url "https://github.com/emacsmirror/info-plus")
23568 (commit commit)))
23569 (file-name (git-file-name name version))
23570 (sha256
23571 (base32
23572 "0ayq7z6dbf43vczbkjm1l976hxcfrmw45nfywbf1kjpzl3viy4gy"))))
23573 (build-system emacs-build-system)
23574 (home-page "https://github.com/emacsmirror/info-plus")
23575 (synopsis "Extensions to @file{info.el}")
23576 (description "This package extends Emacs' @file{info.el} by allowing
23577 outline-enabled table of contents, additional metadata association for Info
23578 nodes, and more.")
23579 (license license:gpl2+))))
23580
23581 (define-public emacs-eval-sexp-fu-el
23582 (package
23583 (name "emacs-eval-sexp-fu-el")
23584 (version "0.6.0")
23585 (source
23586 (origin
23587 (method git-fetch)
23588 (uri (git-reference
23589 (url "https://github.com/hchbaw/eval-sexp-fu.el")
23590 (commit (string-append "v" version))))
23591 (file-name (git-file-name name version))
23592 (sha256
23593 (base32
23594 "19rv0kwajq0j8inglp84sml23ci74wdcvp5bl6zxbw5skqpf6phr"))))
23595 (build-system emacs-build-system)
23596 (home-page "https://github.com/hchbaw/eval-sexp-fu.el")
23597 (synopsis "Enhancements for evaluating s-expressions")
23598 (description "This package provides provides variants of
23599 @code{eval-last-sexp} that work on the containing list or s-expression, as
23600 well as an option for visually flashing evaluated s-expressions.")
23601 (license license:gpl3+)))
23602
23603 (define-public emacs-counsel-tramp
23604 (package
23605 (name "emacs-counsel-tramp")
23606 (version "0.7.5")
23607 (source
23608 (origin
23609 (method git-fetch)
23610 (uri (git-reference
23611 (url "https://github.com/masasam/emacs-counsel-tramp")
23612 (commit version)))
23613 (file-name (git-file-name name version))
23614 (sha256
23615 (base32 "18qlwyjqxap2qfbz14ma6yqp4p3v4q2y8idc355s4szjdd2as2lr"))))
23616 (build-system emacs-build-system)
23617 (propagated-inputs
23618 `(("emacs-counsel" ,emacs-counsel)))
23619 (home-page "https://github.com/masasam/emacs-counsel-tramp")
23620 (synopsis "Ivy interface for TRAMP")
23621 (description
23622 "This package allows @code{ivy-mode} to display and filter SSH servers.")
23623 (license license:gpl3+)))
23624
23625 (define-public emacs-tramp
23626 (package
23627 (name "emacs-tramp")
23628 (version "2.5.0.3")
23629 (source
23630 (origin
23631 (method url-fetch)
23632 (uri (string-append "https://elpa.gnu.org/packages/"
23633 "tramp-" version ".tar"))
23634 (sha256
23635 (base32 "0c77d1ihn17lzk9jb7ss346ryprnbii1zmijl6zj0kk4lm8fpfl3"))))
23636 (build-system emacs-build-system)
23637 (arguments
23638 `(#:emacs ,emacs ;need D-Bus
23639 #:phases
23640 (modify-phases %standard-phases
23641 ;; All but one "/bin/" directory refer to remote
23642 ;; environments, which may not be Guix. Do not patch them
23643 ;; blindly. However, local encoding shell has to be patched.
23644 (replace 'patch-el-files
23645 (lambda* (#:key inputs #:allow-other-keys)
23646 (let ((sh (assoc-ref inputs "bash"))
23647 (file "tramp.el"))
23648 (emacs-substitute-variables file
23649 ("tramp-encoding-shell" (string-append sh "/bin/sh"))))
23650 #t)))))
23651 (inputs
23652 `(("bash" ,bash)))
23653 (home-page "https://savannah.gnu.org/projects/tramp")
23654 (synopsis "Remote file editing package for Emacs")
23655 (description
23656 "Tramp stands for ``Transparent Remote (file) Access, Multiple
23657 Protocol''. This package provides remote file editing, using
23658 a combination of @command{rsh} and @command{rcp} or other work-alike
23659 programs, such as @command{ssh} and @command{scp}.")
23660 (license license:gpl3+)))
23661
23662 (define-public emacs-tramp-auto-auth
23663 (let ((commit "f15a12dfab651aff60f4a9d70f868030a12344ac"))
23664 (package
23665 (name "emacs-tramp-auto-auth")
23666 (version (git-version "20191027" "1" commit))
23667 (source
23668 (origin
23669 (method git-fetch)
23670 (uri (git-reference
23671 (url "https://github.com/oitofelix/tramp-auto-auth")
23672 (commit commit)))
23673 (file-name (git-file-name name version))
23674 (sha256
23675 (base32
23676 "09nkjgwppjfgv04q0gv468qihgx4y3p39lpwbd6vbh3wgbccas9k"))))
23677 (build-system emacs-build-system)
23678 (home-page "https://github.com/oitofelix/tramp-auto-auth")
23679 (synopsis "TRAMP automatic authentication library")
23680 (description "This package provides @code{tramp-auto-auth-mode} Emacs
23681 global minor mode whose purpose is to automatically feed TRAMP sub-processes
23682 with passwords for paths matching regexps.")
23683 (license license:gpl3+))))
23684
23685 (define-public emacs-eacl
23686 (package
23687 (name "emacs-eacl")
23688 (version "2.0.4")
23689 (source
23690 (origin
23691 (method git-fetch)
23692 (uri (git-reference
23693 (url "https://github.com/redguardtoo/eacl")
23694 (commit version)))
23695 (file-name (git-file-name name version))
23696 (sha256
23697 (base32
23698 "0fxb2lv4cqdjxarqhzjgfc43sncc1c6m96n0aflm8l4gdmm090kq"))))
23699 (build-system emacs-build-system)
23700 (propagated-inputs
23701 `(("emacs-ivy" ,emacs-ivy)))
23702 (home-page "https://github.com/redguardtoo/eacl")
23703 (synopsis "Auto-complete lines by using @code{grep} on a project")
23704 (description "This package provides auto-completion commands for single
23705 and multiple lines of code in a project.")
23706 (license license:gpl3+)))
23707
23708 (define-public emacs-semantic-refactor
23709 ;; The last release, 0.5, was made on 2015-07-26 and there have been 47
23710 ;; commits since then.
23711 (let ((commit "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5"))
23712 (package
23713 (name "emacs-semantic-refactor")
23714 (version (git-version "0.5" "1" commit))
23715 (source
23716 (origin
23717 (method git-fetch)
23718 (uri (git-reference
23719 (url "https://github.com/tuhdo/semantic-refactor")
23720 (commit commit)))
23721 (file-name (git-file-name name version))
23722 (sha256
23723 (base32
23724 "1lyz3zjkx2csh0xdy1zpx8s32qp1p3sig57mwi9xhgpqjyf0axmb"))))
23725 (build-system emacs-build-system)
23726 (home-page "https://github.com/tuhdo/semantic-refactor")
23727 (synopsis "Refactoring tool for C/C++ and Lisp dialects")
23728 (description "This package provides a refactoring tool based on the
23729 Emacs Semantic parser framework. For C and C++ it supports operations such as:
23730
23731 @enumerate
23732 @item Generating class implementations
23733 @item Generating function prototypes
23734 @item Converting functions to function pointers
23735 @item Moving semantic units
23736 @item etc...
23737 @end enumerate
23738
23739 For Lisp dialects like Clojure, ELisp, and Scheme, it supports operations such
23740 as:
23741
23742 @enumerate
23743 @item Formatting the whole buffer
23744 @item Converting sexpressions to one or multiple lines
23745 @item etc...
23746 @end enumerate\n")
23747 (license license:gpl3+))))
23748
23749 (define-public emacs-nhexl-mode
23750 (package
23751 (name "emacs-nhexl-mode")
23752 (version "1.5")
23753 (source
23754 (origin
23755 (method url-fetch)
23756 (uri (string-append "https://elpa.gnu.org/packages/"
23757 "nhexl-mode-" version ".el"))
23758 (sha256
23759 (base32 "0qvxfg7sv4iqyjxzaim6b4v9k5hav36qd4vkf9jwzw6p5fri8w8d"))))
23760 (build-system emacs-build-system)
23761 (home-page "https://elpa.gnu.org/packages/nhexl-mode.html")
23762 (synopsis "Minor mode to edit files via hex-dump format")
23763 (description
23764 "This package implements NHexl mode, a minor mode for editing files
23765 in hex dump format. The mode command is called @command{nhexl-mode}.
23766
23767 This minor mode implements similar functionality to @command{hexl-mode},
23768 but using a different implementation technique, which makes it
23769 usable as a \"plain\" minor mode. It works on any buffer, and does
23770 not mess with the undo log or with the major mode.
23771
23772 It also comes with:
23773
23774 @itemize
23775 @item @command{nhexl-nibble-edit-mode}: a \"nibble editor\" minor mode, where
23776 the cursor pretends to advance by nibbles (4-bit) and the self-insertion keys
23777 (which only work for hex-digits) will only modify the nibble under point.
23778 @item @command{nhexl-overwrite-only-mode}: a minor mode to try and avoid
23779 moving text. In this minor mode, not only self-inserting keys overwrite
23780 existing text, but commands like `yank' and @command{kill-region} as well.
23781 @item It overrides @code{C-u} to use hexadecimal, so you can do @code{C-u a 4
23782 C-f} to advance by #xa4 characters.
23783 @end itemize")
23784 (license license:gpl3+)))
23785
23786 (define-public emacs-helm-wikipedia
23787 (let ((commit "126f044e0a0e1432e0791c33ce2a41875d704a9b"))
23788 (package
23789 (name "emacs-helm-wikipedia")
23790 (version (git-version "0.0.0" "1" commit))
23791 (home-page "https://github.com/emacs-helm/helm-wikipedia/")
23792 (source
23793 (origin
23794 (method git-fetch)
23795 (uri (git-reference
23796 (url home-page)
23797 (commit commit)))
23798 (file-name (git-file-name name version))
23799 (sha256
23800 (base32
23801 "148a5xsnbsiddhf9cl7yxdk41lrv38h0pip91kcflw9d7l0dp7pr"))))
23802 (build-system emacs-build-system)
23803 (inputs
23804 `(("helm" ,emacs-helm)))
23805 (synopsis "Search suggestions and article extracts from Wikipedia for Emacs")
23806 (description
23807 "This package provides an Emacs Helm interface for search suggestions
23808 and article extracts for Wikipedia.")
23809 (license license:gpl3+))))
23810
23811 (define-public emacs-webfeeder
23812 (package
23813 (name "emacs-webfeeder")
23814 (version "1.1.1")
23815 (source
23816 (origin
23817 (method url-fetch)
23818 (uri (string-append
23819 "https://elpa.gnu.org/packages/webfeeder-"
23820 version
23821 ".tar"))
23822 (sha256
23823 (base32
23824 "09caj12hfdfhlbcsmjyhw728w1f7yq13hdslh793yvfqv83ipvc4"))))
23825 (build-system emacs-build-system)
23826 (home-page "https://gitlab.com/Ambrevar/emacs-webfeeder")
23827 (synopsis "Build RSS and Atom webfeeds from HTML files")
23828 (description
23829 "Webfeeder is an Emacs library to generate RSS and Atom feeds from HTML
23830 files. The various elements of the HTML input are parsed with customizable
23831 functions (e.g. @code{webfeeder-title-function}).")
23832 (license license:gpl3+)))
23833
23834 (define-public emacs-evil-numbers
23835 (let ((commit "6ea1c8c3a9b37bed63d48f1128e9a4910e68187e"))
23836 (package
23837 (name "emacs-evil-numbers")
23838 (version (git-version "0.4" "1" commit))
23839 (source (origin
23840 (method git-fetch)
23841 (uri (git-reference
23842 (url "https://github.com/dieggsy/evil-numbers")
23843 (commit commit)))
23844 (file-name (git-file-name name version))
23845 (sha256
23846 (base32
23847 "1aq95hj8x13py0pwsnc6wvd8cc5yv5qin8ym9js42y5966vwj4np"))))
23848 (build-system emacs-build-system)
23849 (home-page "https://github.com/dieggsy/evil-numbers")
23850 (synopsis "Increment and decrement numbers in Emacs")
23851 (description "This package increments and decrements binary, octal,
23852 decimal and hex literals. It works like C-a/C-x in Vim, i.e. searches for
23853 number up to EOL and then increments or decrements and keeps zero padding up
23854 (unlike in Vim). When a region is active, as in Evil's visual mode, all the
23855 numbers within that region will be incremented/decremented (unlike in Vim).
23856
23857 It is a fork of https://github.com/cofi/evil-numbers, which is unmaintained.")
23858 (license license:gpl3+))))
23859
23860 (define-public emacs-rotate-text
23861 (package
23862 (name "emacs-rotate-text")
23863 (version "0.1")
23864 (source (origin
23865 (method git-fetch)
23866 (uri (git-reference
23867 (url "https://github.com/nschum/rotate-text.el")
23868 (commit version)))
23869 (file-name (git-file-name name version))
23870 (sha256
23871 (base32
23872 "1cgxv4aibkvv6lnssynn0438a615fz3zq8hg9sb0lhfgsr99pxln"))))
23873 (build-system emacs-build-system)
23874 (home-page "https://nschum.de/src/emacs/rotate-text/")
23875 (synopsis "Cycle through words, symbols and patterns in Emacs")
23876 (description "@code{rotate-text} allows you rotate to commonly
23877 interchanged text with a single keystroke. For example, you can toggle
23878 between \"frame-width\" and \"frame-height\", between \"public\",
23879 \"protected\" and \"private\" and between \"variable1\", \"variable2\" through
23880 \"variableN\".")
23881 (license license:gpl2+)))
23882
23883 (define-public emacs-ediprolog
23884 (package
23885 (name "emacs-ediprolog")
23886 (version "2.1")
23887 (source
23888 (origin
23889 (method url-fetch)
23890 (uri (string-append
23891 "https://elpa.gnu.org/packages/ediprolog-"
23892 version
23893 ".el"))
23894 (sha256
23895 (base32 "1piimsmzpirw8plrpy79xbpnvynzzhcxi31g6lg6is8gridiv3md"))))
23896 (build-system emacs-build-system)
23897 (home-page "https://elpa.gnu.org/packages/ediprolog.html")
23898 (synopsis "Emacs Does Interactive Prolog")
23899 (description "This package provides a major mode that let the user
23900 interact with SWI-Prolog in all buffers. For instance, one can consult Prolog
23901 programs and evaluate embedded queries. This mode is focused on the command
23902 @code{ediprolog-dwim} (Do What I Mean) which is supposed to, depending on the
23903 context, carry out the appropriate action.")
23904 (license license:gpl3+)))
23905
23906 (define-public emacs-evil-cleverparens
23907 (let ((commit "8c45879d49bfa6d4e414b6c1df700a4a51cbb869")
23908 (revision "1"))
23909 (package
23910 (name "emacs-evil-cleverparens")
23911 (version (git-version "2017-07-17" revision commit))
23912 (source (origin
23913 (method git-fetch)
23914 (uri (git-reference
23915 (url "https://github.com/luxbock/evil-cleverparens")
23916 (commit commit)))
23917 (sha256 (base32 "0lhnybpnk4n2yhlcnj9zxn0vi5hpjfaqfhvyfy7ckzz74g8v7iyw"))
23918 (file-name (git-file-name name version))))
23919 (build-system emacs-build-system)
23920 (propagated-inputs
23921 `(("emacs-evil" ,emacs-evil)
23922 ("emacs-paredit" ,emacs-paredit)
23923 ("emacs-smartparens" ,emacs-smartparens)))
23924 (home-page "https://github.com/luxbock/evil-cleverparens")
23925 (synopsis "Emacs modal editing optimized for editing Lisp")
23926 (description "@code{evil-cleverparens} remaps Evil keybindings to allow
23927 modal editing with screwing up the structure of Lisp code. Alternatives for
23928 verb commands which would are normally destructive (such as deletion) are
23929 provided. Those alternative commands are and bound by default to their
23930 corresponding Evil keys.")
23931 (license license:expat))))
23932
23933 (define-public emacs-evil-traces
23934 (let ((commit "1931e3ea2c64b4aec393a9c25063c330deff55e3")
23935 (revision "2"))
23936 (package
23937 (name "emacs-evil-traces")
23938 (version (git-version "0.0.1" revision commit))
23939 (source (origin
23940 (method git-fetch)
23941 (uri (git-reference
23942 (url "https://github.com/mamapanda/evil-traces")
23943 (commit commit)))
23944 (file-name (git-file-name name version))
23945 (sha256
23946 (base32
23947 "12p9lfxscs182vbd4dy0m5gacs3d4kyprbz5yndpwvl8g2qsqplz"))))
23948 (build-system emacs-build-system)
23949 (propagated-inputs
23950 `(("emacs-evil" ,emacs-evil)))
23951 (arguments
23952 `(#:phases
23953 (modify-phases %standard-phases
23954 (add-after 'unpack 'set-shell
23955 ;; Setting the SHELL environment variable is required for the tests
23956 ;; to find sh.
23957 (lambda _
23958 (setenv "SHELL" (which "sh"))
23959 #t)))
23960 #:tests? #t
23961 #:test-command '("make" "test")))
23962 (home-page "https://github.com/mamapanda/evil-traces")
23963 (synopsis "Visual hints for @code{evil-ex}")
23964 (description "This package adds visual hints to certain @code{ex}
23965 commands in @code{evil-mode}.")
23966 (license license:gpl3+))))
23967
23968 (define-public emacs-evil-tmux-navigator
23969 (package
23970 (name "emacs-evil-tmux-navigator")
23971 (version "0.1.5")
23972 (source
23973 (origin
23974 (method git-fetch)
23975 (uri
23976 (git-reference
23977 (url "https://github.com/keith/evil-tmux-navigator")
23978 (commit version)))
23979 (file-name (git-file-name name version))
23980 (sha256
23981 (base32
23982 "1na44rbc03sr5b4z9pvnps6n4nmrqcz58nywix9825l74a419ijx"))))
23983 (propagated-inputs
23984 `(("emacs-evil" ,emacs-evil)))
23985 (build-system emacs-build-system)
23986 (home-page "https://github.com/keith/evil-tmux-navigator")
23987 (synopsis
23988 "Navigate seamlessly between emacs windows and tmux panes")
23989 (description
23990 "This package lets you use C-h, C-j, C-k and C-l to navigate between
23991 Emacs windows and tmux panes.")
23992 (license license:expat)))
23993
23994 (define-public emacs-xclip
23995 (package
23996 (name "emacs-xclip")
23997 (version "1.10")
23998 (source
23999 (origin
24000 (method url-fetch)
24001 (uri (string-append "https://elpa.gnu.org/packages/"
24002 "xclip-" version ".el"))
24003 (sha256
24004 (base32 "0i3i9kwfg8qmhcmqhhnrb1kljgwkccv63s9q1mjwqfjldyfh8j8i"))))
24005 (build-system emacs-build-system)
24006 (home-page "http://elpa.gnu.org/packages/xclip.html")
24007 (synopsis "Copy and paste GUI clipboard from Emacs in text terminal")
24008 (description
24009 "This package allows Emacs to copy to and paste from the GUI clipboard
24010 when running in text terminal.
24011
24012 It can use external command-line tools for that, e.g., @command{xclip} or
24013 @command{xsel}, which you may need to install in order for the package to
24014 work.")
24015 (license license:gpl3+)))
24016
24017 (define-public emacs-xterm-color
24018 (package
24019 (name "emacs-xterm-color")
24020 (version "2.0")
24021 (source
24022 (origin
24023 (method git-fetch)
24024 (uri (git-reference
24025 (url "https://github.com/atomontage/xterm-color")
24026 (commit version)))
24027 (file-name (git-file-name name version))
24028 (sha256
24029 (base32 "127lq50q62x06kd1xrf8lyc4rkqbfhfy86gsx1x4x169am2xk397"))))
24030 (build-system emacs-build-system)
24031 (home-page "https://github.com/atomontage/xterm-color")
24032 (synopsis "ANSI & xterm-256 color text property translator for Emacs")
24033 (description "@code{xterm-color.el} is an ANSI control sequence to
24034 text-property translator.")
24035 (license license:bsd-2)))
24036
24037 (define-public emacs-org-noter
24038 (package
24039 (name "emacs-org-noter")
24040 (version "1.4.1")
24041 (source
24042 (origin
24043 (method git-fetch)
24044 (uri (git-reference
24045 (url "https://github.com/weirdNox/org-noter")
24046 (commit version)))
24047 (file-name (git-file-name name version))
24048 (sha256
24049 (base32
24050 "1vwfpdi7hfkxx4vi0cwg7rvqby3i0mymzdkyzrqzv30dazmcjpag"))))
24051 (build-system emacs-build-system)
24052 (propagated-inputs `(("emacs-org" ,emacs-org)))
24053 (home-page "https://github.com/weirdNox/org-noter")
24054 (synopsis "Synchronized, Org-mode, document annotator")
24055 (description
24056 "This package lets you create notes that are kept in sync when you
24057 scroll through the document, but that are external to it---the notes
24058 themselves live in an Org-mode file. As such, this leverages the power of
24059 Org-mode (the notes may have outlines, latex fragments, babel, etc...) while
24060 acting like notes that are made @emph{in} the document.")
24061 (license license:gpl3+)))
24062
24063 (define-public emacs-org-redmine
24064 (let ((commit "e77d013bc3784947c46a5c53f03cd7d3c68552fc"))
24065 (package
24066 (name "emacs-org-redmine")
24067 (version (git-version "0.1" "1" commit))
24068 (source (origin
24069 (method git-fetch)
24070 (uri (git-reference
24071 (url "https://github.com/gongo/org-redmine")
24072 (commit commit)))
24073 (file-name (git-file-name name version))
24074 (sha256
24075 (base32
24076 "06miv3mf2a39vkf6mmm5ssc47inqh7dq82khsyc03anz4d4lj822"))))
24077 (build-system emacs-build-system)
24078 (home-page "https://github.com/gongo/org-redmine/")
24079 (synopsis "Redmine tools using Emacs")
24080 (description "This program provides an Emacs client for Redmine.")
24081 (license license:gpl3+))))
24082
24083 (define-public emacs-multi-term
24084 ;; No upstream release. Extract version from main file.
24085 (let ((commit "017c77c550115936860e2ea71b88e585371475d5")
24086 (revision "0"))
24087 (package
24088 (name "emacs-multi-term")
24089 (version (git-version "1.5" revision commit))
24090 (source
24091 (origin
24092 (method git-fetch)
24093 (uri (git-reference
24094 (url "https://github.com/manateelazycat/multi-term")
24095 (commit commit)))
24096 (file-name (git-file-name name version))
24097 (sha256
24098 (base32 "043dqd8i8h6hbcg11rzprxin2yq5lb902zlrb7mxah44vyp8wrdi"))))
24099 (build-system emacs-build-system)
24100 (inputs
24101 `(("zsh" ,zsh)))
24102 (home-page "https://github.com/manateelazycat/multi-term")
24103 (synopsis "Manage multiple terminal buffers in Emacs")
24104 (description
24105 "This package enhances @code{term.el} with the following features:
24106
24107 @enumerate
24108 @item Functions to switch between multiple terminal buffers
24109 @item List of keys to be intercepted by @code{emacs-multi-term} instead of by
24110 the underlying terminal
24111 @item Kills the unused buffer left after exiting the terminal
24112 @item Kills the running sub-processes along with the terminal when killing the
24113 it forcibly
24114 @item Dedicated window for debugging program.
24115 @end enumerate")
24116 (license license:gpl3+))))
24117
24118 (define-public emacs-elpher
24119 (package
24120 (name "emacs-elpher")
24121 (version "2.10.2")
24122 (source
24123 (origin
24124 (method git-fetch)
24125 (uri (git-reference
24126 (url "git://thelambdalab.xyz/elpher.git")
24127 (commit (string-append "v" version))))
24128 (file-name (git-file-name name version))
24129 (sha256
24130 (base32 "0xqiisirpvw4ka9417pq4r73x937wl3qbf8cpn2i03akm8d58smd"))))
24131 (build-system emacs-build-system)
24132 (native-inputs
24133 `(("texinfo" ,texinfo)))
24134 (arguments
24135 `(#:phases
24136 (modify-phases %standard-phases
24137 (add-before 'install 'build-doc
24138 (lambda _
24139 (invoke "makeinfo" "elpher.texi"))))))
24140 (home-page "gopher://thelambdalab.xyz/1/projects/elpher/")
24141 (synopsis "Gopher and gemini client for Emacs")
24142 (description "Elpher is a full-featured gopher and gemini client for
24143 Emacs. Its features include intuitive keyboard and mouse-driven browsing,
24144 out-of-the-box compatibility with evil-mode, clickable links in plain text,
24145 caching of visited sites, pleasant and configurable visualization of Gopher
24146 directories, direct visualisation of image files, jumping directly to links by
24147 name (with autocompletion), a simple bookmark management system and
24148 connections using TLS encryption.")
24149 (license license:gpl3+)))
24150
24151 (define-public emacs-zerodark-theme
24152 (package
24153 (name "emacs-zerodark-theme")
24154 (version "4.7")
24155 (source
24156 (origin
24157 (method git-fetch)
24158 (uri (git-reference
24159 (url "https://github.com/NicolasPetton/zerodark-theme")
24160 (commit version)))
24161 (file-name (git-file-name name version))
24162 (sha256
24163 (base32
24164 "1r5s4mvwlxsb9ylr6dkfxpm1l0pbqkmn5gwjdcfk762cnxlam8cm"))))
24165 (build-system emacs-build-system)
24166 (propagated-inputs
24167 `(("emacs-flycheck" ,emacs-flycheck)
24168 ("emacs-all-the-icons" ,emacs-all-the-icons)))
24169 (home-page
24170 "https://gitlab.petton.fr/nico/zerodark-theme")
24171 (synopsis
24172 "Dark, medium contrast theme for Emacs")
24173 (description
24174 "Zerodark is a dark theme inspired from One Dark and Niflheim.
24175 An optional mode-line format can be enabled with @code{zerodark-setup-modeline-format}.")
24176 (license license:gpl3+)))
24177
24178 (define-public emacs-gnus-alias
24179 (package
24180 (name "emacs-gnus-alias")
24181 (version "20150316")
24182 (source (origin
24183 (method git-fetch)
24184 (uri (git-reference
24185 (url "https://github.com/hexmode/gnus-alias")
24186 (commit "9447d3ccb4c0e75d0468899cccff7aa249657bac")))
24187 (file-name (git-file-name name version))
24188 (sha256
24189 (base32
24190 "1i278npayv3kfxxd1ypi9n83q5l402sbc1zkm11pf8g006ifqsp4"))))
24191 (build-system emacs-build-system)
24192 (home-page "https://melpa.org/#/gnus-alias")
24193 (synopsis "Alternative to @code{gnus-posting-styles}")
24194 (description "This Emacs add-on provides a simple mechanism to switch
24195 Identities when using a @code{message-mode} or a @code{message-mode} derived
24196 mode. Identities can include @code{From} and @code{Organisation} headers,
24197 extra headers, body and signature. Other features include:
24198
24199 @itemize
24200 @item Switch Identities in a message buffer.
24201 @item Access original message to help determine Identity of the followup/reply
24202 message.
24203 @item Act on a forwarded message as if it were a message being replied to.
24204 @item Start a new message with a given Identity pre-selected.
24205 @end itemize")
24206 (license license:gpl2+)))
24207
24208 (define-public emacs-ox-epub
24209 (package
24210 (name "emacs-ox-epub")
24211 (version "0.3")
24212 (source (origin
24213 (method git-fetch)
24214 (uri (git-reference
24215 (url "https://github.com/ofosos/ox-epub")
24216 (commit (string-append "v" version))))
24217 (file-name (git-file-name name version))
24218 (sha256
24219 (base32
24220 "057sqmvm8hwkhcg3yd4i8zz2xlqsqrpyiklyiw750s3i5mxdn0k7"))))
24221 (build-system emacs-build-system)
24222 (home-page "https://github.com/ofosos/ox-epub")
24223 (synopsis "Export org mode projects to EPUB")
24224 (description "@code{ox-epub} extends the (X)HTML exporter to generate
24225 @code{.epub} files directly from OrgMode. This will export EPUB version 2,
24226 which should give broad compatibility. It should also be relatiely easy to
24227 convert the resulting @code{.epub} to a @code{.mobi} file. Needs a working
24228 zip utility (default is @code{zip}).")
24229 (license license:gpl3+)))
24230
24231 (define-public emacs-ox-gemini
24232 ;; No releases yet
24233 (let ((commit "d88c10bcb10fc463fa5a2f6e29c8c94b75a314c0")
24234 (revision "0"))
24235 (package
24236 (name "emacs-ox-gemini")
24237 (version (git-version "0" revision commit))
24238 (source
24239 (origin
24240 (method git-fetch)
24241 (uri (git-reference
24242 (url "https://git.sr.ht/~abrahms/ox-gemini")
24243 (commit commit)))
24244 (file-name (git-file-name name version))
24245 (sha256
24246 (base32 "1f8kbg5vjd1k7fak3v56b77yk612j6vmzx4xzx3m2vq3f0nyxq29"))))
24247 (build-system emacs-build-system)
24248 (home-page "https://sr.ht/~abrahms/ox-gemini")
24249 (synopsis "Export Org files in Gemini format")
24250 (description
24251 "@code{ox-gemini} adds support for exporting Org files in Gemini
24252 format. Many things were taken from the ASCII exporter, from which
24253 @code{ox-gemini} derives.")
24254 (license license:gpl3+))))
24255
24256 (define-public emacs-ox-haunt
24257 (package
24258 (name "emacs-ox-haunt")
24259 (version "0.2")
24260 (source
24261 (origin
24262 (method git-fetch)
24263 (uri (git-reference
24264 (url "https://git.sr.ht/~jakob/ox-haunt")
24265 (commit (string-append "v" version))))
24266 (file-name (git-file-name name version))
24267 (sha256
24268 (base32 "1rs1n228c2fmpvirc57bqgf2616ijpphkgf4w9ln5j46snmkam25"))))
24269 (build-system emacs-build-system)
24270 (home-page "https://git.sr.ht/~jakob/ox-haunt")
24271 (synopsis "Export Org files to HTML appropriate for Haunt")
24272 (description
24273 "This library implements an HTML back-end for the Org generic exporter,
24274 producing output appropriate for Haunt's @code{html-reader}.")
24275 (license license:gpl3+)))
24276
24277 (define-public emacs-ox-hugo
24278 (package
24279 (name "emacs-ox-hugo")
24280 (version "0.8")
24281 (source
24282 (origin
24283 (method git-fetch)
24284 (uri (git-reference
24285 (url "https://github.com/kaushalmodi/ox-hugo")
24286 (commit (string-append "v" version))))
24287 (file-name (git-file-name name version))
24288 (sha256
24289 (base32
24290 "11h464cyc28ld0b0zridgm4drydc1qjxbm1y24zrwlkyqqjk6yr7"))))
24291 (build-system emacs-build-system)
24292 (home-page "https://ox-hugo.scripter.co")
24293 (synopsis "Hugo markdown back-end for Org export engine")
24294 (description
24295 "Ox-hugo is an Org exporter backend that exports Org to Hugo-compatible
24296 Markdown, Blackfriday, and also generates the front-matter in TOML or YAML
24297 format.")
24298 (license license:gpl3+)))
24299
24300 (define-public emacs-ox-pandoc
24301 (package
24302 (name "emacs-ox-pandoc")
24303 (version "20180510")
24304 (source (origin
24305 (method git-fetch)
24306 (uri (git-reference
24307 (url "https://github.com/kawabata/ox-pandoc")
24308 (commit "aa37dc7e94213d4ebedb85c384c1ba35007da18e")))
24309 (file-name (git-file-name name version))
24310 (sha256
24311 (base32
24312 "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"))))
24313 (build-system emacs-build-system)
24314 (inputs
24315 `(("pandoc" ,pandoc)))
24316 (propagated-inputs
24317 `(("emacs-dash" ,emacs-dash)
24318 ("emacs-ht" ,emacs-ht)))
24319 (home-page "https://github.com/kawabata/ox-pandoc")
24320 (synopsis "Org exporter for Pandoc")
24321 (description "@code{ox-pandoc} is an exporter for converting Org-mode
24322 files to numerous other formats via Pandoc.")
24323 (license license:gpl3+)))
24324
24325 (define-public emacs-wc-mode
24326 (package
24327 (name "emacs-wc-mode")
24328 (version "1.4")
24329 (source (origin
24330 (method git-fetch)
24331 (uri (git-reference
24332 (url "https://github.com/bnbeckwith/wc-mode")
24333 (commit (string-append "v" version))))
24334 (file-name (git-file-name name version))
24335 (sha256
24336 (base32
24337 "01icd63mb2hg1bgbmkq3jm8kc3ic8whfy2awcgx53zqkmyz87qxc"))))
24338 (build-system emacs-build-system)
24339 (home-page "https://github.com/bnbeckwith/wc-mode")
24340 (synopsis "Running word count with goals (minor mode)")
24341 (description "@code{wc-mode} is a minor mode, providing a ‘wc’ function
24342 for Emacs buffers as well as a modeline addition with live word, line and
24343 character counts. Additionally, a user can set specific goals for adding or
24344 deleting words. These goals were partly inspired by 750words.com where the
24345 goal of the site is to encourage writing by setting a goal of 750 words at a
24346 time.")
24347 (license license:gpl3+)))
24348
24349 (define-public emacs-mastodon
24350 (package
24351 (name "emacs-mastodon")
24352 (version "0.9.0")
24353 (source (origin
24354 (method git-fetch)
24355 (uri (git-reference
24356 (url "https://github.com/jdenen/mastodon.el")
24357 (commit version)))
24358 (file-name (git-file-name name version))
24359 (sha256
24360 (base32
24361 "0hwax6y9dghqwsbnb6f1bnc7gh8xsh5cvcnayk2sn49x8b0zi5h1"))))
24362 (build-system emacs-build-system)
24363 (arguments
24364 `(#:phases
24365 (modify-phases %standard-phases
24366 ;; Move the source files to the top level, which is included in
24367 ;; the EMACSLOADPATH.
24368 (add-after 'unpack 'move-source-files
24369 (lambda _
24370 (let ((el-files (find-files "./lisp" ".*\\.el$")))
24371 (for-each (lambda (f)
24372 (rename-file f (basename f)))
24373 el-files))
24374 #t)))))
24375 (home-page "https://github.com/jdenen/mastodon.el")
24376 (synopsis "Emacs client for Mastodon")
24377 (description "@code{mastodon.el} is an Emacs client for Mastodon, the
24378 federated microblogging social network.")
24379 (license license:gpl3+)))
24380
24381 (define-public emacs-ebdb
24382 (package
24383 (name "emacs-ebdb")
24384 (version "0.6.22")
24385 (source
24386 (origin
24387 (method url-fetch)
24388 (uri (string-append "https://elpa.gnu.org/packages/"
24389 "ebdb-" version ".tar"))
24390 (sha256
24391 (base32 "0dljl21n6508c7ash7l6zgxhpn2wdfzga0va63d4k9nwnqmkvsgz"))))
24392 (build-system emacs-build-system)
24393 (home-page "https://github.com/girzel/ebdb")
24394 (synopsis "EIEIO port of BBDB, Emacs's contact-management package")
24395 (description
24396 "EBDB is a contact management/addressbook package for Emacs. It's
24397 a re-write of the Insidious Big Brother Database (BBDB) using Emacs
24398 Lisp's (relatively new) EIEIO object oriented libraries.")
24399 (license license:gpl3+)))
24400
24401 (define-public emacs-refactor
24402 (package
24403 (name "emacs-refactor")
24404 (version "0.4")
24405 (source (origin
24406 (method git-fetch)
24407 (uri (git-reference
24408 (url "https://github.com/Wilfred/emacs-refactor")
24409 (commit version)))
24410 (file-name (git-file-name name version))
24411 (sha256
24412 (base32
24413 "1yky7vlv91501xb43xk19rr8mxlvrsxhawsc98jivf64nad5dqay"))))
24414 (build-system emacs-build-system)
24415 (propagated-inputs
24416 `(("emacs-dash" ,emacs-dash)
24417 ("emacs-s" ,emacs-s)
24418 ("emacs-popup" ,emacs-popup)
24419 ("emacs-list-utils" ,emacs-list-utils)
24420 ("emacs-iedit" ,emacs-iedit)))
24421 (home-page "https://github.com/Wilfred/emacs-refactor/")
24422 (synopsis "Language-specific refactoring in Emacs")
24423 (description "Emacs Refactor (EMR) is a framework for providing
24424 language-specific refactoring in Emacs. It includes refactoring commands for
24425 a variety of languages, including elisp itself.")
24426 (license license:gpl3+)))
24427
24428 (define-public emacs-flyspell-correct
24429 (package
24430 (name "emacs-flyspell-correct")
24431 (version "0.6.1")
24432 (source
24433 (origin
24434 (method git-fetch)
24435 (uri (git-reference
24436 (url "https://github.com/d12frosted/flyspell-correct")
24437 (commit (string-append "v" version))))
24438 (file-name (git-file-name name version))
24439 (sha256
24440 (base32 "1m5da6r82hk0c2x3lw03qnkk79sx67875afw0ybblj3cmfk6szd1"))))
24441 (build-system emacs-build-system)
24442 ;; XXX: emacs-avy-menu is not packaged, so we ignore the file below.
24443 (arguments
24444 `(#:exclude '("flyspell-correct-avy-menu\\.el")))
24445 (propagated-inputs
24446 `(("emacs-helm" ,emacs-helm)
24447 ("emacs-ivy" ,emacs-ivy)
24448 ("emacs-popup" ,emacs-popup)))
24449 (home-page "https://github.com/d12frosted/flyspell-correct")
24450 (synopsis "Correcting words with flyspell via custom interfaces")
24451 (description
24452 "This package provides functionality for correcting words via custom
24453 interfaces. Several interfaces are supported beside the classic Ido: Popup,
24454 Helm and Ivy.")
24455 (license license:gpl3+)))
24456
24457 (define-public emacs-org-emms
24458 (let ((commit "07a8917f3d628c32e5de1dbd118ac08203772533")
24459 (revision "1"))
24460 (package
24461 (name "emacs-org-emms")
24462 (version
24463 (git-version "0.1" revision commit))
24464 (source
24465 (origin
24466 (method git-fetch)
24467 (uri (git-reference
24468 (url "https://gitlab.com/jagrg/org-emms.git")
24469 (commit commit)))
24470 (file-name (git-file-name name commit))
24471 (sha256
24472 (base32
24473 "1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d"))))
24474 (build-system emacs-build-system)
24475 (propagated-inputs
24476 `(("emms" ,emacs-emms)
24477 ("emacs-org" ,emacs-org)))
24478 (home-page "https://gitlab.com/jagrg/org-emms")
24479 (synopsis "Play multimedia files from org-mode")
24480 (description
24481 "This package provides a new org link type for playing back multimedia
24482 files from org-mode using EMMS, The Emacs Multimedia System. If the link
24483 contains a track position, playback will start at the specified position.")
24484 (license license:gpl3+))))
24485
24486 (define-public emacs-org-jira
24487 (package
24488 (name "emacs-org-jira")
24489 (version "4.3.2")
24490 (source
24491 (origin
24492 (method git-fetch)
24493 (uri (git-reference
24494 (url "https://github.com/ahungry/org-jira")
24495 (commit version)))
24496 (file-name (git-file-name name version))
24497 (sha256
24498 (base32
24499 "1hsfkkm3ykdf7n8a6k0mpzilhjpy7vllwrl2s4rfb9mhnaq5yb8y"))))
24500 (build-system emacs-build-system)
24501 (propagated-inputs
24502 `(("emacs-request" ,emacs-request)
24503 ("emacs-s" ,emacs-s)
24504 ("emacs-dash" ,emacs-dash)
24505 ("emacs-org" ,emacs-org)))
24506 (home-page "https://github.com/ahungry/org-jira")
24507 (synopsis "Syncing between Jira and Org-mode")
24508 (description
24509 "This package provides an extension to org-mode for syncing issues with
24510 JIRA issue servers.")
24511 (license license:gpl3+)))
24512
24513 (define-public emacs-slime-volleyball
24514 (package
24515 (name "emacs-slime-volleyball")
24516 (version "1.1.7")
24517 (source
24518 (origin
24519 (method url-fetch)
24520 (uri (string-append "https://elpa.gnu.org/packages/"
24521 "slime-volleyball-" version ".tar"))
24522 (sha256
24523 (base32 "0dl1x0ghfwg4vv2asz3g4plghjxpzd56fyw09vsa3s3k9xsmy3yy"))))
24524 (build-system emacs-build-system)
24525 (arguments '(#:include '("\\.el$" "\\.svg$" "\\.b64$" "slime\\.el\\.gz$")))
24526 (home-page "http://elpa.gnu.org/packages/slime-volleyball.html")
24527 (synopsis "SVG slime volleyball game")
24528 (description
24529 "Emacs Slime Volleyball is a volleyball game. Win points by
24530 making the ball land on your opponent's side of the court. The first
24531 player to five points wins! You can play against a friend, or
24532 challenge the three computer opponents in one player mode. You can
24533 even train opponent slimes.")
24534 (license license:gpl3+)))
24535
24536 (define-public emacs-systemd-mode
24537 (package
24538 (name "emacs-systemd-mode")
24539 (version "1.6")
24540 (source (origin
24541 (method git-fetch)
24542 (uri (git-reference
24543 (url "https://github.com/holomorph/systemd-mode")
24544 (commit (string-append "v" version))))
24545 (file-name (git-file-name name version))
24546 (sha256
24547 (base32
24548 "0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq"))))
24549 (build-system emacs-build-system)
24550 (arguments '(#:include '("\\.el$" "\\.txt$")))
24551 (home-page "https://github.com/holomorph/systemd-mode")
24552 (synopsis
24553 "Major mode for editing systemd units")
24554 (description
24555 "Major mode for editing systemd units in GNU Emacs.")
24556 (license license:gpl3+)))
24557
24558 (define-public emacs-ssh-config-mode
24559 (let ((commit "4c1dfa57d452cb5654453bf186c8ff63e1e71b56")
24560 (revision "1"))
24561 (package
24562 (name "emacs-ssh-config-mode")
24563 (version (git-version "8.0" revision commit))
24564 (source
24565 (origin
24566 (method git-fetch)
24567 (uri
24568 (git-reference
24569 (url "https://github.com/jhgorrell/ssh-config-mode-el")
24570 (commit commit)))
24571 (file-name (git-file-name name commit))
24572 (sha256
24573 (base32
24574 "0crglfdazzckizbwzmgl2rn6j85avfzkr1q7ijxd17rp2anvr9bd"))))
24575 (build-system emacs-build-system)
24576 (arguments '(#:include '("\\.el$" "\\.txt$")))
24577 (home-page
24578 "https://github.com/jhgorrell/ssh-config-mode-el")
24579 (synopsis
24580 "Mode for fontification of ~/.ssh/config")
24581 (description
24582 "This package fontifies the ssh config keywords and creates
24583 keybindings for skipping from host section to host section.")
24584 (license license:gpl3+))))
24585
24586 (define-public emacs-ssh-agency
24587 (package
24588 (name "emacs-ssh-agency")
24589 (version "0.4.1")
24590 (source (origin
24591 (method git-fetch)
24592 (uri (git-reference
24593 (url "https://github.com/magit/ssh-agency")
24594 (commit version)))
24595 (file-name (git-file-name name version))
24596 (sha256
24597 (base32
24598 "1i3zmsn0w2k7p2hlzssibckm32kf05l56mkhg96x4sf06g3pwq1d"))))
24599 (build-system emacs-build-system)
24600 (propagated-inputs
24601 `(("dash" ,emacs-dash)))
24602 (home-page "https://github.com/magit/ssh-agency")
24603 (synopsis "Manage @code{ssh-agent} from Emacs")
24604 (description
24605 "This package provides functions to startup @code{ssh-agent}, set the
24606 needed environment variables in Emacs, and prompt for passphrases from within
24607 Emacs so that pushes and pulls from @code{magit} will not require entering any
24608 passphrase.
24609
24610 It can also be useful on Unix-like platforms to delay having to enter your
24611 passphrase until the first time you push to a remote.")
24612 (license license:gpl3+)))
24613
24614 (define-public emacs-tao-theme
24615 (let ((commit "468ee4f6ba7afb9dbfc8855ae2c333cb16ca4408")
24616 (revision "1"))
24617 (package
24618 (name "emacs-tao-theme")
24619 (version (git-version "1.1.1" revision commit))
24620 (source
24621 (origin
24622 (method git-fetch)
24623 (uri (git-reference
24624 (url "https://github.com/11111000000/tao-theme-emacs")
24625 (commit commit)))
24626 (file-name (git-file-name name version))
24627 (sha256
24628 (base32
24629 "0yqibx6wcdsj5k6130c3qp0hmj6zwhfjrrvw98lny23ksw6k0s3s"))))
24630 (build-system emacs-build-system)
24631 (home-page "https://github.com/11111000000/tao-theme-emacs")
24632 (synopsis "Parameterized uncolored color themes for Emacs")
24633 (description
24634 "This package provides two parameterized uncolored color themes for
24635 Emacs: @code{tao-yin} and @code{tao-yang}. The default
24636 @code{tao-theme-scale-fn} is @code{tao-theme-golden-scale}.
24637
24638 You can customize: @code{tao-theme-scale-fn}, that returns 16 2-digit numbers;
24639 @code{tao-theme-scale-filter-fn}, for edge filter; and
24640 @code{tao-theme-use-height}.")
24641 (license license:gpl3+))))
24642
24643 (define-public emacs-almost-mono-themes
24644 (let ((commit "c3a85c1a665530a5d830665969725cdba8eceb75")
24645 (revision "0"))
24646 (package
24647 (name "emacs-almost-mono-themes")
24648 (version (git-version "0" revision commit))
24649 (source
24650 (origin
24651 (method git-fetch)
24652 (uri (git-reference
24653 (url "https://github.com/cryon/almost-mono-themes")
24654 (commit commit)))
24655 (file-name (git-file-name name version))
24656 (sha256
24657 (base32
24658 "034k32xkr5ma415hlkbl35z0jxc4sa1inf87hg3y6lrlfl83fyjh"))))
24659 (build-system emacs-build-system)
24660 (home-page "https://github.com/cryon/almost-mono-themes")
24661 (synopsis "Almost monochromatic themes for emacs in a few variants")
24662 (description
24663 "This package provides a collection of almost monochrome Emacs themes:
24664 @code{almost-mono-black} and @code{almost-mono-white}.")
24665 (license license:gpl3+))))
24666
24667 (define-public emacs-quasi-monochrome
24668 (let ((commit "68060dbbc0bbfe4924387392874186c5a29bb434")
24669 (revision "0"))
24670 (package
24671 (name "emacs-quasi-monochrome")
24672 (version (git-version "1.2" revision commit))
24673 (source
24674 (origin
24675 (method git-fetch)
24676 (uri (git-reference
24677 (url "https://github.com/lbolla/emacs-quasi-monochrome")
24678 (commit commit)))
24679 (file-name (git-file-name name version))
24680 (sha256
24681 (base32
24682 "0zp2xr0bjfqrpb0bqczzick1vvbjmipjavrdi70kw6a9caynvq22"))))
24683 (build-system emacs-build-system)
24684 (home-page "https://github.com/lbolla/emacs-quasi-monochrome")
24685 (synopsis "Dark color theme for Emacs")
24686 (description
24687 "This package provides a dark color theme with a black background, high
24688 contrast and few colors.")
24689 (license license:gpl3+))))
24690
24691 (define-public emacs-doom-themes
24692 (let ((commit "e803fc4ac8cf7118e2d1544d8241b848b5e79e9f")
24693 (revision "5")
24694 (version "2.1.6"))
24695 (package
24696 (name "emacs-doom-themes")
24697 (version (git-version version revision commit))
24698 (source (origin
24699 (method git-fetch)
24700 (uri (git-reference
24701 (url "https://github.com/hlissner/emacs-doom-themes")
24702 (commit commit)))
24703 (file-name (git-file-name name version))
24704 (sha256
24705 (base32 "128hdmf0jkzr12fv2r6z349qiwba6q97hsb6b1n2qlhi0v5v3mfh"))))
24706 (build-system emacs-build-system)
24707 (native-inputs
24708 `(("emacs-ert-runner" ,emacs-ert-runner)))
24709 (arguments
24710 `(#:tests? #t
24711 #:test-command '("ert-runner")
24712 #:modules ((guix build emacs-build-system)
24713 (guix build utils)
24714 (guix build emacs-utils)
24715 (srfi srfi-1))
24716 #:phases
24717 (modify-phases %standard-phases
24718 (add-after 'unpack 'move-themes
24719 (lambda _
24720 ;; Move the source files to the top level, which is in the
24721 ;; EMACSLOADPATH.
24722 (for-each (lambda (f)
24723 (rename-file f (basename f)))
24724 (find-files "./themes" ".*\\.el$"))
24725 #t)))))
24726 (synopsis "Wide collection of color themes for Emacs")
24727 (description "Emacs-doom-themes contains numerous popular color themes for
24728 Emacs that integrate with major modes like Org-mode.")
24729 (home-page "https://github.com/hlissner/emacs-doom-themes")
24730 (license license:expat))))
24731
24732 (define-public emacs-modus-themes
24733 (package
24734 (name "emacs-modus-themes")
24735 (version "1.2.3")
24736 (source
24737 (origin
24738 (method git-fetch)
24739 (uri (git-reference
24740 (url "https://gitlab.com/protesilaos/modus-themes")
24741 (commit version)))
24742 (file-name (git-file-name name version))
24743 (sha256
24744 (base32 "1l392hz6zs6wg06x2zxnk7s0h5cpmvbkcynh68gjmqjj84l7mqrk"))))
24745 (build-system emacs-build-system)
24746 (home-page "https://protesilaos.com/modus-themes/")
24747 (synopsis "Accessible themes (WCAG AAA)")
24748 (description
24749 "The Modus themes are designed for accessible readability. They conform
24750 with the highest standard for color contrast between any given combination of
24751 background and foreground values. This corresponds to the WCAG AAA standard,
24752 which specifies a minimum rate of distance in relative luminance of 7:1.
24753
24754 Modus Operandi (modus-operandi) is a light theme, while Modus
24755 Vivendi (modus-vivendi) is dark. Each theme’s color palette is designed to
24756 meet the needs of the numerous interfaces that are possible in the Emacs
24757 computing environment.")
24758 (license license:gpl3+)))
24759
24760 (define-public emacs-modus-operandi-theme
24761 (deprecated-package "emacs-modus-operandi-theme" emacs-modus-themes))
24762
24763 (define-public emacs-modus-vivendi-theme
24764 (deprecated-package "emacs-modus-vivendi-theme" emacs-modus-themes))
24765
24766 (define-public emacs-punpun-theme
24767 (let ((commit "2f78125609277b2478abdebd8f9d5ee10a823b65")
24768 (revision "0"))
24769 (package
24770 (name "emacs-punpun-theme")
24771 (version (git-version "0" revision commit))
24772 (source
24773 (origin
24774 (method git-fetch)
24775 (uri (git-reference
24776 (url "https://github.com/wasamasa/punpun-theme")
24777 (commit commit)))
24778 (file-name (git-file-name name version))
24779 (sha256
24780 (base32
24781 "1sgxrj3igzq86h3whfymxf4qzv9kpvcrlhbvjmnp7fwrplys0n7d"))))
24782 (build-system emacs-build-system)
24783 (home-page "https://github.com/wasamasa/punpun-theme")
24784 (synopsis "Bleak Emacs theme")
24785 (description
24786 "A bleak theme. Uses shades of gray and the occasional splash of
24787 color. Designed for 256-color terminals. Comes in light and dark!")
24788 (license license:gpl3+))))
24789
24790 (define-public emacs-spacemacs-theme
24791 (let ((commit "f79c40fb241e204539fde97200abae91e828e585")
24792 (revision "1"))
24793 (package
24794 (name "emacs-spacemacs-theme")
24795 (version (git-version "0" revision commit)) ;no release yet
24796 (source
24797 (origin
24798 (method git-fetch)
24799 (uri (git-reference
24800 (url "https://github.com/nashamri/spacemacs-theme")
24801 (commit commit)))
24802 (file-name (git-file-name name version))
24803 (sha256
24804 (base32 "1l2kkiyrskkpx8f901v0wrzaah1wjg15zdyv88spj3mh3hwd3b6n"))))
24805 (build-system emacs-build-system)
24806 (home-page "https://github.com/nashamri/spacemacs-theme")
24807 (synopsis
24808 "Light and dark theme for spacemacs that supports GUI and terminal")
24809 (description
24810 "Spacemacs theme is an Emacs color theme that started as
24811 a theme for Spacemacs. The theme comes with dark and light variants
24812 and it should work well with 256 color terminals.")
24813 (license license:gpl3+))))
24814
24815 (define-public emacs-elixir-mode
24816 (package
24817 (name "emacs-elixir-mode")
24818 (version "2.3.2")
24819 (source
24820 (origin
24821 (method git-fetch)
24822 (uri (git-reference
24823 (url "https://github.com/elixir-editors/emacs-elixir")
24824 (commit (string-append "v" version))))
24825 (file-name (git-file-name name version))
24826 (sha256
24827 (base32 "0f2a360h8bizvqk6bmgxm59g8n7id5rzwlbv6d383h15w298mcga"))))
24828 (build-system emacs-build-system)
24829 (propagated-inputs
24830 `(("emacs-pkg-info" ,emacs-pkg-info)))
24831 (home-page
24832 "https://github.com/elixir-editors/emacs-elixir")
24833 (synopsis "Major mode for editing Elixir files")
24834 (description
24835 "Elixir-Mode provides font-locking, indentation and navigation support
24836 for the Elixir programming language.")
24837 (license license:gpl3+)))
24838
24839 (define-public emacs-dimmer
24840 (package
24841 (name "emacs-dimmer")
24842 (version "0.4.2")
24843 (source
24844 (origin
24845 (method git-fetch)
24846 (uri (git-reference
24847 (url "https://github.com/gonewest818/dimmer.el")
24848 (commit version)))
24849 (file-name (git-file-name name version))
24850 (sha256
24851 (base32
24852 "0dw0qh5hm1x76s5cqxvylvmjgy0jwy11xm258g6kmx6w1k6r1d2l"))))
24853 (build-system emacs-build-system)
24854 (home-page "https://github.com/gonewest818/dimmer.el")
24855 (synopsis "Visually highlights the selected buffer in Emacs")
24856 (description "Dimmer provides a minor mode that indicates which buffer is
24857 currently active by dimming the faces in the other buffers. It does this
24858 nondestructively, and computes the dimmed faces dynamically such that your
24859 overall color scheme is shown in a muted form without requiring you to define
24860 what is a \"dim\" version of every face.")
24861 (license license:gpl3+)))
24862
24863 (define-public emacs-minibuffer-line
24864 (package
24865 (name "emacs-minibuffer-line")
24866 (version "0.1")
24867 (source
24868 (origin
24869 (method url-fetch)
24870 (uri (string-append
24871 "https://elpa.gnu.org/packages/minibuffer-line-"
24872 version
24873 ".el"))
24874 (sha256
24875 (base32 "1ny4iirp26na5118wfgxlv6fxlrdclzdbd9m0lkrv51w0qw7spil"))))
24876 (build-system emacs-build-system)
24877 (home-page "https://elpa.gnu.org/packages/minibuffer-line.html")
24878 (synopsis "Display status info in the minibuffer window")
24879 (description
24880 "This package lets you display various status information in the
24881 minibuffer window instead of the mode-line. Of course, this is only displayed
24882 when the minibuffer window is not already used for other things (e.g. a
24883 minibuffer or an each area message).
24884
24885 The contents and aspect is controlled by the @code{minibuffer-line-format}
24886 variable and the @code{minibuffer-line} face.")
24887 (license license:gpl3+)))
24888
24889 (define-public emacs-eshell-prompt-extras
24890 (package
24891 (name "emacs-eshell-prompt-extras")
24892 (version "1.0")
24893 (home-page "https://github.com/zwild/eshell-prompt-extras")
24894 (source
24895 (origin
24896 (method git-fetch)
24897 (uri (git-reference
24898 (url home-page)
24899 (commit version)))
24900 (file-name (git-file-name name version))
24901 (sha256
24902 (base32
24903 "0gb07mns23dgqqr6qfy7d6ndizy15sqgbgfaig6k5xbjnwi02v9g"))))
24904 (build-system emacs-build-system)
24905 (synopsis "Display extra information and color for your Eshell prompt")
24906 (description "This library displays various customizable elements for
24907 @code{eshell} prompts: remote user, remote host, python virtual environment
24908 info, git branch, git dirty info and git unpushed number. Multiple themes are
24909 available.")
24910 (license license:gpl3+)))
24911
24912 (define-public emacs-eshell-did-you-mean
24913 (package
24914 (name "emacs-eshell-did-you-mean")
24915 (version "0.1")
24916 (home-page "https://github.com/xuchunyang/eshell-did-you-mean")
24917 (source
24918 (origin
24919 (method git-fetch)
24920 (uri (git-reference
24921 (url home-page)
24922 (commit (string-append "v" version))))
24923 (file-name (git-file-name name version))
24924 (sha256
24925 (base32
24926 "0v0wshck5n4hspcv1zk1g2nm6xiigcjp16lx0dc8wzkl6ymljvbg"))))
24927 (build-system emacs-build-system)
24928 (synopsis "Display suggestions on 'command not found' in Eshell")
24929 (description "This library adds a list of 'Did you mean...' suggestions
24930 when the command was not found in Eshell. The suggestions are found after the
24931 commands that bear resemblance to the input command.")
24932 (license license:gpl3+)))
24933
24934 (define-public emacs-unfill
24935 (package
24936 (name "emacs-unfill")
24937 (version "0.3")
24938 (home-page "https://github.com/purcell/unfill")
24939 (source
24940 (origin
24941 (method git-fetch)
24942 (uri (git-reference
24943 (url home-page)
24944 (commit version)))
24945 (file-name (git-file-name name version))
24946 (sha256
24947 (base32 "0pg64nza2mp4xyr69pjq51jsq1aaym0g38g4jzaxr0hh3w0ris1n"))))
24948 (build-system emacs-build-system)
24949 (synopsis "Inverse of Emacs' @code{fill-paragraph} and @code{fill-region}")
24950 (description
24951 "The functions in this package provide the inverse of Emacs'
24952 @code{fill-paragraph} and @code{fill-region}.")
24953 (license license:gpl3+)))
24954
24955 (define-public emacs-windower
24956 (package
24957 (name "emacs-windower")
24958 (version "0.0.1")
24959 (home-page "https://gitlab.com/ambrevar/emacs-windower")
24960 (source
24961 (origin
24962 (method git-fetch)
24963 (uri (git-reference
24964 (url home-page)
24965 (commit version)))
24966 (file-name (git-file-name name version))
24967 (sha256
24968 (base32 "0h24gb1ip0czfasxm8wwcc3v19g7mznzw2sxkmmfb5iis59p7dfy"))))
24969 (build-system emacs-build-system)
24970 (synopsis "Helper functions for window manipulation in Emacs")
24971 (description
24972 "This package provides helper functions for window manipulation in Emacs,
24973 such as:
24974
24975 @itemize
24976 @item switch to last buffer,
24977 @item toggle single window display,
24978 @item toggle between horizontal and vertical splits,
24979 @item move borders more naturally,
24980 @item swap windows à-la @code{windmove}.
24981 @end itemize")
24982 (license license:gpl3+)))
24983
24984 (define-public emacs-flycheck-cpplint
24985 (let ((commit "1d8a090861572258ab704915263feeb3a436c3d2")
24986 (revision "1"))
24987 (package
24988 (name "emacs-flycheck-cpplint")
24989 (version (git-version "0.1" revision commit))
24990 (source
24991 (origin
24992 (method git-fetch)
24993 (uri (git-reference
24994 (url "https://github.com/flycheck/flycheck-google-cpplint")
24995 (commit commit)))
24996 (file-name (git-file-name name version))
24997 (sha256
24998 (base32 "0l6sg83f6z8x2alnblpv03rj442sbnkkkcbf8i0agjmx3713a5yx"))))
24999 (build-system emacs-build-system)
25000 (arguments
25001 `(#:phases
25002 (modify-phases %standard-phases
25003 (add-after 'unpack 'set-cpplint-path
25004 (lambda _
25005 (substitute* "flycheck-google-cpplint.el"
25006 (("\"cpplint.py\"")
25007 (string-append "\"" (which "cpplint") "\"")))
25008 #t)))))
25009 (inputs
25010 `(("cpplint" ,cpplint)))
25011 (propagated-inputs
25012 `(("flycheck-mode" ,emacs-flycheck)))
25013 (synopsis "Google C++ checker for Flycheck")
25014 (description "This package provides a interface for @code{cpplint} over
25015 Flycheck plugin. @code{cpplint} is a static code checker for C++, following
25016 Google guidelines.")
25017 (home-page "https://github.com/flycheck/flycheck-google-cpplint")
25018 (license license:gpl3+))))
25019
25020 (define-public emacs-helm-fish-completion
25021 (package
25022 (name "emacs-helm-fish-completion")
25023 (version "0.6")
25024 (home-page "https://github.com/emacs-helm/helm-fish-completion")
25025 (source
25026 (origin
25027 (method git-fetch)
25028 (uri (git-reference
25029 (url home-page)
25030 (commit version)))
25031 (file-name (git-file-name name version))
25032 (sha256
25033 (base32 "1j2vfngq3512naaayv9kx0d1q2zg1xgs69l8afc7swg72h0l0imw"))))
25034 (build-system emacs-build-system)
25035 (propagated-inputs
25036 `(("helm" ,emacs-helm)
25037 ("fish-completion" ,emacs-fish-completion)))
25038 (synopsis "Helm interface for Emacs fish-completion")
25039 (description "Helm Fish Completion is a Helm interface for Emacs
25040 fish-completion. It can be used in both Eshell and M-x shell.")
25041 (license license:gpl3+)))
25042
25043 (define-public emacs-helm-switch-to-repl
25044 (package
25045 (name "emacs-helm-switch-to-repl")
25046 (version "0.1.2")
25047 (home-page "https://github.com/emacs-helm/helm-switch-to-repl")
25048 (source
25049 (origin
25050 (method git-fetch)
25051 (uri (git-reference
25052 (url home-page)
25053 (commit version)))
25054 (file-name (git-file-name name version))
25055 (sha256
25056 (base32 "0n8qa549c5syvgqw1h2zrakjjbygddpxzaifaq5irscgdcajrads"))))
25057 (build-system emacs-build-system)
25058 (propagated-inputs
25059 `(("helm" ,emacs-helm)))
25060 (synopsis "Helm action to switch directory in Emacs REPLs")
25061 (description "Helm \"Switch-to-REPL\" offers the
25062 @code{helm-switch-to-repl} action, a generalized and extensible version of
25063 @code{helm-ff-switch-to-shell}. It can be added to @code{helm-find-files} and
25064 other @code{helm-type-file} sources such as @code{helm-locate}.")
25065 (license license:gpl3+)))
25066
25067 (define-public emacs-telega
25068 ;; This package has versions newer than indicated on MELPA.
25069 ;; Get the current version from `telega-version` in telega.el.
25070 ;; or by running M-x telega-version.
25071 (let ((commit "1d28dc209e2acf1a3bf2852cc620b6e412ea73f9")
25072 (revision "1")
25073 (version "0.7.1"))
25074 (package
25075 (name "emacs-telega")
25076 (version (git-version version revision commit))
25077 (source
25078 (origin
25079 (method git-fetch)
25080 (uri (git-reference
25081 (url "https://github.com/zevlg/telega.el")
25082 (commit commit)))
25083 (sha256
25084 (base32
25085 "0h6kj3r36x26v6p4gkzg5s6fv0brlvrf6ycsdwnz27fw5sdb99k7"))
25086 (patches (search-patches
25087 "emacs-telega-patch-server-functions.patch"
25088 "emacs-telega-test-env.patch"))
25089 (file-name (git-file-name name version))))
25090 (build-system gnu-build-system)
25091 (arguments
25092 `(#:modules ((guix build gnu-build-system)
25093 ((guix build emacs-build-system) #:prefix emacs:)
25094 (guix build utils)
25095 (guix build emacs-utils))
25096 #:imported-modules (,@%gnu-build-system-modules
25097 (guix build emacs-build-system)
25098 (guix build emacs-utils))
25099 #:test-target "test"
25100 ;; TODO: Currently tgVOIP is not functional, thus we have disabled it
25101 ;; temporarily.
25102 ;; #:make-flags (list "WITH_VOIP=t")
25103 #:phases
25104 (modify-phases %standard-phases
25105 (add-after 'unpack 'prefix-patch
25106 (lambda _
25107 (substitute* "server/Makefile"
25108 (("CC=cc")
25109 "CC=gcc")
25110 (("INSTALL_PREFIX=\\$\\(HOME\\)/.telega")
25111 (string-append "INSTALL_PREFIX=" (assoc-ref %outputs "out")
25112 "/bin"))
25113 ;; Manually invoke `run_tests.py` after install phase.
25114 (("python3 run_tests.py")
25115 ""))
25116 #t))
25117 (add-after 'check 'telega-paths-patch
25118 (lambda* (#:key inputs #:allow-other-keys)
25119 ;; Hard-code paths to `ffplay` and `ffmpeg`.
25120 (let ((ffplay-bin (string-append (assoc-ref inputs "ffmpeg")
25121 "/bin/ffplay"))
25122 (ffmpeg-bin (string-append (assoc-ref inputs "ffmpeg")
25123 "/bin/ffmpeg")))
25124 (substitute* "telega-ffplay.el"
25125 (("\\(executable-find \"ffplay\"\\)")
25126 (string-append
25127 "(and (file-executable-p \"" ffplay-bin "\")"
25128 "\"" ffplay-bin "\")"))
25129 (("\\(executable-find \"ffmpeg\"\\)")
25130 (string-append
25131 "(and (file-executable-p \"" ffmpeg-bin "\")"
25132 "\"" ffmpeg-bin "\")"))))
25133 ;; Modify telega-util to reflect unique dir name in
25134 ;; `telega-install-data' phase.
25135 (substitute* "telega-util.el"
25136 (("\\(concat \"etc/\" filename\\) telega--lib-directory")
25137 "(concat \"telega-data/\" filename)
25138 (locate-dominating-file telega--lib-directory
25139 \"telega-data\")"))
25140 ;; Modify telega.el to reflect unique dir name in
25141 ;; `telega-install-contrib' phase.
25142 (substitute* "telega.el"
25143 (("\\(push \\(expand-file-name \"contrib\" telega--lib-directory\\) load-path\\)")
25144 "(push (expand-file-name \"telega-contrib\"
25145 (locate-dominating-file telega--lib-directory
25146 \"telega-contrib\")) load-path)"))
25147 #t))
25148 ;; The server test suite has a hardcoded path.
25149 ;; Reset this behavior to use the proper path.
25150 (add-after 'unpack 'server-suite-patch
25151 (lambda _
25152 (substitute* "server/run_tests.py"
25153 (("~/.telega/telega-server")
25154 (string-append (assoc-ref %outputs "out")
25155 "/bin/telega-server")))
25156 #t))
25157 (add-after 'install 'run-server-suite
25158 (lambda _
25159 (invoke "python3" "server/run_tests.py")
25160 #t))
25161 (delete 'configure)
25162 ;; Build emacs-side using `emacs-build-system'
25163 (add-after 'compress-documentation 'emacs-add-source-to-load-path
25164 (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
25165 ;; Manually invoke bytecompilation for the contrib
25166 ;; subdirectory.
25167 (add-after 'emacs-add-source-to-load-path 'emacs-bytecomp-contrib
25168 (lambda _
25169 (substitute* "Makefile"
25170 (("byte-recompile-directory \".\"")
25171 "byte-recompile-directory \"contrib\""))
25172 (invoke "make" "compile")
25173 #t))
25174 (add-after 'emacs-bytecomp-contrib 'emacs-install
25175 (assoc-ref emacs:%standard-phases 'install))
25176 ;; This step installs subdir /etc, which contains images, sounds and
25177 ;; various other data, next to the site-lisp dir.
25178 (add-after 'emacs-install 'telega-install-data
25179 (lambda* (#:key outputs #:allow-other-keys)
25180 (copy-recursively
25181 "etc"
25182 (string-append (assoc-ref outputs "out")
25183 "/share/emacs/telega-data/"))
25184 #t))
25185 (add-after 'emacs-install 'telega-install-contrib
25186 (lambda* (#:key outputs #:allow-other-keys)
25187 (copy-recursively
25188 "contrib"
25189 (string-append (assoc-ref outputs "out")
25190 "/share/emacs/telega-contrib"))
25191 #t))
25192 (add-after 'telega-install-contrib 'emacs-build
25193 (assoc-ref emacs:%standard-phases 'build))
25194 (add-after 'telega-install-contrib 'emacs-make-autoloads
25195 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
25196 (inputs
25197 `(("ffmpeg" ,ffmpeg))) ; mp4/gif support.
25198 (propagated-inputs
25199 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)
25200 ("emacs-company" ,emacs-company)
25201 ("emacs-rainbow-identifiers"
25202 ,emacs-rainbow-identifiers)
25203 ("libwebp" ,libwebp))) ; sticker support.
25204 (native-inputs
25205 `(("tdlib" ,tdlib)
25206 ;; Use Emacs with wide ints on 32-bit architectures.
25207 ("emacs" ,(match (%current-system)
25208 ((or "i686-linux" "armhf-linux")
25209 emacs-wide-int)
25210 (_
25211 emacs)))
25212 ("python" ,python)))
25213 (synopsis "GNU Emacs client for the Telegram messenger")
25214 (description
25215 "Telega is a full-featured, unofficial GNU Emacs-based client for the
25216 Telegram messaging platform.")
25217 (home-page "https://zevlg.github.io/telega.el/")
25218 (license license:gpl3+))))
25219
25220 (define-public emacs-doom-modeline
25221 (package
25222 (name "emacs-doom-modeline")
25223 (version "3.0.0")
25224 (source (origin
25225 (method git-fetch)
25226 (uri (git-reference
25227 (url "https://github.com/seagle0128/doom-modeline")
25228 (commit (string-append "v" version))))
25229 (sha256
25230 (base32
25231 "08m75rl5i812pa87zcsjvb4mm3jjhpwzgx9mf2m7sxj807airz5d"))
25232 (file-name (git-file-name name version))))
25233 (build-system emacs-build-system)
25234 (arguments
25235 `(#:test-command '("ert-runner")))
25236 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
25237 (propagated-inputs
25238 `(("emacs-all-the-icons" ,emacs-all-the-icons)
25239 ("emacs-dash" ,emacs-dash)
25240 ("emacs-shrink-path" ,emacs-shrink-path)))
25241 (synopsis "Fancy and fast mode-line inspired by minimalism design")
25242 (description "Doom modeline is a complete modeline for GNU Emacs inspired
25243 by the Doom theme collection. This modeline features support for mode-specific
25244 icon support, git integration, and several other utilities.")
25245 (home-page "https://github.com/seagle0128/doom-modeline/")
25246 (license license:gpl3+)))
25247
25248 (define-public emacs-mood-line
25249 (package
25250 (name "emacs-mood-line")
25251 (version "1.2.4")
25252 (source
25253 (origin
25254 (method git-fetch)
25255 (uri (git-reference
25256 (url "https://gitlab.com/jessieh/mood-line")
25257 (commit version)))
25258 (file-name (git-file-name name version))
25259 (sha256
25260 (base32 "0fh9j9fkgl433nykfzjnzap5labi4sdndfk1nv4f904ij69pmvxb"))))
25261 (build-system emacs-build-system)
25262 (home-page "https://gitlab.com/jessieh/mood-line")
25263 (synopsis "Minimal mode-line for Emacs")
25264 (description
25265 "Mood-line is a minimal Emacs mode-line configuration that aims to
25266 replicate some of the features of the Doom modeline package.")
25267 (license license:gpl2+)))
25268
25269 (define-public emacs-simple-modeline
25270 (let ((commit "38973dec2912e2136d8fde5f2667063863fee15a")
25271 (revision "1"))
25272 (package
25273 (name "emacs-simple-modeline")
25274 (version (git-version"1.2" revision commit))
25275 (source
25276 (origin
25277 (method git-fetch)
25278 (uri (git-reference
25279 (url "https://github.com/gexplorer/simple-modeline")
25280 (commit commit)))
25281 (file-name (git-file-name name version))
25282 (sha256
25283 (base32
25284 "0y70hc3x8rxr8b5x8d0a23gpcadzrn43wmrsvqqxmmkqqp45n7gj"))))
25285 (build-system emacs-build-system)
25286 (home-page "https://github.com/gexplorer/simple-modeline")
25287 (synopsis "Simple mode-line configuration for Emacs")
25288 (description
25289 "This package provides a simple mode-line configuration for Emacs.")
25290 (license license:gpl3+))))
25291
25292 (define-public emacs-frames-only-mode
25293 (package
25294 (name "emacs-frames-only-mode")
25295 (version "1.0.0")
25296 (source
25297 (origin
25298 (method git-fetch)
25299 (uri (git-reference
25300 (url "https://github.com/davidshepherd7/frames-only-mode")
25301 (commit version)))
25302 (file-name (git-file-name name version))
25303 (sha256
25304 (base32 "0y0sdjixaxvywrlp2sw51wnczhk51q1svl5aghbk9rkxpwv9ys9v"))))
25305 (build-system emacs-build-system)
25306 (propagated-inputs
25307 `(("emacs-dash" ,emacs-dash)
25308 ("emacs-s" ,emacs-s)))
25309 (home-page "https://github.com/davidshepherd7/frames-only-mode")
25310 (synopsis "Use frames instead of Emacs windows")
25311 (description
25312 "This is an Emacs global minor mode to use Emacs frames instead of Emacs'
25313 internal windowing system. This combines particularly well with tiling window
25314 managers such as XMonad.")
25315 (license license:gpl3+)))
25316
25317 (define-public emacs-modalka
25318 (package
25319 (name "emacs-modalka")
25320 (version "0.1.5")
25321 (source
25322 (origin
25323 (method git-fetch)
25324 (uri (git-reference
25325 (url "https://github.com/mrkkrp/modalka")
25326 (commit version)))
25327 (file-name (git-file-name name version))
25328 (sha256
25329 (base32 "0ggj8q92sb6wp3hs1vhpmy56id0p3i9zwnw24g2v7xa7w8ac9s7l"))))
25330 (build-system emacs-build-system)
25331 (home-page "https://github.com/mrkkrp/modalka")
25332 (synopsis "Minor mode to easily define native custom modal editing")
25333 (description
25334 "This is a building kit to help switch to modal editing in Emacs. The
25335 main goal of the package is to make modal editing in Emacs as natural and
25336 native as possible. Modalka lets you define your own keys and does not come
25337 with a preconfigured set of keys.")
25338 (license license:gpl3+)))
25339
25340 (define-public emacs-shrink-path
25341 (package
25342 (name "emacs-shrink-path")
25343 (version "0.3.1")
25344 (source
25345 (origin
25346 (method git-fetch)
25347 (uri (git-reference
25348 (url "https://gitlab.com/bennya/shrink-path.el.git")
25349 (commit (string-append "v" version))))
25350 (sha256
25351 (base32
25352 "0kx0c4syd7k6ff9j463bib32pz4wq0rzjlg6b0yqnymlzfr1mbki"))
25353 (file-name (git-file-name name version))))
25354 (build-system emacs-build-system)
25355 (propagated-inputs
25356 `(("emacs-s" ,emacs-s)
25357 ("emacs-dash" ,emacs-dash)
25358 ("emacs-f" ,emacs-f)))
25359 (home-page "https://gitlab.com/bennya/shrink-path.el")
25360 (synopsis "Fish-style path truncation in emacs-lisp")
25361 (description "This package provides utility functions that allow for
25362 Fish-style truncated directories in eshell and various modelines.")
25363 (license license:gpl3+)))
25364
25365 (define-public emacs-org-present
25366 (let ((commit "d13acd70eff6a1608bc991920232146a0de76b21"))
25367 (package
25368 (name "emacs-org-present")
25369 (version "0.0.1")
25370 (source
25371 (origin
25372 (method git-fetch)
25373 (uri (git-reference
25374 (url "https://github.com/rlister/org-present")
25375 (commit commit)))
25376 (file-name (git-file-name name version))
25377 (sha256
25378 (base32
25379 "0jz8xiny3rv9ql0p623byz32pip1b82j2c2nyfz2wd114kiabb6q"))))
25380 (build-system emacs-build-system)
25381 (synopsis "Ultra-minimalist presentation minor-mode for Emacs org-mode")
25382 (description "Org-present is an extremely minimalist presentation tool
25383 for Emacs org-mode. Simply layout your presentation with each slide under a
25384 top-level header, start the minor mode with @code{org-present}, and page through
25385 each slide with left/right keys.")
25386 (home-page "https://github.com/rlister/org-present")
25387 (license license:gpl2))))
25388
25389 (define-public emacs-fullframe
25390 (package
25391 (name "emacs-fullframe")
25392 (version "0.5.0")
25393 (source
25394 (origin
25395 (method git-fetch)
25396 (uri (git-reference
25397 (url "https://github.com/tomterl/fullframe")
25398 (commit version)))
25399 (sha256
25400 (base32
25401 "0m43qnhp6ibsskpjkxc86p3lrjsjc0ndqml3lbd65s79x4x7i3fi"))
25402 (file-name (git-file-name name version))))
25403 (build-system emacs-build-system)
25404 (home-page "https://github.com/tomterl/fullframe")
25405 (synopsis "Generalized automatic execution in a single frame")
25406 (description "This library provides helpers for single-window-per-frame
25407 execution of buffer-exposing commands.")
25408 (license license:gpl3+)))
25409
25410 (define-public emacs-eshell-toggle
25411 (let ((commit "ddfbe0a693497c4d4bc5494a19970ba4f6ab9033")
25412 (revision "1"))
25413 (package
25414 (name "emacs-eshell-toggle")
25415 (version (git-version "0.10.0" revision commit))
25416 (source
25417 (origin
25418 (method git-fetch)
25419 (uri (git-reference
25420 (url "https://github.com/4DA/eshell-toggle")
25421 (commit commit)))
25422 (sha256
25423 (base32
25424 "0xqrp8pwbmfxjdqipgpw5nw633mvhjjjm3k3j9sh9xdpmw05hhws"))
25425 (file-name (git-file-name name version))))
25426 (build-system emacs-build-system)
25427 (propagated-inputs
25428 `(("emacs-dash" ,emacs-dash)))
25429 (home-page "https://github.com/4DA/eshell-toggle")
25430 (synopsis "Show and hide an @code{eshell} instance")
25431 (description "This package toggles an @code{eshell} instance for the
25432 current buffer.")
25433 (license license:gpl3+))))
25434
25435 (define-public emacs-repl-toggle
25436 (package
25437 (name "emacs-repl-toggle")
25438 (version "0.7.1")
25439 (source
25440 (origin
25441 (method git-fetch)
25442 (uri (git-reference
25443 (url "https://git.sr.ht/~tomterl/repl-toggle")
25444 (commit version)))
25445 (sha256
25446 (base32
25447 "0nycm8a4wwkkaif958z4m89slayp17k20lp2h7lvddjx8prn6yfp"))
25448 (file-name (git-file-name name version))))
25449 (build-system emacs-build-system)
25450 (propagated-inputs
25451 `(("emacs-fullframe" ,emacs-fullframe)))
25452 (home-page "https://git.sr.ht/~tomterl/repl-toggle")
25453 (synopsis "Switch to and from current major mode's REPL")
25454 (description "This package provides a function to switch to and from a
25455 REPL appropriate to the current major mode.")
25456 (license license:gpl3+)))
25457
25458 (define-public emacs-rime
25459 (package
25460 (name "emacs-rime")
25461 (version "1.0.4")
25462 (source
25463 (origin
25464 (method git-fetch)
25465 (uri (git-reference
25466 (url "https://github.com/DogLooksGood/emacs-rime")
25467 (commit (string-append "v" version))))
25468 (file-name (git-file-name name version))
25469 (sha256
25470 (base32 "1a50cziwg7lpgh26yvwxs46jfyfq1m0l6igbg5g5m288mz4d3an9"))))
25471 (build-system emacs-build-system)
25472 (arguments
25473 '(#:phases
25474 (modify-phases %standard-phases
25475 (add-after 'unpack 'patch-rime-data-path
25476 (lambda* (#:key inputs #:allow-other-keys)
25477 (make-file-writable "rime.el")
25478 (emacs-substitute-variables "rime.el"
25479 ("rime-share-data-dir"
25480 (string-append (assoc-ref inputs "rime-data")
25481 "/share/rime-data")))
25482 #t))
25483 (add-before 'install 'build-emacs-module
25484 (lambda _
25485 (invoke "make" "lib")))
25486 (add-after 'install 'install-emacs-module
25487 (lambda* (#:key outputs #:allow-other-keys)
25488 (install-file "librime-emacs.so"
25489 (string-append (assoc-ref outputs "out")
25490 "/share/emacs/site-lisp"))
25491 #t)))))
25492 (inputs
25493 `(("librime" ,librime)
25494 ("rime-data" ,rime-data)))
25495 (propagated-inputs
25496 `(("emacs-dash" ,emacs-dash)
25497 ("emacs-popup" ,emacs-popup)
25498 ("emacs-posframe" ,emacs-posframe)))
25499 (home-page "https://github.com/DogLooksGood/emacs-rime")
25500 (synopsis "Rime input method in Emacs")
25501 (description
25502 "Rime is an Emacs input method built upon Rime input method engine.")
25503 (license license:gpl3+)))
25504
25505 (define-public emacs-blackout
25506 (let ((commit "4bac44671fca4c98d96aa94c79946bf4d4baf0ee")
25507 (revision "1"))
25508 (package
25509 (name "emacs-blackout")
25510 (version (git-version "1.0" revision commit))
25511 (source
25512 (origin
25513 (method git-fetch)
25514 (uri (git-reference
25515 (url "https://github.com/raxod502/blackout")
25516 (commit commit)))
25517 (sha256
25518 (base32
25519 "1wnh0nwy6r3a18sy9sqmrwv04vnmaflxy4g7mq8jiyyjijri7l1b"))
25520 (file-name (git-file-name name version))))
25521 (build-system emacs-build-system)
25522 (home-page "https://github.com/raxod502/blackout")
25523 (synopsis "Clean up mode lighters")
25524 (description "This package provides a function for hiding and customizing
25525 display of major and minor modes in the mode line.")
25526 (license license:gpl3+))))
25527
25528 (define-public emacs-ivy-omni-org
25529 (let ((commit "5460a9fc061a4a5ae8372dc8df966ced94abab58")
25530 (revision "1"))
25531 (package
25532 (name "emacs-ivy-omni-org")
25533 (version (git-version "0.2.1" revision commit))
25534 (source
25535 (origin
25536 (method git-fetch)
25537 (uri (git-reference
25538 (url "https://github.com/akirak/ivy-omni-org")
25539 (commit commit)))
25540 (file-name (git-file-name name version))
25541 (sha256
25542 (base32
25543 "1np1f51hc3phkl5w02a9a79gl38ra2d535i784fn4pqaasvm0rq8"))))
25544 (build-system emacs-build-system)
25545 (propagated-inputs
25546 `(("emacs-ivy" ,emacs-ivy)
25547 ("emacs-dash" ,emacs-dash)))
25548 (synopsis "Browse anything in Org mode")
25549 (description "This package allows Org items to be accessed via the Ivy
25550 interface.")
25551 (home-page "https://github.com/akirak/ivy-omni-org")
25552 (license license:gpl3+))))
25553
25554 (define-public emacs-ivy-posframe
25555 (package
25556 (name "emacs-ivy-posframe")
25557 (version "0.5.5")
25558 (source
25559 (origin
25560 (method url-fetch)
25561 (uri (string-append "https://elpa.gnu.org/packages/"
25562 "ivy-posframe-" version ".tar"))
25563 (sha256
25564 (base32 "184730grclxmlw6nfs41d4g6fvz9c6xnclvwgqx1ii0xm7p9xy95"))))
25565 (build-system emacs-build-system)
25566 (propagated-inputs
25567 `(("emacs-ivy" ,emacs-ivy)
25568 ("emacs-posframe" ,emacs-posframe)))
25569 (home-page "https://github.com/tumashu/ivy-posframe")
25570 (synopsis "Pop a posframe (a child frame) to show Ivy candidates")
25571 (description
25572 "This package provides an Emacs Ivy extension, which let Ivy use
25573 posframe to show its candidate menu.")
25574 (license license:gpl3+)))
25575
25576 (define-public emacs-shackle
25577 (let ((commit "7ccbe513852a1d1700b698547efca14b8940319d")
25578 (revision "1"))
25579 (package
25580 (name "emacs-shackle")
25581 (version (git-version "1.0.3" revision commit))
25582 (source
25583 (origin
25584 (method git-fetch)
25585 (uri (git-reference
25586 (url "https://github.com/wasamasa/shackle")
25587 (commit commit)))
25588 (file-name (git-file-name name version))
25589 (sha256
25590 (base32
25591 "0agsp8ia4irr540r898ifhjqp28n1zsq1pilv1kc272spn3qhvp9"))))
25592 (build-system emacs-build-system)
25593 (synopsis "Enforce rules for popups")
25594 (description "This package provides a global minor mode in which users
25595 can specify how popup-displaying functions occupy the screen.")
25596 (home-page "https://github.com/wasamasa/shackle")
25597 (license license:gpl3+))))
25598
25599 (define-public emacs-showtip
25600 (let ((commit "930da302809a4257e8d69425455b29e1cc91949b")
25601 (revision "0"))
25602 (package
25603 (name "emacs-showtip")
25604 (version (git-version "0.01" revision commit))
25605 (source
25606 (origin
25607 (method git-fetch)
25608 (uri (git-reference
25609 (url "https://github.com/emacsorphanage/showtip")
25610 (commit commit)))
25611 (file-name (git-file-name name version))
25612 (sha256
25613 (base32 "01zak0zhha6dp7a2hm28d065gjnc462iwpsfyxhbxgfzcdlicqc7"))))
25614 (build-system emacs-build-system)
25615 (home-page "https://github.com/emacsorphanage/showtip")
25616 (synopsis "Show tip at cursor")
25617 (description
25618 "This library provide one function to show tooltip near the cursor.")
25619 (license license:gpl2+))))
25620
25621 (define-public emacs-sdcv
25622 ;; No tagged version upstream.
25623 (let ((commit "943ae3e90cc9a0a88a37cc710acd7424fd4defc4" )
25624 (revision "0"))
25625 (package
25626 (name "emacs-sdcv")
25627 (version (git-version "1.5.2" revision commit))
25628 (source
25629 (origin
25630 (method git-fetch)
25631 (uri (git-reference
25632 (url "https://github.com/stardiviner/sdcv.el")
25633 (commit commit)))
25634 (file-name (git-file-name name version))
25635 (sha256
25636 (base32 "0i1ylvw7p46pkf3yyyzcdmdhsspzymnnnvx8s0i7vynngr5x0vzh"))))
25637 (build-system emacs-build-system)
25638 (propagated-inputs
25639 `(("emacs-popup" ,emacs-popup)
25640 ("emacs-pos-tip" ,emacs-pos-tip)
25641 ("emacs-showtip" ,emacs-showtip)))
25642 (home-page "https://www.emacswiki.org/emacs/download/sdcv.el")
25643 (synopsis "Emacs interface for @code{sdcv}")
25644 (description
25645 "This plugin translates words with @code{sdcv}, and displays
25646 translation using a tooltip or in a dedicated buffer.")
25647 (license license:gpl3+))))
25648
25649 (define-public emacs-helm-lacarte
25650 (let ((commit "40a6c449720be521435b6b1da7911af3a0b9dca0")
25651 (revision "1"))
25652 (package
25653 (name "emacs-helm-lacarte")
25654 (version (git-version "0" revision commit))
25655 (source
25656 (origin
25657 (method git-fetch)
25658 (uri (git-reference
25659 (url "https://github.com/emacs-helm/helm-lacarte")
25660 (commit commit)))
25661 (file-name (git-file-name name version))
25662 (sha256
25663 (base32
25664 "0dkfd3lap2v7b4nckzv8v7hczmzwzhbl75haqkra107ln91ldbwc"))))
25665 (build-system emacs-build-system)
25666 (propagated-inputs
25667 `(("emacs-helm" ,emacs-helm)
25668 ("emacs-lacarte" ,emacs-lacarte)))
25669 (synopsis "Helm interface to @code{lacarte.el}")
25670 (description "This package provides a Helm interface to
25671 @code{lacarte.el}, a package that displays mode-specific commands as menu
25672 items.")
25673 (home-page "https://github.com/emacs-helm/helm-lacarte")
25674 (license license:gpl3+))))
25675
25676 (define-public emacs-esh-help
25677 (let ((commit "417673ed18a983930a66a6692dbfb288a995cb80")
25678 (revision "1"))
25679 (package
25680 (name "emacs-esh-help")
25681 (version (git-version "1.0.1" revision commit))
25682 (source
25683 (origin
25684 (method git-fetch)
25685 (uri (git-reference
25686 (url "https://github.com/tom-tan/esh-help")
25687 (commit commit)))
25688 (file-name (git-file-name name version))
25689 (sha256
25690 (base32
25691 "0x7d51a6ljl014zy7mi27vzcqqbcwg9z4drq29fr2ajk82mqhlgd"))))
25692 (build-system emacs-build-system)
25693 (propagated-inputs
25694 `(("emacs-dash" ,emacs-dash)))
25695 (synopsis "Help functions for Eshell")
25696 (description "This package provides a @code{run-help} function inspired
25697 by @code{zsh} as well as @code{eldoc} support.")
25698 (home-page "https://github.com/tom-tan/esh-help")
25699 (license license:gpl3+))))
25700
25701 (define-public emacs-isearch-dabbrev
25702 (let ((commit "1efe7abba4923015cbc2462395deaec5446a9cc8")
25703 (revision "1"))
25704 (package
25705 (name "emacs-isearch-dabbrev")
25706 (version (git-version "0.1" revision commit))
25707 (source
25708 (origin
25709 (method git-fetch)
25710 (uri (git-reference
25711 (url "https://github.com/Dewdrops/isearch-dabbrev")
25712 (commit commit)))
25713 (file-name (git-file-name name version))
25714 (sha256
25715 (base32
25716 "17d0816awadvsw1qc7r0p6ira75jmgxaj9hsk9ypayxsaf6ynyrb"))))
25717 (build-system emacs-build-system)
25718 (synopsis "Use @code{dabbrev} within @code{isearch}")
25719 (description "This package allows @code{dabbrev-expand} to be used
25720 within @code{isearch-mode}.")
25721 (home-page "https://github.com/Dewdrops/isearch-dabbrev")
25722 (license license:gpl3+))))
25723
25724 (define-public emacs-helm-linux-disks
25725 (let ((commit "2cdc8116a08534289eb0dc76461d0f93a0bdf231")
25726 (revision "1"))
25727 (package
25728 (name "emacs-helm-linux-disks")
25729 (version (git-version "0.1" revision commit))
25730 (source
25731 (origin
25732 (method git-fetch)
25733 (uri (git-reference
25734 (url "https://github.com/Akirak/helm-linux-disks")
25735 (commit commit)))
25736 (file-name (git-file-name name version))
25737 (sha256
25738 (base32
25739 "1limw82zd8jz3mhh9rqlmhj4cjhfgybs9argfjid1an3vpyhc85i"))))
25740 (build-system emacs-build-system)
25741 (propagated-inputs
25742 `(("emacs-helm" ,emacs-helm)))
25743 (synopsis "Mount/unmount volumes in Linux via Helm")
25744 (description "This package provides a Helm interface to run operations
25745 on removable volumes in Linux.")
25746 (home-page "https://github.com/Akirak/helm-linux-disks")
25747 (license license:gpl3+))))
25748
25749 (define-public emacs-psession
25750 (let ((commit "3e97267c92b164584e06a6c70ee7491714c7c12c")
25751 (revision "1"))
25752 (package
25753 (name "emacs-psession")
25754 (version (git-version "1.5" revision commit))
25755 (source
25756 (origin
25757 (method git-fetch)
25758 (uri (git-reference
25759 (url "https://github.com/thierryvolpiatto/psession")
25760 (commit commit)))
25761 (file-name (git-file-name name version))
25762 (sha256
25763 (base32
25764 "15frl618393bc891d0yi3mdxzvbq790a86vfvp3dyd5riz4ddg95"))))
25765 (build-system emacs-build-system)
25766 (propagated-inputs
25767 `(("emacs-async" ,emacs-async)))
25768 (synopsis "Persistent save of @code{elisp} objects.")
25769 (description "This package provides minor modes for saving Emacs session
25770 data, including buffers, window configuration, variables, and more.")
25771 (home-page "https://github.com/thierryvolpiatto/psession")
25772 (license license:gpl3+))))
25773
25774 (define-public emacs-parseedn
25775 (package
25776 (name "emacs-parseedn")
25777 (version "0.2.0")
25778 (source
25779 (origin
25780 (method git-fetch)
25781 (uri (git-reference
25782 (url "https://github.com/clojure-emacs/parseedn")
25783 (commit (string-append "v" version))))
25784 (file-name (git-file-name name version))
25785 (sha256
25786 (base32
25787 "0271amhw63650rrzikcyqxa8sb42npnk7q3yrsay2v79wbqkdaw9"))))
25788 (build-system emacs-build-system)
25789 (propagated-inputs
25790 `(("emacs-a" ,emacs-a)
25791 ("emacs-parseclj" ,emacs-parseclj)))
25792 (home-page "https://cider.mx")
25793 (synopsis "EDN parser for Emacs Lisp")
25794 (description
25795 "Parseedn is an Emacs Lisp library for parsing EDN (Clojure) data.
25796 It uses parseclj's shift-reduce parser internally.")
25797 (license license:gpl3+)))
25798
25799 (define-public emacs-parseclj
25800 (package
25801 (name "emacs-parseclj")
25802 (version "0.2.0")
25803 (source
25804 (origin
25805 (method git-fetch)
25806 (uri (git-reference
25807 (url "https://github.com/clojure-emacs/parseclj")
25808 (commit (string-append "v" version))))
25809 (file-name (git-file-name name version))
25810 (sha256
25811 (base32
25812 "0894vhyx1phq8mdynnnqflcgi2a54hi926f4dk8slawzx1cb9xxb"))))
25813 (build-system emacs-build-system)
25814 (propagated-inputs `(("emacs-a" ,emacs-a)))
25815 (home-page "https://cider.mx")
25816 (synopsis "Clojure parser for Emacs Lisp")
25817 (description
25818 "Parseclj is an Emacs Lisp library for parsing Clojure code and EDN data.
25819 It supports several input and output formats, all powered by the same
25820 shift-reduce parser function.")
25821 (license license:gpl3+)))
25822
25823 (define-public emacs-hide-mode-line
25824 (package
25825 (name "emacs-hide-mode-line")
25826 (version "1.0.2")
25827 (source (origin
25828 (method git-fetch)
25829 (uri (git-reference
25830 (url "https://github.com/hlissner/emacs-hide-mode-line")
25831 (commit (string-append "v" version))))
25832 (file-name (git-file-name name version))
25833 (sha256
25834 (base32
25835 "0dfzjgxfkcw4wisbyldsm1km18pfp9j8xgadn6qnsz11l55bpgyp"))))
25836 (build-system emacs-build-system)
25837 (synopsis "Emacs plugin that hides the mode-line")
25838 (description "A minor mode that hides the mode-line in your current
25839 buffer. It can be used to toggle an alternative mode-line, toggle its visibility,
25840 or simply disable the mode-line in buffers where it is not very useful.")
25841 (home-page "https://github.com/hlissner/emacs-hide-mode-line")
25842 (license license:expat)))
25843
25844 (define-public emacs-helm-cider
25845 ;; No new release since March 2018.
25846 (let ((commit "9363cc537f06233345aa3af5cd46aa5681ad607b"))
25847 (package
25848 (name "emacs-helm-cider")
25849 (version (git-version "0.4.0" "1" commit))
25850 (home-page "https://github.com/clojure-emacs/helm-cider")
25851 (source (origin
25852 (method git-fetch)
25853 (uri (git-reference
25854 (url home-page)
25855 (commit commit)))
25856 (file-name (git-file-name name version))
25857 (sha256
25858 (base32
25859 "0vfn4smqba1vsshz48ggkj8gs94la0sxb1sq4shrb41qj2x3dci7"))))
25860 (build-system emacs-build-system)
25861 (propagated-inputs
25862 `(("emacs-helm" ,emacs-helm)
25863 ("emacs-cider" ,emacs-cider)))
25864 (synopsis "Helm interface to Clojure's CIDER")
25865 (description "Helm-CIDER adds Helm interfaces to
25866 @command{cider-apropos}, @command{cider-apropos-documentation},
25867 @command{cider-browse-ns} (namespaces).
25868
25869 It also provides original Helm commands: @command{helm-cider-spec},
25870 @command{helm-cider-spec-ns}, @command{helm-cider-repl-history},
25871 @command{helm-cider-cheatsheet}.")
25872 (license license:gpl3+))))
25873
25874 (define-public emacs-edn
25875 ;; No release since February 2016
25876 (let ((commit "be9e32d1b49e35247b263b0243df7cfdc8d413ab"))
25877 (package
25878 (name "emacs-edn")
25879 (version (git-version "1.1.2" "1" commit))
25880 (home-page "https://github.com/expez/edn.el")
25881 (source (origin
25882 (method git-fetch)
25883 (uri (git-reference
25884 (url home-page)
25885 (commit commit)))
25886 (file-name (git-file-name name version))
25887 (sha256
25888 (base32
25889 "1xp2hjhn52k6l1g6ypva6dsklpawni7gvjafbz6404f9dyxflh7l"))))
25890 (build-system emacs-build-system)
25891 (propagated-inputs
25892 `(("emacs-peg" ,emacs-peg)))
25893 (synopsis "Read and write EDN from Elisp")
25894 (description "This is an Emacs Lisp library for reading and writing the
25895 data format @code{edn}. See @url{https://github.com/edn-format/edn}.")
25896 (license license:gpl3+))))
25897
25898 (define-public emacs-helm-clojuredocs
25899 (let ((commit "5a7f0f2cb401be0b09e73262a1c18265ab9a3cea"))
25900 (package
25901 (name "emacs-helm-clojuredocs")
25902 (version (git-version "0.3" "1" commit))
25903 (home-page "https://github.com/mbuczko/helm-clojuredocs")
25904 (source (origin
25905 (method git-fetch)
25906 (uri (git-reference
25907 (url home-page)
25908 (commit commit)))
25909 (file-name (git-file-name name version))
25910 (sha256
25911 (base32
25912 "015b8zxh91ljhqvn6z43gy08di54xcw9skw0i7frj3d7gk984qhl"))))
25913 (build-system emacs-build-system)
25914 (propagated-inputs
25915 `(("emacs-helm" ,emacs-helm)
25916 ("emacs-edn" ,emacs-edn)))
25917 (synopsis "Search help on clojuredocs.org with Helm")
25918 (description "This package provides a Helm interface to lookup Clojure
25919 documentation on @url{https://clojuredocs.org} with Helm.
25920
25921 Two function are exposed:
25922 @itemize
25923 @item @command{helm-clojuredocs}: opens a Helm session with no initial
25924 pattern. Searching starts with minimal 3 characters entered.
25925 @item @command{helm-clojuredocs-at-point}: opens a Helm session with initial
25926 pattern guessed from thing under current cursor position.
25927 @end itemize\n")
25928 (license license:gpl3+))))
25929
25930 (define-public emacs-helm-selector
25931 (package
25932 (name "emacs-helm-selector")
25933 (version "0.6.1")
25934 (home-page "https://github.com/emacs-helm/helm-selector")
25935 (source
25936 (origin
25937 (method git-fetch)
25938 (uri (git-reference
25939 (url home-page)
25940 (commit version)))
25941 (file-name (git-file-name name version))
25942 (sha256
25943 (base32
25944 "01lh1df0bnas1p7xlqc4i1jd67f8lxgq0q2zsvx10z8828i76j3v"))))
25945 (build-system emacs-build-system)
25946 (propagated-inputs
25947 `(("emacs-helm" ,emacs-helm)))
25948 (synopsis "Convenient related-buffer selection for Emacs Helm")
25949 (description "Helm Selector is a collection of Helm helper functions for
25950 convenient buffer selection.
25951
25952 It is especially helpful to create Helm sessions to navigate buffers of a
25953 given mode in a “do what I mean” fashion:
25954
25955 If current buffer is not of mode X, switch to last buffer of mode X. If
25956 current buffer is of mode X, show a Helm session of all buffers in mode X. In
25957 the Helm session, it’s also possible to input an arbitrary name which will be
25958 used for the creation of a new buffer of mode X.")
25959 (license license:gpl3+)))
25960
25961 (define-public emacs-helm-wordnut
25962 (let ((commit "9681a9535a839cd5d042c302945ae595852fe7bf"))
25963 (package
25964 (name "emacs-helm-wordnut")
25965 (version (git-version "0.1" "1" commit))
25966 (home-page "https://github.com/emacs-helm/helm-wordnut")
25967 (source
25968 (origin
25969 (method git-fetch)
25970 (uri (git-reference
25971 (url home-page)
25972 (commit commit)))
25973 (file-name (git-file-name name version))
25974 (sha256
25975 (base32
25976 "0msj7nbsb363pxamxi7n2z08cp5jizkpjbwia8f5a161wjglrihs"))))
25977 (build-system emacs-build-system)
25978 (inputs
25979 `(("wordnet" ,wordnet)))
25980 (propagated-inputs
25981 `(("emacs-helm" ,emacs-helm)))
25982 (arguments
25983 `(#:phases
25984 (modify-phases %standard-phases
25985 (add-after 'unpack 'configure
25986 (lambda* (#:key inputs #:allow-other-keys)
25987 (let ((wn (assoc-ref inputs "wordnet")))
25988 ;; .el is read-only in git.
25989 (chmod "helm-wordnut.el" #o644)
25990 ;; Specify the absolute file names of the various
25991 ;; programs so that everything works out-of-the-box.
25992 (emacs-substitute-variables "helm-wordnut.el"
25993 ("helm-wordnut-prog" (string-append wn "/bin/wn"))
25994 ("helm-wordnut-wordnet-location"
25995 (string-append wn "/dict")))))))))
25996 (synopsis "Emacs Helm interface for Wordnet")
25997 (description "This package is merely a combination of two other Emacs
25998 packages: @code{helm-wordnet} and @code{wordnut}. It features word completion
25999 with Helm and displays a buffer of all the different result types available to
26000 Wordnet.")
26001 (license license:gpl3+))))
26002
26003 (define-public emacs-metal-mercury-mode
26004 (let ((commit "99e2d8fb7177cae3bfa2dec2910fc28216d5f5a8")
26005 (revision "1")
26006 (version "0.0.0"))
26007 (package
26008 (name "emacs-metal-mercury-mode")
26009 (version (git-version version revision commit))
26010 (source
26011 (origin
26012 (method git-fetch)
26013 (uri (git-reference
26014 (url "https://github.com/ahungry/metal-mercury-mode")
26015 (commit commit)))
26016 (sha256
26017 (base32
26018 "0iil5k3rgifz2vqwsy12rbv5rzyvidq4sgwazsb2hzys8xynmfn5"))
26019 (file-name (git-file-name name version))))
26020 (build-system emacs-build-system)
26021 (propagated-inputs
26022 `(("emacs-dash" ,emacs-dash)))
26023 (synopsis "Major mode for editing Mercury files")
26024 (description
26025 "Major mode for editing Mercury files. This is a rewrite of the original
26026 mercury-mode provided by Emacs as a wrapper around prolog-mode.")
26027 (home-page "https://github.com/ahungry/metal-mercury-mode")
26028 (license license:gpl3+))))
26029
26030 (define-public emacs-boxquote
26031 (package
26032 (name "emacs-boxquote")
26033 (version "2.2")
26034 (source
26035 (origin
26036 (method git-fetch)
26037 (uri (git-reference
26038 (url "https://github.com/davep/boxquote.el")
26039 (commit (string-append "v" version))))
26040 (file-name (git-file-name name version))
26041 (sha256
26042 (base32 "0wwjawgylaaifdsszqxcfsyhfzgxbjkzqhzrnxnr9b16wghb7xf7"))))
26043 (build-system emacs-build-system)
26044 (home-page "https://github.com/davep/boxquote.el")
26045 (synopsis "Quote text with different kinds of boxes")
26046 (description "@code{boxquote} provides a set of functions for using
26047 a text quoting style that partially boxes in the left hand side of an area of
26048 text, such a marking style might be used to show externally included text or
26049 example code.")
26050 (license license:gpl3+)))
26051
26052 (define-public emacs-buffer-move
26053 (package
26054 (name "emacs-buffer-move")
26055 (version "0.6.2")
26056 (source
26057 (origin
26058 (method git-fetch)
26059 (uri (git-reference
26060 (url "https://github.com/lukhas/buffer-move")
26061 (commit version)))
26062 (file-name (git-file-name name version))
26063 (sha256
26064 (base32 "0xdks4jfqyhkh34y48iq3gz8swp0f526kwnaai5mhgvazvs4za8c"))))
26065 (build-system emacs-build-system)
26066 (home-page "https://github.com/lukhas/buffer-move")
26067 (synopsis "Functions for moving Emacs' buffers around")
26068 (description
26069 "This package define functions for swapping buffers between windows
26070 contained in the same frame. An alternate behavior is to have the current
26071 window switch to the previous buffer instead of swapping with the other
26072 window.")
26073 (license license:gpl3+)))
26074
26075 (define-public emacs-company-ebdb
26076 (package
26077 (name "emacs-company-ebdb")
26078 (version "1.1")
26079 (source
26080 (origin
26081 (method url-fetch)
26082 (uri (string-append "https://elpa.gnu.org/packages/"
26083 "company-ebdb-" version ".el"))
26084 (sha256
26085 (base32 "146qpiigz12zp1823ggxfrx090g0mxs7gz1ba7sa0iq6ibgzwwm9"))))
26086 (build-system emacs-build-system)
26087 (propagated-inputs
26088 `(("emacs-company" ,emacs-company)))
26089 (home-page "https://elpa.gnu.org/packages/company-ebdb.html")
26090 (synopsis "Company completion backend for EBDB in Message mode")
26091 (description "@code{company-ebdb} provides Company mode integration for
26092 EBDB. It is copied more or less intact from @code{company-bbdb}, originally
26093 by Jan Tatarik.")
26094 (license license:gpl3+)))
26095
26096 (define-public emacs-mwim
26097 ;; Use the latest commit not in a release version as of yet, since it
26098 ;; contains a bug fix for the cases where `comment-start-skip' is nil.
26099 (let ((commit "b4f3edb4c0fb8f8b71cecbf8095c2c25a8ffbf85")
26100 (revision "0"))
26101 (package
26102 (name "emacs-mwim")
26103 (version (git-version "0.4" revision commit))
26104 (source
26105 (origin
26106 (method git-fetch)
26107 (uri (git-reference
26108 (url "https://github.com/alezost/mwim.el")
26109 (commit commit)))
26110 (file-name (git-file-name name version))
26111 (sha256
26112 (base32 "0l3k611gp9g2x2vfmh92wnhnda81dslpwwpb8mxmzk308man77ya"))))
26113 (build-system emacs-build-system)
26114 (home-page "https://github.com/alezost/mwim.el")
26115 (synopsis "Move to the beginning/end of line, code or comment")
26116 (description "@code{mwim} provides several commands to switch between
26117 various line positions, like moving to the beginning/end of code, line, or
26118 comment.")
26119 (license license:gpl3+))))
26120
26121 (define-public emacs-delight
26122 (package
26123 (name "emacs-delight")
26124 (version "1.7")
26125 (source
26126 (origin
26127 (method url-fetch)
26128 (uri (string-append "https://elpa.gnu.org/packages/"
26129 "delight-" version ".el"))
26130 (sha256
26131 (base32 "0pihsghrf9xnd1kqlq48qmjcmp5ra95wwwgrb3l8m1wagmmc0bi1"))))
26132 (build-system emacs-build-system)
26133 (home-page "https://elpa.gnu.org/packages/delight.html")
26134 (synopsis "Dimmer switch for your mode-line lighter text")
26135 (description "@code{delight} enables customizing or hiding the
26136 mode-line text (lighter) of major and minor modes.")
26137 (license license:gpl3+)))
26138
26139 (define-public emacs-unkillable-scratch
26140 ;; Use the latest (unreleased) commit as of now, since it contains a handy
26141 ;; `unkillable-scratch-do-not-reset-scratch-buffer' customization to not
26142 ;; repopulate the scratch buffer with `initial-scratch-message'.
26143 (let ((commit "b24c2a760529833f230c14cb02ff6e7ec92288ab")
26144 (revision "0"))
26145 (package
26146 (name "emacs-unkillable-scratch")
26147 (version (git-version "1.0.0" revision commit))
26148 (source
26149 (origin
26150 (method git-fetch)
26151 (uri (git-reference
26152 (url "https://github.com/EricCrosson/unkillable-scratch")
26153 (commit commit)))
26154 (file-name (git-file-name name version))
26155 (sha256
26156 (base32 "13wjbcxr3km4s96yhpavgs5acs5pvqv3ih1p84diqb3x3i6wd4pa"))))
26157 (build-system emacs-build-system)
26158 (home-page "https://github.com/EricCrosson/unkillable-scratch")
26159 (synopsis "Prevents the *scratch* buffer from being killed")
26160 (description "@code{unkillable-scratch} helps prevent killing buffers
26161 matching a given regexp.")
26162 (license license:gpl2+))))
26163
26164 (define-public emacs-switch-buffer-functions
26165 (package
26166 (name "emacs-switch-buffer-functions")
26167 (version "0.0.1")
26168 (source
26169 (origin
26170 (method git-fetch)
26171 (uri (git-reference
26172 (url "https://github.com/10sr/switch-buffer-functions-el")
26173 (commit (string-append "v" version))))
26174 (file-name (git-file-name name version))
26175 (sha256
26176 (base32 "0pq53b8wrjbrxd5hnrcdi0z7mffp4bax55hn90k9ca3j76lhbn1k"))))
26177 (build-system emacs-build-system)
26178 (home-page "https://github.com/10sr/switch-buffer-functions-el")
26179 (synopsis "Hooks run when switching current buffer")
26180 (description "This package provides a hook variable
26181 @code{switch-buffer-functions}. The hooks will be run when the current buffer
26182 is changed after an interactive command, i.e., when @code{post-command-hook}
26183 hooks are run. The hooked functions will be called with both the previous and
26184 the current buffer.")
26185 (license license:unlicense)))
26186
26187 (define-public emacs-erc-scrolltoplace
26188 (package
26189 (name "emacs-erc-scrolltoplace")
26190 (version "0.1.0")
26191 (source
26192 (origin
26193 (method git-fetch)
26194 (uri (git-reference
26195 (url "https://gitlab.com/jgkamat/erc-scrolltoplace.git")
26196 (commit version)))
26197 (file-name (git-file-name name version))
26198 (sha256
26199 (base32 "11zpqwh1mlfifbgnvhc63bvnhg340jgxssm3m43hr1sxsyb52lh6"))))
26200 (build-system emacs-build-system)
26201 (propagated-inputs
26202 `(("emacs-switch-buffer-functions" ,emacs-switch-buffer-functions)))
26203 (home-page "https://gitlab.com/jgkamat/erc-scrolltoplace")
26204 (synopsis "ERC module to replace scrolltobottom while using keep-place")
26205 (description "@code{erc-scrolltoplace} is an ERC module to try
26206 to emulate @code{scrolltobottom} while @code{keep-place} is enabled.")
26207 (license license:gpl3+)))
26208
26209 (define-public emacs-dmenu
26210 ;; Use the latest commit, as there are no tagged releases.
26211 (let ((commit "e8cc9b27c79d3ecc252267c082ab8e9c82eab264")
26212 (revision "0"))
26213 (package
26214 (name "emacs-dmenu")
26215 (version (git-version "0.1" revision commit))
26216 (source
26217 (origin
26218 (method git-fetch)
26219 (uri (git-reference
26220 (url "https://github.com/lujun9972/el-dmenu")
26221 (commit commit)))
26222 (file-name (git-file-name name version))
26223 (sha256
26224 (base32 "098ncygms1r33zhjlq4fj2p4jc91v5whqrm3fazzdk7sd6dilf25"))))
26225 (build-system emacs-build-system)
26226 (home-page "https://github.com/lujun9972/el-dmenu")
26227 (synopsis "Simulate the @command{dmenu} command line program")
26228 (description "This package provides a @command{dmenu} command for
26229 launching other commands/applications from within Emacs, similar to the
26230 @command{dmenu} program. This is especially useful when using EXWM.")
26231 (license license:gpl3+))))
26232
26233 (define-public emacs-no-littering
26234 (package
26235 (name "emacs-no-littering")
26236 (version "1.2.1")
26237 (source
26238 (origin
26239 (method git-fetch)
26240 (uri (git-reference
26241 (url "https://github.com/emacscollective/no-littering")
26242 (commit (string-append "v" version))))
26243 (file-name (git-file-name name version))
26244 (sha256
26245 (base32 "00chkzpjcdll907vpzfzmf9p3jprisnr8i0h1x5gixidwbfc2whi"))))
26246 (build-system emacs-build-system)
26247 (home-page "https://github.com/emacscollective/no-littering")
26248 (synopsis "Help keep @file{~/.emacs.d/} clean")
26249 (description "The default paths used to store configuration files and
26250 persistent data are not consistent across Emacs packages, be them built-in or
26251 third-party ones. @code{no-littering} sets out to help clean
26252 @file{~/.emacs.d/} by putting configuration files and persistent data files in
26253 two user-defined directories, as well as using more descriptive names for
26254 files and subdirectories when appropriate.")
26255 (license license:gpl3+)))
26256
26257 (define-public emacs-meson-mode
26258 (package
26259 (name "emacs-meson-mode")
26260 (version "0.3")
26261 (source
26262 (origin
26263 (method git-fetch)
26264 (uri (git-reference
26265 (url "https://github.com/wentasah/meson-mode")
26266 (commit (string-append "v" version))))
26267 (file-name (git-file-name name version))
26268 (sha256
26269 (base32 "0hlqvq3j4f6g16nj3bm2wbkncn8hv8c8iqd0sch3w80wwqnr622y"))))
26270 (build-system emacs-build-system)
26271 (home-page "https://github.com/wentasah/meson-mode")
26272 (synopsis "Major mode for Meson build system files")
26273 (description
26274 "This is an Emacs major mode for Meson build system files. Syntax
26275 highlighting works reliably. Indentation works too, but there are probably
26276 cases where it breaks.")
26277 (license license:gpl3+)))
26278
26279 (define-public emacs-message-x
26280 ;; Use the latest commit, as there are no tagged releases.
26281 (let ((commit "5524de7bbfdd8749c110f48de5afb024d9f83133")
26282 (revision "0"))
26283 (package
26284 (name "emacs-message-x")
26285 (version (git-version "1.23" revision commit))
26286 (source
26287 (origin
26288 (method git-fetch)
26289 (uri (git-reference
26290 (url "https://github.com/emacsmirror/message-x")
26291 (commit commit)))
26292 (file-name (git-file-name name version))
26293 (sha256
26294 (base32 "0qy1xf11j357lsnbb829hnbg7fq1cii4cx54fwf0wgjh1bv2abvj"))))
26295 (build-system emacs-build-system)
26296 (home-page "https://www.emacswiki.org/emacs/message-x.el")
26297 (synopsis "Customizable completion in message headers")
26298 (description "@code{message-x} assigns a context-sensitive function to
26299 the TAB key in Message mode. When on a header line, it performs completion
26300 based on which header we are in (for example, newsgroup name completion makes
26301 sense on the @samp{Newsgroups} header, whereas mail alias expansion makes
26302 sense in the @samp{To} and @samp{Cc} headers). When in the message body, this
26303 executes a different function (default: @code{indent-relative}).")
26304 (license license:gpl2+))))
26305
26306 (define-public emacs-glsl-mode
26307 ;; No tag, version grabbed from source .el file.
26308 (let ((commit "b07112016436d9634cd4ef747f9af6b01366d136")
26309 (revision "0"))
26310 (package
26311 (name "emacs-glsl-mode")
26312 (version (git-version "2.4" revision commit))
26313 (source
26314 (origin
26315 (method git-fetch)
26316 (uri (git-reference
26317 (url "https://github.com/jimhourihan/glsl-mode")
26318 (commit commit)))
26319 (file-name (git-file-name name version))
26320 (sha256
26321 (base32 "0bav9ipfm0vy26n74ngsmjzc7fsyqz6xmriadzx55s44h8p5dn1s"))))
26322 (build-system emacs-build-system)
26323 (home-page "https://github.com/jimhourihan/glsl-mode")
26324 (synopsis "Major mode for Open GLSL shader files")
26325 (description
26326 "This package provides a major mode for editing OpenGLSL grammar files,
26327 usually files ending with @file{.vert}, @file{.frag}, @file{.glsl} or
26328 @file{.geom}. It is based on C mode plus some features and pre-specified
26329 fontifications.")
26330 (license license:gpl3+))))
26331
26332 (define-public emacs-gnus-harvest
26333 (let ((commit "feda071a87b799bd5d23cacde3ee71f0b166e75d")
26334 (revision "0"))
26335 (package
26336 (name "emacs-gnus-harvest")
26337 (version (git-version "1.0" revision commit))
26338 (source
26339 (origin
26340 (method git-fetch)
26341 (uri (git-reference
26342 (url "https://github.com/jwiegley/gnus-harvest")
26343 (commit commit)))
26344 (file-name (git-file-name name version))
26345 (sha256
26346 (base32 "08zb7vc3v3wdxkzgi902vlc5ybfvm8fxrvm5drnwfsjj9873pbcb"))))
26347 (build-system emacs-build-system)
26348 (inputs
26349 `(("sqlite" ,sqlite)))
26350 (arguments
26351 `(#:phases
26352 (modify-phases %standard-phases
26353 (add-before 'build 'patch-exec-paths
26354 (lambda* (#:key inputs #:allow-other-keys)
26355 (let ((sqlite (assoc-ref inputs "sqlite"))
26356 (file "gnus-harvest.el"))
26357 (make-file-writable file)
26358 (emacs-substitute-variables file
26359 ("gnus-harvest-sqlite-program"
26360 (string-append sqlite "/bin/sqlite3"))))
26361 #t)))))
26362 (home-page "https://github.com/jwiegley/gnus-harvest")
26363 (synopsis
26364 "Harvest email addresses from read/written Gnus articles")
26365 (description "@code{gnus-harvest} notices email address in every message
26366 or post you read or write, and collects them in a SQLite database, which can
26367 be easily and quickly queried to determine the completion list. It optionally
26368 uses BBDB and Message-X.")
26369 (license license:gpl3+))))
26370
26371 (define-public emacs-auto-dictionary-mode
26372 (package
26373 (name "emacs-auto-dictionary-mode")
26374 (version "1.1")
26375 (source
26376 (origin
26377 (method git-fetch)
26378 (uri (git-reference
26379 (url "https://github.com/nschum/auto-dictionary-mode")
26380 (commit version)))
26381 (file-name (git-file-name name version))
26382 (sha256
26383 (base32 "191294k92qp8gmfypf0q8j8qrym96aqikzvyb9p03wqvbr3r1dsk"))))
26384 (build-system emacs-build-system)
26385 (home-page "http://nschum.de/src/emacs/auto-dictionary/")
26386 (synopsis "Automatic dictionary switcher for Emacs spell checking")
26387 (description "@code{auto-dictionary} is a minor mode that hooks into
26388 Flyspell's on-the-fly spell checking and extends these checks to also detect
26389 language. Auto-dictionary then sets @code{ispell-dictionary} to use the
26390 detected language.")
26391 (license license:gpl2+)))
26392
26393 (define-public emacs-persist
26394 (package
26395 (name "emacs-persist")
26396 (version "0.4")
26397 (source
26398 (origin
26399 (method url-fetch)
26400 (uri (string-append "https://elpa.gnu.org/packages/"
26401 "persist-" version ".tar"))
26402 (sha256
26403 (base32 "0gpxy41qawzss2526j9a7lys60vqma1lvamn4bfabwza7gfhac0q"))))
26404 (build-system emacs-build-system)
26405 (home-page "http://elpa.gnu.org/packages/persist.html")
26406 (synopsis "Persist variables between Emacs sessions")
26407 (description
26408 "This package provides variables which persist across sessions.
26409 Values are stored in a directory in @code{user-emacs-directory}, using
26410 one file per value. This makes it easy to delete or remove unused
26411 variables.")
26412 (license license:gpl3+)))
26413
26414 (define-public emacs-company-emoji
26415 (package
26416 (name "emacs-company-emoji")
26417 (version "2.6.1")
26418 (source
26419 (origin
26420 (method git-fetch)
26421 (uri (git-reference
26422 (url "https://github.com/dunn/company-emoji/")
26423 (commit version)))
26424 (file-name (git-file-name name version))
26425 (sha256
26426 (base32 "1rhf2hr345953mkn52i58aiq8j16ps2ckapd5f7jxmhkcpzxxfhk"))))
26427 (build-system emacs-build-system)
26428 (propagated-inputs
26429 `(("emacs-company" ,emacs-company)))
26430 (home-page "https://github.com/dunn/company-emoji/")
26431 (synopsis "Company completion back-end for emoji")
26432 (description
26433 "This library is a Company back-end providing auto-completion for
26434 emoji.")
26435 (license license:gpl3+)))
26436
26437 (define-public emacs-exiftool
26438 (package
26439 (name "emacs-exiftool")
26440 (version "0.3.2")
26441 (source
26442 (origin
26443 (method git-fetch)
26444 (uri (git-reference
26445 (url "https://git.systemreboot.net/exiftool.el/")
26446 (commit (string-append "v" version))))
26447 (file-name (git-file-name name version))
26448 (sha256
26449 (base32
26450 "0bv58is66cz21yhc0qqkp1z4nk13zfi2l7i6pjbhyi0g1n88qqyv"))))
26451 (build-system emacs-build-system)
26452 (arguments
26453 `(#:tests? #t
26454 #:test-command '("make" "-C" "tests")
26455 #:phases
26456 (modify-phases %standard-phases
26457 (add-after 'unpack 'configure
26458 (lambda* (#:key inputs #:allow-other-keys)
26459 (make-file-writable "exiftool.el")
26460 (emacs-substitute-variables "exiftool.el"
26461 ("exiftool-executable"
26462 (string-append (assoc-ref inputs "perl-image-exiftool")
26463 "/bin/exiftool")))
26464 #t)))))
26465 (inputs
26466 `(("perl-image-exiftool" ,perl-image-exiftool)))
26467 (home-page "https://git.systemreboot.net/exiftool.el/about/")
26468 (synopsis "Elisp wrapper around ExifTool")
26469 (description "@code{emacs-exiftool} is an Elisp wrapper around ExifTool.
26470 ExifTool supports reading and writing metadata in various formats including
26471 EXIF, XMP and IPTC.")
26472 (license license:gpl3+)))
26473
26474 (define-public emacs-password-generator
26475 (package
26476 (name "emacs-password-generator")
26477 (version "1.01")
26478 (home-page "https://github.com/zargener/emacs-password-genarator")
26479 (source
26480 (origin
26481 (method git-fetch)
26482 (uri (git-reference
26483 (url home-page)
26484 (commit "904cdb591a04305ba882ce19e1d117f5fa60f7d3")))
26485 (file-name (git-file-name name version))
26486 (sha256
26487 (base32
26488 "1qgvn79qz1h8ykm5i1qv2fja4v2y0g2i0n5sf7byhnqhqlwn63nv"))))
26489 (build-system emacs-build-system)
26490 (synopsis "Generate passwords inside Emacs")
26491 (description "@code{emacs-password-generator} provides simple functions to
26492 generate random passwords and insert them into the current buffer. It also
26493 supports generation of phonetic and numeric passwords.")
26494 (license license:artistic2.0)))
26495
26496 (define-public emacs-csv
26497 (package
26498 (name "emacs-csv")
26499 (version "2.1")
26500 (home-page "https://gitlab.com/u11/csv.el")
26501 (source
26502 (origin
26503 (method git-fetch)
26504 (uri (git-reference
26505 (url home-page)
26506 (commit (string-append "V" version))))
26507 (file-name (git-file-name name version))
26508 (sha256
26509 (base32
26510 "1vmazjrfcsa9aa9aw8bq5sazdhqvhxyj837dyw5lmh8gk7z0xdaa"))))
26511 (build-system emacs-build-system)
26512 (synopsis "Elisp functions for reading and parsing CSV files")
26513 (description
26514 "@code{csv.el} provides functions for reading and parsing @acronym{CSV,
26515 Comma-Separated Values} files. It follows the format as defined in RFC 4180
26516 @emph{Common Format and MIME Type for CSV
26517 Files} (@url{http://tools.ietf.org/html/rfc4180}).")
26518 (license license:gpl3+)))
26519
26520 (define-public emacs-org-journal
26521 (package
26522 (name "emacs-org-journal")
26523 (version "2.1.2")
26524 (source
26525 (origin
26526 (method git-fetch)
26527 (uri (git-reference
26528 (url "https://github.com/bastibe/org-journal")
26529 (commit version)))
26530 (file-name (git-file-name name version))
26531 (sha256
26532 (base32 "0s82sh2svc0mzr1ak414n5r2j0dmwvvyx4swk2c61zivc2gjd778"))))
26533 (build-system emacs-build-system)
26534 (home-page "https://github.com/bastibe/org-journal")
26535 (synopsis "Simple Org mode journaling mode")
26536 (description
26537 "Org Journal is a set of functions to maintain a simple personal diary /
26538 journal using in Emacs, adapted from
26539 @url{https://www.emacswiki.org/emacs/PersonalDiary}. Convenient bindings
26540 allow the creation of journal records in the current daily, weekly, monthly or
26541 yearly file and search within all records or specified time intervals. All
26542 records can be browsed and searched from the Emacs Calendar for convenience.
26543 All entries in a specified TODO state will be carried over to the next day.")
26544 (license license:bsd-3)))
26545
26546 (define-public emacs-org-static-blog
26547 (package
26548 (name "emacs-org-static-blog")
26549 (version "1.4.0")
26550 (source
26551 (origin
26552 (method git-fetch)
26553 (uri (git-reference
26554 (url "https://github.com/bastibe/org-static-blog")
26555 (commit version)))
26556 (file-name (git-file-name name version))
26557 (sha256
26558 (base32 "00yhgxg87mfaflrkh0i905hr873yd03a7znw5hkrps43zxha9kb9"))))
26559 (build-system emacs-build-system)
26560 (home-page "https://github.com/bastibe/org-static-blog")
26561 (synopsis
26562 "Simple Org mode based static blog generator")
26563 (description
26564 "@code{emacs-org-static-blog} is one more static blog generator, it
26565 focuses on being simple. All files are simple Org files in a directory. The
26566 only requirement is that every Org file must have a @samp{title} and
26567 a @samp{date} keywords, and optionally, a @samp{filetags} keyword.")
26568 (license license:bsd-3)))
26569
26570 (define-public emacs-ddskk
26571 ;; XXX: Upstream adds code names to their release tags, so version and code
26572 ;; name below need to be updated together.
26573 (let ((version "17.1")
26574 (code-name "Neppu"))
26575 (package
26576 (name "emacs-ddskk")
26577 (version version)
26578 (source
26579 (origin
26580 (method git-fetch)
26581 (uri (git-reference
26582 (url "https://github.com/skk-dev/ddskk")
26583 (commit (string-append "ddskk-" version "_" code-name))))
26584 (file-name (git-file-name name version))
26585 (sha256
26586 (base32 "0xm53rybxki2784gyjkafg6956viyhhcq51kbmnrwc6aw3yzh7aw"))))
26587 (build-system gnu-build-system)
26588 (arguments
26589 `(#:modules ((guix build gnu-build-system)
26590 (guix build utils)
26591 (guix build emacs-utils))
26592 #:imported-modules (,@%gnu-build-system-modules
26593 (guix build emacs-utils))
26594 #:test-target "test"
26595 #:phases
26596 (modify-phases %standard-phases
26597 (replace 'configure
26598 (lambda* (#:key outputs #:allow-other-keys)
26599 (make-file-writable "SKK-MK")
26600 (emacs-substitute-variables "SKK-MK"
26601 ("PREFIX" (assoc-ref outputs "out"))
26602 ("LISPDIR" '(expand-file-name "/share/emacs/site-lisp" PREFIX))
26603 ("SKK_PREFIX" "")
26604 ("SKK_INFODIR" '(expand-file-name "info" PREFIX)))
26605 (for-each make-file-writable (find-files "./doc"))
26606 #t))
26607 (add-after 'unpack 'fix-test
26608 (lambda _
26609 (substitute* "Makefile"
26610 (("/bin/rm") (which "rm"))))))))
26611 (native-inputs
26612 `(("emacs-minimal" ,emacs-minimal)
26613 ("ruby" ,ruby)))
26614 (home-page "https://github.com/skk-dev/ddskk")
26615 (synopsis "Simple Kana to Kanji conversion program")
26616 (description
26617 "Daredevil SKK is a version of @acronym{SKK, Simple Kana to Kanji
26618 conversion program}, a Japanese input method on Emacs.")
26619 (license license:gpl2+))))
26620
26621 (define-public emacs-objed
26622 (package
26623 (name "emacs-objed")
26624 (version "0.8.3")
26625 (source
26626 (origin
26627 (method url-fetch)
26628 (uri (string-append
26629 "https://elpa.gnu.org/packages/objed-" version ".tar"))
26630 (sha256
26631 (base32
26632 "1s38d6bvggdk5p45ww1jb4gxifzgjwgw1m6ar920nlg0j4fgbcvr"))))
26633 (build-system emacs-build-system)
26634 (home-page "https://github.com/clemera/objed")
26635 (synopsis "Navigate and edit text objects")
26636 (description
26637 "@code{emacs-objed} allows navigating and editing text objects. It
26638 enables modal editing and composition of commands, too. It combines ideas of
26639 other Editors like Vim or Kakoune and tries to align them with regular Emacs
26640 conventions.")
26641 (license license:gpl3+)))
26642
26643 (define-public emacs-haskell-snippets
26644 ;; The commit below is 5 commits ahead of release, and includes a build fix.
26645 (let ((commit "07b0f460b946fd1be26c29652cb0468b47782f3a"))
26646 (package
26647 (name "emacs-haskell-snippets")
26648 (version (git-version "0.1.0" "0" commit))
26649 (source
26650 (origin
26651 (method git-fetch)
26652 (uri
26653 (git-reference
26654 (url "https://github.com/haskell/haskell-snippets")
26655 (commit commit)))
26656 (file-name (git-file-name name version))
26657 (sha256
26658 (base32 "0a7y3awi9hcyahggf0ghsdwvsmrhr9yq634wy9lkqjzrm2hqj0ci"))))
26659 (build-system emacs-build-system)
26660 (arguments
26661 `(#:phases
26662 (modify-phases %standard-phases
26663 (add-after 'install 'install-snippets
26664 (lambda* (#:key outputs #:allow-other-keys)
26665 (let* ((out (assoc-ref outputs "out"))
26666 (snippets
26667 (string-append
26668 out "/share/emacs/site-lisp/snippets/haskell-mode")))
26669 (mkdir-p snippets)
26670 (copy-recursively "snippets/haskell-mode" snippets)
26671 #t))))))
26672 (propagated-inputs
26673 `(("emacs-yasnippet" ,emacs-yasnippet)))
26674 (home-page "https://github.com/haskell/haskell-snippets")
26675 (synopsis "Official collection of YASnippet Haskell snippets for Emacs")
26676 (description "Haskell-Snippets is a collection of YASnippet Haskell
26677 snippets for Emacs.")
26678 (license license:expat))))
26679
26680 (define-public emacs-org-roam
26681 (let ((commit "8ad57b121831eda8d226faa14ff2ba7ab652849c")
26682 (revision "0")
26683 (version "1.2.3"))
26684 (package
26685 (name "emacs-org-roam")
26686 (version (git-version version revision commit))
26687 (source
26688 (origin
26689 (method git-fetch)
26690 (uri (git-reference
26691 (url "https://github.com/org-roam/org-roam")
26692 (commit commit)))
26693 (file-name (git-file-name name version))
26694 (sha256
26695 (base32 "162qhb6rkpl1n0l8yhnwgagsx56ykaj9lchsny1id5z1257kgw9w"))))
26696 (build-system emacs-build-system)
26697 (propagated-inputs
26698 `(("emacs-dash" ,emacs-dash)
26699 ("emacs-emacsql-sqlite3" ,emacs-emacsql-sqlite3)
26700 ("emacs-f" ,emacs-f)
26701 ("emacs-org" ,emacs-org)
26702 ("emacs-s" ,emacs-s)))
26703 (home-page "https://github.com/org-roam/org-roam/")
26704 (synopsis "Non-hierarchical note-taking with Org mode")
26705 (description "Emacs Org Roam is a solution for taking non-hierarchical
26706 notes with Org mode. Notes are captured without hierarchy and are connected
26707 by tags. Notes can be found and created quickly. Org Roam should also work
26708 as a plug-and-play solution for anyone already using Org mode for their
26709 personal wiki.")
26710 (license license:gpl3+))))
26711
26712 (define-public emacs-org-roam-bibtex
26713 (package
26714 (name "emacs-org-roam-bibtex")
26715 (version "0.4.0")
26716 (source
26717 (origin
26718 (method git-fetch)
26719 (uri (git-reference
26720 (url "https://github.com/org-roam/org-roam-bibtex")
26721 (commit (string-append "v" version))))
26722 (file-name (git-file-name name version))
26723 (sha256
26724 (base32 "13pll793khyfncpwm2dg24w747sqp7kgf7m3fqw2xzhv9cx2g7nq"))))
26725 (build-system emacs-build-system)
26726 (propagated-inputs
26727 `(("emacs-helm-bibtex" ,emacs-helm-bibtex)
26728 ("emacs-org-ref" ,emacs-org-ref)
26729 ("emacs-org-roam" ,emacs-org-roam)))
26730 (home-page "https://github.com/org-roam/org-roam-bibtex")
26731 (synopsis "Connector between Org Roam, BibTeX-completion, and Org Ref")
26732 (description
26733 "Org Roam BibTeX is a library which offers a tighter integration between
26734 Org Roam, Helm-BibTeX, and Org Ref. It allows users to access their
26735 bibliographical notes in Org Roam directory via Helm BibTeX, Ivy BibTeX, or by
26736 opening Org Ref's @code{cite:} links.")
26737 (license license:gpl3+)))
26738
26739 (define-public emacs-org-generate
26740 (package
26741 (name "emacs-org-generate")
26742 (version "1.0.0")
26743 (source (origin
26744 (method git-fetch)
26745 (uri (git-reference
26746 (url "https://github.com/conao3/org-generate.el")
26747 (commit (string-append "v" version))))
26748 (file-name (git-file-name name version))
26749 (sha256
26750 (base32
26751 "0z2frp5mn3lp2xskwanw2rncrwa50x3aphy87vfxmhx4fqlqrzy8"))))
26752 (inputs
26753 `(("emacs-cort" ,emacs-cort))) ;tests suite
26754 (propagated-inputs
26755 `(("emacs-mustache" ,emacs-mustache)))
26756 (arguments
26757 `(#:tests? #t
26758 #:test-command '("emacs" "--batch" "--quick"
26759 "--directory=." "--load=org-generate-tests.el"
26760 "--funcall=cort-test-run")))
26761 (build-system emacs-build-system)
26762 (home-page "https://github.com/conao3/org-generate.el")
26763 (synopsis "Generate template files and folders from Org document")
26764 (description "This package generates files and folders from Emacs
26765 org-mode templates.")
26766 (license license:gpl3+)))
26767
26768 (define-public emacs-uml-mode
26769 ;; Package has no release. Version is extracted from "Version:" keyword in
26770 ;; main file.
26771 (let ((commit "4c37ac1c4424b2313cd8f16ba48a98a4cc214200")
26772 (revision "1"))
26773 (package
26774 (name "emacs-uml-mode")
26775 (version (git-version "0.0.4" revision commit))
26776 (source
26777 (origin
26778 (method git-fetch)
26779 (uri (git-reference
26780 (url "https://github.com/ianxm/emacs-uml")
26781 (commit commit)))
26782 (file-name (git-file-name name version))
26783 (sha256
26784 (base32 "145i4srnfvd1vyibri2a1l6p9mbjvkkwlrpi41134pbarqffcnka"))))
26785 (build-system emacs-build-system)
26786 (home-page "https://github.com/ianxm/emacs-uml")
26787 (synopsis "Minor mode for editing ASCII UML sequence diagrams")
26788 (description "Emacs UML mode is a minor mode that makes it easy to build
26789 ASCII UML sequence diagrams in Emacs, which can be embedded in source code,
26790 comments or emails.")
26791 (license license:gpl3+))))
26792
26793 (define-public emacs-trashed
26794 (package
26795 (name "emacs-trashed")
26796 (version "2.1.2")
26797 (source
26798 (origin
26799 (method git-fetch)
26800 (uri (git-reference
26801 (url "https://github.com/shingo256/trashed/")
26802 (commit version)))
26803 (file-name (git-file-name name version))
26804 (sha256
26805 (base32 "0lfza55nbb62nmr27cwpcz2ad1vm95piq4nfd8zvkwqbn6klwmm6"))))
26806 (build-system emacs-build-system)
26807 (home-page "https://github.com/shingo256/trashed/")
26808 (synopsis "View and edit system trash can in Emacs")
26809 (description "Open, view, browse, restore or permanently delete trashed
26810 files or directories in trash can with Dired-like look and feel. The trash
26811 can has to be compliant with freedesktop.org. In Emacs, you can trash files by
26812 deleting them with @code{(setq delete-by-moving-to-trash t)}. This package
26813 provides a simple but convenient user interface to manage those trashed
26814 files.")
26815 (license license:gpl3+)))
26816
26817 (define-public emacs-plantuml-mode
26818 (package
26819 (name "emacs-plantuml-mode")
26820 (version "1.4.1")
26821 (source
26822 (origin
26823 (method git-fetch)
26824 (uri (git-reference
26825 (url "https://github.com/skuro/plantuml-mode")
26826 (commit (string-append "v" version))))
26827 (file-name (git-file-name name version))
26828 (sha256
26829 (base32 "0yp41d2dmf3sx7qnl5x0zdjcr9y71b2wwc9m0q31v22xqn938ipc"))))
26830 (arguments
26831 '(#:phases
26832 (modify-phases %standard-phases
26833 (add-after 'unpack 'use-local-plantuml
26834 (lambda* (#:key inputs #:allow-other-keys)
26835 (let ((plantuml (assoc-ref inputs "plantuml"))
26836 (file "plantuml-mode.el"))
26837 (chmod file #o644)
26838 (emacs-substitute-variables file
26839 ("plantuml-jar-path"
26840 (string-append plantuml "/share/java/plantuml.jar"))
26841 ("plantuml-executable-path"
26842 (string-append plantuml "/bin/plantuml"))
26843 ("plantuml-server-url" 'nil)
26844 ("plantuml-default-exec-mode" ''executable))
26845 (emacs-batch-edit-file file
26846 `(progn (progn
26847 (goto-char (point-min))
26848 (re-search-forward "(defun plantuml-download-jar")
26849 (beginning-of-line)
26850 (kill-sexp))
26851 (basic-save-buffer)))
26852 #t))))))
26853 (inputs
26854 `(("plantuml" ,plantuml)))
26855 (propagated-inputs
26856 `(("emacs-dash" ,emacs-dash)))
26857 (build-system emacs-build-system)
26858 (home-page "https://github.com/skuro/plantuml-mode")
26859 (synopsis "Major mode for editing PlantUML sources")
26860 (description "This package provides a major mode for editing PlantUML
26861 sources. It features syntax highlighting, autocompletion, preview of buffer
26862 or region and use of locally installed binaries.")
26863 (license license:gpl3+)))
26864
26865 (define-public emacs-execline
26866 (package
26867 (name "emacs-execline")
26868 (version "1.1")
26869 (source (origin
26870 (method git-fetch)
26871 (uri (git-reference
26872 (url "https://gitlab.com/KAction/emacs-execline/")
26873 (commit (string-append "v" version))))
26874 (file-name (git-file-name name version))
26875 (sha256
26876 (base32
26877 "02q531c9wvdwflhggflnci4a36h2bb90bq25bbhw6i2lvrd9sk55"))))
26878 (build-system emacs-build-system)
26879 (propagated-inputs
26880 `(("emacs-s" ,emacs-s)))
26881 (arguments
26882 `(#:tests? #t
26883 #:test-command '("emacs" "-Q" "-batch" "-L" "."
26884 "-l" "t/indent.el"
26885 "-f" "ert-run-tests-batch-and-exit")))
26886 (home-page "https://gitlab.com/KAction/emacs-execline/")
26887 (synopsis "Major Emacs mode for editing execline scripts")
26888 (description
26889 "This package provides a major mode for editing execline scripts.
26890
26891 Features:
26892 @itemize
26893 @item Syntax highlighting of commends, builtin commands and variable substitution.
26894 @item Completion of builtin commands.
26895 @item Working @code{comment-region} command.
26896 @item Indentation of blocks.
26897 @item Automatic enable of mode in @file{*.exec} files.
26898 @item Automatic enable of mode in files with @code{execlineb} interpreter.
26899 @end itemize\n")
26900 (license license:gpl3+)))
26901
26902 (define-public emacs-shell-pop
26903 (let ((commit "4b4394037940a890a313d715d203d9ead2d156a6")
26904 (revision "0"))
26905 (package
26906 (name "emacs-shell-pop")
26907 (version (git-version "0.64" revision commit))
26908 (source
26909 (origin
26910 (method git-fetch)
26911 (uri (git-reference
26912 (url "https://github.com/kyagi/shell-pop-el")
26913 (commit commit)))
26914 (file-name (git-file-name name version))
26915 (sha256
26916 (base32 "0s77n6b9iw1x3dv91ybkpgy3zvqd12si7zw3lg0m2b6j1akrawsg"))))
26917 (build-system emacs-build-system)
26918 (home-page "https://github.com/kyagi/shell-pop-el")
26919 (synopsis "Utility which helps with pop up shell buffer")
26920 (description
26921 "This Emacs utility helps you pop up and pop out shell buffer window
26922 easily. Four pre-set options are: @samp{shell}, @samp{terminal},
26923 @samp{ansi-term}, and @samp{eshell}. You can also set your custom shell if
26924 you use some other configuration.")
26925 (license license:gpl3+))))
26926
26927 (define-public emacs-extmap
26928 (package
26929 (name "emacs-extmap")
26930 (version "1.1.1")
26931 (source
26932 (origin
26933 (method git-fetch)
26934 (uri (git-reference
26935 (url "https://github.com/doublep/extmap")
26936 (commit version)))
26937 (file-name (git-file-name name version))
26938 (sha256
26939 (base32
26940 "09kia3mr4si8kn46kyiza9nl669b22vmgc70ng3mqz742lph5siw"))))
26941 (build-system emacs-build-system)
26942 (home-page "https://github.com/doublep/extmap")
26943 (synopsis "Externally-stored constant mapping for Emacs Lisp")
26944 (description "A very simple package that lets you build a
26945 read-only, constant database that maps Emacs Lisp symbols to
26946 arbitrary Emacs Lisp objects.")
26947 (license license:gpl3+)))
26948
26949 (define-public emacs-csound-mode
26950 (package
26951 (name "emacs-csound-mode")
26952 (version "0.2.1")
26953 (source
26954 (origin
26955 (method git-fetch)
26956 (uri (git-reference
26957 (url "https://github.com/hlolli/csound-mode")
26958 (commit version)))
26959 (file-name (git-file-name name version))
26960 (sha256
26961 (base32
26962 "1c88ak0jaj51fwiqniqxd7xyk23wjl9m57znzm8j267ld8g12znp"))))
26963 (build-system emacs-build-system)
26964 (arguments
26965 `(#:phases
26966 (modify-phases %standard-phases
26967 (add-after 'unpack 'disable-breaking-compilation
26968 (lambda _
26969 (for-each (lambda (file)
26970 (chmod file #o600) ; needed to write changes.
26971 (emacs-batch-disable-compilation file))
26972 '("csound-font-lock.el"))
26973 #t)))))
26974 (inputs
26975 `(("emacs-highlight" ,emacs-highlight)
26976 ("emacs-multi" ,emacs-multi)
26977 ("emacs-shut-up" ,emacs-shut-up)))
26978 (home-page "https://github.com/hlolli/csound-mode")
26979 (synopsis "Emacs major mode for coding in CSound")
26980 (description "Provides both a basic major mode for editing
26981 CSound files, as well as a REPL for fast feedback when composing
26982 and sound-designing.")
26983 (license license:gpl3+)))
26984
26985 (define-public emacs-multi
26986 (package
26987 (name "emacs-multi")
26988 (version "2.0.1")
26989 (source
26990 (origin
26991 (method git-fetch)
26992 (uri (git-reference
26993 (url "https://github.com/kurisuwhyte/emacs-multi")
26994 (commit (string-append "v" version))))
26995 (file-name (git-file-name name version))
26996 (sha256
26997 (base32
26998 "11zabs7qpdhri6n90ck7pgwcbz46d813nyl73h5m1i8jvz1wzx7v"))))
26999 (build-system emacs-build-system)
27000 (home-page "https://github.com/kurisuwhyte/emacs-multi")
27001 (synopsis "Clojure-style multi-methods for Emacs Lisp")
27002 (description "Provides Emacs Lisp with a form of polymorphism
27003 by way of predicate dispatching. Methods consist of a dispatch
27004 function, and a series of branches. The dispatch function is
27005 applied to the arguments, and the result value is checked against
27006 the expectations of each branch to define which one to invoke.")
27007 (license license:expat)))
27008
27009 (define-public emacs-highlight
27010 (let ((commit "9258a2b8362d737115cbd87618f947eadb140411")
27011 (revision "1"))
27012 (package
27013 (name "emacs-highlight")
27014 (version "0.0.0")
27015 (source
27016 (origin
27017 (method git-fetch)
27018 (uri (git-reference
27019 (url "https://github.com/emacsmirror/highlight/")
27020 (commit commit)))
27021 (file-name (git-file-name name commit))
27022 (sha256
27023 (base32
27024 "0pbqzgbfkm8smi23j94hirxh2r1yc0ipyjbbv1y906br6bx5c1a8"))))
27025 (build-system emacs-build-system)
27026 (home-page "https://github.com/emacsmirror/highlight")
27027 (synopsis "Highlighting commands for GNU Emacs")
27028 (description "This library adds the possibility for ad-hoc
27029 applying highlighting to any face in GNU Emacs. The functionality
27030 of this library depends on overlays, which by default are not
27031 picked up when copy-pasting text from buffer to buffer.")
27032 (license license:gpl2+))))
27033
27034 (define-public emacs-org-webring
27035 (package
27036 (name "emacs-org-webring")
27037 (version "2.0.0")
27038 (source
27039 (origin
27040 (method git-fetch)
27041 (uri (git-reference
27042 (url "https://git.sr.ht/~brettgilio/org-webring")
27043 (commit version)))
27044 (file-name (git-file-name name version))
27045 (sha256
27046 (base32
27047 "1si0jah7n2gvlvghjy5dpannqpkxni5rczfp1x2a4z6ydalr3bn5"))))
27048 (build-system emacs-build-system)
27049 (arguments
27050 `(#:phases
27051 (modify-phases %standard-phases
27052 (add-after 'install 'install-assets
27053 (lambda* (#:key outputs #:allow-other-keys)
27054 (let* ((out (assoc-ref outputs "out"))
27055 (assets
27056 (string-append out "/share/emacs/org-webring-assets")))
27057 (mkdir-p assets)
27058 (copy-recursively "assets" assets)
27059 #t))))))
27060 (propagated-inputs
27061 `(("emacs-xmlgen" ,emacs-xmlgen)))
27062 (home-page "https://sr.ht/~brettgilio/org-webring")
27063 (synopsis "Generate webrings for Org-based sites / blogs")
27064 (description "Org-webring is an alternative implementation of a
27065 feed-based webring, taking inspiration from openring by Drew DeVault.
27066 Intended to integrate with Org-based websites and blogs (either
27067 directly, or indirectly, as in ox-hugo), it will fetch a given list of
27068 web feed files and correctly parse and format the elements to be
27069 displayed for sharing.")
27070 (license license:gpl3+)))
27071
27072 (define-public emacs-scpaste
27073 (let ((commit "cd4fa0aafecd839736e0b6cba68b4fc4d7045472")
27074 (revision "0"))
27075 (package
27076 (name "emacs-scpaste")
27077 (version "0.6.5")
27078 (source
27079 (origin
27080 (method git-fetch)
27081 (uri (git-reference
27082 (url "https://git.sr.ht/~technomancy/scpaste")
27083 (commit commit)))
27084 (file-name (git-file-name name commit))
27085 (sha256
27086 (base32
27087 "1nvwbwl26z03963g9c82b3ggm39r95z1vp7c9qsa9mjm46dyq27w"))))
27088 (build-system emacs-build-system)
27089 (propagated-inputs
27090 `(("emacs-htmlize" ,emacs-htmlize)))
27091 (home-page "https://git.sr.ht/~technomancy/scpaste")
27092 (synopsis "Emacs-based static HTML pastebin")
27093 (description "This library will place an HTML copy of a
27094 buffer on an active webserver to which the user has SSH access.
27095 It is similar in purpose to services such as Gist or Pastebin,
27096 but is much simpler since it assumes the user has access to a
27097 publicly-accessible HTTP server.")
27098 (license license:gpl3+))))
27099
27100 (define-public emacs-company-reftex
27101 (package
27102 (name "emacs-company-reftex")
27103 (version "0.1.0")
27104 (source
27105 (origin
27106 (method git-fetch)
27107 (uri (git-reference
27108 (url "https://github.com/TheBB/company-reftex")
27109 (commit "275ef708f08d3bf0eb30632148e5c6184eeaacdb")))
27110 (file-name (git-file-name name version))
27111 (sha256
27112 (base32
27113 "118cgw5lsffqdqz95mnkw36mmnsbg9m52r2np4m7v14mjjwr9fby"))))
27114 (build-system emacs-build-system)
27115 (propagated-inputs
27116 `(("emacs-company" ,emacs-company)
27117 ("emacs-s" ,emacs-s)))
27118 (home-page "https://github.com/TheBB/company-reftex")
27119 (synopsis "RefTeX backends for company-mode")
27120 (description "This package provides company-mode backends for completing
27121 label references and citations in LaTeX. It is based on RefTeX, which is
27122 included with Emacs.")
27123 (license license:gpl3+)))
27124
27125 (define-public emacs-html-to-hiccup
27126 ;; Package has no release. Version is extracted from "Version:" keyword in
27127 ;; main file.
27128 (let ((commit "50a52e2b0d13d865187acdf775b8203d5003f2f1")
27129 (revision "0"))
27130 (package
27131 (name "emacs-html-to-hiccup")
27132 (version (git-version "1" revision commit))
27133 (source
27134 (origin
27135 (method git-fetch)
27136 (uri (git-reference
27137 (url "https://github.com/plexus/html-to-hiccup")
27138 (commit commit)))
27139 (file-name (git-file-name name version))
27140 (sha256
27141 (base32 "1qi092mw2n08v6yr0j6hlpx0pnlcnhxjqbsrlw9pn4yin6zk91yp"))))
27142 (build-system emacs-build-system)
27143 (propagated-inputs
27144 `(("dash" ,emacs-dash)
27145 ("s" ,emacs-s)))
27146 (home-page "https://github.com/plexus/html-to-hiccup")
27147 (synopsis "Turn HTML into Hiccup syntax")
27148 (description
27149 "This is an Emacs package that turns HTML into Hiccup syntax
27150 which is a popular notation to use when doing Clojure/ClojureScript
27151 web development.")
27152 ;; There is a conflict between the repository official LICENSE
27153 ;; file and the header of the main elisp file which indicates
27154 ;; that it is licensed under the GPL version 3 or later.
27155 (license (list license:mpl2.0 license:gpl3+)))))
27156
27157 (define-public emacs-iter2
27158 (package
27159 (name "emacs-iter2")
27160 (version "1.0")
27161 (source
27162 (origin
27163 (method git-fetch)
27164 (uri (git-reference
27165 (url "https://github.com/doublep/iter2")
27166 (commit version)))
27167 (file-name (git-file-name name version))
27168 (sha256
27169 (base32 "0gaq3z2v1q4r9mkyq71dzmqakhi0p8g7ph4z0n3a11rvyc3z9ykx"))))
27170 (build-system emacs-build-system)
27171 (home-page "https://github.com/doublep/iter2")
27172 (synopsis "Reimplementation of Elisp generators")
27173 (description "@code{iter2} is a fully compatible reimplementation of
27174 built-in generator package. It provides @code{iter2-defun} and
27175 @code{iter2-lambda} forms that can be used in place of @code{iter-defun} and
27176 @code{iter-lambda}. All other functions and macros (e.g. @code{iter-yield},
27177 @code{iter-next}) are intentionally not duplicated: just use the ones from the
27178 original package.")
27179 (license license:gpl3+)))
27180
27181 (define-public emacs-promise
27182 (package
27183 (name "emacs-promise")
27184 (version "1.1")
27185 (source
27186 (origin
27187 (method git-fetch)
27188 (uri (git-reference
27189 (url "https://github.com/chuntaro/emacs-promise")
27190 (commit version)))
27191 (file-name (git-file-name name version))
27192 (sha256
27193 (base32 "1xb34zdbwjvahfhycjphdkm925kgd22dr298c57hwxza4ljc2hxj"))))
27194 (build-system emacs-build-system)
27195 (home-page "https://github.com/chuntaro/emacs-promise")
27196 (synopsis "Promises/A+ for Emacs")
27197 (description "This is a simple implementation of Promises/A+.
27198
27199 This implementation ports the following Promises/A+ features
27200 faithfully. See @url{https://github.com/then/promise}.
27201
27202 @itemize
27203 @item The same API as the JavaScript version of Promise can be used.
27204 @item It has all the @code{then}, @code{catch}, @code{resolve}, @code{reject},
27205 @code{all}, @code{race}, etc.
27206 @item It supports \"thenable\".
27207 @item It supports \"Inheritance of Promise\".
27208 @item It supports \"rejection-tracking\".
27209 @end itemize\n")
27210 (license license:gpl3+)))
27211
27212 (define-public emacs-async-await
27213 (package
27214 (name "emacs-async-await")
27215 (version "1.1")
27216 (source
27217 (origin
27218 (method git-fetch)
27219 (uri (git-reference
27220 (url "https://github.com/chuntaro/emacs-async-await")
27221 (commit version)))
27222 (file-name (git-file-name name version))
27223 (sha256
27224 (base32 "0aav9qdswnw7ynqlzn0sm34as5fj2d85syxgg8zjabzp6646ay29"))))
27225 (build-system emacs-build-system)
27226 (propagated-inputs
27227 `(("promise" ,emacs-promise)
27228 ("iter2" ,emacs-iter2)))
27229 (home-page "https://github.com/chuntaro/emacs-async-await")
27230 (synopsis "Async/Await for Emacs")
27231 (description "This is a simple implementation of Async/Await inspired by
27232 the TypeScript implementation.")
27233 (license license:gpl3+)))
27234
27235 (define-public emacs-rocket-chat
27236 ;; No release.
27237 (let ((commit "96fe27a8678de5ae4061f635108a7192eee13f98"))
27238 (package
27239 (name "emacs-rocket-chat")
27240 (version (git-version "0.0.0" "1" commit))
27241 (source
27242 (origin
27243 (method git-fetch)
27244 (uri (git-reference
27245 (url "https://github.com/4hiziri/rocket-chat")
27246 (commit commit)))
27247 (file-name (git-file-name name version))
27248 (sha256
27249 (base32 "02a4j0yy7330kfr3rd3k2agdj01ii6989nki598anbamq6xvj5ql"))))
27250 (build-system emacs-build-system)
27251 (propagated-inputs
27252 `(("async-await" ,emacs-async-await)
27253 ("request" ,emacs-request)))
27254 (home-page "https://github.com/4hiziri/rocket-chat")
27255 (synopsis "Emacs Rocket.chat client")
27256 (description "This package provides an Emacs client for the Rocket.chat
27257 service.")
27258 (license license:expat))))
27259
27260 (define-public emacs-monokai-theme
27261 (package
27262 (name "emacs-monokai-theme")
27263 (version "3.5.3")
27264 (source
27265 (origin
27266 (method git-fetch)
27267 (uri (git-reference
27268 (url "https://github.com/oneKelvinSmith/monokai-emacs")
27269 (commit (string-append "v" version))))
27270 (file-name (git-file-name name version))
27271 (sha256
27272 (base32 "0dy8c3349j7fmp8052hbgvk0b7ldlv5jqpg0paq1i0hlypivd30i"))))
27273 (build-system emacs-build-system)
27274 (home-page "https://github.com/oneKelvinSmith/monokai-emacs")
27275 (synopsis "High contrast color theme for Emacs")
27276 (description
27277 "Monokai theme is a port of the popular TextMate Monokai theme for
27278 Emacs.")
27279 (license license:gpl3+)))
27280
27281 (define-public emacs-nord-theme
27282 (package
27283 (name "emacs-nord-theme")
27284 (version "0.5.0")
27285 (source
27286 (origin
27287 (method git-fetch)
27288 (uri (git-reference
27289 (url "https://github.com/arcticicestudio/nord-emacs")
27290 (commit (string-append "v" version))))
27291 (file-name (git-file-name name version))
27292 (sha256
27293 (base32 "096f8cik4jz89bvkifwp3gm9iraqrd75ljy2q9js724v7yj88711"))))
27294 (build-system emacs-build-system)
27295 (home-page "https://www.nordtheme.com/")
27296 (synopsis "Low contrast arctic color theme for Emacs")
27297 (description
27298 "Nord is an arctic, north-bluish color scheme created for a clean and
27299 uncluttered design pattern to achieve optimal focus and readability for code
27300 syntax highlighting and UI components.")
27301 (license license:expat)))
27302
27303 (define-public emacs-janet-mode
27304 (let ((commit "2f5bcabcb6953e1ed1926ba6a2328c453e8b4ac7"))
27305 (package
27306 (name "emacs-janet-mode")
27307 (version (git-version "0.1.0" "1" commit))
27308 (source
27309 (origin
27310 (method git-fetch)
27311 (uri (git-reference
27312 (url "https://github.com/ALSchwalm/janet-mode")
27313 (commit commit)))
27314 (file-name (git-file-name name version))
27315 (sha256
27316 (base32 "0qj0gpycv2f3z1dgz1a27bjn983hrr3ppvrp7csl34lagnmp89rz"))))
27317 (build-system emacs-build-system)
27318 (home-page "https://github.com/ALSchwalm/janet-mode")
27319 (synopsis "Emacs major mode for the Janet programming language")
27320 (description
27321 "This package provides an Emacs major mode for editing Janet files.")
27322 (license license:gpl3))))
27323
27324 (define-public emacs-inf-janet
27325 (let ((commit "df46651d3aad32593b2195c80ca91fb64d571fb7"))
27326 (package
27327 (name "emacs-inf-janet")
27328 (version (git-version "0.1.0" "1" commit))
27329 (source
27330 (origin
27331 (method git-fetch)
27332 (uri (git-reference
27333 (url "https://github.com/velkyel/inf-janet")
27334 (commit commit)))
27335 (file-name (git-file-name name version))
27336 (sha256
27337 (base32 "0g0y7q62667j0p32md1h6zb2cap9fga9qgdg7138xwjqnk0328v7"))))
27338 (build-system emacs-build-system)
27339 (propagated-inputs
27340 `(("janet-mode" ,emacs-janet-mode)))
27341 (arguments
27342 `(#:phases
27343 (modify-phases %standard-phases
27344 (add-after 'unpack 'fix-program-name
27345 (lambda _
27346 (make-file-writable "inf-janet.el")
27347 (emacs-substitute-variables "inf-janet.el"
27348 ("inf-janet-program" "janet"))
27349 #t)))))
27350 (home-page "https://github.com/velkyel/inf-janet")
27351 (synopsis "Run an external Janet process in an Emacs buffer")
27352 (description
27353 "This Emacs package provides a Janet REPL to evaluate @code{janet-mode}
27354 s-expression.")
27355 (license license:expat))))
27356
27357 (define-public emacs-map
27358 (package
27359 (name "emacs-map")
27360 (version "3.0")
27361 (source
27362 (origin
27363 (method url-fetch)
27364 (uri (string-append "https://elpa.gnu.org/packages/map-"
27365 version ".tar"))
27366 (sha256
27367 (base32
27368 "00wf8lgh1b1i5l838y6di8194rf5gf5djklkhmxj1nlikz66j2ls"))))
27369 (build-system emacs-build-system)
27370 (home-page "http://elpa.gnu.org/packages/map.html")
27371 (synopsis "Map manipulation functions")
27372 (description "This package provides Emacs map-manipulation functions that
27373 work on alists, hash-table and arrays. All functions are prefixed with
27374 @code{map-}.")
27375 (license license:gpl3+)))
27376
27377 (define-public emacs-xref
27378 (package
27379 (name "emacs-xref")
27380 (version "1.0.4")
27381 (source
27382 (origin
27383 (method url-fetch)
27384 (uri (string-append "https://elpa.gnu.org/packages/"
27385 "xref-" version ".el"))
27386 (sha256
27387 (base32 "0hkm59qqlsfw3w9ws9xhpmmz30ylifmh05a00ba58zvv1kz04x1g"))))
27388 (build-system emacs-build-system)
27389 (home-page "http://elpa.gnu.org/packages/xref.html")
27390 (synopsis "Cross-referencing commands")
27391 (description
27392 "This library provides a generic infrastructure for cross referencing
27393 commands, in particular @code{find-definition}.")
27394 (license license:gpl3+)))
27395
27396 (define-public emacs-burly
27397 (package
27398 (name "emacs-burly")
27399 (version "0.1")
27400 (source
27401 (origin
27402 (method git-fetch)
27403 (uri (git-reference
27404 (url "https://github.com/alphapapa/burly.el")
27405 (commit version)))
27406 (file-name (git-file-name name version))
27407 (sha256
27408 (base32 "1vaikknjzmhpszyi4yxjjkp1ihgmhpbnbx1s5pjy4mnhl1ibi33b"))))
27409 (build-system emacs-build-system)
27410 (propagated-inputs
27411 `(("emacs-map" ,emacs-map)))
27412 (home-page "https://github.com/alphapapa/burly.el")
27413 (synopsis "Save and restore frame/window configurations with buffers")
27414 (description "This package provides tools to save and restore frame and
27415 window configurations in Emacs, including buffers that may not be live
27416 anymore. In this way, it's like a lightweight \"workspace\" manager, allowing
27417 you to easily restore one or more frames, including their windows, the
27418 windows' layout, and their buffers.")
27419 (license license:gpl3+)))
27420
27421 (define-public emacs-smart-hungry-delete
27422 (let ((commit "7c1d56a92481594e14d40b5fdf6c48657a0108a0"))
27423 (package
27424 (name "emacs-smart-hungry-delete")
27425 (version "0.1")
27426 (source
27427 (origin
27428 (method git-fetch)
27429 (uri (git-reference
27430 (url "https://github.com/hrehfeld/emacs-smart-hungry-delete")
27431 (commit commit)))
27432 (file-name (git-file-name name version))
27433 (sha256
27434 (base32
27435 "0mxaslx5823s68a8ggbbnmfk1jiswjvip5s4sg7ihfagnci72wni"))))
27436 (build-system emacs-build-system)
27437 (home-page "https://github.com/hrehfeld/emacs-smart-hungry-delete")
27438 (synopsis "Smart hungry deletion of whitespace")
27439 (description "@code{emacs-smart-hungry-delete} hungrily deletes whitespace
27440 between cursor and next word, parenthesis or delimiter while honoring some
27441 rules about where space should be left to separate words and parentheses.")
27442 (license license:gpl2+))))
27443
27444 (define-public emacs-webpaste
27445 (package
27446 (name "emacs-webpaste")
27447 (version "3.2.0")
27448 (source
27449 (origin
27450 (method git-fetch)
27451 (uri (git-reference
27452 (url "https://github.com/etu/webpaste.el")
27453 (commit version)))
27454 (file-name (git-file-name name version))
27455 (sha256
27456 (base32
27457 "08545ihkzflw80rwklnxiswrpdrl8kr74xzxm5wsgrf36fkj9rn2"))))
27458 (build-system emacs-build-system)
27459 (arguments
27460 `(#:tests? #t
27461 #:test-command '("make" "unit" "integration")
27462 #:phases
27463 (modify-phases %standard-phases
27464 (add-after 'unpack 'fix-tests
27465 (lambda _
27466 ;; Do not use cask to run tests.
27467 (substitute* "Makefile"
27468 (("\\$\\{CASK\\} exec ") ""))
27469 ;; Disable tests that need network access.
27470 (substitute* (list "tests/unit/test-webpaste-provider-creation.el"
27471 "tests/integration/test-webpaste-providers.el")
27472 (("describe") "xdescribe")))))))
27473 (native-inputs
27474 `(("emacs-buttercup" ,emacs-buttercup)))
27475 (propagated-inputs
27476 `(("emacs-request" ,emacs-request)))
27477 (home-page "https://github.com/etu/webpaste.el")
27478 (synopsis "Paste to pastebin-like services")
27479 (description "This mode allows to paste whole buffers or parts of buffers
27480 to pastebin-like services. It supports more than one service and will
27481 failover if one service fails. More services can easily be added over time
27482 and preferred services can easily be configured.")
27483 (license license:gpl3+)))
27484
27485 (define-public emacs-keystore-mode
27486 (let ((release "0.0.1")
27487 (revision "0")
27488 (commit "43bd5926348298d077c7221f37902c990df3f951"))
27489 (package
27490 (name "emacs-keystore-mode")
27491 (version (git-version release revision commit))
27492 (home-page "https://github.com/peterpaul/keystore-mode")
27493 (source
27494 (origin
27495 (method git-fetch)
27496 (uri (git-reference
27497 (url home-page)
27498 (commit commit)))
27499 (file-name (git-file-name name version))
27500 (sha256
27501 (base32 "06cznkqkm04zz5lqfb514aqvsr2p13arzysixv0ss0bqpvdq7cv7"))))
27502 (build-system emacs-build-system)
27503 (arguments
27504 `(#:tests? #t
27505 #:test-command
27506 '("emacs" "--no-init-file" "--batch"
27507 "--eval=(require 'ecukes)" "--eval=(ecukes)")))
27508 (native-inputs
27509 `(("emacs-ecukes" ,emacs-ecukes)
27510 ("emacs-espuds" ,emacs-espuds)
27511 ("emacs-undercover" ,emacs-undercover)
27512 ("openjdk" ,openjdk9)))
27513 (propagated-inputs
27514 `(("emacs-origami" ,emacs-origami-el)
27515 ("emacs-s" ,emacs-s)))
27516 (synopsis "Major mode for viewing and managing Java keystores")
27517 (description
27518 "This package provides an Elisp wrapper around the Java
27519 @command{keytool} command and major mode for viewing Java keystores.")
27520 (license license:expat))))
27521
27522 (define-public emacs-ivy-avy
27523 (package
27524 (name "emacs-ivy-avy")
27525 (version "0.13.4")
27526 (source
27527 (origin
27528 (method url-fetch)
27529 (uri (string-append
27530 "https://elpa.gnu.org/packages/"
27531 "ivy-avy-" version ".tar"))
27532 (sha256
27533 (base32 "1q5caxm4rnh4jy5n88dhkdbx1afsshmfki5dl8xsqbdb3y0zq7yi"))))
27534 (build-system emacs-build-system)
27535 (propagated-inputs
27536 `(("emacs-ivy" ,emacs-ivy)
27537 ("emacs-avy" ,emacs-avy)))
27538 (home-page "https://github.com/abo-abo/swiper")
27539 (synopsis "Avy integration for Ivy")
27540 (description
27541 "This package adds a \"C-'\" binding to Ivy minibuffer that uses Avy.")
27542 (license license:gpl3+)))
27543
27544 (define-public emacs-vertico
27545 (package
27546 (name "emacs-vertico")
27547 (version "0.3")
27548 (source
27549 (origin
27550 (method git-fetch)
27551 (uri (git-reference
27552 (url "https://github.com/minad/vertico")
27553 (commit version)))
27554 (file-name (git-file-name name version))
27555 (sha256
27556 (base32 "1r2p09y3ag14dqd46nyy1pa2j2cvn4gn9pji47mzmwydsm2f8hv1"))))
27557 (build-system emacs-build-system)
27558 (arguments
27559 `(#:phases
27560 (modify-phases %standard-phases
27561 (add-before 'install 'build-doc
27562 (lambda _
27563 (invoke "makeinfo" "vertico.texi"))))))
27564 (native-inputs
27565 `(("texinfo" ,texinfo)))
27566 (home-page "https://github.com/minad/vertico")
27567 (synopsis "Vertical interactive completion")
27568 (description
27569 "Vertico provides a minimalistic vertical completion UI, which is based
27570 on Emacs' default completion system. By reusing the default system, it
27571 achieves full compatibility with built-in Emacs commands and completion
27572 tables. Vertico is pretty bare-bone and only provides a minimal set of
27573 commands. Additional optional enhancements can be provided externally by
27574 complementary packages.")
27575 (license license:gpl3+)))
27576
27577 (define-public emacs-ivy-hydra
27578 (package
27579 (name "emacs-ivy-hydra")
27580 (version "0.13.5")
27581 (source
27582 (origin
27583 (method url-fetch)
27584 (uri (string-append
27585 "https://elpa.gnu.org/packages/"
27586 "ivy-hydra-" version ".tar"))
27587 (sha256
27588 (base32 "06rln9bnq5hli5rqlm47fb68b8llpqrmzwqqv4rn7mx3854i9a5x"))))
27589 (build-system emacs-build-system)
27590 (propagated-inputs
27591 `(("emacs-ivy" ,emacs-ivy)
27592 ("emacs-hydra" ,emacs-hydra)))
27593 (home-page "https://github.com/abo-abo/swiper")
27594 (synopsis "Additional key bindings for Ivy")
27595 (description
27596 "This package provides the `hydra-ivy/body' command, which is a
27597 quasi-prefix map, with many useful bindings. These bindings are
27598 shorter than usual, using mostly unprefixed keys.")
27599 (license license:gpl3+)))